From 9a3e42d042f09db6d9a1476bee3814879a8f827d Mon Sep 17 00:00:00 2001 From: "fern-api[bot]" <115122769+fern-api[bot]@users.noreply.github.com> Date: Fri, 24 Apr 2026 00:15:23 +0000 Subject: [PATCH 1/2] SDK regeneration --- .fern/metadata.json | 2 +- poetry.lock | 1050 +------ reference.md | 781 +++-- src/schematic/__init__.py | 168 +- src/schematic/base_client.py | 166 -- src/schematic/billing/client.py | 8 + src/schematic/billing/raw_client.py | 8 + src/schematic/companies/__init__.py | 9 - src/schematic/companies/client.py | 253 -- src/schematic/companies/raw_client.py | 2503 ++++++----------- src/schematic/companies/types/__init__.py | 9 - .../types/update_plan_trait_response.py | 24 - src/schematic/entitlements/__init__.py | 30 - src/schematic/entitlements/client.py | 108 +- src/schematic/entitlements/raw_client.py | 108 +- src/schematic/entitlements/types/__init__.py | 42 - ..._entitlement_request_body_metric_period.py | 7 - ..._request_body_metric_period_month_reset.py | 7 - ...any_override_request_body_metric_period.py | 7 - ..._request_body_metric_period_month_reset.py | 7 - ..._entitlement_request_body_metric_period.py | 7 - ..._request_body_metric_period_month_reset.py | 7 - ...any_override_request_body_metric_period.py | 7 - ..._request_body_metric_period_month_reset.py | 7 - ..._entitlement_request_body_metric_period.py | 7 - ..._request_body_metric_period_month_reset.py | 7 - src/schematic/features/client.py | 68 +- src/schematic/features/raw_client.py | 60 +- src/schematic/plans/__init__.py | 9 + src/schematic/plans/client.py | 301 ++ src/schematic/plans/raw_client.py | 543 ++++ src/schematic/plans/types/__init__.py | 9 + .../plans/types/count_plans_params.py | 5 + .../types/list_custom_plan_billings_params.py | 52 + .../list_custom_plan_billings_response.py} | 9 +- .../plans/types/list_plans_params.py | 5 + .../retry_custom_plan_billing_response.py} | 6 +- src/schematic/raw_base_client.py | 150 - src/schematic/types/__init__.py | 130 +- .../types/api_key_create_response_data.py | 2 + src/schematic/types/api_key_response_data.py | 2 + .../types/audit_log_list_response_data.py | 2 + .../types/audit_log_response_data.py | 2 + .../types/billing_price_response_data.py | 1 + src/schematic/types/billing_price_view.py | 1 + .../billing_product_price_response_data.py | 1 + .../types/check_flag_response_data.py | 6 +- ...pany_event_period_metrics_response_data.py | 6 +- .../types/company_override_response_data.py | 6 +- .../company_plan_detail_response_data.py | 7 +- .../company_subscription_response_data.py | 2 + src/schematic/types/comparable_operator.py | 7 + src/schematic/types/condition.py | 16 +- .../condition_metric_period_month_reset.py | 5 - src/schematic/types/condition_operator.py | 7 - .../types/condition_response_data.py | 12 +- ...on_condition_type.py => condition_type.py} | 2 +- src/schematic/types/condition_view.py | 12 +- ...eate_entitlement_in_bundle_request_body.py | 10 +- ...nt_in_bundle_request_body_metric_period.py | 7 - ..._request_body_metric_period_month_reset.py | 7 - .../types/create_entitlement_req_common.py | 8 +- ...te_entitlement_req_common_metric_period.py | 7 - ...nt_req_common_metric_period_month_reset.py | 7 - .../types/create_flag_request_body.py | 2 +- ...create_or_update_condition_request_body.py | 20 +- ...e_condition_request_body_condition_type.py | 8 - ...te_condition_request_body_metric_period.py | 7 - ..._request_body_metric_period_month_reset.py | 7 - ..._update_condition_request_body_operator.py | 7 - .../create_or_update_flag_request_body.py | 2 +- .../create_or_update_rule_request_body.py | 4 +- ...e_or_update_rule_request_body_rule_type.py | 7 - .../types/feature_company_response_data.py | 10 +- .../feature_company_user_response_data.py | 6 +- .../types/feature_detail_response_data.py | 4 +- src/schematic/types/feature_entitlement.py | 8 +- .../feature_entitlement_metric_period.py | 7 - .../types/feature_entitlement_month_reset.py | 5 - .../types/feature_in_plan_response_data.py | 44 + src/schematic/types/feature_response_data.py | 2 +- .../types/feature_usage_response_data.py | 10 +- src/schematic/types/feature_view.py | 1 - .../types/flag_detail_response_data.py | 4 +- .../types/flag_in_plan_response_data.py | 35 + src/schematic/types/flag_response_data.py | 2 +- src/schematic/types/flag_view.py | 1 - src/schematic/types/metric_period.py | 5 + .../types/metric_period_month_reset.py | 5 + .../types/plan_detail_response_data.py | 7 +- .../types/plan_entitlement_response_data.py | 6 +- .../plan_group_plan_detail_response_data.py | 7 +- .../types/plan_view_public_response_data.py | 7 +- src/schematic/types/rule.py | 4 +- .../rule_condition_detail_response_data.py | 12 +- .../types/rule_condition_response_data.py | 12 +- .../types/rule_detail_response_data.py | 3 +- src/schematic/types/rule_response_data.py | 3 +- .../types/{rule_rule_type.py => rule_type.py} | 6 +- src/schematic/types/rule_view.py | 3 +- .../types/rules_engine_schema_version.py | 2 +- .../types/rulesengine_check_flag_result.py | 8 +- ..._check_flag_result_feature_usage_period.py | 7 - ...rulesengine_check_flag_result_rule_type.py | 16 - .../types/rulesengine_company_metric.py | 8 +- .../rulesengine_company_metric_month_reset.py | 5 - .../rulesengine_company_metric_period.py | 7 - src/schematic/types/rulesengine_condition.py | 16 +- .../rulesengine_condition_metric_period.py | 7 - ...ine_condition_metric_period_month_reset.py | 5 - .../types/rulesengine_condition_operator.py | 7 - ..._type.py => rulesengine_condition_type.py} | 2 +- .../types/rulesengine_feature_entitlement.py | 8 +- ...ngine_feature_entitlement_metric_period.py | 7 - ...sengine_feature_entitlement_month_reset.py | 5 - ...period.py => rulesengine_metric_period.py} | 2 +- .../rulesengine_metric_period_month_reset.py | 5 + src/schematic/types/rulesengine_rule.py | 4 +- ..._rule_type.py => rulesengine_rule_type.py} | 6 +- .../types/update_entitlement_req_common.py | 8 +- ...te_entitlement_req_common_metric_period.py | 7 - ...nt_req_common_metric_period_month_reset.py | 7 - .../usage_based_entitlement_response_data.py | 6 +- 123 files changed, 2728 insertions(+), 4541 deletions(-) delete mode 100644 src/schematic/companies/types/update_plan_trait_response.py delete mode 100644 src/schematic/entitlements/types/create_billing_linked_plan_entitlement_request_body_metric_period.py delete mode 100644 src/schematic/entitlements/types/create_billing_linked_plan_entitlement_request_body_metric_period_month_reset.py delete mode 100644 src/schematic/entitlements/types/create_company_override_request_body_metric_period.py delete mode 100644 src/schematic/entitlements/types/create_company_override_request_body_metric_period_month_reset.py delete mode 100644 src/schematic/entitlements/types/create_plan_entitlement_request_body_metric_period.py delete mode 100644 src/schematic/entitlements/types/create_plan_entitlement_request_body_metric_period_month_reset.py delete mode 100644 src/schematic/entitlements/types/update_company_override_request_body_metric_period.py delete mode 100644 src/schematic/entitlements/types/update_company_override_request_body_metric_period_month_reset.py delete mode 100644 src/schematic/entitlements/types/update_plan_entitlement_request_body_metric_period.py delete mode 100644 src/schematic/entitlements/types/update_plan_entitlement_request_body_metric_period_month_reset.py create mode 100644 src/schematic/plans/types/list_custom_plan_billings_params.py rename src/schematic/{companies/types/delete_plan_trait_response.py => plans/types/list_custom_plan_billings_response.py} (60%) rename src/schematic/{companies/types/create_plan_trait_response.py => plans/types/retry_custom_plan_billing_response.py} (75%) delete mode 100644 src/schematic/raw_base_client.py create mode 100644 src/schematic/types/comparable_operator.py delete mode 100644 src/schematic/types/condition_metric_period_month_reset.py delete mode 100644 src/schematic/types/condition_operator.py rename src/schematic/types/{condition_condition_type.py => condition_type.py} (85%) delete mode 100644 src/schematic/types/create_entitlement_in_bundle_request_body_metric_period.py delete mode 100644 src/schematic/types/create_entitlement_in_bundle_request_body_metric_period_month_reset.py delete mode 100644 src/schematic/types/create_entitlement_req_common_metric_period.py delete mode 100644 src/schematic/types/create_entitlement_req_common_metric_period_month_reset.py delete mode 100644 src/schematic/types/create_or_update_condition_request_body_condition_type.py delete mode 100644 src/schematic/types/create_or_update_condition_request_body_metric_period.py delete mode 100644 src/schematic/types/create_or_update_condition_request_body_metric_period_month_reset.py delete mode 100644 src/schematic/types/create_or_update_condition_request_body_operator.py delete mode 100644 src/schematic/types/create_or_update_rule_request_body_rule_type.py delete mode 100644 src/schematic/types/feature_entitlement_metric_period.py delete mode 100644 src/schematic/types/feature_entitlement_month_reset.py create mode 100644 src/schematic/types/feature_in_plan_response_data.py create mode 100644 src/schematic/types/flag_in_plan_response_data.py create mode 100644 src/schematic/types/metric_period.py create mode 100644 src/schematic/types/metric_period_month_reset.py rename src/schematic/types/{rule_rule_type.py => rule_type.py} (91%) delete mode 100644 src/schematic/types/rulesengine_check_flag_result_feature_usage_period.py delete mode 100644 src/schematic/types/rulesengine_check_flag_result_rule_type.py delete mode 100644 src/schematic/types/rulesengine_company_metric_month_reset.py delete mode 100644 src/schematic/types/rulesengine_company_metric_period.py delete mode 100644 src/schematic/types/rulesengine_condition_metric_period.py delete mode 100644 src/schematic/types/rulesengine_condition_metric_period_month_reset.py delete mode 100644 src/schematic/types/rulesengine_condition_operator.py rename src/schematic/types/{rulesengine_condition_condition_type.py => rulesengine_condition_type.py} (82%) delete mode 100644 src/schematic/types/rulesengine_feature_entitlement_metric_period.py delete mode 100644 src/schematic/types/rulesengine_feature_entitlement_month_reset.py rename src/schematic/types/{condition_metric_period.py => rulesengine_metric_period.py} (81%) create mode 100644 src/schematic/types/rulesengine_metric_period_month_reset.py rename src/schematic/types/{rulesengine_rule_rule_type.py => rulesengine_rule_type.py} (89%) delete mode 100644 src/schematic/types/update_entitlement_req_common_metric_period.py delete mode 100644 src/schematic/types/update_entitlement_req_common_metric_period_month_reset.py diff --git a/.fern/metadata.json b/.fern/metadata.json index 579b5ae..da44bf6 100644 --- a/.fern/metadata.json +++ b/.fern/metadata.json @@ -23,6 +23,6 @@ } ] }, - "originGitCommit": "19a8fcdbf337712bf0986b27208cf2ebc85ef98a", + "originGitCommit": "5315b1ba06c9c71f00ac501c3e7ea3092701cd7b", "sdkVersion": "1.2.0" } \ No newline at end of file diff --git a/poetry.lock b/poetry.lock index eadb8dc..5013589 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,178 +1,4 @@ -# This file is automatically @generated by Poetry 2.3.2 and should not be changed by hand. - -[[package]] -name = "aiohappyeyeballs" -version = "2.6.1" -description = "Happy Eyeballs for asyncio" -optional = false -python-versions = ">=3.9" -groups = ["dev"] -markers = "python_version >= \"3.9\"" -files = [ - {file = "aiohappyeyeballs-2.6.1-py3-none-any.whl", hash = "sha256:f349ba8f4b75cb25c99c5c2d84e997e485204d2902a9597802b0371f09331fb8"}, - {file = "aiohappyeyeballs-2.6.1.tar.gz", hash = "sha256:c3f9d0113123803ccadfdf3f0faa505bc78e6a72d1cc4806cbd719826e943558"}, -] - -[[package]] -name = "aiohttp" -version = "3.13.5" -description = "Async http client/server framework (asyncio)" -optional = false -python-versions = ">=3.9" -groups = ["dev"] -markers = "python_version >= \"3.9\"" -files = [ - {file = "aiohttp-3.13.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:02222e7e233295f40e011c1b00e3b0bd451f22cf853a0304c3595633ee47da4b"}, - {file = "aiohttp-3.13.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bace460460ed20614fa6bc8cb09966c0b8517b8c58ad8046828c6078d25333b5"}, - {file = "aiohttp-3.13.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8f546a4dc1e6a5edbb9fd1fd6ad18134550e096a5a43f4ad74acfbd834fc6670"}, - {file = "aiohttp-3.13.5-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c86969d012e51b8e415a8c6ce96f7857d6a87d6207303ab02d5d11ef0cad2274"}, - {file = "aiohttp-3.13.5-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:b6f6cd1560c5fa427e3b6074bb24d2c64e225afbb7165008903bd42e4e33e28a"}, - {file = "aiohttp-3.13.5-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:636bc362f0c5bbc7372bc3ae49737f9e3030dbce469f0f422c8f38079780363d"}, - {file = "aiohttp-3.13.5-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:6a7cbeb06d1070f1d14895eeeed4dac5913b22d7b456f2eb969f11f4b3993796"}, - {file = "aiohttp-3.13.5-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bca9ef7517fd7874a1a08970ae88f497bf5c984610caa0bf40bd7e8450852b95"}, - {file = "aiohttp-3.13.5-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:019a67772e034a0e6b9b17c13d0a8fe56ad9fb150fc724b7f3ffd3724288d9e5"}, - {file = "aiohttp-3.13.5-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:f34ecee82858e41dd217734f0c41a532bd066bcaab636ad830f03a30b2a96f2a"}, - {file = "aiohttp-3.13.5-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:4eac02d9af4813ee289cd63a361576da36dba57f5a1ab36377bc2600db0cbb73"}, - {file = "aiohttp-3.13.5-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:4beac52e9fe46d6abf98b0176a88154b742e878fdf209d2248e99fcdf73cd297"}, - {file = "aiohttp-3.13.5-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:c180f480207a9b2475f2b8d8bd7204e47aec952d084b2a2be58a782ffcf96074"}, - {file = "aiohttp-3.13.5-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:2837fb92951564d6339cedae4a7231692aa9f73cbc4fb2e04263b96844e03b4e"}, - {file = "aiohttp-3.13.5-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:d9010032a0b9710f58012a1e9c222528763d860ba2ee1422c03473eab47703e7"}, - {file = "aiohttp-3.13.5-cp310-cp310-win32.whl", hash = "sha256:7c4b6668b2b2b9027f209ddf647f2a4407784b5d88b8be4efcc72036f365baf9"}, - {file = "aiohttp-3.13.5-cp310-cp310-win_amd64.whl", hash = "sha256:cd3db5927bf9167d5a6157ddb2f036f6b6b0ad001ac82355d43e97a4bde76d76"}, - {file = "aiohttp-3.13.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:7ab7229b6f9b5c1ba4910d6c41a9eb11f543eadb3f384df1b4c293f4e73d44d6"}, - {file = "aiohttp-3.13.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:8f14c50708bb156b3a3ca7230b3d820199d56a48e3af76fa21c2d6087190fe3d"}, - {file = "aiohttp-3.13.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e7d2f8616f0ff60bd332022279011776c3ac0faa0f1b463f7bb12326fbc97a1c"}, - {file = "aiohttp-3.13.5-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a2567b72e1ffc3ab25510db43f355b29eeada56c0a622e58dcdb19530eb0a3cb"}, - {file = "aiohttp-3.13.5-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:fb0540c854ac9c0c5ad495908fdfd3e332d553ec731698c0e29b1877ba0d2ec6"}, - {file = "aiohttp-3.13.5-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c9883051c6972f58bfc4ebb2116345ee2aa151178e99c3f2b2bbe2af712abd13"}, - {file = "aiohttp-3.13.5-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:2294172ce08a82fb7c7273485895de1fa1186cc8294cfeb6aef4af42ad261174"}, - {file = "aiohttp-3.13.5-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3a807cabd5115fb55af198b98178997a5e0e57dead43eb74a93d9c07d6d4a7dc"}, - {file = "aiohttp-3.13.5-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:aa6d0d932e0f39c02b80744273cd5c388a2d9bc07760a03164f229c8e02662f6"}, - {file = "aiohttp-3.13.5-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:60869c7ac4aaabe7110f26499f3e6e5696eae98144735b12a9c3d9eae2b51a49"}, - {file = "aiohttp-3.13.5-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:26d2f8546f1dfa75efa50c3488215a903c0168d253b75fba4210f57ab77a0fb8"}, - {file = "aiohttp-3.13.5-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:f1162a1492032c82f14271e831c8f4b49f2b6078f4f5fc74de2c912fa225d51d"}, - {file = "aiohttp-3.13.5-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:8b14eb3262fad0dc2f89c1a43b13727e709504972186ff6a99a3ecaa77102b6c"}, - {file = "aiohttp-3.13.5-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:ca9ac61ac6db4eb6c2a0cd1d0f7e1357647b638ccc92f7e9d8d133e71ed3c6ac"}, - {file = "aiohttp-3.13.5-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:7996023b2ed59489ae4762256c8516df9820f751cf2c5da8ed2fb20ee50abab3"}, - {file = "aiohttp-3.13.5-cp311-cp311-win32.whl", hash = "sha256:77dfa48c9f8013271011e51c00f8ada19851f013cde2c48fca1ba5e0caf5bb06"}, - {file = "aiohttp-3.13.5-cp311-cp311-win_amd64.whl", hash = "sha256:d3a4834f221061624b8887090637db9ad4f61752001eae37d56c52fddade2dc8"}, - {file = "aiohttp-3.13.5-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:023ecba036ddd840b0b19bf195bfae970083fd7024ce1ac22e9bba90464620e9"}, - {file = "aiohttp-3.13.5-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:15c933ad7920b7d9a20de151efcd05a6e38302cbf0e10c9b2acb9a42210a2416"}, - {file = "aiohttp-3.13.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ab2899f9fa2f9f741896ebb6fa07c4c883bfa5c7f2ddd8cf2aafa86fa981b2d2"}, - {file = "aiohttp-3.13.5-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a60eaa2d440cd4707696b52e40ed3e2b0f73f65be07fd0ef23b6b539c9c0b0b4"}, - {file = "aiohttp-3.13.5-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:55b3bdd3292283295774ab585160c4004f4f2f203946997f49aac032c84649e9"}, - {file = "aiohttp-3.13.5-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c2b2355dc094e5f7d45a7bb262fe7207aa0460b37a0d87027dcf21b5d890e7d5"}, - {file = "aiohttp-3.13.5-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:b38765950832f7d728297689ad78f5f2cf79ff82487131c4d26fe6ceecdc5f8e"}, - {file = "aiohttp-3.13.5-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b18f31b80d5a33661e08c89e202edabf1986e9b49c42b4504371daeaa11b47c1"}, - {file = "aiohttp-3.13.5-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:33add2463dde55c4f2d9635c6ab33ce154e5ecf322bd26d09af95c5f81cfa286"}, - {file = "aiohttp-3.13.5-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:327cc432fdf1356fb4fbc6fe833ad4e9f6aacb71a8acaa5f1855e4b25910e4a9"}, - {file = "aiohttp-3.13.5-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:7c35b0bf0b48a70b4cb4fc5d7bed9b932532728e124874355de1a0af8ec4bc88"}, - {file = "aiohttp-3.13.5-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:df23d57718f24badef8656c49743e11a89fd6f5358fa8a7b96e728fda2abf7d3"}, - {file = "aiohttp-3.13.5-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:02e048037a6501a5ec1f6fc9736135aec6eb8a004ce48838cb951c515f32c80b"}, - {file = "aiohttp-3.13.5-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:31cebae8b26f8a615d2b546fee45d5ffb76852ae6450e2a03f42c9102260d6fe"}, - {file = "aiohttp-3.13.5-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:888e78eb5ca55a615d285c3c09a7a91b42e9dd6fc699b166ebd5dee87c9ccf14"}, - {file = "aiohttp-3.13.5-cp312-cp312-win32.whl", hash = "sha256:8bd3ec6376e68a41f9f95f5ed170e2fcf22d4eb27a1f8cb361d0508f6e0557f3"}, - {file = "aiohttp-3.13.5-cp312-cp312-win_amd64.whl", hash = "sha256:110e448e02c729bcebb18c60b9214a87ba33bac4a9fa5e9a5f139938b56c6cb1"}, - {file = "aiohttp-3.13.5-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a5029cc80718bbd545123cd8fe5d15025eccaaaace5d0eeec6bd556ad6163d61"}, - {file = "aiohttp-3.13.5-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:4bb6bf5811620003614076bdc807ef3b5e38244f9d25ca5fe888eaccea2a9832"}, - {file = "aiohttp-3.13.5-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a84792f8631bf5a94e52d9cc881c0b824ab42717165a5579c760b830d9392ac9"}, - {file = "aiohttp-3.13.5-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:57653eac22c6a4c13eb22ecf4d673d64a12f266e72785ab1c8b8e5940d0e8090"}, - {file = "aiohttp-3.13.5-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:e5e5f7debc7a57af53fdf5c5009f9391d9f4c12867049d509bf7bb164a6e295b"}, - {file = "aiohttp-3.13.5-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c719f65bebcdf6716f10e9eff80d27567f7892d8988c06de12bbbd39307c6e3a"}, - {file = "aiohttp-3.13.5-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d97f93fdae594d886c5a866636397e2bcab146fd7a132fd6bb9ce182224452f8"}, - {file = "aiohttp-3.13.5-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3df334e39d4c2f899a914f1dba283c1aadc311790733f705182998c6f7cae665"}, - {file = "aiohttp-3.13.5-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:fe6970addfea9e5e081401bcbadf865d2b6da045472f58af08427e108d618540"}, - {file = "aiohttp-3.13.5-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:7becdf835feff2f4f335d7477f121af787e3504b48b449ff737afb35869ba7bb"}, - {file = "aiohttp-3.13.5-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:676e5651705ad5d8a70aeb8eb6936c436d8ebbd56e63436cb7dd9bb36d2a9a46"}, - {file = "aiohttp-3.13.5-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:9b16c653d38eb1a611cc898c41e76859ca27f119d25b53c12875fd0474ae31a8"}, - {file = "aiohttp-3.13.5-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:999802d5fa0389f58decd24b537c54aa63c01c3219ce17d1214cbda3c2b22d2d"}, - {file = "aiohttp-3.13.5-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:ec707059ee75732b1ba130ed5f9580fe10ff75180c812bc267ded039db5128c6"}, - {file = "aiohttp-3.13.5-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:2d6d44a5b48132053c2f6cd5c8cb14bc67e99a63594e336b0f2af81e94d5530c"}, - {file = "aiohttp-3.13.5-cp313-cp313-win32.whl", hash = "sha256:329f292ed14d38a6c4c435e465f48bebb47479fd676a0411936cc371643225cc"}, - {file = "aiohttp-3.13.5-cp313-cp313-win_amd64.whl", hash = "sha256:69f571de7500e0557801c0b51f4780482c0ec5fe2ac851af5a92cfce1af1cb83"}, - {file = "aiohttp-3.13.5-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:eb4639f32fd4a9904ab8fb45bf3383ba71137f3d9d4ba25b3b3f3109977c5b8c"}, - {file = "aiohttp-3.13.5-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:7e5dc4311bd5ac493886c63cbf76ab579dbe4641268e7c74e48e774c74b6f2be"}, - {file = "aiohttp-3.13.5-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:756c3c304d394977519824449600adaf2be0ccee76d206ee339c5e76b70ded25"}, - {file = "aiohttp-3.13.5-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ecc26751323224cf8186efcf7fbcbc30f4e1d8c7970659daf25ad995e4032a56"}, - {file = "aiohttp-3.13.5-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:10a75acfcf794edf9d8db50e5a7ec5fc818b2a8d3f591ce93bc7b1210df016d2"}, - {file = "aiohttp-3.13.5-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:0f7a18f258d124cd678c5fe072fe4432a4d5232b0657fca7c1847f599233c83a"}, - {file = "aiohttp-3.13.5-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:df6104c009713d3a89621096f3e3e88cc323fd269dbd7c20afe18535094320be"}, - {file = "aiohttp-3.13.5-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:241a94f7de7c0c3b616627aaad530fe2cb620084a8b144d3be7b6ecfe95bae3b"}, - {file = "aiohttp-3.13.5-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c974fb66180e58709b6fc402846f13791240d180b74de81d23913abe48e96d94"}, - {file = "aiohttp-3.13.5-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:6e27ea05d184afac78aabbac667450c75e54e35f62238d44463131bd3f96753d"}, - {file = "aiohttp-3.13.5-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:a79a6d399cef33a11b6f004c67bb07741d91f2be01b8d712d52c75711b1e07c7"}, - {file = "aiohttp-3.13.5-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:c632ce9c0b534fbe25b52c974515ed674937c5b99f549a92127c85f771a78772"}, - {file = "aiohttp-3.13.5-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:fceedde51fbd67ee2bcc8c0b33d0126cc8b51ef3bbde2f86662bd6d5a6f10ec5"}, - {file = "aiohttp-3.13.5-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:f92995dfec9420bb69ae629abf422e516923ba79ba4403bc750d94fb4a6c68c1"}, - {file = "aiohttp-3.13.5-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:20ae0ff08b1f2c8788d6fb85afcb798654ae6ba0b747575f8562de738078457b"}, - {file = "aiohttp-3.13.5-cp314-cp314-win32.whl", hash = "sha256:b20df693de16f42b2472a9c485e1c948ee55524786a0a34345511afdd22246f3"}, - {file = "aiohttp-3.13.5-cp314-cp314-win_amd64.whl", hash = "sha256:f85c6f327bf0b8c29da7d93b1cabb6363fb5e4e160a32fa241ed2dce21b73162"}, - {file = "aiohttp-3.13.5-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:1efb06900858bb618ff5cee184ae2de5828896c448403d51fb633f09e109be0a"}, - {file = "aiohttp-3.13.5-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:fee86b7c4bd29bdaf0d53d14739b08a106fdda809ca5fe032a15f52fae5fe254"}, - {file = "aiohttp-3.13.5-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:20058e23909b9e65f9da62b396b77dfa95965cbe840f8def6e572538b1d32e36"}, - {file = "aiohttp-3.13.5-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8cf20a8d6868cb15a73cab329ffc07291ba8c22b1b88176026106ae39aa6df0f"}, - {file = "aiohttp-3.13.5-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:330f5da04c987f1d5bdb8ae189137c77139f36bd1cb23779ca1a354a4b027800"}, - {file = "aiohttp-3.13.5-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:6f1cbf0c7926d315c3c26c2da41fd2b5d2fe01ac0e157b78caefc51a782196cf"}, - {file = "aiohttp-3.13.5-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:53fc049ed6390d05423ba33103ded7281fe897cf97878f369a527070bd95795b"}, - {file = "aiohttp-3.13.5-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:898703aa2667e3c5ca4c54ca36cd73f58b7a38ef87a5606414799ebce4d3fd3a"}, - {file = "aiohttp-3.13.5-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:0494a01ca9584eea1e5fbd6d748e61ecff218c51b576ee1999c23db7066417d8"}, - {file = "aiohttp-3.13.5-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:6cf81fe010b8c17b09495cbd15c1d35afbc8fb405c0c9cf4738e5ae3af1d65be"}, - {file = "aiohttp-3.13.5-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:c564dd5f09ddc9d8f2c2d0a301cd30a79a2cc1b46dd1a73bef8f0038863d016b"}, - {file = "aiohttp-3.13.5-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:2994be9f6e51046c4f864598fd9abeb4fba6e88f0b2152422c9666dcd4aea9c6"}, - {file = "aiohttp-3.13.5-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:157826e2fa245d2ef46c83ea8a5faf77ca19355d278d425c29fda0beb3318037"}, - {file = "aiohttp-3.13.5-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:a8aca50daa9493e9e13c0f566201a9006f080e7c50e5e90d0b06f53146a54500"}, - {file = "aiohttp-3.13.5-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:3b13560160d07e047a93f23aaa30718606493036253d5430887514715b67c9d9"}, - {file = "aiohttp-3.13.5-cp314-cp314t-win32.whl", hash = "sha256:9a0f4474b6ea6818b41f82172d799e4b3d29e22c2c520ce4357856fced9af2f8"}, - {file = "aiohttp-3.13.5-cp314-cp314t-win_amd64.whl", hash = "sha256:18a2f6c1182c51baa1d28d68fea51513cb2a76612f038853c0ad3c145423d3d9"}, - {file = "aiohttp-3.13.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:347542f0ea3f95b2a955ee6656461fa1c776e401ac50ebce055a6c38454a0adf"}, - {file = "aiohttp-3.13.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:178c7b5e62b454c2bc790786e6058c3cc968613b4419251b478c153a4aec32b1"}, - {file = "aiohttp-3.13.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:af545c2cffdb0967a96b6249e6f5f7b0d92cdfd267f9d5238d5b9ca63e8edb10"}, - {file = "aiohttp-3.13.5-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:206b7b3ef96e4ce211754f0cd003feb28b7d81f0ad26b8d077a5d5161436067f"}, - {file = "aiohttp-3.13.5-cp39-cp39-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:ee5e86776273de1795947d17bddd6bb19e0365fd2af4289c0d2c5454b6b1d36b"}, - {file = "aiohttp-3.13.5-cp39-cp39-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:95d14ca7abefde230f7639ec136ade282655431fd5db03c343b19dda72dd1643"}, - {file = "aiohttp-3.13.5-cp39-cp39-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:912d4b6af530ddb1338a66229dac3a25ff11d4448be3ec3d6340583995f56031"}, - {file = "aiohttp-3.13.5-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e999f0c88a458c836d5fb521814e92ed2172c649200336a6df514987c1488258"}, - {file = "aiohttp-3.13.5-cp39-cp39-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:39380e12bd1f2fdab4285b6e055ad48efbaed5c836433b142ed4f5b9be71036a"}, - {file = "aiohttp-3.13.5-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:9efcc0f11d850cefcafdd9275b9576ad3bfb539bed96807663b32ad99c4d4b88"}, - {file = "aiohttp-3.13.5-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:147b4f501d0292077f29d5268c16bb7c864a1f054d7001c4c1812c0421ea1ed0"}, - {file = "aiohttp-3.13.5-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:d147004fede1b12f6013a6dbb2a26a986a671a03c6ea740ddc76500e5f1c399f"}, - {file = "aiohttp-3.13.5-cp39-cp39-musllinux_1_2_riscv64.whl", hash = "sha256:9277145d36a01653863899c665243871434694bcc3431922c3b35c978061bdb8"}, - {file = "aiohttp-3.13.5-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:4e704c52438f66fdd89588346183d898bb42167cf88f8b7ff1c0f9fc957c348f"}, - {file = "aiohttp-3.13.5-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:a8a4d3427e8de1312ddf309cc482186466c79895b3a139fed3259fc01dfa9a5b"}, - {file = "aiohttp-3.13.5-cp39-cp39-win32.whl", hash = "sha256:6f497a6876aa4b1a102b04996ce4c1170c7040d83faa9387dd921c16e30d5c83"}, - {file = "aiohttp-3.13.5-cp39-cp39-win_amd64.whl", hash = "sha256:cb979826071c0986a5f08333a36104153478ce6018c58cba7f9caddaf63d5d67"}, - {file = "aiohttp-3.13.5.tar.gz", hash = "sha256:9d98cc980ecc96be6eb4c1994ce35d28d8b1f5e5208a23b421187d1209dbb7d1"}, -] - -[package.dependencies] -aiohappyeyeballs = ">=2.5.0" -aiosignal = ">=1.4.0" -async-timeout = {version = ">=4.0,<6.0", markers = "python_version < \"3.11\""} -attrs = ">=17.3.0" -frozenlist = ">=1.1.1" -multidict = ">=4.5,<7.0" -propcache = ">=0.2.0" -yarl = ">=1.17.0,<2.0" - -[package.extras] -speedups = ["Brotli (>=1.2) ; platform_python_implementation == \"CPython\"", "aiodns (>=3.3.0)", "backports.zstd ; platform_python_implementation == \"CPython\" and python_version < \"3.14\"", "brotlicffi (>=1.2) ; platform_python_implementation != \"CPython\""] - -[[package]] -name = "aiosignal" -version = "1.4.0" -description = "aiosignal: a list of registered asynchronous callbacks" -optional = false -python-versions = ">=3.9" -groups = ["dev"] -markers = "python_version >= \"3.9\"" -files = [ - {file = "aiosignal-1.4.0-py3-none-any.whl", hash = "sha256:053243f8b92b990551949e63930a839ff0cf0b0ebbe0597b0f3fb19e1a0fe82e"}, - {file = "aiosignal-1.4.0.tar.gz", hash = "sha256:f47eecd9468083c2029cc99945502cb7708b082c232f9aca65da147157b251c7"}, -] - -[package.dependencies] -frozenlist = ">=1.1.0" -typing-extensions = {version = ">=4.2", markers = "python_version < \"3.13\""} +# This file is automatically @generated by Poetry 1.8.5 and should not be changed by hand. [[package]] name = "annotated-types" @@ -180,7 +6,6 @@ version = "0.7.0" description = "Reusable constraint types to use with typing.Annotated" optional = false python-versions = ">=3.8" -groups = ["main"] files = [ {file = "annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53"}, {file = "annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89"}, @@ -195,7 +20,6 @@ version = "4.5.2" description = "High level compatibility layer for multiple asynchronous event loop implementations" optional = false python-versions = ">=3.8" -groups = ["main"] files = [ {file = "anyio-4.5.2-py3-none-any.whl", hash = "sha256:c011ee36bc1e8ba40e5a81cb9df91925c218fe9b778554e0b56a21e1b5d4716f"}, {file = "anyio-4.5.2.tar.gz", hash = "sha256:23009af4ed04ce05991845451e11ef02fc7c5ed29179ac9a420e5ad0ac7ddc5b"}, @@ -209,45 +33,18 @@ typing-extensions = {version = ">=4.1", markers = "python_version < \"3.11\""} [package.extras] doc = ["Sphinx (>=7.4,<8.0)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme"] -test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "truststore (>=0.9.1) ; python_version >= \"3.10\"", "uvloop (>=0.21.0b1) ; platform_python_implementation == \"CPython\" and platform_system != \"Windows\""] +test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "truststore (>=0.9.1)", "uvloop (>=0.21.0b1)"] trio = ["trio (>=0.26.1)"] -[[package]] -name = "async-timeout" -version = "5.0.1" -description = "Timeout context manager for asyncio programs" -optional = false -python-versions = ">=3.8" -groups = ["dev"] -markers = "python_version >= \"3.9\" and python_full_version < \"3.11.3\"" -files = [ - {file = "async_timeout-5.0.1-py3-none-any.whl", hash = "sha256:39e3809566ff85354557ec2398b55e096c8364bacac9405a7a1fa429e77fe76c"}, - {file = "async_timeout-5.0.1.tar.gz", hash = "sha256:d9321a7a3d5a6a5e187e824d2fa0793ce379a202935782d555d6e9d2735677d3"}, -] - -[[package]] -name = "attrs" -version = "26.1.0" -description = "Classes Without Boilerplate" -optional = false -python-versions = ">=3.9" -groups = ["dev"] -markers = "python_version >= \"3.9\"" -files = [ - {file = "attrs-26.1.0-py3-none-any.whl", hash = "sha256:c647aa4a12dfbad9333ca4e71fe62ddc36f4e63b2d260a37a8b83d2f043ac309"}, - {file = "attrs-26.1.0.tar.gz", hash = "sha256:d03ceb89cb322a8fd706d4fb91940737b6642aa36998fe130a9bc96c985eff32"}, -] - [[package]] name = "certifi" -version = "2026.2.25" +version = "2026.4.22" description = "Python package for providing Mozilla's CA Bundle." optional = false python-versions = ">=3.7" -groups = ["main"] files = [ - {file = "certifi-2026.2.25-py3-none-any.whl", hash = "sha256:027692e4402ad994f1c42e52a4997a9763c646b73e4096e4d5d6db8af1d6f0fa"}, - {file = "certifi-2026.2.25.tar.gz", hash = "sha256:e887ab5cee78ea814d3472169153c2d12cd43b14bd03329a39a9c6e2e80bfba7"}, + {file = "certifi-2026.4.22-py3-none-any.whl", hash = "sha256:3cb2210c8f88ba2318d29b0388d1023c8492ff72ecdde4ebdaddbb13a31b1c4a"}, + {file = "certifi-2026.4.22.tar.gz", hash = "sha256:8d455352a37b71bf76a79caa83a3d6c25afee4a385d632127b6afb3963f1c580"}, ] [[package]] @@ -256,8 +53,6 @@ version = "0.4.6" description = "Cross-platform colored terminal text." optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" -groups = ["dev"] -markers = "sys_platform == \"win32\"" files = [ {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, @@ -269,8 +64,6 @@ version = "1.3.1" description = "Backport of PEP 654 (exception groups)" optional = false python-versions = ">=3.7" -groups = ["main", "dev"] -markers = "python_version < \"3.11\"" files = [ {file = "exceptiongroup-1.3.1-py3-none-any.whl", hash = "sha256:a7a39a3bd276781e98394987d3a5701d0c4edffb633bb7a5144577f82c773598"}, {file = "exceptiongroup-1.3.1.tar.gz", hash = "sha256:8b412432c6055b0b7d14c310000ae93352ed6754f70fa8f7c34141f91c4e3219"}, @@ -288,7 +81,6 @@ version = "2.1.2" description = "execnet: rapid multi-Python deployment" optional = false python-versions = ">=3.8" -groups = ["dev"] files = [ {file = "execnet-2.1.2-py3-none-any.whl", hash = "sha256:67fba928dd5a544b783f6056f449e5e3931a5c378b128bc18501f7ea79e296ec"}, {file = "execnet-2.1.2.tar.gz", hash = "sha256:63d83bfdd9a23e35b9c6a3261412324f964c2ec8dcd8d3c6916ee9373e0befcd"}, @@ -297,154 +89,12 @@ files = [ [package.extras] testing = ["hatch", "pre-commit", "pytest", "tox"] -[[package]] -name = "frozenlist" -version = "1.8.0" -description = "A list-like structure which implements collections.abc.MutableSequence" -optional = false -python-versions = ">=3.9" -groups = ["dev"] -markers = "python_version >= \"3.9\"" -files = [ - {file = "frozenlist-1.8.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:b37f6d31b3dcea7deb5e9696e529a6aa4a898adc33db82da12e4c60a7c4d2011"}, - {file = "frozenlist-1.8.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ef2b7b394f208233e471abc541cc6991f907ffd47dc72584acee3147899d6565"}, - {file = "frozenlist-1.8.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a88f062f072d1589b7b46e951698950e7da00442fc1cacbe17e19e025dc327ad"}, - {file = "frozenlist-1.8.0-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:f57fb59d9f385710aa7060e89410aeb5058b99e62f4d16b08b91986b9a2140c2"}, - {file = "frozenlist-1.8.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:799345ab092bee59f01a915620b5d014698547afd011e691a208637312db9186"}, - {file = "frozenlist-1.8.0-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:c23c3ff005322a6e16f71bf8692fcf4d5a304aaafe1e262c98c6d4adc7be863e"}, - {file = "frozenlist-1.8.0-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:8a76ea0f0b9dfa06f254ee06053d93a600865b3274358ca48a352ce4f0798450"}, - {file = "frozenlist-1.8.0-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:c7366fe1418a6133d5aa824ee53d406550110984de7637d65a178010f759c6ef"}, - {file = "frozenlist-1.8.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:13d23a45c4cebade99340c4165bd90eeb4a56c6d8a9d8aa49568cac19a6d0dc4"}, - {file = "frozenlist-1.8.0-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:e4a3408834f65da56c83528fb52ce7911484f0d1eaf7b761fc66001db1646eff"}, - {file = "frozenlist-1.8.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:42145cd2748ca39f32801dad54aeea10039da6f86e303659db90db1c4b614c8c"}, - {file = "frozenlist-1.8.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:e2de870d16a7a53901e41b64ffdf26f2fbb8917b3e6ebf398098d72c5b20bd7f"}, - {file = "frozenlist-1.8.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:20e63c9493d33ee48536600d1a5c95eefc870cd71e7ab037763d1fbb89cc51e7"}, - {file = "frozenlist-1.8.0-cp310-cp310-win32.whl", hash = "sha256:adbeebaebae3526afc3c96fad434367cafbfd1b25d72369a9e5858453b1bb71a"}, - {file = "frozenlist-1.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:667c3777ca571e5dbeb76f331562ff98b957431df140b54c85fd4d52eea8d8f6"}, - {file = "frozenlist-1.8.0-cp310-cp310-win_arm64.whl", hash = "sha256:80f85f0a7cc86e7a54c46d99c9e1318ff01f4687c172ede30fd52d19d1da1c8e"}, - {file = "frozenlist-1.8.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:09474e9831bc2b2199fad6da3c14c7b0fbdd377cce9d3d77131be28906cb7d84"}, - {file = "frozenlist-1.8.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:17c883ab0ab67200b5f964d2b9ed6b00971917d5d8a92df149dc2c9779208ee9"}, - {file = "frozenlist-1.8.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:fa47e444b8ba08fffd1c18e8cdb9a75db1b6a27f17507522834ad13ed5922b93"}, - {file = "frozenlist-1.8.0-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:2552f44204b744fba866e573be4c1f9048d6a324dfe14475103fd51613eb1d1f"}, - {file = "frozenlist-1.8.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:957e7c38f250991e48a9a73e6423db1bb9dd14e722a10f6b8bb8e16a0f55f695"}, - {file = "frozenlist-1.8.0-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:8585e3bb2cdea02fc88ffa245069c36555557ad3609e83be0ec71f54fd4abb52"}, - {file = "frozenlist-1.8.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:edee74874ce20a373d62dc28b0b18b93f645633c2943fd90ee9d898550770581"}, - {file = "frozenlist-1.8.0-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:c9a63152fe95756b85f31186bddf42e4c02c6321207fd6601a1c89ebac4fe567"}, - {file = "frozenlist-1.8.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:b6db2185db9be0a04fecf2f241c70b63b1a242e2805be291855078f2b404dd6b"}, - {file = "frozenlist-1.8.0-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:f4be2e3d8bc8aabd566f8d5b8ba7ecc09249d74ba3c9ed52e54dc23a293f0b92"}, - {file = "frozenlist-1.8.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:c8d1634419f39ea6f5c427ea2f90ca85126b54b50837f31497f3bf38266e853d"}, - {file = "frozenlist-1.8.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:1a7fa382a4a223773ed64242dbe1c9c326ec09457e6b8428efb4118c685c3dfd"}, - {file = "frozenlist-1.8.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:11847b53d722050808926e785df837353bd4d75f1d494377e59b23594d834967"}, - {file = "frozenlist-1.8.0-cp311-cp311-win32.whl", hash = "sha256:27c6e8077956cf73eadd514be8fb04d77fc946a7fe9f7fe167648b0b9085cc25"}, - {file = "frozenlist-1.8.0-cp311-cp311-win_amd64.whl", hash = "sha256:ac913f8403b36a2c8610bbfd25b8013488533e71e62b4b4adce9c86c8cea905b"}, - {file = "frozenlist-1.8.0-cp311-cp311-win_arm64.whl", hash = "sha256:d4d3214a0f8394edfa3e303136d0575eece0745ff2b47bd2cb2e66dd92d4351a"}, - {file = "frozenlist-1.8.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:78f7b9e5d6f2fdb88cdde9440dc147259b62b9d3b019924def9f6478be254ac1"}, - {file = "frozenlist-1.8.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:229bf37d2e4acdaf808fd3f06e854a4a7a3661e871b10dc1f8f1896a3b05f18b"}, - {file = "frozenlist-1.8.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f833670942247a14eafbb675458b4e61c82e002a148f49e68257b79296e865c4"}, - {file = "frozenlist-1.8.0-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:494a5952b1c597ba44e0e78113a7266e656b9794eec897b19ead706bd7074383"}, - {file = "frozenlist-1.8.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:96f423a119f4777a4a056b66ce11527366a8bb92f54e541ade21f2374433f6d4"}, - {file = "frozenlist-1.8.0-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3462dd9475af2025c31cc61be6652dfa25cbfb56cbbf52f4ccfe029f38decaf8"}, - {file = "frozenlist-1.8.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c4c800524c9cd9bac5166cd6f55285957fcfc907db323e193f2afcd4d9abd69b"}, - {file = "frozenlist-1.8.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d6a5df73acd3399d893dafc71663ad22534b5aa4f94e8a2fabfe856c3c1b6a52"}, - {file = "frozenlist-1.8.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:405e8fe955c2280ce66428b3ca55e12b3c4e9c336fb2103a4937e891c69a4a29"}, - {file = "frozenlist-1.8.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:908bd3f6439f2fef9e85031b59fd4f1297af54415fb60e4254a95f75b3cab3f3"}, - {file = "frozenlist-1.8.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:294e487f9ec720bd8ffcebc99d575f7eff3568a08a253d1ee1a0378754b74143"}, - {file = "frozenlist-1.8.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:74c51543498289c0c43656701be6b077f4b265868fa7f8a8859c197006efb608"}, - {file = "frozenlist-1.8.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:776f352e8329135506a1d6bf16ac3f87bc25b28e765949282dcc627af36123aa"}, - {file = "frozenlist-1.8.0-cp312-cp312-win32.whl", hash = "sha256:433403ae80709741ce34038da08511d4a77062aa924baf411ef73d1146e74faf"}, - {file = "frozenlist-1.8.0-cp312-cp312-win_amd64.whl", hash = "sha256:34187385b08f866104f0c0617404c8eb08165ab1272e884abc89c112e9c00746"}, - {file = "frozenlist-1.8.0-cp312-cp312-win_arm64.whl", hash = "sha256:fe3c58d2f5db5fbd18c2987cba06d51b0529f52bc3a6cdc33d3f4eab725104bd"}, - {file = "frozenlist-1.8.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8d92f1a84bb12d9e56f818b3a746f3efba93c1b63c8387a73dde655e1e42282a"}, - {file = "frozenlist-1.8.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:96153e77a591c8adc2ee805756c61f59fef4cf4073a9275ee86fe8cba41241f7"}, - {file = "frozenlist-1.8.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f21f00a91358803399890ab167098c131ec2ddd5f8f5fd5fe9c9f2c6fcd91e40"}, - {file = "frozenlist-1.8.0-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:fb30f9626572a76dfe4293c7194a09fb1fe93ba94c7d4f720dfae3b646b45027"}, - {file = "frozenlist-1.8.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:eaa352d7047a31d87dafcacbabe89df0aa506abb5b1b85a2fb91bc3faa02d822"}, - {file = "frozenlist-1.8.0-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:03ae967b4e297f58f8c774c7eabcce57fe3c2434817d4385c50661845a058121"}, - {file = "frozenlist-1.8.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f6292f1de555ffcc675941d65fffffb0a5bcd992905015f85d0592201793e0e5"}, - {file = "frozenlist-1.8.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:29548f9b5b5e3460ce7378144c3010363d8035cea44bc0bf02d57f5a685e084e"}, - {file = "frozenlist-1.8.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ec3cc8c5d4084591b4237c0a272cc4f50a5b03396a47d9caaf76f5d7b38a4f11"}, - {file = "frozenlist-1.8.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:517279f58009d0b1f2e7c1b130b377a349405da3f7621ed6bfae50b10adf20c1"}, - {file = "frozenlist-1.8.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:db1e72ede2d0d7ccb213f218df6a078a9c09a7de257c2fe8fcef16d5925230b1"}, - {file = "frozenlist-1.8.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:b4dec9482a65c54a5044486847b8a66bf10c9cb4926d42927ec4e8fd5db7fed8"}, - {file = "frozenlist-1.8.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:21900c48ae04d13d416f0e1e0c4d81f7931f73a9dfa0b7a8746fb2fe7dd970ed"}, - {file = "frozenlist-1.8.0-cp313-cp313-win32.whl", hash = "sha256:8b7b94a067d1c504ee0b16def57ad5738701e4ba10cec90529f13fa03c833496"}, - {file = "frozenlist-1.8.0-cp313-cp313-win_amd64.whl", hash = "sha256:878be833caa6a3821caf85eb39c5ba92d28e85df26d57afb06b35b2efd937231"}, - {file = "frozenlist-1.8.0-cp313-cp313-win_arm64.whl", hash = "sha256:44389d135b3ff43ba8cc89ff7f51f5a0bb6b63d829c8300f79a2fe4fe61bcc62"}, - {file = "frozenlist-1.8.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:e25ac20a2ef37e91c1b39938b591457666a0fa835c7783c3a8f33ea42870db94"}, - {file = "frozenlist-1.8.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:07cdca25a91a4386d2e76ad992916a85038a9b97561bf7a3fd12d5d9ce31870c"}, - {file = "frozenlist-1.8.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:4e0c11f2cc6717e0a741f84a527c52616140741cd812a50422f83dc31749fb52"}, - {file = "frozenlist-1.8.0-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:b3210649ee28062ea6099cfda39e147fa1bc039583c8ee4481cb7811e2448c51"}, - {file = "frozenlist-1.8.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:581ef5194c48035a7de2aefc72ac6539823bb71508189e5de01d60c9dcd5fa65"}, - {file = "frozenlist-1.8.0-cp313-cp313t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3ef2d026f16a2b1866e1d86fc4e1291e1ed8a387b2c333809419a2f8b3a77b82"}, - {file = "frozenlist-1.8.0-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:5500ef82073f599ac84d888e3a8c1f77ac831183244bfd7f11eaa0289fb30714"}, - {file = "frozenlist-1.8.0-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:50066c3997d0091c411a66e710f4e11752251e6d2d73d70d8d5d4c76442a199d"}, - {file = "frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:5c1c8e78426e59b3f8005e9b19f6ff46e5845895adbde20ece9218319eca6506"}, - {file = "frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:eefdba20de0d938cec6a89bd4d70f346a03108a19b9df4248d3cf0d88f1b0f51"}, - {file = "frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:cf253e0e1c3ceb4aaff6df637ce033ff6535fb8c70a764a8f46aafd3d6ab798e"}, - {file = "frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:032efa2674356903cd0261c4317a561a6850f3ac864a63fc1583147fb05a79b0"}, - {file = "frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:6da155091429aeba16851ecb10a9104a108bcd32f6c1642867eadaee401c1c41"}, - {file = "frozenlist-1.8.0-cp313-cp313t-win32.whl", hash = "sha256:0f96534f8bfebc1a394209427d0f8a63d343c9779cda6fc25e8e121b5fd8555b"}, - {file = "frozenlist-1.8.0-cp313-cp313t-win_amd64.whl", hash = "sha256:5d63a068f978fc69421fb0e6eb91a9603187527c86b7cd3f534a5b77a592b888"}, - {file = "frozenlist-1.8.0-cp313-cp313t-win_arm64.whl", hash = "sha256:bf0a7e10b077bf5fb9380ad3ae8ce20ef919a6ad93b4552896419ac7e1d8e042"}, - {file = "frozenlist-1.8.0-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:cee686f1f4cadeb2136007ddedd0aaf928ab95216e7691c63e50a8ec066336d0"}, - {file = "frozenlist-1.8.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:119fb2a1bd47307e899c2fac7f28e85b9a543864df47aa7ec9d3c1b4545f096f"}, - {file = "frozenlist-1.8.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:4970ece02dbc8c3a92fcc5228e36a3e933a01a999f7094ff7c23fbd2beeaa67c"}, - {file = "frozenlist-1.8.0-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:cba69cb73723c3f329622e34bdbf5ce1f80c21c290ff04256cff1cd3c2036ed2"}, - {file = "frozenlist-1.8.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:778a11b15673f6f1df23d9586f83c4846c471a8af693a22e066508b77d201ec8"}, - {file = "frozenlist-1.8.0-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:0325024fe97f94c41c08872db482cf8ac4800d80e79222c6b0b7b162d5b13686"}, - {file = "frozenlist-1.8.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:97260ff46b207a82a7567b581ab4190bd4dfa09f4db8a8b49d1a958f6aa4940e"}, - {file = "frozenlist-1.8.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:54b2077180eb7f83dd52c40b2750d0a9f175e06a42e3213ce047219de902717a"}, - {file = "frozenlist-1.8.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:2f05983daecab868a31e1da44462873306d3cbfd76d1f0b5b69c473d21dbb128"}, - {file = "frozenlist-1.8.0-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:33f48f51a446114bc5d251fb2954ab0164d5be02ad3382abcbfe07e2531d650f"}, - {file = "frozenlist-1.8.0-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:154e55ec0655291b5dd1b8731c637ecdb50975a2ae70c606d100750a540082f7"}, - {file = "frozenlist-1.8.0-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:4314debad13beb564b708b4a496020e5306c7333fa9a3ab90374169a20ffab30"}, - {file = "frozenlist-1.8.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:073f8bf8becba60aa931eb3bc420b217bb7d5b8f4750e6f8b3be7f3da85d38b7"}, - {file = "frozenlist-1.8.0-cp314-cp314-win32.whl", hash = "sha256:bac9c42ba2ac65ddc115d930c78d24ab8d4f465fd3fc473cdedfccadb9429806"}, - {file = "frozenlist-1.8.0-cp314-cp314-win_amd64.whl", hash = "sha256:3e0761f4d1a44f1d1a47996511752cf3dcec5bbdd9cc2b4fe595caf97754b7a0"}, - {file = "frozenlist-1.8.0-cp314-cp314-win_arm64.whl", hash = "sha256:d1eaff1d00c7751b7c6662e9c5ba6eb2c17a2306ba5e2a37f24ddf3cc953402b"}, - {file = "frozenlist-1.8.0-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:d3bb933317c52d7ea5004a1c442eef86f426886fba134ef8cf4226ea6ee1821d"}, - {file = "frozenlist-1.8.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:8009897cdef112072f93a0efdce29cd819e717fd2f649ee3016efd3cd885a7ed"}, - {file = "frozenlist-1.8.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:2c5dcbbc55383e5883246d11fd179782a9d07a986c40f49abe89ddf865913930"}, - {file = "frozenlist-1.8.0-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:39ecbc32f1390387d2aa4f5a995e465e9e2f79ba3adcac92d68e3e0afae6657c"}, - {file = "frozenlist-1.8.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:92db2bf818d5cc8d9c1f1fc56b897662e24ea5adb36ad1f1d82875bd64e03c24"}, - {file = "frozenlist-1.8.0-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:2dc43a022e555de94c3b68a4ef0b11c4f747d12c024a520c7101709a2144fb37"}, - {file = "frozenlist-1.8.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:cb89a7f2de3602cfed448095bab3f178399646ab7c61454315089787df07733a"}, - {file = "frozenlist-1.8.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:33139dc858c580ea50e7e60a1b0ea003efa1fd42e6ec7fdbad78fff65fad2fd2"}, - {file = "frozenlist-1.8.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:168c0969a329b416119507ba30b9ea13688fafffac1b7822802537569a1cb0ef"}, - {file = "frozenlist-1.8.0-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:28bd570e8e189d7f7b001966435f9dac6718324b5be2990ac496cf1ea9ddb7fe"}, - {file = "frozenlist-1.8.0-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:b2a095d45c5d46e5e79ba1e5b9cb787f541a8dee0433836cea4b96a2c439dcd8"}, - {file = "frozenlist-1.8.0-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:eab8145831a0d56ec9c4139b6c3e594c7a83c2c8be25d5bcf2d86136a532287a"}, - {file = "frozenlist-1.8.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:974b28cf63cc99dfb2188d8d222bc6843656188164848c4f679e63dae4b0708e"}, - {file = "frozenlist-1.8.0-cp314-cp314t-win32.whl", hash = "sha256:342c97bf697ac5480c0a7ec73cd700ecfa5a8a40ac923bd035484616efecc2df"}, - {file = "frozenlist-1.8.0-cp314-cp314t-win_amd64.whl", hash = "sha256:06be8f67f39c8b1dc671f5d83aaefd3358ae5cdcf8314552c57e7ed3e6475bdd"}, - {file = "frozenlist-1.8.0-cp314-cp314t-win_arm64.whl", hash = "sha256:102e6314ca4da683dca92e3b1355490fed5f313b768500084fbe6371fddfdb79"}, - {file = "frozenlist-1.8.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:d8b7138e5cd0647e4523d6685b0eac5d4be9a184ae9634492f25c6eb38c12a47"}, - {file = "frozenlist-1.8.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a6483e309ca809f1efd154b4d37dc6d9f61037d6c6a81c2dc7a15cb22c8c5dca"}, - {file = "frozenlist-1.8.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1b9290cf81e95e93fdf90548ce9d3c1211cf574b8e3f4b3b7cb0537cf2227068"}, - {file = "frozenlist-1.8.0-cp39-cp39-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:59a6a5876ca59d1b63af8cd5e7ffffb024c3dc1e9cf9301b21a2e76286505c95"}, - {file = "frozenlist-1.8.0-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6dc4126390929823e2d2d9dc79ab4046ed74680360fc5f38b585c12c66cdf459"}, - {file = "frozenlist-1.8.0-cp39-cp39-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:332db6b2563333c5671fecacd085141b5800cb866be16d5e3eb15a2086476675"}, - {file = "frozenlist-1.8.0-cp39-cp39-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:9ff15928d62a0b80bb875655c39bf517938c7d589554cbd2669be42d97c2cb61"}, - {file = "frozenlist-1.8.0-cp39-cp39-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:7bf6cdf8e07c8151fba6fe85735441240ec7f619f935a5205953d58009aef8c6"}, - {file = "frozenlist-1.8.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:48e6d3f4ec5c7273dfe83ff27c91083c6c9065af655dc2684d2c200c94308bb5"}, - {file = "frozenlist-1.8.0-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:1a7607e17ad33361677adcd1443edf6f5da0ce5e5377b798fba20fae194825f3"}, - {file = "frozenlist-1.8.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:5a3a935c3a4e89c733303a2d5a7c257ea44af3a56c8202df486b7f5de40f37e1"}, - {file = "frozenlist-1.8.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:940d4a017dbfed9daf46a3b086e1d2167e7012ee297fef9e1c545c4d022f5178"}, - {file = "frozenlist-1.8.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:b9be22a69a014bc47e78072d0ecae716f5eb56c15238acca0f43d6eb8e4a5bda"}, - {file = "frozenlist-1.8.0-cp39-cp39-win32.whl", hash = "sha256:1aa77cb5697069af47472e39612976ed05343ff2e84a3dcf15437b232cbfd087"}, - {file = "frozenlist-1.8.0-cp39-cp39-win_amd64.whl", hash = "sha256:7398c222d1d405e796970320036b1b563892b65809d9e5261487bb2c7f7b5c6a"}, - {file = "frozenlist-1.8.0-cp39-cp39-win_arm64.whl", hash = "sha256:b4f3b365f31c6cd4af24545ca0a244a53688cad8834e32f56831c4923b50a103"}, - {file = "frozenlist-1.8.0-py3-none-any.whl", hash = "sha256:0c18a16eab41e82c295618a77502e17b195883241c563b00f0aa5106fc4eaa0d"}, - {file = "frozenlist-1.8.0.tar.gz", hash = "sha256:3ede829ed8d842f6cd48fc7081d7a41001a56f1f38603f9d49bf3020d59a31ad"}, -] - [[package]] name = "h11" version = "0.16.0" description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" optional = false python-versions = ">=3.8" -groups = ["main"] files = [ {file = "h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86"}, {file = "h11-0.16.0.tar.gz", hash = "sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1"}, @@ -456,7 +106,6 @@ version = "1.0.9" description = "A minimal low-level HTTP client." optional = false python-versions = ">=3.8" -groups = ["main"] files = [ {file = "httpcore-1.0.9-py3-none-any.whl", hash = "sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55"}, {file = "httpcore-1.0.9.tar.gz", hash = "sha256:6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8"}, @@ -478,7 +127,6 @@ version = "0.28.1" description = "The next generation HTTP client." optional = false python-versions = ">=3.8" -groups = ["main"] files = [ {file = "httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad"}, {file = "httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc"}, @@ -491,7 +139,7 @@ httpcore = "==1.*" idna = "*" [package.extras] -brotli = ["brotli ; platform_python_implementation == \"CPython\"", "brotlicffi ; platform_python_implementation != \"CPython\""] +brotli = ["brotli", "brotlicffi"] cli = ["click (==8.*)", "pygments (==2.*)", "rich (>=10,<14)"] http2 = ["h2 (>=3,<5)"] socks = ["socksio (==1.*)"] @@ -499,43 +147,17 @@ zstd = ["zstandard (>=0.18.0)"] [[package]] name = "idna" -version = "3.11" +version = "3.13" description = "Internationalized Domain Names in Applications (IDNA)" optional = false python-versions = ">=3.8" -groups = ["main", "dev"] -files = [ - {file = "idna-3.11-py3-none-any.whl", hash = "sha256:771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea"}, - {file = "idna-3.11.tar.gz", hash = "sha256:795dafcc9c04ed0c1fb032c2aa73654d8e8c5023a7df64a53f39190ada629902"}, -] -markers = {dev = "python_version >= \"3.9\""} - -[package.extras] -all = ["flake8 (>=7.1.1)", "mypy (>=1.11.2)", "pytest (>=8.3.2)", "ruff (>=0.6.2)"] - -[[package]] -name = "importlib-resources" -version = "6.4.5" -description = "Read resources from Python packages" -optional = true -python-versions = ">=3.8" -groups = ["main"] -markers = "extra == \"datastream\" or extra == \"rulesengine\"" files = [ - {file = "importlib_resources-6.4.5-py3-none-any.whl", hash = "sha256:ac29d5f956f01d5e4bb63102a5a19957f1b9175e45649977264a1416783bb717"}, - {file = "importlib_resources-6.4.5.tar.gz", hash = "sha256:980862a1d16c9e147a59603677fa2aa5fd82b87f223b6cb870695bcfce830065"}, + {file = "idna-3.13-py3-none-any.whl", hash = "sha256:892ea0cde124a99ce773decba204c5552b69c3c67ffd5f232eb7696135bc8bb3"}, + {file = "idna-3.13.tar.gz", hash = "sha256:585ea8fe5d69b9181ec1afba340451fba6ba764af97026f92a91d4eef164a242"}, ] -[package.dependencies] -zipp = {version = ">=3.1.0", markers = "python_version < \"3.10\""} - [package.extras] -check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1) ; sys_platform != \"cygwin\""] -cover = ["pytest-cov"] -doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] -enabler = ["pytest-enabler (>=2.2)"] -test = ["jaraco.test (>=5.4)", "pytest (>=6,!=8.1.*)", "zipp (>=3.17)"] -type = ["pytest-mypy"] +all = ["mypy (>=1.11.2)", "pytest (>=8.3.2)", "ruff (>=0.6.2)"] [[package]] name = "iniconfig" @@ -543,179 +165,17 @@ version = "2.1.0" description = "brain-dead simple config-ini parsing" optional = false python-versions = ">=3.8" -groups = ["dev"] files = [ {file = "iniconfig-2.1.0-py3-none-any.whl", hash = "sha256:9deba5723312380e77435581c6bf4935c94cbfab9b1ed33ef8d238ea168eb760"}, {file = "iniconfig-2.1.0.tar.gz", hash = "sha256:3abbd2e30b36733fee78f9c7f7308f2d0050e88f0087fd25c2645f63c773e1c7"}, ] -[[package]] -name = "multidict" -version = "6.7.1" -description = "multidict implementation" -optional = false -python-versions = ">=3.9" -groups = ["dev"] -markers = "python_version >= \"3.9\"" -files = [ - {file = "multidict-6.7.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:c93c3db7ea657dd4637d57e74ab73de31bccefe144d3d4ce370052035bc85fb5"}, - {file = "multidict-6.7.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:974e72a2474600827abaeda71af0c53d9ebbc3c2eb7da37b37d7829ae31232d8"}, - {file = "multidict-6.7.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:cdea2e7b2456cfb6694fb113066fd0ec7ea4d67e3a35e1f4cbeea0b448bf5872"}, - {file = "multidict-6.7.1-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:17207077e29342fdc2c9a82e4b306f1127bf1ea91f8b71e02d4798a70bb99991"}, - {file = "multidict-6.7.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d4f49cb5661344764e4c7c7973e92a47a59b8fc19b6523649ec9dc4960e58a03"}, - {file = "multidict-6.7.1-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:a9fc4caa29e2e6ae408d1c450ac8bf19892c5fca83ee634ecd88a53332c59981"}, - {file = "multidict-6.7.1-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c5f0c21549ab432b57dcc82130f388d84ad8179824cc3f223d5e7cfbfd4143f6"}, - {file = "multidict-6.7.1-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:7dfb78d966b2c906ae1d28ccf6e6712a3cd04407ee5088cd276fe8cb42186190"}, - {file = "multidict-6.7.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9b0d9b91d1aa44db9c1f1ecd0d9d2ae610b2f4f856448664e01a3b35899f3f92"}, - {file = "multidict-6.7.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:dd96c01a9dcd4889dcfcf9eb5544ca0c77603f239e3ffab0524ec17aea9a93ee"}, - {file = "multidict-6.7.1-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:067343c68cd6612d375710f895337b3a98a033c94f14b9a99eff902f205424e2"}, - {file = "multidict-6.7.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:5884a04f4ff56c6120f6ccf703bdeb8b5079d808ba604d4d53aec0d55dc33568"}, - {file = "multidict-6.7.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:8affcf1c98b82bc901702eb73b6947a1bfa170823c153fe8a47b5f5f02e48e40"}, - {file = "multidict-6.7.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:0d17522c37d03e85c8098ec8431636309b2682cf12e58f4dbc76121fb50e4962"}, - {file = "multidict-6.7.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:24c0cf81544ca5e17cfcb6e482e7a82cd475925242b308b890c9452a074d4505"}, - {file = "multidict-6.7.1-cp310-cp310-win32.whl", hash = "sha256:d82dd730a95e6643802f4454b8fdecdf08667881a9c5670db85bc5a56693f122"}, - {file = "multidict-6.7.1-cp310-cp310-win_amd64.whl", hash = "sha256:cf37cbe5ced48d417ba045aca1b21bafca67489452debcde94778a576666a1df"}, - {file = "multidict-6.7.1-cp310-cp310-win_arm64.whl", hash = "sha256:59bc83d3f66b41dac1e7460aac1d196edc70c9ba3094965c467715a70ecb46db"}, - {file = "multidict-6.7.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:7ff981b266af91d7b4b3793ca3382e53229088d193a85dfad6f5f4c27fc73e5d"}, - {file = "multidict-6.7.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:844c5bca0b5444adb44a623fb0a1310c2f4cd41f402126bb269cd44c9b3f3e1e"}, - {file = "multidict-6.7.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f2a0a924d4c2e9afcd7ec64f9de35fcd96915149b2216e1cb2c10a56df483855"}, - {file = "multidict-6.7.1-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:8be1802715a8e892c784c0197c2ace276ea52702a0ede98b6310c8f255a5afb3"}, - {file = "multidict-6.7.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2e2d2ed645ea29f31c4c7ea1552fcfd7cb7ba656e1eafd4134a6620c9f5fdd9e"}, - {file = "multidict-6.7.1-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:95922cee9a778659e91db6497596435777bd25ed116701a4c034f8e46544955a"}, - {file = "multidict-6.7.1-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:6b83cabdc375ffaaa15edd97eb7c0c672ad788e2687004990074d7d6c9b140c8"}, - {file = "multidict-6.7.1-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:38fb49540705369bab8484db0689d86c0a33a0a9f2c1b197f506b71b4b6c19b0"}, - {file = "multidict-6.7.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:439cbebd499f92e9aa6793016a8acaa161dfa749ae86d20960189f5398a19144"}, - {file = "multidict-6.7.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:6d3bc717b6fe763b8be3f2bee2701d3c8eb1b2a8ae9f60910f1b2860c82b6c49"}, - {file = "multidict-6.7.1-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:619e5a1ac57986dbfec9f0b301d865dddf763696435e2962f6d9cf2fdff2bb71"}, - {file = "multidict-6.7.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:0b38ebffd9be37c1170d33bc0f36f4f262e0a09bc1aac1c34c7aa51a7293f0b3"}, - {file = "multidict-6.7.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:10ae39c9cfe6adedcdb764f5e8411d4a92b055e35573a2eaa88d3323289ef93c"}, - {file = "multidict-6.7.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:25167cc263257660290fba06b9318d2026e3c910be240a146e1f66dd114af2b0"}, - {file = "multidict-6.7.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:128441d052254f42989ef98b7b6a6ecb1e6f708aa962c7984235316db59f50fa"}, - {file = "multidict-6.7.1-cp311-cp311-win32.whl", hash = "sha256:d62b7f64ffde3b99d06b707a280db04fb3855b55f5a06df387236051d0668f4a"}, - {file = "multidict-6.7.1-cp311-cp311-win_amd64.whl", hash = "sha256:bdbf9f3b332abd0cdb306e7c2113818ab1e922dc84b8f8fd06ec89ed2a19ab8b"}, - {file = "multidict-6.7.1-cp311-cp311-win_arm64.whl", hash = "sha256:b8c990b037d2fff2f4e33d3f21b9b531c5745b33a49a7d6dbe7a177266af44f6"}, - {file = "multidict-6.7.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:a90f75c956e32891a4eda3639ce6dd86e87105271f43d43442a3aedf3cddf172"}, - {file = "multidict-6.7.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:3fccb473e87eaa1382689053e4a4618e7ba7b9b9b8d6adf2027ee474597128cd"}, - {file = "multidict-6.7.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b0fa96985700739c4c7853a43c0b3e169360d6855780021bfc6d0f1ce7c123e7"}, - {file = "multidict-6.7.1-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:cb2a55f408c3043e42b40cc8eecd575afa27b7e0b956dfb190de0f8499a57a53"}, - {file = "multidict-6.7.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:eb0ce7b2a32d09892b3dd6cc44877a0d02a33241fafca5f25c8b6b62374f8b75"}, - {file = "multidict-6.7.1-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:c3a32d23520ee37bf327d1e1a656fec76a2edd5c038bf43eddfa0572ec49c60b"}, - {file = "multidict-6.7.1-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:9c90fed18bffc0189ba814749fdcc102b536e83a9f738a9003e569acd540a733"}, - {file = "multidict-6.7.1-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:da62917e6076f512daccfbbde27f46fed1c98fee202f0559adec8ee0de67f71a"}, - {file = "multidict-6.7.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bfde23ef6ed9db7eaee6c37dcec08524cb43903c60b285b172b6c094711b3961"}, - {file = "multidict-6.7.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3758692429e4e32f1ba0df23219cd0b4fc0a52f476726fff9337d1a57676a582"}, - {file = "multidict-6.7.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:398c1478926eca669f2fd6a5856b6de9c0acf23a2cb59a14c0ba5844fa38077e"}, - {file = "multidict-6.7.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:c102791b1c4f3ab36ce4101154549105a53dc828f016356b3e3bcae2e3a039d3"}, - {file = "multidict-6.7.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:a088b62bd733e2ad12c50dad01b7d0166c30287c166e137433d3b410add807a6"}, - {file = "multidict-6.7.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:3d51ff4785d58d3f6c91bdbffcb5e1f7ddfda557727043aa20d20ec4f65e324a"}, - {file = "multidict-6.7.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fc5907494fccf3e7d3f94f95c91d6336b092b5fc83811720fae5e2765890dfba"}, - {file = "multidict-6.7.1-cp312-cp312-win32.whl", hash = "sha256:28ca5ce2fd9716631133d0e9a9b9a745ad7f60bac2bccafb56aa380fc0b6c511"}, - {file = "multidict-6.7.1-cp312-cp312-win_amd64.whl", hash = "sha256:fcee94dfbd638784645b066074b338bc9cc155d4b4bffa4adce1615c5a426c19"}, - {file = "multidict-6.7.1-cp312-cp312-win_arm64.whl", hash = "sha256:ba0a9fb644d0c1a2194cf7ffb043bd852cea63a57f66fbd33959f7dae18517bf"}, - {file = "multidict-6.7.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:2b41f5fed0ed563624f1c17630cb9941cf2309d4df00e494b551b5f3e3d67a23"}, - {file = "multidict-6.7.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:84e61e3af5463c19b67ced91f6c634effb89ef8bfc5ca0267f954451ed4bb6a2"}, - {file = "multidict-6.7.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:935434b9853c7c112eee7ac891bc4cb86455aa631269ae35442cb316790c1445"}, - {file = "multidict-6.7.1-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:432feb25a1cb67fe82a9680b4d65fb542e4635cb3166cd9c01560651ad60f177"}, - {file = "multidict-6.7.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e82d14e3c948952a1a85503817e038cba5905a3352de76b9a465075d072fba23"}, - {file = "multidict-6.7.1-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:4cfb48c6ea66c83bcaaf7e4dfa7ec1b6bbcf751b7db85a328902796dfde4c060"}, - {file = "multidict-6.7.1-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:1d540e51b7e8e170174555edecddbd5538105443754539193e3e1061864d444d"}, - {file = "multidict-6.7.1-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:273d23f4b40f3dce4d6c8a821c741a86dec62cded82e1175ba3d99be128147ed"}, - {file = "multidict-6.7.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9d624335fd4fa1c08a53f8b4be7676ebde19cd092b3895c421045ca87895b429"}, - {file = "multidict-6.7.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:12fad252f8b267cc75b66e8fc51b3079604e8d43a75428ffe193cd9e2195dfd6"}, - {file = "multidict-6.7.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:03ede2a6ffbe8ef936b92cb4529f27f42be7f56afcdab5ab739cd5f27fb1cbf9"}, - {file = "multidict-6.7.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:90efbcf47dbe33dcf643a1e400d67d59abeac5db07dc3f27d6bdeae497a2198c"}, - {file = "multidict-6.7.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:5c4b9bfc148f5a91be9244d6264c53035c8a0dcd2f51f1c3c6e30e30ebaa1c84"}, - {file = "multidict-6.7.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:401c5a650f3add2472d1d288c26deebc540f99e2fb83e9525007a74cd2116f1d"}, - {file = "multidict-6.7.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:97891f3b1b3ffbded884e2916cacf3c6fc87b66bb0dde46f7357404750559f33"}, - {file = "multidict-6.7.1-cp313-cp313-win32.whl", hash = "sha256:e1c5988359516095535c4301af38d8a8838534158f649c05dd1050222321bcb3"}, - {file = "multidict-6.7.1-cp313-cp313-win_amd64.whl", hash = "sha256:960c83bf01a95b12b08fd54324a4eb1d5b52c88932b5cba5d6e712bb3ed12eb5"}, - {file = "multidict-6.7.1-cp313-cp313-win_arm64.whl", hash = "sha256:563fe25c678aaba333d5399408f5ec3c383ca5b663e7f774dd179a520b8144df"}, - {file = "multidict-6.7.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:c76c4bec1538375dad9d452d246ca5368ad6e1c9039dadcf007ae59c70619ea1"}, - {file = "multidict-6.7.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:57b46b24b5d5ebcc978da4ec23a819a9402b4228b8a90d9c656422b4bdd8a963"}, - {file = "multidict-6.7.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:e954b24433c768ce78ab7929e84ccf3422e46deb45a4dc9f93438f8217fa2d34"}, - {file = "multidict-6.7.1-cp313-cp313t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:3bd231490fa7217cc832528e1cd8752a96f0125ddd2b5749390f7c3ec8721b65"}, - {file = "multidict-6.7.1-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:253282d70d67885a15c8a7716f3a73edf2d635793ceda8173b9ecc21f2fb8292"}, - {file = "multidict-6.7.1-cp313-cp313t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:0b4c48648d7649c9335cf1927a8b87fa692de3dcb15faa676c6a6f1f1aabda43"}, - {file = "multidict-6.7.1-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:98bc624954ec4d2c7cb074b8eefc2b5d0ce7d482e410df446414355d158fe4ca"}, - {file = "multidict-6.7.1-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:1b99af4d9eec0b49927b4402bcbb58dea89d3e0db8806a4086117019939ad3dd"}, - {file = "multidict-6.7.1-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6aac4f16b472d5b7dc6f66a0d49dd57b0e0902090be16594dc9ebfd3d17c47e7"}, - {file = "multidict-6.7.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:21f830fe223215dffd51f538e78c172ed7c7f60c9b96a2bf05c4848ad49921c3"}, - {file = "multidict-6.7.1-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:f5dd81c45b05518b9aa4da4aa74e1c93d715efa234fd3e8a179df611cc85e5f4"}, - {file = "multidict-6.7.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:eb304767bca2bb92fb9c5bd33cedc95baee5bb5f6c88e63706533a1c06ad08c8"}, - {file = "multidict-6.7.1-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:c9035dde0f916702850ef66460bc4239d89d08df4d02023a5926e7446724212c"}, - {file = "multidict-6.7.1-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:af959b9beeb66c822380f222f0e0a1889331597e81f1ded7f374f3ecb0fd6c52"}, - {file = "multidict-6.7.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:41f2952231456154ee479651491e94118229844dd7226541788be783be2b5108"}, - {file = "multidict-6.7.1-cp313-cp313t-win32.whl", hash = "sha256:df9f19c28adcb40b6aae30bbaa1478c389efd50c28d541d76760199fc1037c32"}, - {file = "multidict-6.7.1-cp313-cp313t-win_amd64.whl", hash = "sha256:d54ecf9f301853f2c5e802da559604b3e95bb7a3b01a9c295c6ee591b9882de8"}, - {file = "multidict-6.7.1-cp313-cp313t-win_arm64.whl", hash = "sha256:5a37ca18e360377cfda1d62f5f382ff41f2b8c4ccb329ed974cc2e1643440118"}, - {file = "multidict-6.7.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:8f333ec9c5eb1b7105e3b84b53141e66ca05a19a605368c55450b6ba208cb9ee"}, - {file = "multidict-6.7.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:a407f13c188f804c759fc6a9f88286a565c242a76b27626594c133b82883b5c2"}, - {file = "multidict-6.7.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:0e161ddf326db5577c3a4cc2d8648f81456e8a20d40415541587a71620d7a7d1"}, - {file = "multidict-6.7.1-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:1e3a8bb24342a8201d178c3b4984c26ba81a577c80d4d525727427460a50c22d"}, - {file = "multidict-6.7.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:97231140a50f5d447d3164f994b86a0bed7cd016e2682f8650d6a9158e14fd31"}, - {file = "multidict-6.7.1-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:6b10359683bd8806a200fd2909e7c8ca3a7b24ec1d8132e483d58e791d881048"}, - {file = "multidict-6.7.1-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:283ddac99f7ac25a4acadbf004cb5ae34480bbeb063520f70ce397b281859362"}, - {file = "multidict-6.7.1-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:538cec1e18c067d0e6103aa9a74f9e832904c957adc260e61cd9d8cf0c3b3d37"}, - {file = "multidict-6.7.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7eee46ccb30ff48a1e35bb818cc90846c6be2b68240e42a78599166722cea709"}, - {file = "multidict-6.7.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:fa263a02f4f2dd2d11a7b1bb4362aa7cb1049f84a9235d31adf63f30143469a0"}, - {file = "multidict-6.7.1-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:2e1425e2f99ec5bd36c15a01b690a1a2456209c5deed58f95469ffb46039ccbb"}, - {file = "multidict-6.7.1-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:497394b3239fc6f0e13a78a3e1b61296e72bf1c5f94b4c4eb80b265c37a131cd"}, - {file = "multidict-6.7.1-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:233b398c29d3f1b9676b4b6f75c518a06fcb2ea0b925119fb2c1bc35c05e1601"}, - {file = "multidict-6.7.1-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:93b1818e4a6e0930454f0f2af7dfce69307ca03cdcfb3739bf4d91241967b6c1"}, - {file = "multidict-6.7.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:f33dc2a3abe9249ea5d8360f969ec7f4142e7ac45ee7014d8f8d5acddf178b7b"}, - {file = "multidict-6.7.1-cp314-cp314-win32.whl", hash = "sha256:3ab8b9d8b75aef9df299595d5388b14530839f6422333357af1339443cff777d"}, - {file = "multidict-6.7.1-cp314-cp314-win_amd64.whl", hash = "sha256:5e01429a929600e7dab7b166062d9bb54a5eed752384c7384c968c2afab8f50f"}, - {file = "multidict-6.7.1-cp314-cp314-win_arm64.whl", hash = "sha256:4885cb0e817aef5d00a2e8451d4665c1808378dc27c2705f1bf4ef8505c0d2e5"}, - {file = "multidict-6.7.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:0458c978acd8e6ea53c81eefaddbbee9c6c5e591f41b3f5e8e194780fe026581"}, - {file = "multidict-6.7.1-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:c0abd12629b0af3cf590982c0b413b1e7395cd4ec026f30986818ab95bfaa94a"}, - {file = "multidict-6.7.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:14525a5f61d7d0c94b368a42cff4c9a4e7ba2d52e2672a7b23d84dc86fb02b0c"}, - {file = "multidict-6.7.1-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:17307b22c217b4cf05033dabefe68255a534d637c6c9b0cc8382718f87be4262"}, - {file = "multidict-6.7.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7a7e590ff876a3eaf1c02a4dfe0724b6e69a9e9de6d8f556816f29c496046e59"}, - {file = "multidict-6.7.1-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:5fa6a95dfee63893d80a34758cd0e0c118a30b8dcb46372bf75106c591b77889"}, - {file = "multidict-6.7.1-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a0543217a6a017692aa6ae5cc39adb75e587af0f3a82288b1492eb73dd6cc2a4"}, - {file = "multidict-6.7.1-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f99fe611c312b3c1c0ace793f92464d8cd263cc3b26b5721950d977b006b6c4d"}, - {file = "multidict-6.7.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9004d8386d133b7e6135679424c91b0b854d2d164af6ea3f289f8f2761064609"}, - {file = "multidict-6.7.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e628ef0e6859ffd8273c69412a2465c4be4a9517d07261b33334b5ec6f3c7489"}, - {file = "multidict-6.7.1-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:841189848ba629c3552035a6a7f5bf3b02eb304e9fea7492ca220a8eda6b0e5c"}, - {file = "multidict-6.7.1-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:ce1bbd7d780bb5a0da032e095c951f7014d6b0a205f8318308140f1a6aba159e"}, - {file = "multidict-6.7.1-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:b26684587228afed0d50cf804cc71062cc9c1cdf55051c4c6345d372947b268c"}, - {file = "multidict-6.7.1-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:9f9af11306994335398293f9958071019e3ab95e9a707dc1383a35613f6abcb9"}, - {file = "multidict-6.7.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:b4938326284c4f1224178a560987b6cf8b4d38458b113d9b8c1db1a836e640a2"}, - {file = "multidict-6.7.1-cp314-cp314t-win32.whl", hash = "sha256:98655c737850c064a65e006a3df7c997cd3b220be4ec8fe26215760b9697d4d7"}, - {file = "multidict-6.7.1-cp314-cp314t-win_amd64.whl", hash = "sha256:497bde6223c212ba11d462853cfa4f0ae6ef97465033e7dc9940cdb3ab5b48e5"}, - {file = "multidict-6.7.1-cp314-cp314t-win_arm64.whl", hash = "sha256:2bbd113e0d4af5db41d5ebfe9ccaff89de2120578164f86a5d17d5a576d1e5b2"}, - {file = "multidict-6.7.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:65573858d27cdeaca41893185677dc82395159aa28875a8867af66532d413a8f"}, - {file = "multidict-6.7.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c524c6fb8fc342793708ab111c4dbc90ff9abd568de220432500e47e990c0358"}, - {file = "multidict-6.7.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:aa23b001d968faef416ff70dc0f1ab045517b9b42a90edd3e9bcdb06479e31d5"}, - {file = "multidict-6.7.1-cp39-cp39-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:6704fa2b7453b2fb121740555fa1ee20cd98c4d011120caf4d2b8d4e7c76eec0"}, - {file = "multidict-6.7.1-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:121a34e5bfa410cdf2c8c49716de160de3b1dbcd86b49656f5681e4543bcd1a8"}, - {file = "multidict-6.7.1-cp39-cp39-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:026d264228bcd637d4e060844e39cdc60f86c479e463d49075dedc21b18fbbe0"}, - {file = "multidict-6.7.1-cp39-cp39-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:0e697826df7eb63418ee190fd06ce9f1803593bb4b9517d08c60d9b9a7f69d8f"}, - {file = "multidict-6.7.1-cp39-cp39-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:bb08271280173720e9fea9ede98e5231defcbad90f1624bea26f32ec8a956e2f"}, - {file = "multidict-6.7.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c6b3228e1d80af737b72925ce5fb4daf5a335e49cd7ab77ed7b9fdfbf58c526e"}, - {file = "multidict-6.7.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:3943debf0fbb57bdde5901695c11094a9a36723e5c03875f87718ee15ca2f4d2"}, - {file = "multidict-6.7.1-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:98c5787b0a0d9a41d9311eae44c3b76e6753def8d8870ab501320efe75a6a5f8"}, - {file = "multidict-6.7.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:08ccb2a6dc72009093ebe7f3f073e5ec5964cba9a706fa94b1a1484039b87941"}, - {file = "multidict-6.7.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:eb351f72c26dc9abe338ca7294661aa22969ad8ffe7ef7d5541d19f368dc854a"}, - {file = "multidict-6.7.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:ac1c665bad8b5d762f5f85ebe4d94130c26965f11de70c708c75671297c776de"}, - {file = "multidict-6.7.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1fa6609d0364f4f6f58351b4659a1f3e0e898ba2a8c5cac04cb2c7bc556b0bc5"}, - {file = "multidict-6.7.1-cp39-cp39-win32.whl", hash = "sha256:6f77ce314a29263e67adadc7e7c1bc699fcb3a305059ab973d038f87caa42ed0"}, - {file = "multidict-6.7.1-cp39-cp39-win_amd64.whl", hash = "sha256:f537b55778cd3cbee430abe3131255d3a78202e0f9ea7ffc6ada893a4bcaeea4"}, - {file = "multidict-6.7.1-cp39-cp39-win_arm64.whl", hash = "sha256:749aa54f578f2e5f439538706a475aa844bfa8ef75854b1401e6e528e4937cf9"}, - {file = "multidict-6.7.1-py3-none-any.whl", hash = "sha256:55d97cc6dae627efa6a6e548885712d4864b81110ac76fa4e534c03819fa4a56"}, - {file = "multidict-6.7.1.tar.gz", hash = "sha256:ec6652a1bee61c53a3e5776b6049172c53b6aaba34f18c9ad04f82712bac623d"}, -] - -[package.dependencies] -typing-extensions = {version = ">=4.1.0", markers = "python_version < \"3.11\""} - [[package]] name = "mypy" version = "1.13.0" description = "Optional static typing for Python" optional = false python-versions = ">=3.8" -groups = ["dev"] files = [ {file = "mypy-1.13.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6607e0f1dd1fb7f0aca14d936d13fd19eba5e17e1cd2a14f808fa5f8f6d8f60a"}, {file = "mypy-1.13.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8a21be69bd26fa81b1f80a61ee7ab05b076c674d9b18fb56239d72e21d9f4c80"}, @@ -769,7 +229,6 @@ version = "1.1.0" description = "Type system extensions for programs checked with the mypy type checker." optional = false python-versions = ">=3.8" -groups = ["dev"] files = [ {file = "mypy_extensions-1.1.0-py3-none-any.whl", hash = "sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505"}, {file = "mypy_extensions-1.1.0.tar.gz", hash = "sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558"}, @@ -781,7 +240,6 @@ version = "26.1" description = "Core utilities for Python packages" optional = false python-versions = ">=3.8" -groups = ["dev"] files = [ {file = "packaging-26.1-py3-none-any.whl", hash = "sha256:5d9c0669c6285e491e0ced2eee587eaf67b670d94a19e94e3984a481aba6802f"}, {file = "packaging-26.1.tar.gz", hash = "sha256:f042152b681c4bfac5cae2742a55e103d27ab2ec0f3d88037136b6bfe7c9c5de"}, @@ -793,7 +251,6 @@ version = "1.5.0" description = "plugin and hook calling mechanisms for python" optional = false python-versions = ">=3.8" -groups = ["dev"] files = [ {file = "pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669"}, {file = "pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1"}, @@ -803,146 +260,12 @@ files = [ dev = ["pre-commit", "tox"] testing = ["pytest", "pytest-benchmark"] -[[package]] -name = "propcache" -version = "0.4.1" -description = "Accelerated property cache" -optional = false -python-versions = ">=3.9" -groups = ["dev"] -markers = "python_version >= \"3.9\"" -files = [ - {file = "propcache-0.4.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7c2d1fa3201efaf55d730400d945b5b3ab6e672e100ba0f9a409d950ab25d7db"}, - {file = "propcache-0.4.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1eb2994229cc8ce7fe9b3db88f5465f5fd8651672840b2e426b88cdb1a30aac8"}, - {file = "propcache-0.4.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:66c1f011f45a3b33d7bcb22daed4b29c0c9e2224758b6be00686731e1b46f925"}, - {file = "propcache-0.4.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9a52009f2adffe195d0b605c25ec929d26b36ef986ba85244891dee3b294df21"}, - {file = "propcache-0.4.1-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:5d4e2366a9c7b837555cf02fb9be2e3167d333aff716332ef1b7c3a142ec40c5"}, - {file = "propcache-0.4.1-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:9d2b6caef873b4f09e26ea7e33d65f42b944837563a47a94719cc3544319a0db"}, - {file = "propcache-0.4.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2b16ec437a8c8a965ecf95739448dd938b5c7f56e67ea009f4300d8df05f32b7"}, - {file = "propcache-0.4.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:296f4c8ed03ca7476813fe666c9ea97869a8d7aec972618671b33a38a5182ef4"}, - {file = "propcache-0.4.1-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:1f0978529a418ebd1f49dad413a2b68af33f85d5c5ca5c6ca2a3bed375a7ac60"}, - {file = "propcache-0.4.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:fd138803047fb4c062b1c1dd95462f5209456bfab55c734458f15d11da288f8f"}, - {file = "propcache-0.4.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:8c9b3cbe4584636d72ff556d9036e0c9317fa27b3ac1f0f558e7e84d1c9c5900"}, - {file = "propcache-0.4.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:f93243fdc5657247533273ac4f86ae106cc6445a0efacb9a1bfe982fcfefd90c"}, - {file = "propcache-0.4.1-cp310-cp310-win32.whl", hash = "sha256:a0ee98db9c5f80785b266eb805016e36058ac72c51a064040f2bc43b61101cdb"}, - {file = "propcache-0.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:1cdb7988c4e5ac7f6d175a28a9aa0c94cb6f2ebe52756a3c0cda98d2809a9e37"}, - {file = "propcache-0.4.1-cp310-cp310-win_arm64.whl", hash = "sha256:d82ad62b19645419fe79dd63b3f9253e15b30e955c0170e5cebc350c1844e581"}, - {file = "propcache-0.4.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:60a8fda9644b7dfd5dece8c61d8a85e271cb958075bfc4e01083c148b61a7caf"}, - {file = "propcache-0.4.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c30b53e7e6bda1d547cabb47c825f3843a0a1a42b0496087bb58d8fedf9f41b5"}, - {file = "propcache-0.4.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6918ecbd897443087a3b7cd978d56546a812517dcaaca51b49526720571fa93e"}, - {file = "propcache-0.4.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3d902a36df4e5989763425a8ab9e98cd8ad5c52c823b34ee7ef307fd50582566"}, - {file = "propcache-0.4.1-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a9695397f85973bb40427dedddf70d8dc4a44b22f1650dd4af9eedf443d45165"}, - {file = "propcache-0.4.1-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:2bb07ffd7eaad486576430c89f9b215f9e4be68c4866a96e97db9e97fead85dc"}, - {file = "propcache-0.4.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fd6f30fdcf9ae2a70abd34da54f18da086160e4d7d9251f81f3da0ff84fc5a48"}, - {file = "propcache-0.4.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:fc38cba02d1acba4e2869eef1a57a43dfbd3d49a59bf90dda7444ec2be6a5570"}, - {file = "propcache-0.4.1-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:67fad6162281e80e882fb3ec355398cf72864a54069d060321f6cd0ade95fe85"}, - {file = "propcache-0.4.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:f10207adf04d08bec185bae14d9606a1444715bc99180f9331c9c02093e1959e"}, - {file = "propcache-0.4.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:e9b0d8d0845bbc4cfcdcbcdbf5086886bc8157aa963c31c777ceff7846c77757"}, - {file = "propcache-0.4.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:981333cb2f4c1896a12f4ab92a9cc8f09ea664e9b7dbdc4eff74627af3a11c0f"}, - {file = "propcache-0.4.1-cp311-cp311-win32.whl", hash = "sha256:f1d2f90aeec838a52f1c1a32fe9a619fefd5e411721a9117fbf82aea638fe8a1"}, - {file = "propcache-0.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:364426a62660f3f699949ac8c621aad6977be7126c5807ce48c0aeb8e7333ea6"}, - {file = "propcache-0.4.1-cp311-cp311-win_arm64.whl", hash = "sha256:e53f3a38d3510c11953f3e6a33f205c6d1b001129f972805ca9b42fc308bc239"}, - {file = "propcache-0.4.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e153e9cd40cc8945138822807139367f256f89c6810c2634a4f6902b52d3b4e2"}, - {file = "propcache-0.4.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:cd547953428f7abb73c5ad82cbb32109566204260d98e41e5dfdc682eb7f8403"}, - {file = "propcache-0.4.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f048da1b4f243fc44f205dfd320933a951b8d89e0afd4c7cacc762a8b9165207"}, - {file = "propcache-0.4.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ec17c65562a827bba85e3872ead335f95405ea1674860d96483a02f5c698fa72"}, - {file = "propcache-0.4.1-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:405aac25c6394ef275dee4c709be43745d36674b223ba4eb7144bf4d691b7367"}, - {file = "propcache-0.4.1-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:0013cb6f8dde4b2a2f66903b8ba740bdfe378c943c4377a200551ceb27f379e4"}, - {file = "propcache-0.4.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:15932ab57837c3368b024473a525e25d316d8353016e7cc0e5ba9eb343fbb1cf"}, - {file = "propcache-0.4.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:031dce78b9dc099f4c29785d9cf5577a3faf9ebf74ecbd3c856a7b92768c3df3"}, - {file = "propcache-0.4.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:ab08df6c9a035bee56e31af99be621526bd237bea9f32def431c656b29e41778"}, - {file = "propcache-0.4.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:4d7af63f9f93fe593afbf104c21b3b15868efb2c21d07d8732c0c4287e66b6a6"}, - {file = "propcache-0.4.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:cfc27c945f422e8b5071b6e93169679e4eb5bf73bbcbf1ba3ae3a83d2f78ebd9"}, - {file = "propcache-0.4.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:35c3277624a080cc6ec6f847cbbbb5b49affa3598c4535a0a4682a697aaa5c75"}, - {file = "propcache-0.4.1-cp312-cp312-win32.whl", hash = "sha256:671538c2262dadb5ba6395e26c1731e1d52534bfe9ae56d0b5573ce539266aa8"}, - {file = "propcache-0.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:cb2d222e72399fcf5890d1d5cc1060857b9b236adff2792ff48ca2dfd46c81db"}, - {file = "propcache-0.4.1-cp312-cp312-win_arm64.whl", hash = "sha256:204483131fb222bdaaeeea9f9e6c6ed0cac32731f75dfc1d4a567fc1926477c1"}, - {file = "propcache-0.4.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:43eedf29202c08550aac1d14e0ee619b0430aaef78f85864c1a892294fbc28cf"}, - {file = "propcache-0.4.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:d62cdfcfd89ccb8de04e0eda998535c406bf5e060ffd56be6c586cbcc05b3311"}, - {file = "propcache-0.4.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:cae65ad55793da34db5f54e4029b89d3b9b9490d8abe1b4c7ab5d4b8ec7ebf74"}, - {file = "propcache-0.4.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:333ddb9031d2704a301ee3e506dc46b1fe5f294ec198ed6435ad5b6a085facfe"}, - {file = "propcache-0.4.1-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:fd0858c20f078a32cf55f7e81473d96dcf3b93fd2ccdb3d40fdf54b8573df3af"}, - {file = "propcache-0.4.1-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:678ae89ebc632c5c204c794f8dab2837c5f159aeb59e6ed0539500400577298c"}, - {file = "propcache-0.4.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d472aeb4fbf9865e0c6d622d7f4d54a4e101a89715d8904282bb5f9a2f476c3f"}, - {file = "propcache-0.4.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:4d3df5fa7e36b3225954fba85589da77a0fe6a53e3976de39caf04a0db4c36f1"}, - {file = "propcache-0.4.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:ee17f18d2498f2673e432faaa71698032b0127ebf23ae5974eeaf806c279df24"}, - {file = "propcache-0.4.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:580e97762b950f993ae618e167e7be9256b8353c2dcd8b99ec100eb50f5286aa"}, - {file = "propcache-0.4.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:501d20b891688eb8e7aa903021f0b72d5a55db40ffaab27edefd1027caaafa61"}, - {file = "propcache-0.4.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9a0bd56e5b100aef69bd8562b74b46254e7c8812918d3baa700c8a8009b0af66"}, - {file = "propcache-0.4.1-cp313-cp313-win32.whl", hash = "sha256:bcc9aaa5d80322bc2fb24bb7accb4a30f81e90ab8d6ba187aec0744bc302ad81"}, - {file = "propcache-0.4.1-cp313-cp313-win_amd64.whl", hash = "sha256:381914df18634f5494334d201e98245c0596067504b9372d8cf93f4bb23e025e"}, - {file = "propcache-0.4.1-cp313-cp313-win_arm64.whl", hash = "sha256:8873eb4460fd55333ea49b7d189749ecf6e55bf85080f11b1c4530ed3034cba1"}, - {file = "propcache-0.4.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:92d1935ee1f8d7442da9c0c4fa7ac20d07e94064184811b685f5c4fada64553b"}, - {file = "propcache-0.4.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:473c61b39e1460d386479b9b2f337da492042447c9b685f28be4f74d3529e566"}, - {file = "propcache-0.4.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:c0ef0aaafc66fbd87842a3fe3902fd889825646bc21149eafe47be6072725835"}, - {file = "propcache-0.4.1-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f95393b4d66bfae908c3ca8d169d5f79cd65636ae15b5e7a4f6e67af675adb0e"}, - {file = "propcache-0.4.1-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c07fda85708bc48578467e85099645167a955ba093be0a2dcba962195676e859"}, - {file = "propcache-0.4.1-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:af223b406d6d000830c6f65f1e6431783fc3f713ba3e6cc8c024d5ee96170a4b"}, - {file = "propcache-0.4.1-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a78372c932c90ee474559c5ddfffd718238e8673c340dc21fe45c5b8b54559a0"}, - {file = "propcache-0.4.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:564d9f0d4d9509e1a870c920a89b2fec951b44bf5ba7d537a9e7c1ccec2c18af"}, - {file = "propcache-0.4.1-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:17612831fda0138059cc5546f4d12a2aacfb9e47068c06af35c400ba58ba7393"}, - {file = "propcache-0.4.1-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:41a89040cb10bd345b3c1a873b2bf36413d48da1def52f268a055f7398514874"}, - {file = "propcache-0.4.1-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:e35b88984e7fa64aacecea39236cee32dd9bd8c55f57ba8a75cf2399553f9bd7"}, - {file = "propcache-0.4.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:6f8b465489f927b0df505cbe26ffbeed4d6d8a2bbc61ce90eb074ff129ef0ab1"}, - {file = "propcache-0.4.1-cp313-cp313t-win32.whl", hash = "sha256:2ad890caa1d928c7c2965b48f3a3815c853180831d0e5503d35cf00c472f4717"}, - {file = "propcache-0.4.1-cp313-cp313t-win_amd64.whl", hash = "sha256:f7ee0e597f495cf415bcbd3da3caa3bd7e816b74d0d52b8145954c5e6fd3ff37"}, - {file = "propcache-0.4.1-cp313-cp313t-win_arm64.whl", hash = "sha256:929d7cbe1f01bb7baffb33dc14eb5691c95831450a26354cd210a8155170c93a"}, - {file = "propcache-0.4.1-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:3f7124c9d820ba5548d431afb4632301acf965db49e666aa21c305cbe8c6de12"}, - {file = "propcache-0.4.1-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:c0d4b719b7da33599dfe3b22d3db1ef789210a0597bc650b7cee9c77c2be8c5c"}, - {file = "propcache-0.4.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:9f302f4783709a78240ebc311b793f123328716a60911d667e0c036bc5dcbded"}, - {file = "propcache-0.4.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c80ee5802e3fb9ea37938e7eecc307fb984837091d5fd262bb37238b1ae97641"}, - {file = "propcache-0.4.1-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ed5a841e8bb29a55fb8159ed526b26adc5bdd7e8bd7bf793ce647cb08656cdf4"}, - {file = "propcache-0.4.1-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:55c72fd6ea2da4c318e74ffdf93c4fe4e926051133657459131a95c846d16d44"}, - {file = "propcache-0.4.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8326e144341460402713f91df60ade3c999d601e7eb5ff8f6f7862d54de0610d"}, - {file = "propcache-0.4.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:060b16ae65bc098da7f6d25bf359f1f31f688384858204fe5d652979e0015e5b"}, - {file = "propcache-0.4.1-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:89eb3fa9524f7bec9de6e83cf3faed9d79bffa560672c118a96a171a6f55831e"}, - {file = "propcache-0.4.1-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:dee69d7015dc235f526fe80a9c90d65eb0039103fe565776250881731f06349f"}, - {file = "propcache-0.4.1-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:5558992a00dfd54ccbc64a32726a3357ec93825a418a401f5cc67df0ac5d9e49"}, - {file = "propcache-0.4.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:c9b822a577f560fbd9554812526831712c1436d2c046cedee4c3796d3543b144"}, - {file = "propcache-0.4.1-cp314-cp314-win32.whl", hash = "sha256:ab4c29b49d560fe48b696cdcb127dd36e0bc2472548f3bf56cc5cb3da2b2984f"}, - {file = "propcache-0.4.1-cp314-cp314-win_amd64.whl", hash = "sha256:5a103c3eb905fcea0ab98be99c3a9a5ab2de60228aa5aceedc614c0281cf6153"}, - {file = "propcache-0.4.1-cp314-cp314-win_arm64.whl", hash = "sha256:74c1fb26515153e482e00177a1ad654721bf9207da8a494a0c05e797ad27b992"}, - {file = "propcache-0.4.1-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:824e908bce90fb2743bd6b59db36eb4f45cd350a39637c9f73b1c1ea66f5b75f"}, - {file = "propcache-0.4.1-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:c2b5e7db5328427c57c8e8831abda175421b709672f6cfc3d630c3b7e2146393"}, - {file = "propcache-0.4.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:6f6ff873ed40292cd4969ef5310179afd5db59fdf055897e282485043fc80ad0"}, - {file = "propcache-0.4.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:49a2dc67c154db2c1463013594c458881a069fcf98940e61a0569016a583020a"}, - {file = "propcache-0.4.1-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:005f08e6a0529984491e37d8dbc3dd86f84bd78a8ceb5fa9a021f4c48d4984be"}, - {file = "propcache-0.4.1-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5c3310452e0d31390da9035c348633b43d7e7feb2e37be252be6da45abd1abcc"}, - {file = "propcache-0.4.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4c3c70630930447f9ef1caac7728c8ad1c56bc5015338b20fed0d08ea2480b3a"}, - {file = "propcache-0.4.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:8e57061305815dfc910a3634dcf584f08168a8836e6999983569f51a8544cd89"}, - {file = "propcache-0.4.1-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:521a463429ef54143092c11a77e04056dd00636f72e8c45b70aaa3140d639726"}, - {file = "propcache-0.4.1-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:120c964da3fdc75e3731aa392527136d4ad35868cc556fd09bb6d09172d9a367"}, - {file = "propcache-0.4.1-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:d8f353eb14ee3441ee844ade4277d560cdd68288838673273b978e3d6d2c8f36"}, - {file = "propcache-0.4.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:ab2943be7c652f09638800905ee1bab2c544e537edb57d527997a24c13dc1455"}, - {file = "propcache-0.4.1-cp314-cp314t-win32.whl", hash = "sha256:05674a162469f31358c30bcaa8883cb7829fa3110bf9c0991fe27d7896c42d85"}, - {file = "propcache-0.4.1-cp314-cp314t-win_amd64.whl", hash = "sha256:990f6b3e2a27d683cb7602ed6c86f15ee6b43b1194736f9baaeb93d0016633b1"}, - {file = "propcache-0.4.1-cp314-cp314t-win_arm64.whl", hash = "sha256:ecef2343af4cc68e05131e45024ba34f6095821988a9d0a02aa7c73fcc448aa9"}, - {file = "propcache-0.4.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:3d233076ccf9e450c8b3bc6720af226b898ef5d051a2d145f7d765e6e9f9bcff"}, - {file = "propcache-0.4.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:357f5bb5c377a82e105e44bd3d52ba22b616f7b9773714bff93573988ef0a5fb"}, - {file = "propcache-0.4.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:cbc3b6dfc728105b2a57c06791eb07a94229202ea75c59db644d7d496b698cac"}, - {file = "propcache-0.4.1-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:182b51b421f0501952d938dc0b0eb45246a5b5153c50d42b495ad5fb7517c888"}, - {file = "propcache-0.4.1-cp39-cp39-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:4b536b39c5199b96fc6245eb5fb796c497381d3942f169e44e8e392b29c9ebcc"}, - {file = "propcache-0.4.1-cp39-cp39-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:db65d2af507bbfbdcedb254a11149f894169d90488dd3e7190f7cdcb2d6cd57a"}, - {file = "propcache-0.4.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fd2dbc472da1f772a4dae4fa24be938a6c544671a912e30529984dd80400cd88"}, - {file = "propcache-0.4.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:daede9cd44e0f8bdd9e6cc9a607fc81feb80fae7a5fc6cecaff0e0bb32e42d00"}, - {file = "propcache-0.4.1-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:71b749281b816793678ae7f3d0d84bd36e694953822eaad408d682efc5ca18e0"}, - {file = "propcache-0.4.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:0002004213ee1f36cfb3f9a42b5066100c44276b9b72b4e1504cddd3d692e86e"}, - {file = "propcache-0.4.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:fe49d0a85038f36ba9e3ffafa1103e61170b28e95b16622e11be0a0ea07c6781"}, - {file = "propcache-0.4.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:99d43339c83aaf4d32bda60928231848eee470c6bda8d02599cc4cebe872d183"}, - {file = "propcache-0.4.1-cp39-cp39-win32.whl", hash = "sha256:a129e76735bc792794d5177069691c3217898b9f5cee2b2661471e52ffe13f19"}, - {file = "propcache-0.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:948dab269721ae9a87fd16c514a0a2c2a1bdb23a9a61b969b0f9d9ee2968546f"}, - {file = "propcache-0.4.1-cp39-cp39-win_arm64.whl", hash = "sha256:5fd37c406dd6dc85aa743e214cef35dc54bbdd1419baac4f6ae5e5b1a2976938"}, - {file = "propcache-0.4.1-py3-none-any.whl", hash = "sha256:af2a6052aeb6cf17d3e46ee169099044fd8224cbaf75c76a2ef596e8163e2237"}, - {file = "propcache-0.4.1.tar.gz", hash = "sha256:f48107a8c637e80362555f37ecf49abe20370e557cc4ab374f04ec4423c97c3d"}, -] - [[package]] name = "pydantic" version = "2.10.6" description = "Data validation using Python type hints" optional = false python-versions = ">=3.8" -groups = ["main"] files = [ {file = "pydantic-2.10.6-py3-none-any.whl", hash = "sha256:427d664bf0b8a2b34ff5dd0f5a18df00591adcee7198fbd71981054cef37b584"}, {file = "pydantic-2.10.6.tar.gz", hash = "sha256:ca5daa827cce33de7a42be142548b0096bf05a7e7b365aebfa5f8eeec7128236"}, @@ -955,7 +278,7 @@ typing-extensions = ">=4.12.2" [package.extras] email = ["email-validator (>=2.0.0)"] -timezone = ["tzdata ; python_version >= \"3.9\" and platform_system == \"Windows\""] +timezone = ["tzdata"] [[package]] name = "pydantic-core" @@ -963,7 +286,6 @@ version = "2.27.2" description = "Core functionality for Pydantic validation and serialization" optional = false python-versions = ">=3.8" -groups = ["main"] files = [ {file = "pydantic_core-2.27.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:2d367ca20b2f14095a8f4fa1210f5a7b78b8a20009ecced6b12818f455b1e9fa"}, {file = "pydantic_core-2.27.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:491a2b73db93fab69731eaee494f320faa4e093dbed776be1a829c2eb222c34c"}, @@ -1070,35 +392,12 @@ files = [ [package.dependencies] typing-extensions = ">=4.6.0,<4.7.0 || >4.7.0" -[[package]] -name = "pyjwt" -version = "2.12.1" -description = "JSON Web Token implementation in Python" -optional = false -python-versions = ">=3.9" -groups = ["dev"] -markers = "python_version >= \"3.10\"" -files = [ - {file = "pyjwt-2.12.1-py3-none-any.whl", hash = "sha256:28ca37c070cad8ba8cd9790cd940535d40274d22f80ab87f3ac6a713e6e8454c"}, - {file = "pyjwt-2.12.1.tar.gz", hash = "sha256:c74a7a2adf861c04d002db713dd85f84beb242228e671280bf709d765b03672b"}, -] - -[package.dependencies] -typing_extensions = {version = ">=4.0", markers = "python_version < \"3.11\""} - -[package.extras] -crypto = ["cryptography (>=3.4.0)"] -dev = ["coverage[toml] (==7.10.7)", "cryptography (>=3.4.0)", "pre-commit", "pytest (>=8.4.2,<9.0.0)", "sphinx", "sphinx-rtd-theme", "zope.interface"] -docs = ["sphinx", "sphinx-rtd-theme", "zope.interface"] -tests = ["coverage[toml] (==7.10.7)", "pytest (>=8.4.2,<9.0.0)"] - [[package]] name = "pytest" version = "7.4.4" description = "pytest: simple powerful testing with Python" optional = false python-versions = ">=3.7" -groups = ["dev"] files = [ {file = "pytest-7.4.4-py3-none-any.whl", hash = "sha256:b090cdf5ed60bf4c45261be03239c2c1c22df034fbffe691abe93cd80cea01d8"}, {file = "pytest-7.4.4.tar.gz", hash = "sha256:2cf0005922c6ace4a3e2ec8b4080eb0d9753fdc93107415332f50ce9e7994280"}, @@ -1121,7 +420,6 @@ version = "0.23.8" description = "Pytest support for asyncio" optional = false python-versions = ">=3.8" -groups = ["dev"] files = [ {file = "pytest_asyncio-0.23.8-py3-none-any.whl", hash = "sha256:50265d892689a5faefb84df80819d1ecef566eb3549cf915dfb33569359d1ce2"}, {file = "pytest_asyncio-0.23.8.tar.gz", hash = "sha256:759b10b33a6dc61cce40a8bd5205e302978bbbcc00e279a8b61d9a6a3c82e4d3"}, @@ -1140,7 +438,6 @@ version = "3.6.1" description = "pytest xdist plugin for distributed testing, most importantly across multiple CPUs" optional = false python-versions = ">=3.8" -groups = ["dev"] files = [ {file = "pytest_xdist-3.6.1-py3-none-any.whl", hash = "sha256:9ed4adfb68a016610848639bb7e02c9352d5d9f03d04809919e2dafc3be4cca7"}, {file = "pytest_xdist-3.6.1.tar.gz", hash = "sha256:ead156a4db231eec769737f57668ef58a2084a34b2e55c4a8fa20d861107300d"}, @@ -1161,7 +458,6 @@ version = "2.9.0.post0" description = "Extensions to the standard Python datetime module" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" -groups = ["dev"] files = [ {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"}, {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"}, @@ -1170,34 +466,12 @@ files = [ [package.dependencies] six = ">=1.5" -[[package]] -name = "redis" -version = "5.3.1" -description = "Python client for Redis database and key-value store" -optional = false -python-versions = ">=3.8" -groups = ["dev"] -markers = "python_version >= \"3.10\"" -files = [ - {file = "redis-5.3.1-py3-none-any.whl", hash = "sha256:dc1909bd24669cc31b5f67a039700b16ec30571096c5f1f0d9d2324bff31af97"}, - {file = "redis-5.3.1.tar.gz", hash = "sha256:ca49577a531ea64039b5a36db3d6cd1a0c7a60c34124d46924a45b956e8cf14c"}, -] - -[package.dependencies] -async-timeout = {version = ">=4.0.3", markers = "python_full_version < \"3.11.3\""} -PyJWT = ">=2.9.0" - -[package.extras] -hiredis = ["hiredis (>=3.0.0)"] -ocsp = ["cryptography (>=36.0.1)", "pyopenssl (==23.2.1)", "requests (>=2.31.0)"] - [[package]] name = "ruff" version = "0.11.5" description = "An extremely fast Python linter and code formatter, written in Rust." optional = false python-versions = ">=3.7" -groups = ["dev"] files = [ {file = "ruff-0.11.5-py3-none-linux_armv6l.whl", hash = "sha256:2561294e108eb648e50f210671cc56aee590fb6167b594144401532138c66c7b"}, {file = "ruff-0.11.5-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:ac12884b9e005c12d0bd121f56ccf8033e1614f736f766c118ad60780882a077"}, @@ -1225,7 +499,6 @@ version = "1.17.0" description = "Python 2 and 3 compatibility utilities" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" -groups = ["dev"] files = [ {file = "six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274"}, {file = "six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81"}, @@ -1237,7 +510,6 @@ version = "1.3.1" description = "Sniff out which async library your code is running under" optional = false python-versions = ">=3.7" -groups = ["main"] files = [ {file = "sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2"}, {file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"}, @@ -1249,8 +521,6 @@ version = "2.4.1" description = "A lil' TOML parser" optional = false python-versions = ">=3.8" -groups = ["dev"] -markers = "python_version < \"3.11\"" files = [ {file = "tomli-2.4.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f8f0fc26ec2cc2b965b7a3b87cd19c5c6b8c5e5f436b984e85f486d652285c30"}, {file = "tomli-2.4.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4ab97e64ccda8756376892c53a72bd1f964e519c77236368527f758fbc36a53a"}, @@ -1307,7 +577,6 @@ version = "2.9.0.20241206" description = "Typing stubs for python-dateutil" optional = false python-versions = ">=3.8" -groups = ["dev"] files = [ {file = "types_python_dateutil-2.9.0.20241206-py3-none-any.whl", hash = "sha256:e248a4bc70a486d3e3ec84d0dc30eec3a5f979d6e7ee4123ae043eedbb987f53"}, {file = "types_python_dateutil-2.9.0.20241206.tar.gz", hash = "sha256:18f493414c26ffba692a72369fea7a154c502646301ebfe3d56a04b3767284cb"}, @@ -1319,305 +588,12 @@ version = "4.13.2" description = "Backported and Experimental Type Hints for Python 3.8+" optional = false python-versions = ">=3.8" -groups = ["main", "dev"] files = [ {file = "typing_extensions-4.13.2-py3-none-any.whl", hash = "sha256:a439e7c04b49fec3e5d3e2beaa21755cadbbdc391694e28ccdd36ca4a1408f8c"}, {file = "typing_extensions-4.13.2.tar.gz", hash = "sha256:e6c81219bd689f51865d9e372991c540bda33a0379d5573cddb9a3a23f7caaef"}, ] -[[package]] -name = "wasmtime" -version = "25.0.0" -description = "A WebAssembly runtime powered by Wasmtime" -optional = true -python-versions = ">=3.8" -groups = ["main"] -markers = "extra == \"datastream\" or extra == \"rulesengine\"" -files = [ - {file = "wasmtime-25.0.0-py3-none-any.whl", hash = "sha256:22aa59fc6e01deec8a6703046f82466090d5811096a3bb5c169907e36c842af1"}, - {file = "wasmtime-25.0.0-py3-none-macosx_10_13_x86_64.whl", hash = "sha256:13e9a718e9d580c1738782cc19f4dcb9fb068f7e51778ea621fd664f4433525b"}, - {file = "wasmtime-25.0.0-py3-none-macosx_11_0_arm64.whl", hash = "sha256:5bdf1214ee3ee78a4a8a92da339f4c4c8c109e65af881b37f4adfc05d02af426"}, - {file = "wasmtime-25.0.0-py3-none-manylinux1_x86_64.whl", hash = "sha256:b4364e14d44e3b7afe6a40bf608e9d0d2c40b09dece441d20f4f6e31906b729c"}, - {file = "wasmtime-25.0.0-py3-none-manylinux2014_aarch64.whl", hash = "sha256:a07445073cf36a6e5d1dc28246a897dcbdaa537ba8be8805be65422ecca297eb"}, - {file = "wasmtime-25.0.0-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:53d5f614348a28aabdf80ae4f6fdfa803031af1f74ada03826fd4fd43aeee6c8"}, - {file = "wasmtime-25.0.0-py3-none-win_amd64.whl", hash = "sha256:f8a2a213b9179965db2d2eedececd69a37e287e902330509afae51c71a3a6842"}, -] - -[package.dependencies] -importlib-resources = ">=5.10" - -[package.extras] -testing = ["componentize-py", "coverage", "pycparser", "pytest", "pytest-mypy"] - -[[package]] -name = "websockets" -version = "13.1" -description = "An implementation of the WebSocket Protocol (RFC 6455 & 7692)" -optional = true -python-versions = ">=3.8" -groups = ["main"] -markers = "extra == \"datastream\"" -files = [ - {file = "websockets-13.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:f48c749857f8fb598fb890a75f540e3221d0976ed0bf879cf3c7eef34151acee"}, - {file = "websockets-13.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c7e72ce6bda6fb9409cc1e8164dd41d7c91466fb599eb047cfda72fe758a34a7"}, - {file = "websockets-13.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f779498eeec470295a2b1a5d97aa1bc9814ecd25e1eb637bd9d1c73a327387f6"}, - {file = "websockets-13.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4676df3fe46956fbb0437d8800cd5f2b6d41143b6e7e842e60554398432cf29b"}, - {file = "websockets-13.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a7affedeb43a70351bb811dadf49493c9cfd1ed94c9c70095fd177e9cc1541fa"}, - {file = "websockets-13.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1971e62d2caa443e57588e1d82d15f663b29ff9dfe7446d9964a4b6f12c1e700"}, - {file = "websockets-13.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:5f2e75431f8dc4a47f31565a6e1355fb4f2ecaa99d6b89737527ea917066e26c"}, - {file = "websockets-13.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:58cf7e75dbf7e566088b07e36ea2e3e2bd5676e22216e4cad108d4df4a7402a0"}, - {file = "websockets-13.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:c90d6dec6be2c7d03378a574de87af9b1efea77d0c52a8301dd831ece938452f"}, - {file = "websockets-13.1-cp310-cp310-win32.whl", hash = "sha256:730f42125ccb14602f455155084f978bd9e8e57e89b569b4d7f0f0c17a448ffe"}, - {file = "websockets-13.1-cp310-cp310-win_amd64.whl", hash = "sha256:5993260f483d05a9737073be197371940c01b257cc45ae3f1d5d7adb371b266a"}, - {file = "websockets-13.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:61fc0dfcda609cda0fc9fe7977694c0c59cf9d749fbb17f4e9483929e3c48a19"}, - {file = "websockets-13.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ceec59f59d092c5007e815def4ebb80c2de330e9588e101cf8bd94c143ec78a5"}, - {file = "websockets-13.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c1dca61c6db1166c48b95198c0b7d9c990b30c756fc2923cc66f68d17dc558fd"}, - {file = "websockets-13.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:308e20f22c2c77f3f39caca508e765f8725020b84aa963474e18c59accbf4c02"}, - {file = "websockets-13.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:62d516c325e6540e8a57b94abefc3459d7dab8ce52ac75c96cad5549e187e3a7"}, - {file = "websockets-13.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:87c6e35319b46b99e168eb98472d6c7d8634ee37750d7693656dc766395df096"}, - {file = "websockets-13.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:5f9fee94ebafbc3117c30be1844ed01a3b177bb6e39088bc6b2fa1dc15572084"}, - {file = "websockets-13.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:7c1e90228c2f5cdde263253fa5db63e6653f1c00e7ec64108065a0b9713fa1b3"}, - {file = "websockets-13.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:6548f29b0e401eea2b967b2fdc1c7c7b5ebb3eeb470ed23a54cd45ef078a0db9"}, - {file = "websockets-13.1-cp311-cp311-win32.whl", hash = "sha256:c11d4d16e133f6df8916cc5b7e3e96ee4c44c936717d684a94f48f82edb7c92f"}, - {file = "websockets-13.1-cp311-cp311-win_amd64.whl", hash = "sha256:d04f13a1d75cb2b8382bdc16ae6fa58c97337253826dfe136195b7f89f661557"}, - {file = "websockets-13.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:9d75baf00138f80b48f1eac72ad1535aac0b6461265a0bcad391fc5aba875cfc"}, - {file = "websockets-13.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:9b6f347deb3dcfbfde1c20baa21c2ac0751afaa73e64e5b693bb2b848efeaa49"}, - {file = "websockets-13.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:de58647e3f9c42f13f90ac7e5f58900c80a39019848c5547bc691693098ae1bd"}, - {file = "websockets-13.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a1b54689e38d1279a51d11e3467dd2f3a50f5f2e879012ce8f2d6943f00e83f0"}, - {file = "websockets-13.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cf1781ef73c073e6b0f90af841aaf98501f975d306bbf6221683dd594ccc52b6"}, - {file = "websockets-13.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8d23b88b9388ed85c6faf0e74d8dec4f4d3baf3ecf20a65a47b836d56260d4b9"}, - {file = "websockets-13.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3c78383585f47ccb0fcf186dcb8a43f5438bd7d8f47d69e0b56f71bf431a0a68"}, - {file = "websockets-13.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:d6d300f8ec35c24025ceb9b9019ae9040c1ab2f01cddc2bcc0b518af31c75c14"}, - {file = "websockets-13.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a9dcaf8b0cc72a392760bb8755922c03e17a5a54e08cca58e8b74f6902b433cf"}, - {file = "websockets-13.1-cp312-cp312-win32.whl", hash = "sha256:2f85cf4f2a1ba8f602298a853cec8526c2ca42a9a4b947ec236eaedb8f2dc80c"}, - {file = "websockets-13.1-cp312-cp312-win_amd64.whl", hash = "sha256:38377f8b0cdeee97c552d20cf1865695fcd56aba155ad1b4ca8779a5b6ef4ac3"}, - {file = "websockets-13.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a9ab1e71d3d2e54a0aa646ab6d4eebfaa5f416fe78dfe4da2839525dc5d765c6"}, - {file = "websockets-13.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:b9d7439d7fab4dce00570bb906875734df13d9faa4b48e261c440a5fec6d9708"}, - {file = "websockets-13.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:327b74e915cf13c5931334c61e1a41040e365d380f812513a255aa804b183418"}, - {file = "websockets-13.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:325b1ccdbf5e5725fdcb1b0e9ad4d2545056479d0eee392c291c1bf76206435a"}, - {file = "websockets-13.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:346bee67a65f189e0e33f520f253d5147ab76ae42493804319b5716e46dddf0f"}, - {file = "websockets-13.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:91a0fa841646320ec0d3accdff5b757b06e2e5c86ba32af2e0815c96c7a603c5"}, - {file = "websockets-13.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:18503d2c5f3943e93819238bf20df71982d193f73dcecd26c94514f417f6b135"}, - {file = "websockets-13.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:a9cd1af7e18e5221d2878378fbc287a14cd527fdd5939ed56a18df8a31136bb2"}, - {file = "websockets-13.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:70c5be9f416aa72aab7a2a76c90ae0a4fe2755c1816c153c1a2bcc3333ce4ce6"}, - {file = "websockets-13.1-cp313-cp313-win32.whl", hash = "sha256:624459daabeb310d3815b276c1adef475b3e6804abaf2d9d2c061c319f7f187d"}, - {file = "websockets-13.1-cp313-cp313-win_amd64.whl", hash = "sha256:c518e84bb59c2baae725accd355c8dc517b4a3ed8db88b4bc93c78dae2974bf2"}, - {file = "websockets-13.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:c7934fd0e920e70468e676fe7f1b7261c1efa0d6c037c6722278ca0228ad9d0d"}, - {file = "websockets-13.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:149e622dc48c10ccc3d2760e5f36753db9cacf3ad7bc7bbbfd7d9c819e286f23"}, - {file = "websockets-13.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:a569eb1b05d72f9bce2ebd28a1ce2054311b66677fcd46cf36204ad23acead8c"}, - {file = "websockets-13.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:95df24ca1e1bd93bbca51d94dd049a984609687cb2fb08a7f2c56ac84e9816ea"}, - {file = "websockets-13.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d8dbb1bf0c0a4ae8b40bdc9be7f644e2f3fb4e8a9aca7145bfa510d4a374eeb7"}, - {file = "websockets-13.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:035233b7531fb92a76beefcbf479504db8c72eb3bff41da55aecce3a0f729e54"}, - {file = "websockets-13.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:e4450fc83a3df53dec45922b576e91e94f5578d06436871dce3a6be38e40f5db"}, - {file = "websockets-13.1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:463e1c6ec853202dd3657f156123d6b4dad0c546ea2e2e38be2b3f7c5b8e7295"}, - {file = "websockets-13.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:6d6855bbe70119872c05107e38fbc7f96b1d8cb047d95c2c50869a46c65a8e96"}, - {file = "websockets-13.1-cp38-cp38-win32.whl", hash = "sha256:204e5107f43095012b00f1451374693267adbb832d29966a01ecc4ce1db26faf"}, - {file = "websockets-13.1-cp38-cp38-win_amd64.whl", hash = "sha256:485307243237328c022bc908b90e4457d0daa8b5cf4b3723fd3c4a8012fce4c6"}, - {file = "websockets-13.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:9b37c184f8b976f0c0a231a5f3d6efe10807d41ccbe4488df8c74174805eea7d"}, - {file = "websockets-13.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:163e7277e1a0bd9fb3c8842a71661ad19c6aa7bb3d6678dc7f89b17fbcc4aeb7"}, - {file = "websockets-13.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4b889dbd1342820cc210ba44307cf75ae5f2f96226c0038094455a96e64fb07a"}, - {file = "websockets-13.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:586a356928692c1fed0eca68b4d1c2cbbd1ca2acf2ac7e7ebd3b9052582deefa"}, - {file = "websockets-13.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7bd6abf1e070a6b72bfeb71049d6ad286852e285f146682bf30d0296f5fbadfa"}, - {file = "websockets-13.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d2aad13a200e5934f5a6767492fb07151e1de1d6079c003ab31e1823733ae79"}, - {file = "websockets-13.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:df01aea34b6e9e33572c35cd16bae5a47785e7d5c8cb2b54b2acdb9678315a17"}, - {file = "websockets-13.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:e54affdeb21026329fb0744ad187cf812f7d3c2aa702a5edb562b325191fcab6"}, - {file = "websockets-13.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:9ef8aa8bdbac47f4968a5d66462a2a0935d044bf35c0e5a8af152d58516dbeb5"}, - {file = "websockets-13.1-cp39-cp39-win32.whl", hash = "sha256:deeb929efe52bed518f6eb2ddc00cc496366a14c726005726ad62c2dd9017a3c"}, - {file = "websockets-13.1-cp39-cp39-win_amd64.whl", hash = "sha256:7c65ffa900e7cc958cd088b9a9157a8141c991f8c53d11087e6fb7277a03f81d"}, - {file = "websockets-13.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:5dd6da9bec02735931fccec99d97c29f47cc61f644264eb995ad6c0c27667238"}, - {file = "websockets-13.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:2510c09d8e8df777177ee3d40cd35450dc169a81e747455cc4197e63f7e7bfe5"}, - {file = "websockets-13.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f1c3cf67185543730888b20682fb186fc8d0fa6f07ccc3ef4390831ab4b388d9"}, - {file = "websockets-13.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bcc03c8b72267e97b49149e4863d57c2d77f13fae12066622dc78fe322490fe6"}, - {file = "websockets-13.1-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:004280a140f220c812e65f36944a9ca92d766b6cc4560be652a0a3883a79ed8a"}, - {file = "websockets-13.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:e2620453c075abeb0daa949a292e19f56de518988e079c36478bacf9546ced23"}, - {file = "websockets-13.1-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:9156c45750b37337f7b0b00e6248991a047be4aa44554c9886fe6bdd605aab3b"}, - {file = "websockets-13.1-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:80c421e07973a89fbdd93e6f2003c17d20b69010458d3a8e37fb47874bd67d51"}, - {file = "websockets-13.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:82d0ba76371769d6a4e56f7e83bb8e81846d17a6190971e38b5de108bde9b0d7"}, - {file = "websockets-13.1-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e9875a0143f07d74dc5e1ded1c4581f0d9f7ab86c78994e2ed9e95050073c94d"}, - {file = "websockets-13.1-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a11e38ad8922c7961447f35c7b17bffa15de4d17c70abd07bfbe12d6faa3e027"}, - {file = "websockets-13.1-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:4059f790b6ae8768471cddb65d3c4fe4792b0ab48e154c9f0a04cefaabcd5978"}, - {file = "websockets-13.1-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:25c35bf84bf7c7369d247f0b8cfa157f989862c49104c5cf85cb5436a641d93e"}, - {file = "websockets-13.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:83f91d8a9bb404b8c2c41a707ac7f7f75b9442a0a876df295de27251a856ad09"}, - {file = "websockets-13.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7a43cfdcddd07f4ca2b1afb459824dd3c6d53a51410636a2c7fc97b9a8cf4842"}, - {file = "websockets-13.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:48a2ef1381632a2f0cb4efeff34efa97901c9fbc118e01951ad7cfc10601a9bb"}, - {file = "websockets-13.1-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:459bf774c754c35dbb487360b12c5727adab887f1622b8aed5755880a21c4a20"}, - {file = "websockets-13.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:95858ca14a9f6fa8413d29e0a585b31b278388aa775b8a81fa24830123874678"}, - {file = "websockets-13.1-py3-none-any.whl", hash = "sha256:a9a396a6ad26130cdae92ae10c36af09d9bfe6cafe69670fd3b6da9b07b4044f"}, - {file = "websockets-13.1.tar.gz", hash = "sha256:a3b3366087c1bc0a2795111edcadddb8b3b59509d5db5d7ea3fdd69f954a8878"}, -] - -[[package]] -name = "yarl" -version = "1.22.0" -description = "Yet another URL library" -optional = false -python-versions = ">=3.9" -groups = ["dev"] -markers = "python_version >= \"3.9\"" -files = [ - {file = "yarl-1.22.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:c7bd6683587567e5a49ee6e336e0612bec8329be1b7d4c8af5687dcdeb67ee1e"}, - {file = "yarl-1.22.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5cdac20da754f3a723cceea5b3448e1a2074866406adeb4ef35b469d089adb8f"}, - {file = "yarl-1.22.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:07a524d84df0c10f41e3ee918846e1974aba4ec017f990dc735aad487a0bdfdf"}, - {file = "yarl-1.22.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e1b329cb8146d7b736677a2440e422eadd775d1806a81db2d4cded80a48efc1a"}, - {file = "yarl-1.22.0-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:75976c6945d85dbb9ee6308cd7ff7b1fb9409380c82d6119bd778d8fcfe2931c"}, - {file = "yarl-1.22.0-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:80ddf7a5f8c86cb3eb4bc9028b07bbbf1f08a96c5c0bc1244be5e8fefcb94147"}, - {file = "yarl-1.22.0-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d332fc2e3c94dad927f2112395772a4e4fedbcf8f80efc21ed7cdfae4d574fdb"}, - {file = "yarl-1.22.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0cf71bf877efeac18b38d3930594c0948c82b64547c1cf420ba48722fe5509f6"}, - {file = "yarl-1.22.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:663e1cadaddae26be034a6ab6072449a8426ddb03d500f43daf952b74553bba0"}, - {file = "yarl-1.22.0-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:6dcbb0829c671f305be48a7227918cfcd11276c2d637a8033a99a02b67bf9eda"}, - {file = "yarl-1.22.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:f0d97c18dfd9a9af4490631905a3f131a8e4c9e80a39353919e2cfed8f00aedc"}, - {file = "yarl-1.22.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:437840083abe022c978470b942ff832c3940b2ad3734d424b7eaffcd07f76737"}, - {file = "yarl-1.22.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:a899cbd98dce6f5d8de1aad31cb712ec0a530abc0a86bd6edaa47c1090138467"}, - {file = "yarl-1.22.0-cp310-cp310-win32.whl", hash = "sha256:595697f68bd1f0c1c159fcb97b661fc9c3f5db46498043555d04805430e79bea"}, - {file = "yarl-1.22.0-cp310-cp310-win_amd64.whl", hash = "sha256:cb95a9b1adaa48e41815a55ae740cfda005758104049a640a398120bf02515ca"}, - {file = "yarl-1.22.0-cp310-cp310-win_arm64.whl", hash = "sha256:b85b982afde6df99ecc996990d4ad7ccbdbb70e2a4ba4de0aecde5922ba98a0b"}, - {file = "yarl-1.22.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:1ab72135b1f2db3fed3997d7e7dc1b80573c67138023852b6efb336a5eae6511"}, - {file = "yarl-1.22.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:669930400e375570189492dc8d8341301578e8493aec04aebc20d4717f899dd6"}, - {file = "yarl-1.22.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:792a2af6d58177ef7c19cbf0097aba92ca1b9cb3ffdd9c7470e156c8f9b5e028"}, - {file = "yarl-1.22.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3ea66b1c11c9150f1372f69afb6b8116f2dd7286f38e14ea71a44eee9ec51b9d"}, - {file = "yarl-1.22.0-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3e2daa88dc91870215961e96a039ec73e4937da13cf77ce17f9cad0c18df3503"}, - {file = "yarl-1.22.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ba440ae430c00eee41509353628600212112cd5018d5def7e9b05ea7ac34eb65"}, - {file = "yarl-1.22.0-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:e6438cc8f23a9c1478633d216b16104a586b9761db62bfacb6425bac0a36679e"}, - {file = "yarl-1.22.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4c52a6e78aef5cf47a98ef8e934755abf53953379b7d53e68b15ff4420e6683d"}, - {file = "yarl-1.22.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:3b06bcadaac49c70f4c88af4ffcfbe3dc155aab3163e75777818092478bcbbe7"}, - {file = "yarl-1.22.0-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:6944b2dc72c4d7f7052683487e3677456050ff77fcf5e6204e98caf785ad1967"}, - {file = "yarl-1.22.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:d5372ca1df0f91a86b047d1277c2aaf1edb32d78bbcefffc81b40ffd18f027ed"}, - {file = "yarl-1.22.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:51af598701f5299012b8416486b40fceef8c26fc87dc6d7d1f6fc30609ea0aa6"}, - {file = "yarl-1.22.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b266bd01fedeffeeac01a79ae181719ff848a5a13ce10075adbefc8f1daee70e"}, - {file = "yarl-1.22.0-cp311-cp311-win32.whl", hash = "sha256:a9b1ba5610a4e20f655258d5a1fdc7ebe3d837bb0e45b581398b99eb98b1f5ca"}, - {file = "yarl-1.22.0-cp311-cp311-win_amd64.whl", hash = "sha256:078278b9b0b11568937d9509b589ee83ef98ed6d561dfe2020e24a9fd08eaa2b"}, - {file = "yarl-1.22.0-cp311-cp311-win_arm64.whl", hash = "sha256:b6a6f620cfe13ccec221fa312139135166e47ae169f8253f72a0abc0dae94376"}, - {file = "yarl-1.22.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e340382d1afa5d32b892b3ff062436d592ec3d692aeea3bef3a5cfe11bbf8c6f"}, - {file = "yarl-1.22.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f1e09112a2c31ffe8d80be1b0988fa6a18c5d5cad92a9ffbb1c04c91bfe52ad2"}, - {file = "yarl-1.22.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:939fe60db294c786f6b7c2d2e121576628468f65453d86b0fe36cb52f987bd74"}, - {file = "yarl-1.22.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e1651bf8e0398574646744c1885a41198eba53dc8a9312b954073f845c90a8df"}, - {file = "yarl-1.22.0-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:b8a0588521a26bf92a57a1705b77b8b59044cdceccac7151bd8d229e66b8dedb"}, - {file = "yarl-1.22.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:42188e6a615c1a75bcaa6e150c3fe8f3e8680471a6b10150c5f7e83f47cc34d2"}, - {file = "yarl-1.22.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f6d2cb59377d99718913ad9a151030d6f83ef420a2b8f521d94609ecc106ee82"}, - {file = "yarl-1.22.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:50678a3b71c751d58d7908edc96d332af328839eea883bb554a43f539101277a"}, - {file = "yarl-1.22.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1e8fbaa7cec507aa24ea27a01456e8dd4b6fab829059b69844bd348f2d467124"}, - {file = "yarl-1.22.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:433885ab5431bc3d3d4f2f9bd15bfa1614c522b0f1405d62c4f926ccd69d04fa"}, - {file = "yarl-1.22.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:b790b39c7e9a4192dc2e201a282109ed2985a1ddbd5ac08dc56d0e121400a8f7"}, - {file = "yarl-1.22.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:31f0b53913220599446872d757257be5898019c85e7971599065bc55065dc99d"}, - {file = "yarl-1.22.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a49370e8f711daec68d09b821a34e1167792ee2d24d405cbc2387be4f158b520"}, - {file = "yarl-1.22.0-cp312-cp312-win32.whl", hash = "sha256:70dfd4f241c04bd9239d53b17f11e6ab672b9f1420364af63e8531198e3f5fe8"}, - {file = "yarl-1.22.0-cp312-cp312-win_amd64.whl", hash = "sha256:8884d8b332a5e9b88e23f60bb166890009429391864c685e17bd73a9eda9105c"}, - {file = "yarl-1.22.0-cp312-cp312-win_arm64.whl", hash = "sha256:ea70f61a47f3cc93bdf8b2f368ed359ef02a01ca6393916bc8ff877427181e74"}, - {file = "yarl-1.22.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8dee9c25c74997f6a750cd317b8ca63545169c098faee42c84aa5e506c819b53"}, - {file = "yarl-1.22.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:01e73b85a5434f89fc4fe27dcda2aff08ddf35e4d47bbbea3bdcd25321af538a"}, - {file = "yarl-1.22.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:22965c2af250d20c873cdbee8ff958fb809940aeb2e74ba5f20aaf6b7ac8c70c"}, - {file = "yarl-1.22.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b4f15793aa49793ec8d1c708ab7f9eded1aa72edc5174cae703651555ed1b601"}, - {file = "yarl-1.22.0-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:e5542339dcf2747135c5c85f68680353d5cb9ffd741c0f2e8d832d054d41f35a"}, - {file = "yarl-1.22.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:5c401e05ad47a75869c3ab3e35137f8468b846770587e70d71e11de797d113df"}, - {file = "yarl-1.22.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:243dda95d901c733f5b59214d28b0120893d91777cb8aa043e6ef059d3cddfe2"}, - {file = "yarl-1.22.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bec03d0d388060058f5d291a813f21c011041938a441c593374da6077fe21b1b"}, - {file = "yarl-1.22.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:b0748275abb8c1e1e09301ee3cf90c8a99678a4e92e4373705f2a2570d581273"}, - {file = "yarl-1.22.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:47fdb18187e2a4e18fda2c25c05d8251a9e4a521edaed757fef033e7d8498d9a"}, - {file = "yarl-1.22.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:c7044802eec4524fde550afc28edda0dd5784c4c45f0be151a2d3ba017daca7d"}, - {file = "yarl-1.22.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:139718f35149ff544caba20fce6e8a2f71f1e39b92c700d8438a0b1d2a631a02"}, - {file = "yarl-1.22.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e1b51bebd221006d3d2f95fbe124b22b247136647ae5dcc8c7acafba66e5ee67"}, - {file = "yarl-1.22.0-cp313-cp313-win32.whl", hash = "sha256:d3e32536234a95f513bd374e93d717cf6b2231a791758de6c509e3653f234c95"}, - {file = "yarl-1.22.0-cp313-cp313-win_amd64.whl", hash = "sha256:47743b82b76d89a1d20b83e60d5c20314cbd5ba2befc9cda8f28300c4a08ed4d"}, - {file = "yarl-1.22.0-cp313-cp313-win_arm64.whl", hash = "sha256:5d0fcda9608875f7d052eff120c7a5da474a6796fe4d83e152e0e4d42f6d1a9b"}, - {file = "yarl-1.22.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:719ae08b6972befcba4310e49edb1161a88cdd331e3a694b84466bd938a6ab10"}, - {file = "yarl-1.22.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:47d8a5c446df1c4db9d21b49619ffdba90e77c89ec6e283f453856c74b50b9e3"}, - {file = "yarl-1.22.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:cfebc0ac8333520d2d0423cbbe43ae43c8838862ddb898f5ca68565e395516e9"}, - {file = "yarl-1.22.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4398557cbf484207df000309235979c79c4356518fd5c99158c7d38203c4da4f"}, - {file = "yarl-1.22.0-cp313-cp313t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:2ca6fd72a8cd803be290d42f2dec5cdcd5299eeb93c2d929bf060ad9efaf5de0"}, - {file = "yarl-1.22.0-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ca1f59c4e1ab6e72f0a23c13fca5430f889634166be85dbf1013683e49e3278e"}, - {file = "yarl-1.22.0-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:6c5010a52015e7c70f86eb967db0f37f3c8bd503a695a49f8d45700144667708"}, - {file = "yarl-1.22.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9d7672ecf7557476642c88497c2f8d8542f8e36596e928e9bcba0e42e1e7d71f"}, - {file = "yarl-1.22.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:3b7c88eeef021579d600e50363e0b6ee4f7f6f728cd3486b9d0f3ee7b946398d"}, - {file = "yarl-1.22.0-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:f4afb5c34f2c6fecdcc182dfcfc6af6cccf1aa923eed4d6a12e9d96904e1a0d8"}, - {file = "yarl-1.22.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:59c189e3e99a59cf8d83cbb31d4db02d66cda5a1a4374e8a012b51255341abf5"}, - {file = "yarl-1.22.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:5a3bf7f62a289fa90f1990422dc8dff5a458469ea71d1624585ec3a4c8d6960f"}, - {file = "yarl-1.22.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:de6b9a04c606978fdfe72666fa216ffcf2d1a9f6a381058d4378f8d7b1e5de62"}, - {file = "yarl-1.22.0-cp313-cp313t-win32.whl", hash = "sha256:1834bb90991cc2999f10f97f5f01317f99b143284766d197e43cd5b45eb18d03"}, - {file = "yarl-1.22.0-cp313-cp313t-win_amd64.whl", hash = "sha256:ff86011bd159a9d2dfc89c34cfd8aff12875980e3bd6a39ff097887520e60249"}, - {file = "yarl-1.22.0-cp313-cp313t-win_arm64.whl", hash = "sha256:7861058d0582b847bc4e3a4a4c46828a410bca738673f35a29ba3ca5db0b473b"}, - {file = "yarl-1.22.0-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:34b36c2c57124530884d89d50ed2c1478697ad7473efd59cfd479945c95650e4"}, - {file = "yarl-1.22.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:0dd9a702591ca2e543631c2a017e4a547e38a5c0f29eece37d9097e04a7ac683"}, - {file = "yarl-1.22.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:594fcab1032e2d2cc3321bb2e51271e7cd2b516c7d9aee780ece81b07ff8244b"}, - {file = "yarl-1.22.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f3d7a87a78d46a2e3d5b72587ac14b4c16952dd0887dbb051451eceac774411e"}, - {file = "yarl-1.22.0-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:852863707010316c973162e703bddabec35e8757e67fcb8ad58829de1ebc8590"}, - {file = "yarl-1.22.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:131a085a53bfe839a477c0845acf21efc77457ba2bcf5899618136d64f3303a2"}, - {file = "yarl-1.22.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:078a8aefd263f4d4f923a9677b942b445a2be970ca24548a8102689a3a8ab8da"}, - {file = "yarl-1.22.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bca03b91c323036913993ff5c738d0842fc9c60c4648e5c8d98331526df89784"}, - {file = "yarl-1.22.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:68986a61557d37bb90d3051a45b91fa3d5c516d177dfc6dd6f2f436a07ff2b6b"}, - {file = "yarl-1.22.0-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:4792b262d585ff0dff6bcb787f8492e40698443ec982a3568c2096433660c694"}, - {file = "yarl-1.22.0-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:ebd4549b108d732dba1d4ace67614b9545b21ece30937a63a65dd34efa19732d"}, - {file = "yarl-1.22.0-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:f87ac53513d22240c7d59203f25cc3beac1e574c6cd681bbfd321987b69f95fd"}, - {file = "yarl-1.22.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:22b029f2881599e2f1b06f8f1db2ee63bd309e2293ba2d566e008ba12778b8da"}, - {file = "yarl-1.22.0-cp314-cp314-win32.whl", hash = "sha256:6a635ea45ba4ea8238463b4f7d0e721bad669f80878b7bfd1f89266e2ae63da2"}, - {file = "yarl-1.22.0-cp314-cp314-win_amd64.whl", hash = "sha256:0d6e6885777af0f110b0e5d7e5dda8b704efed3894da26220b7f3d887b839a79"}, - {file = "yarl-1.22.0-cp314-cp314-win_arm64.whl", hash = "sha256:8218f4e98d3c10d683584cb40f0424f4b9fd6e95610232dd75e13743b070ee33"}, - {file = "yarl-1.22.0-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:45c2842ff0e0d1b35a6bf1cd6c690939dacb617a70827f715232b2e0494d55d1"}, - {file = "yarl-1.22.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:d947071e6ebcf2e2bee8fce76e10faca8f7a14808ca36a910263acaacef08eca"}, - {file = "yarl-1.22.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:334b8721303e61b00019474cc103bdac3d7b1f65e91f0bfedeec2d56dfe74b53"}, - {file = "yarl-1.22.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1e7ce67c34138a058fd092f67d07a72b8e31ff0c9236e751957465a24b28910c"}, - {file = "yarl-1.22.0-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:d77e1b2c6d04711478cb1c4ab90db07f1609ccf06a287d5607fcd90dc9863acf"}, - {file = "yarl-1.22.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c4647674b6150d2cae088fc07de2738a84b8bcedebef29802cf0b0a82ab6face"}, - {file = "yarl-1.22.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:efb07073be061c8f79d03d04139a80ba33cbd390ca8f0297aae9cce6411e4c6b"}, - {file = "yarl-1.22.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e51ac5435758ba97ad69617e13233da53908beccc6cfcd6c34bbed8dcbede486"}, - {file = "yarl-1.22.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:33e32a0dd0c8205efa8e83d04fc9f19313772b78522d1bdc7d9aed706bfd6138"}, - {file = "yarl-1.22.0-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:bf4a21e58b9cde0e401e683ebd00f6ed30a06d14e93f7c8fd059f8b6e8f87b6a"}, - {file = "yarl-1.22.0-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:e4b582bab49ac33c8deb97e058cd67c2c50dac0dd134874106d9c774fd272529"}, - {file = "yarl-1.22.0-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:0b5bcc1a9c4839e7e30b7b30dd47fe5e7e44fb7054ec29b5bb8d526aa1041093"}, - {file = "yarl-1.22.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:c0232bce2170103ec23c454e54a57008a9a72b5d1c3105dc2496750da8cfa47c"}, - {file = "yarl-1.22.0-cp314-cp314t-win32.whl", hash = "sha256:8009b3173bcd637be650922ac455946197d858b3630b6d8787aa9e5c4564533e"}, - {file = "yarl-1.22.0-cp314-cp314t-win_amd64.whl", hash = "sha256:9fb17ea16e972c63d25d4a97f016d235c78dd2344820eb35bc034bc32012ee27"}, - {file = "yarl-1.22.0-cp314-cp314t-win_arm64.whl", hash = "sha256:9f6d73c1436b934e3f01df1e1b21ff765cd1d28c77dfb9ace207f746d4610ee1"}, - {file = "yarl-1.22.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:3aa27acb6de7a23785d81557577491f6c38a5209a254d1191519d07d8fe51748"}, - {file = "yarl-1.22.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:af74f05666a5e531289cb1cc9c883d1de2088b8e5b4de48004e5ca8a830ac859"}, - {file = "yarl-1.22.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:62441e55958977b8167b2709c164c91a6363e25da322d87ae6dd9c6019ceecf9"}, - {file = "yarl-1.22.0-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b580e71cac3f8113d3135888770903eaf2f507e9421e5697d6ee6d8cd1c7f054"}, - {file = "yarl-1.22.0-cp39-cp39-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:e81fda2fb4a07eda1a2252b216aa0df23ebcd4d584894e9612e80999a78fd95b"}, - {file = "yarl-1.22.0-cp39-cp39-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:99b6fc1d55782461b78221e95fc357b47ad98b041e8e20f47c1411d0aacddc60"}, - {file = "yarl-1.22.0-cp39-cp39-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:088e4e08f033db4be2ccd1f34cf29fe994772fb54cfe004bbf54db320af56890"}, - {file = "yarl-1.22.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2e4e1f6f0b4da23e61188676e3ed027ef0baa833a2e633c29ff8530800edccba"}, - {file = "yarl-1.22.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:84fc3ec96fce86ce5aa305eb4aa9358279d1aa644b71fab7b8ed33fe3ba1a7ca"}, - {file = "yarl-1.22.0-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:5dbeefd6ca588b33576a01b0ad58aa934bc1b41ef89dee505bf2932b22ddffba"}, - {file = "yarl-1.22.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:14291620375b1060613f4aab9ebf21850058b6b1b438f386cc814813d901c60b"}, - {file = "yarl-1.22.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:a4fcfc8eb2c34148c118dfa02e6427ca278bfd0f3df7c5f99e33d2c0e81eae3e"}, - {file = "yarl-1.22.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:029866bde8d7b0878b9c160e72305bbf0a7342bcd20b9999381704ae03308dc8"}, - {file = "yarl-1.22.0-cp39-cp39-win32.whl", hash = "sha256:4dcc74149ccc8bba31ce1944acee24813e93cfdee2acda3c172df844948ddf7b"}, - {file = "yarl-1.22.0-cp39-cp39-win_amd64.whl", hash = "sha256:10619d9fdee46d20edc49d3479e2f8269d0779f1b031e6f7c2aa1c76be04b7ed"}, - {file = "yarl-1.22.0-cp39-cp39-win_arm64.whl", hash = "sha256:dd7afd3f8b0bfb4e0d9fc3c31bfe8a4ec7debe124cfd90619305def3c8ca8cd2"}, - {file = "yarl-1.22.0-py3-none-any.whl", hash = "sha256:1380560bdba02b6b6c90de54133c81c9f2a453dee9912fe58c1dcced1edb7cff"}, - {file = "yarl-1.22.0.tar.gz", hash = "sha256:bebf8557577d4401ba8bd9ff33906f1376c877aa78d1fe216ad01b4d6745af71"}, -] - -[package.dependencies] -idna = ">=2.0" -multidict = ">=4.0" -propcache = ">=0.2.1" - -[[package]] -name = "zipp" -version = "3.20.2" -description = "Backport of pathlib-compatible object wrapper for zip files" -optional = true -python-versions = ">=3.8" -groups = ["main"] -markers = "(extra == \"datastream\" or extra == \"rulesengine\") and python_version < \"3.10\"" -files = [ - {file = "zipp-3.20.2-py3-none-any.whl", hash = "sha256:a817ac80d6cf4b23bf7f2828b7cabf326f15a001bea8b1f9b49631780ba28350"}, - {file = "zipp-3.20.2.tar.gz", hash = "sha256:bc9eb26f4506fda01b81bcde0ca78103b6e62f991b381fec825435c836edbc29"}, -] - -[package.extras] -check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1) ; sys_platform != \"cygwin\""] -cover = ["pytest-cov"] -doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] -enabler = ["pytest-enabler (>=2.2)"] -test = ["big-O", "importlib-resources ; python_version < \"3.9\"", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-itertools", "pytest (>=6,!=8.1.*)", "pytest-ignore-flaky"] -type = ["pytest-mypy"] - -[extras] -datastream = ["wasmtime", "websockets"] -rulesengine = ["wasmtime"] - [metadata] -lock-version = "2.1" +lock-version = "2.0" python-versions = "^3.8" -content-hash = "7f8cd32f6180e0e5180d40c7376b4ba77af39b5647c1c2e9b93f49aea5eb3ac3" +content-hash = "bcf31a142c86d9e556553c8c260a93b563ac64a043076dbd48b26111d422c26e" diff --git a/reference.md b/reference.md index cbbbe3f..f87be82 100644 --- a/reference.md +++ b/reference.md @@ -1,122 +1,4 @@ # Reference -
client.put_plan_audiences_plan_audience_id(...) -
-
- -#### 🔌 Usage - -
-
- -
-
- -```python -from schematic import Schematic -from schematic.environment import SchematicEnvironment - -client = Schematic( - api_key="", - environment=SchematicEnvironment.DEFAULT, -) - -client.put_plan_audiences_plan_audience_id( - plan_audience_id="plan_audience_id", -) - -``` -
-
-
-
- -#### ⚙️ Parameters - -
-
- -
-
- -**plan_audience_id:** `str` - -
-
- -
-
- -**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration. - -
-
-
-
- - -
-
-
- -
client.delete_plan_audiences_plan_audience_id(...) -
-
- -#### 🔌 Usage - -
-
- -
-
- -```python -from schematic import Schematic -from schematic.environment import SchematicEnvironment - -client = Schematic( - api_key="", - environment=SchematicEnvironment.DEFAULT, -) - -client.delete_plan_audiences_plan_audience_id( - plan_audience_id="plan_audience_id", -) - -``` -
-
-
-
- -#### ⚙️ Parameters - -
-
- -
-
- -**plan_audience_id:** `str` - -
-
- -
-
- -**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration. - -
-
-
-
- - -
-
-
- ## accounts
client.accounts.list_account_members(...) -> ListAccountMembersResponse
@@ -2979,6 +2861,14 @@ client.billing.upsert_billing_price(
+**nickname:** `typing.Optional[str]` + +
+
+ +
+
+ **package_size:** `typing.Optional[int]`
@@ -9539,7 +9429,7 @@ client.companies.list_plan_traits(
-
client.companies.create_plan_trait(...) -> CreatePlanTraitResponse +
client.companies.get_plan_trait(...) -> GetPlanTraitResponse
@@ -9560,10 +9450,8 @@ client = Schematic( environment=SchematicEnvironment.DEFAULT, ) -client.companies.create_plan_trait( - plan_id="plan_id", - trait_id="trait_id", - trait_value="trait_value", +client.companies.get_plan_trait( + plan_trait_id="plan_trait_id", ) ``` @@ -9580,23 +9468,7 @@ client.companies.create_plan_trait(
-**plan_id:** `str` - -
-
- -
-
- -**trait_id:** `str` - -
-
- -
-
- -**trait_value:** `str` +**plan_trait_id:** `str` — plan_trait_id
@@ -9616,7 +9488,7 @@ client.companies.create_plan_trait(
-
client.companies.get_plan_trait(...) -> GetPlanTraitResponse +
client.companies.update_plan_traits_bulk(...) -> UpdatePlanTraitsBulkResponse
@@ -9629,7 +9501,7 @@ client.companies.create_plan_trait(
```python -from schematic import Schematic +from schematic import Schematic, UpdatePlanTraitTraitRequestBody from schematic.environment import SchematicEnvironment client = Schematic( @@ -9637,8 +9509,15 @@ client = Schematic( environment=SchematicEnvironment.DEFAULT, ) -client.companies.get_plan_trait( - plan_trait_id="plan_trait_id", +client.companies.update_plan_traits_bulk( + apply_to_existing_companies=True, + plan_id="plan_id", + traits=[ + UpdatePlanTraitTraitRequestBody( + trait_id="trait_id", + trait_value="trait_value", + ) + ], ) ``` @@ -9655,7 +9534,23 @@ client.companies.get_plan_trait(
-**plan_trait_id:** `str` — plan_trait_id +**apply_to_existing_companies:** `bool` + +
+
+ +
+
+ +**plan_id:** `str` + +
+
+ +
+
+ +**traits:** `typing.List[UpdatePlanTraitTraitRequestBody]`
@@ -9675,7 +9570,7 @@ client.companies.get_plan_trait(
-
client.companies.update_plan_trait(...) -> UpdatePlanTraitResponse +
client.companies.count_plan_traits(...) -> CountPlanTraitsResponse
@@ -9696,10 +9591,17 @@ client = Schematic( environment=SchematicEnvironment.DEFAULT, ) -client.companies.update_plan_trait( - plan_trait_id="plan_trait_id", +client.companies.count_plan_traits( + ids=[ + "ids" + ], plan_id="plan_id", - trait_value="trait_value", + trait_id="trait_id", + trait_ids=[ + "trait_ids" + ], + limit=1000000, + offset=1000000, ) ``` @@ -9716,7 +9618,7 @@ client.companies.update_plan_trait(
-**plan_trait_id:** `str` — plan_trait_id +**ids:** `typing.Optional[typing.Union[str, typing.Sequence[str]]]`
@@ -9724,7 +9626,31 @@ client.companies.update_plan_trait(
-**plan_id:** `str` +**plan_id:** `typing.Optional[str]` + +
+
+ +
+
+ +**trait_id:** `typing.Optional[str]` + +
+
+ +
+
+ +**trait_ids:** `typing.Optional[typing.Union[str, typing.Sequence[str]]]` + +
+
+ +
+
+ +**limit:** `typing.Optional[int]` — Page limit (default 100)
@@ -9732,7 +9658,7 @@ client.companies.update_plan_trait(
-**trait_value:** `str` +**offset:** `typing.Optional[int]` — Page offset (default 0)
@@ -9752,7 +9678,7 @@ client.companies.update_plan_trait(
-
client.companies.delete_plan_trait(...) -> DeletePlanTraitResponse +
client.companies.upsert_user_trait(...) -> UpsertUserTraitResponse
@@ -9773,8 +9699,11 @@ client = Schematic( environment=SchematicEnvironment.DEFAULT, ) -client.companies.delete_plan_trait( - plan_trait_id="plan_trait_id", +client.companies.upsert_user_trait( + keys={ + "key": "value" + }, + trait="trait", ) ``` @@ -9791,7 +9720,7 @@ client.companies.delete_plan_trait(
-**plan_trait_id:** `str` — plan_trait_id +**request:** `UpsertTraitRequestBody`
@@ -9811,7 +9740,7 @@ client.companies.delete_plan_trait(
-
client.companies.update_plan_traits_bulk(...) -> UpdatePlanTraitsBulkResponse +
client.companies.list_users(...) -> ListUsersResponse
@@ -9824,7 +9753,7 @@ client.companies.delete_plan_trait(
```python -from schematic import Schematic, UpdatePlanTraitTraitRequestBody +from schematic import Schematic from schematic.environment import SchematicEnvironment client = Schematic( @@ -9832,15 +9761,15 @@ client = Schematic( environment=SchematicEnvironment.DEFAULT, ) -client.companies.update_plan_traits_bulk( - apply_to_existing_companies=True, - plan_id="plan_id", - traits=[ - UpdatePlanTraitTraitRequestBody( - trait_id="trait_id", - trait_value="trait_value", - ) +client.companies.list_users( + company_id="company_id", + ids=[ + "ids" ], + plan_id="plan_id", + q="q", + limit=1000000, + offset=1000000, ) ``` @@ -9857,7 +9786,7 @@ client.companies.update_plan_traits_bulk(
-**apply_to_existing_companies:** `bool` +**company_id:** `typing.Optional[str]` — Filter users by company ID (starts with comp_)
@@ -9865,7 +9794,7 @@ client.companies.update_plan_traits_bulk(
-**plan_id:** `str` +**ids:** `typing.Optional[typing.Union[str, typing.Sequence[str]]]` — Filter users by multiple user IDs (starts with user_)
@@ -9873,7 +9802,7 @@ client.companies.update_plan_traits_bulk(
-**traits:** `typing.List[UpdatePlanTraitTraitRequestBody]` +**plan_id:** `typing.Optional[str]` — Filter users by plan ID (starts with plan_)
@@ -9881,268 +9810,16 @@ client.companies.update_plan_traits_bulk(
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration. +**q:** `typing.Optional[str]` — Search for users by name, keys or string traits
-
-
+
+
-
-
-
- -
client.companies.count_plan_traits(...) -> CountPlanTraitsResponse -
-
- -#### 🔌 Usage - -
-
- -
-
- -```python -from schematic import Schematic -from schematic.environment import SchematicEnvironment - -client = Schematic( - api_key="", - environment=SchematicEnvironment.DEFAULT, -) - -client.companies.count_plan_traits( - ids=[ - "ids" - ], - plan_id="plan_id", - trait_id="trait_id", - trait_ids=[ - "trait_ids" - ], - limit=1000000, - offset=1000000, -) - -``` -
-
-
-
- -#### ⚙️ Parameters - -
-
- -
-
- -**ids:** `typing.Optional[typing.Union[str, typing.Sequence[str]]]` - -
-
- -
-
- -**plan_id:** `typing.Optional[str]` - -
-
- -
-
- -**trait_id:** `typing.Optional[str]` - -
-
- -
-
- -**trait_ids:** `typing.Optional[typing.Union[str, typing.Sequence[str]]]` - -
-
- -
-
- -**limit:** `typing.Optional[int]` — Page limit (default 100) - -
-
- -
-
- -**offset:** `typing.Optional[int]` — Page offset (default 0) - -
-
- -
-
- -**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration. - -
-
-
-
- - -
-
-
- -
client.companies.upsert_user_trait(...) -> UpsertUserTraitResponse -
-
- -#### 🔌 Usage - -
-
- -
-
- -```python -from schematic import Schematic -from schematic.environment import SchematicEnvironment - -client = Schematic( - api_key="", - environment=SchematicEnvironment.DEFAULT, -) - -client.companies.upsert_user_trait( - keys={ - "key": "value" - }, - trait="trait", -) - -``` -
-
-
-
- -#### ⚙️ Parameters - -
-
- -
-
- -**request:** `UpsertTraitRequestBody` - -
-
- -
-
- -**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration. - -
-
-
-
- - -
-
-
- -
client.companies.list_users(...) -> ListUsersResponse -
-
- -#### 🔌 Usage - -
-
- -
-
- -```python -from schematic import Schematic -from schematic.environment import SchematicEnvironment - -client = Schematic( - api_key="", - environment=SchematicEnvironment.DEFAULT, -) - -client.companies.list_users( - company_id="company_id", - ids=[ - "ids" - ], - plan_id="plan_id", - q="q", - limit=1000000, - offset=1000000, -) - -``` -
-
-
-
- -#### ⚙️ Parameters - -
-
- -
-
- -**company_id:** `typing.Optional[str]` — Filter users by company ID (starts with comp_) - -
-
- -
-
- -**ids:** `typing.Optional[typing.Union[str, typing.Sequence[str]]]` — Filter users by multiple user IDs (starts with user_) - -
-
- -
-
- -**plan_id:** `typing.Optional[str]` — Filter users by plan ID (starts with plan_) - -
-
- -
-
- -**q:** `typing.Optional[str]` — Search for users by name, keys or string traits - -
-
- -
-
- -**limit:** `typing.Optional[int]` — Page limit (default 100) - +**limit:** `typing.Optional[int]` — Page limit (default 100) +
@@ -10856,7 +10533,7 @@ client.entitlements.create_company_override(
-**metric_period:** `typing.Optional[CreateCompanyOverrideRequestBodyMetricPeriod]` +**metric_period:** `typing.Optional[MetricPeriod]`
@@ -10864,7 +10541,7 @@ client.entitlements.create_company_override(
-**metric_period_month_reset:** `typing.Optional[CreateCompanyOverrideRequestBodyMetricPeriodMonthReset]` +**metric_period_month_reset:** `typing.Optional[MetricPeriodMonthReset]`
@@ -11055,7 +10732,7 @@ client.entitlements.update_company_override(
-**metric_period:** `typing.Optional[UpdateCompanyOverrideRequestBodyMetricPeriod]` +**metric_period:** `typing.Optional[MetricPeriod]`
@@ -11063,7 +10740,7 @@ client.entitlements.update_company_override(
-**metric_period_month_reset:** `typing.Optional[UpdateCompanyOverrideRequestBodyMetricPeriodMonthReset]` +**metric_period_month_reset:** `typing.Optional[MetricPeriodMonthReset]`
@@ -12267,7 +11944,7 @@ client.entitlements.create_plan_entitlement(
-**metric_period:** `typing.Optional[CreatePlanEntitlementRequestBodyMetricPeriod]` +**metric_period:** `typing.Optional[MetricPeriod]`
@@ -12275,7 +11952,7 @@ client.entitlements.create_plan_entitlement(
-**metric_period_month_reset:** `typing.Optional[CreatePlanEntitlementRequestBodyMetricPeriodMonthReset]` +**metric_period_month_reset:** `typing.Optional[MetricPeriodMonthReset]`
@@ -12594,7 +12271,7 @@ client.entitlements.update_plan_entitlement(
-**metric_period:** `typing.Optional[UpdatePlanEntitlementRequestBodyMetricPeriod]` +**metric_period:** `typing.Optional[MetricPeriod]`
@@ -12602,7 +12279,7 @@ client.entitlements.update_plan_entitlement(
-**metric_period_month_reset:** `typing.Optional[UpdatePlanEntitlementRequestBodyMetricPeriodMonthReset]` +**metric_period_month_reset:** `typing.Optional[MetricPeriodMonthReset]`
@@ -12940,7 +12617,7 @@ client.entitlements.upsert_plan_entitlement_for_billing_product(
-**metric_period:** `typing.Optional[CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriod]` +**metric_period:** `typing.Optional[MetricPeriod]`
@@ -12948,7 +12625,7 @@ client.entitlements.upsert_plan_entitlement_for_billing_product(
-**metric_period_month_reset:** `typing.Optional[CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriodMonthReset]` +**metric_period_month_reset:** `typing.Optional[MetricPeriodMonthReset]`
@@ -13473,6 +13150,210 @@ client.plans.update_company_plans(
+
+
+
+ +
client.plans.list_custom_plan_billings(...) -> ListCustomPlanBillingsResponse +
+
+ +#### 🔌 Usage + +
+
+ +
+
+ +```python +from schematic import Schematic +from schematic.environment import SchematicEnvironment + +client = Schematic( + api_key="", + environment=SchematicEnvironment.DEFAULT, +) + +client.plans.list_custom_plan_billings( + company_id="company_id", + plan_id="plan_id", + status="active", + statuses=[ + "active" + ], + limit=1000000, + offset=1000000, +) + +``` +
+
+
+
+ +#### ⚙️ Parameters + +
+
+ +
+
+ +**company_id:** `typing.Optional[str]` — Filter by company ID + +
+
+ +
+
+ +**plan_id:** `typing.Optional[str]` — Filter by plan ID + +
+
+ +
+
+ +**status:** `typing.Optional[CustomPlanBillingStatus]` — Filter by billing status + +
+
+ +
+
+ +**statuses:** `typing.Optional[typing.Union[CustomPlanBillingStatus, typing.Sequence[CustomPlanBillingStatus]]]` — Filter by multiple billing statuses + +
+
+ +
+
+ +**limit:** `typing.Optional[int]` — Page limit (default 100) + +
+
+ +
+
+ +**offset:** `typing.Optional[int]` — Page offset (default 0) + +
+
+ +
+
+ +**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration. + +
+
+
+
+ + +
+
+
+ +
client.plans.retry_custom_plan_billing(...) -> RetryCustomPlanBillingResponse +
+
+ +#### 🔌 Usage + +
+
+ +
+
+ +```python +from schematic import Schematic, UpdatePayInAdvanceRequestBody +from schematic.environment import SchematicEnvironment + +client = Schematic( + api_key="", + environment=SchematicEnvironment.DEFAULT, +) + +client.plans.retry_custom_plan_billing( + custom_plan_billing_id="custom_plan_billing_id", + customer_email="customer_email", + pay_in_advance=[ + UpdatePayInAdvanceRequestBody( + price_id="price_id", + quantity=1000000, + ) + ], +) + +``` +
+
+
+
+ +#### ⚙️ Parameters + +
+
+ +
+
+ +**custom_plan_billing_id:** `str` — custom_plan_billing_id + +
+
+ +
+
+ +**customer_email:** `str` + +
+
+ +
+
+ +**pay_in_advance:** `typing.List[UpdatePayInAdvanceRequestBody]` + +
+
+ +
+
+ +**activation_strategy:** `typing.Optional[CustomPlanActivationStrategy]` + +
+
+ +
+
+ +**days_until_due:** `typing.Optional[int]` + +
+
+ +
+
+ +**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration. + +
+
+
+
+ +
@@ -13593,6 +13474,7 @@ client = Schematic( client.plans.list_plans( company_id="company_id", + exclude_company_scoped=True, for_fallback_plan=True, for_initial_plan=True, for_trial_expiry_plan=True, @@ -13632,6 +13514,14 @@ client.plans.list_plans(
+**exclude_company_scoped:** `typing.Optional[bool]` — Exclude plans that are scoped to a company (custom plans assigned to a company) + +
+
+ +
+
+ **for_fallback_plan:** `typing.Optional[bool]` — Filter for plans valid as fallback plans (not linked to billing)
@@ -14371,6 +14261,7 @@ client = Schematic( client.plans.count_plans( company_id="company_id", + exclude_company_scoped=True, for_fallback_plan=True, for_initial_plan=True, for_trial_expiry_plan=True, @@ -14410,6 +14301,14 @@ client.plans.count_plans(
+**exclude_company_scoped:** `typing.Optional[bool]` — Exclude plans that are scoped to a company (custom plans assigned to a company) + +
+
+ +
+
+ **for_fallback_plan:** `typing.Optional[bool]` — Filter for plans valid as fallback plans (not linked to billing)
@@ -16089,7 +15988,7 @@ client.features.create_feature(
-**maintainer_id:** `typing.Optional[str]` +**maintainer_account_member_id:** `typing.Optional[str]`
@@ -16287,7 +16186,7 @@ client.features.update_feature(
-**maintainer_id:** `typing.Optional[str]` +**maintainer_account_member_id:** `typing.Optional[str]`
@@ -16513,7 +16412,7 @@ client.features.upsert_feature_for_billing_product(
-**maintainer_id:** `typing.Optional[str]` +**maintainer_account_member_id:** `typing.Optional[str]`
@@ -17069,7 +16968,7 @@ client.features.update_flag_rules( CreateOrUpdateConditionGroupRequestBody( conditions=[ CreateOrUpdateConditionRequestBody( - condition_type="company", + condition_type="base_plan", operator="eq", resource_ids=[ "resource_ids" @@ -17080,7 +16979,7 @@ client.features.update_flag_rules( ], conditions=[ CreateOrUpdateConditionRequestBody( - condition_type="company", + condition_type="base_plan", operator="eq", resource_ids=[ "resource_ids" diff --git a/src/schematic/__init__.py b/src/schematic/__init__.py index 8894934..7fae489 100644 --- a/src/schematic/__init__.py +++ b/src/schematic/__init__.py @@ -84,6 +84,7 @@ CompanyPlanWithBillingSubView, CompanyResponseData, CompanySubscriptionResponseData, + ComparableOperator, CompatiblePlans, CompatiblePlansResponseData, ComponentCapabilities, @@ -96,36 +97,24 @@ ComponentSettingsResponseData, ComponentState, Condition, - ConditionConditionType, ConditionGroup, ConditionGroupResponseData, ConditionGroupView, - ConditionMetricPeriod, - ConditionMetricPeriodMonthReset, - ConditionOperator, ConditionResponseData, + ConditionType, ConditionView, CountResponse, CouponRequestBody, CreateBillingPlanCreditGrantRequestBody, CreateBillingPriceTierRequestBody, CreateEntitlementInBundleRequestBody, - CreateEntitlementInBundleRequestBodyMetricPeriod, - CreateEntitlementInBundleRequestBodyMetricPeriodMonthReset, CreateEntitlementReqCommon, - CreateEntitlementReqCommonMetricPeriod, - CreateEntitlementReqCommonMetricPeriodMonthReset, CreateEventRequestBody, CreateFlagRequestBody, CreateOrUpdateConditionGroupRequestBody, CreateOrUpdateConditionRequestBody, - CreateOrUpdateConditionRequestBodyConditionType, - CreateOrUpdateConditionRequestBodyMetricPeriod, - CreateOrUpdateConditionRequestBodyMetricPeriodMonthReset, - CreateOrUpdateConditionRequestBodyOperator, CreateOrUpdateFlagRequestBody, CreateOrUpdateRuleRequestBody, - CreateOrUpdateRuleRequestBodyRuleType, CreatePlanRequestBody, CreatePriceTierRequestBody, CreditAutoTopupAmountType, @@ -198,8 +187,7 @@ FeatureCompanyUserResponseData, FeatureDetailResponseData, FeatureEntitlement, - FeatureEntitlementMetricPeriod, - FeatureEntitlementMonthReset, + FeatureInPlanResponseData, FeatureLedgerResponseData, FeatureLifecyclePhase, FeatureResponseData, @@ -210,6 +198,7 @@ FeatureUsageTimeSeriesResponseData, FeatureView, FlagDetailResponseData, + FlagInPlanResponseData, FlagResponseData, FlagType, FlagView, @@ -226,6 +215,8 @@ ManagePlanRequest, ManagePlanResponseResponseData, MeterRequestBody, + MetricPeriod, + MetricPeriodMonthReset, OrderedPlansInGroup, PaymentMethodRequestBody, PaymentMethodResponseData, @@ -281,31 +272,24 @@ RuleConditionResponseData, RuleDetailResponseData, RuleResponseData, - RuleRuleType, + RuleType, RuleView, RulesDetailResponseData, RulesEngineSchemaVersion, RulesengineCheckFlagResult, - RulesengineCheckFlagResultFeatureUsagePeriod, - RulesengineCheckFlagResultRuleType, RulesengineCompany, RulesengineCompanyMetric, - RulesengineCompanyMetricMonthReset, - RulesengineCompanyMetricPeriod, RulesengineCondition, - RulesengineConditionConditionType, RulesengineConditionGroup, - RulesengineConditionMetricPeriod, - RulesengineConditionMetricPeriodMonthReset, - RulesengineConditionOperator, + RulesengineConditionType, RulesengineEntitlementValueType, RulesengineEntityType, RulesengineFeatureEntitlement, - RulesengineFeatureEntitlementMetricPeriod, - RulesengineFeatureEntitlementMonthReset, RulesengineFlag, + RulesengineMetricPeriod, + RulesengineMetricPeriodMonthReset, RulesengineRule, - RulesengineRuleRuleType, + RulesengineRuleType, RulesengineSubscription, RulesengineTrait, RulesengineTraitDefinition, @@ -334,8 +318,6 @@ UpdateBillingPlanCreditGrantRequestBody, UpdateCreditBundleRequestBody, UpdateEntitlementReqCommon, - UpdateEntitlementReqCommonMetricPeriod, - UpdateEntitlementReqCommonMetricPeriodMonthReset, UpdatePayInAdvanceRequestBody, UpdatePlanRequestBody, UpdatePlanTraitTraitRequestBody, @@ -464,13 +446,11 @@ CountUsersParams, CountUsersResponse, CreateCompanyResponse, - CreatePlanTraitResponse, CreateUserResponse, DeleteCompanyByKeysResponse, DeleteCompanyMembershipResponse, DeleteCompanyParams, DeleteCompanyResponse, - DeletePlanTraitResponse, DeleteUserByKeysResponse, DeleteUserResponse, GetActiveCompanySubscriptionParams, @@ -503,7 +483,6 @@ LookupUserParams, LookupUserResponse, UpdateEntityTraitDefinitionResponse, - UpdatePlanTraitResponse, UpdatePlanTraitsBulkResponse, UpsertCompanyResponse, UpsertCompanyTraitResponse, @@ -580,13 +559,7 @@ CountFeatureUsersResponse, CountPlanEntitlementsParams, CountPlanEntitlementsResponse, - CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriod, - CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriodMonthReset, - CreateCompanyOverrideRequestBodyMetricPeriod, - CreateCompanyOverrideRequestBodyMetricPeriodMonthReset, CreateCompanyOverrideResponse, - CreatePlanEntitlementRequestBodyMetricPeriod, - CreatePlanEntitlementRequestBodyMetricPeriodMonthReset, CreatePlanEntitlementResponse, DeleteCompanyOverrideResponse, DeletePlanEntitlementResponse, @@ -607,11 +580,7 @@ ListFeatureUsersResponse, ListPlanEntitlementsParams, ListPlanEntitlementsResponse, - UpdateCompanyOverrideRequestBodyMetricPeriod, - UpdateCompanyOverrideRequestBodyMetricPeriodMonthReset, UpdateCompanyOverrideResponse, - UpdatePlanEntitlementRequestBodyMetricPeriod, - UpdatePlanEntitlementRequestBodyMetricPeriodMonthReset, UpdatePlanEntitlementResponse, UpsertPlanEntitlementForBillingProductResponse, ) @@ -677,11 +646,14 @@ GetPlanResponse, ListBillingProductMatchCompaniesParams, ListBillingProductMatchCompaniesResponse, + ListCustomPlanBillingsParams, + ListCustomPlanBillingsResponse, ListPlanIssuesParams, ListPlanIssuesResponse, ListPlansParams, ListPlansResponse, PublishPlanVersionResponse, + RetryCustomPlanBillingResponse, UpdateCompanyPlansResponse, UpdatePlanResponse, UpsertBillingProductPlanResponse, @@ -796,6 +768,7 @@ "CompanyPlanWithBillingSubView": ".types", "CompanyResponseData": ".types", "CompanySubscriptionResponseData": ".types", + "ComparableOperator": ".types", "CompatiblePlans": ".types", "CompatiblePlansResponseData": ".types", "ComponentCapabilities": ".types", @@ -808,14 +781,11 @@ "ComponentSettingsResponseData": ".types", "ComponentState": ".types", "Condition": ".types", - "ConditionConditionType": ".types", "ConditionGroup": ".types", "ConditionGroupResponseData": ".types", "ConditionGroupView": ".types", - "ConditionMetricPeriod": ".types", - "ConditionMetricPeriodMonthReset": ".types", - "ConditionOperator": ".types", "ConditionResponseData": ".types", + "ConditionType": ".types", "ConditionView": ".types", "CountApiKeysParams": ".accounts", "CountApiKeysResponse": ".accounts", @@ -881,13 +851,9 @@ "CouponRequestBody": ".types", "CreateApiKeyResponse": ".accounts", "CreateBillingCreditResponse": ".credits", - "CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriod": ".entitlements", - "CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriodMonthReset": ".entitlements", "CreateBillingPlanCreditGrantRequestBody": ".types", "CreateBillingPlanCreditGrantResponse": ".credits", "CreateBillingPriceTierRequestBody": ".types", - "CreateCompanyOverrideRequestBodyMetricPeriod": ".entitlements", - "CreateCompanyOverrideRequestBodyMetricPeriodMonthReset": ".entitlements", "CreateCompanyOverrideResponse": ".entitlements", "CreateCompanyResponse": ".companies", "CreateComponentResponse": ".components", @@ -895,11 +861,7 @@ "CreateCustomPlanResponse": ".plans", "CreateDataExportResponse": ".dataexports", "CreateEntitlementInBundleRequestBody": ".types", - "CreateEntitlementInBundleRequestBodyMetricPeriod": ".types", - "CreateEntitlementInBundleRequestBodyMetricPeriodMonthReset": ".types", "CreateEntitlementReqCommon": ".types", - "CreateEntitlementReqCommonMetricPeriod": ".types", - "CreateEntitlementReqCommonMetricPeriodMonthReset": ".types", "CreateEnvironmentResponse": ".accounts", "CreateEventBatchResponse": ".events", "CreateEventRequestBody": ".types", @@ -909,21 +871,13 @@ "CreateFlagResponse": ".features", "CreateOrUpdateConditionGroupRequestBody": ".types", "CreateOrUpdateConditionRequestBody": ".types", - "CreateOrUpdateConditionRequestBodyConditionType": ".types", - "CreateOrUpdateConditionRequestBodyMetricPeriod": ".types", - "CreateOrUpdateConditionRequestBodyMetricPeriodMonthReset": ".types", - "CreateOrUpdateConditionRequestBodyOperator": ".types", "CreateOrUpdateFlagRequestBody": ".types", "CreateOrUpdateRuleRequestBody": ".types", - "CreateOrUpdateRuleRequestBodyRuleType": ".types", "CreatePlanBundleResponse": ".planbundle", - "CreatePlanEntitlementRequestBodyMetricPeriod": ".entitlements", - "CreatePlanEntitlementRequestBodyMetricPeriodMonthReset": ".entitlements", "CreatePlanEntitlementResponse": ".entitlements", "CreatePlanGroupResponse": ".plangroups", "CreatePlanRequestBody": ".types", "CreatePlanResponse": ".plans", - "CreatePlanTraitResponse": ".companies", "CreatePriceTierRequestBody": ".types", "CreateScheduledCheckoutResponse": ".scheduledcheckout", "CreateUserResponse": ".companies", @@ -981,7 +935,6 @@ "DeleteFlagResponse": ".features", "DeletePlanEntitlementResponse": ".entitlements", "DeletePlanResponse": ".plans", - "DeletePlanTraitResponse": ".companies", "DeletePlanVersionParams": ".plans", "DeletePlanVersionResponse": ".plans", "DeleteProductPriceResponse": ".billing", @@ -1022,8 +975,7 @@ "FeatureCompanyUserResponseData": ".types", "FeatureDetailResponseData": ".types", "FeatureEntitlement": ".types", - "FeatureEntitlementMetricPeriod": ".types", - "FeatureEntitlementMonthReset": ".types", + "FeatureInPlanResponseData": ".types", "FeatureLedgerResponseData": ".types", "FeatureLifecyclePhase": ".types", "FeatureResponseData": ".types", @@ -1034,6 +986,7 @@ "FeatureUsageTimeSeriesResponseData": ".types", "FeatureView": ".types", "FlagDetailResponseData": ".types", + "FlagInPlanResponseData": ".types", "FlagResponseData": ".types", "FlagType": ".types", "FlagView": ".types", @@ -1131,6 +1084,8 @@ "ListCreditBundlesResponse": ".credits", "ListCreditEventLedgerParams": ".credits", "ListCreditEventLedgerResponse": ".credits", + "ListCustomPlanBillingsParams": ".plans", + "ListCustomPlanBillingsResponse": ".plans", "ListCustomersWithSubscriptionsParams": ".billing", "ListCustomersWithSubscriptionsResponse": ".billing", "ListEntityKeyDefinitionsParams": ".companies", @@ -1189,6 +1144,8 @@ "ManagePlanResponse": ".checkout", "ManagePlanResponseResponseData": ".types", "MeterRequestBody": ".types", + "MetricPeriod": ".types", + "MetricPeriodMonthReset": ".types", "NotFoundError": ".errors", "OrderedPlansInGroup": ".types", "PaymentMethodRequestBody": ".types", @@ -1244,6 +1201,7 @@ "QuickstartResponse": ".accounts", "RawEventBatchResponseData": ".types", "RawEventResponseData": ".types", + "RetryCustomPlanBillingResponse": ".plans", "Rule": ".types", "RuleConditionDetailResponseData": ".types", "RuleConditionGroupDetailResponseData": ".types", @@ -1251,31 +1209,24 @@ "RuleConditionResponseData": ".types", "RuleDetailResponseData": ".types", "RuleResponseData": ".types", - "RuleRuleType": ".types", + "RuleType": ".types", "RuleView": ".types", "RulesDetailResponseData": ".types", "RulesEngineSchemaVersion": ".types", "RulesengineCheckFlagResult": ".types", - "RulesengineCheckFlagResultFeatureUsagePeriod": ".types", - "RulesengineCheckFlagResultRuleType": ".types", "RulesengineCompany": ".types", "RulesengineCompanyMetric": ".types", - "RulesengineCompanyMetricMonthReset": ".types", - "RulesengineCompanyMetricPeriod": ".types", "RulesengineCondition": ".types", - "RulesengineConditionConditionType": ".types", "RulesengineConditionGroup": ".types", - "RulesengineConditionMetricPeriod": ".types", - "RulesengineConditionMetricPeriodMonthReset": ".types", - "RulesengineConditionOperator": ".types", + "RulesengineConditionType": ".types", "RulesengineEntitlementValueType": ".types", "RulesengineEntityType": ".types", "RulesengineFeatureEntitlement": ".types", - "RulesengineFeatureEntitlementMetricPeriod": ".types", - "RulesengineFeatureEntitlementMonthReset": ".types", "RulesengineFlag": ".types", + "RulesengineMetricPeriod": ".types", + "RulesengineMetricPeriodMonthReset": ".types", "RulesengineRule": ".types", - "RulesengineRuleRuleType": ".types", + "RulesengineRuleType": ".types", "RulesengineSubscription": ".types", "RulesengineTrait": ".types", "RulesengineTraitDefinition": ".types", @@ -1310,8 +1261,6 @@ "UpdateBillingCreditResponse": ".credits", "UpdateBillingPlanCreditGrantRequestBody": ".types", "UpdateBillingPlanCreditGrantResponse": ".credits", - "UpdateCompanyOverrideRequestBodyMetricPeriod": ".entitlements", - "UpdateCompanyOverrideRequestBodyMetricPeriodMonthReset": ".entitlements", "UpdateCompanyOverrideResponse": ".entitlements", "UpdateCompanyPlansResponse": ".plans", "UpdateComponentResponse": ".components", @@ -1319,8 +1268,6 @@ "UpdateCreditBundleRequestBody": ".types", "UpdateCustomerSubscriptionTrialEndResponse": ".checkout", "UpdateEntitlementReqCommon": ".types", - "UpdateEntitlementReqCommonMetricPeriod": ".types", - "UpdateEntitlementReqCommonMetricPeriodMonthReset": ".types", "UpdateEntityTraitDefinitionResponse": ".companies", "UpdateEnvironmentResponse": ".accounts", "UpdateFeatureResponse": ".features", @@ -1328,13 +1275,10 @@ "UpdateFlagRulesResponse": ".features", "UpdatePayInAdvanceRequestBody": ".types", "UpdatePlanBundleResponse": ".planbundle", - "UpdatePlanEntitlementRequestBodyMetricPeriod": ".entitlements", - "UpdatePlanEntitlementRequestBodyMetricPeriodMonthReset": ".entitlements", "UpdatePlanEntitlementResponse": ".entitlements", "UpdatePlanGroupResponse": ".plangroups", "UpdatePlanRequestBody": ".types", "UpdatePlanResponse": ".plans", - "UpdatePlanTraitResponse": ".companies", "UpdatePlanTraitTraitRequestBody": ".types", "UpdatePlanTraitsBulkResponse": ".companies", "UpdateRuleRequestBody": ".types", @@ -1507,6 +1451,7 @@ def __dir__(): "CompanyPlanWithBillingSubView", "CompanyResponseData", "CompanySubscriptionResponseData", + "ComparableOperator", "CompatiblePlans", "CompatiblePlansResponseData", "ComponentCapabilities", @@ -1519,14 +1464,11 @@ def __dir__(): "ComponentSettingsResponseData", "ComponentState", "Condition", - "ConditionConditionType", "ConditionGroup", "ConditionGroupResponseData", "ConditionGroupView", - "ConditionMetricPeriod", - "ConditionMetricPeriodMonthReset", - "ConditionOperator", "ConditionResponseData", + "ConditionType", "ConditionView", "CountApiKeysParams", "CountApiKeysResponse", @@ -1592,13 +1534,9 @@ def __dir__(): "CouponRequestBody", "CreateApiKeyResponse", "CreateBillingCreditResponse", - "CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriod", - "CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriodMonthReset", "CreateBillingPlanCreditGrantRequestBody", "CreateBillingPlanCreditGrantResponse", "CreateBillingPriceTierRequestBody", - "CreateCompanyOverrideRequestBodyMetricPeriod", - "CreateCompanyOverrideRequestBodyMetricPeriodMonthReset", "CreateCompanyOverrideResponse", "CreateCompanyResponse", "CreateComponentResponse", @@ -1606,11 +1544,7 @@ def __dir__(): "CreateCustomPlanResponse", "CreateDataExportResponse", "CreateEntitlementInBundleRequestBody", - "CreateEntitlementInBundleRequestBodyMetricPeriod", - "CreateEntitlementInBundleRequestBodyMetricPeriodMonthReset", "CreateEntitlementReqCommon", - "CreateEntitlementReqCommonMetricPeriod", - "CreateEntitlementReqCommonMetricPeriodMonthReset", "CreateEnvironmentResponse", "CreateEventBatchResponse", "CreateEventRequestBody", @@ -1620,21 +1554,13 @@ def __dir__(): "CreateFlagResponse", "CreateOrUpdateConditionGroupRequestBody", "CreateOrUpdateConditionRequestBody", - "CreateOrUpdateConditionRequestBodyConditionType", - "CreateOrUpdateConditionRequestBodyMetricPeriod", - "CreateOrUpdateConditionRequestBodyMetricPeriodMonthReset", - "CreateOrUpdateConditionRequestBodyOperator", "CreateOrUpdateFlagRequestBody", "CreateOrUpdateRuleRequestBody", - "CreateOrUpdateRuleRequestBodyRuleType", "CreatePlanBundleResponse", - "CreatePlanEntitlementRequestBodyMetricPeriod", - "CreatePlanEntitlementRequestBodyMetricPeriodMonthReset", "CreatePlanEntitlementResponse", "CreatePlanGroupResponse", "CreatePlanRequestBody", "CreatePlanResponse", - "CreatePlanTraitResponse", "CreatePriceTierRequestBody", "CreateScheduledCheckoutResponse", "CreateUserResponse", @@ -1692,7 +1618,6 @@ def __dir__(): "DeleteFlagResponse", "DeletePlanEntitlementResponse", "DeletePlanResponse", - "DeletePlanTraitResponse", "DeletePlanVersionParams", "DeletePlanVersionResponse", "DeleteProductPriceResponse", @@ -1733,8 +1658,7 @@ def __dir__(): "FeatureCompanyUserResponseData", "FeatureDetailResponseData", "FeatureEntitlement", - "FeatureEntitlementMetricPeriod", - "FeatureEntitlementMonthReset", + "FeatureInPlanResponseData", "FeatureLedgerResponseData", "FeatureLifecyclePhase", "FeatureResponseData", @@ -1745,6 +1669,7 @@ def __dir__(): "FeatureUsageTimeSeriesResponseData", "FeatureView", "FlagDetailResponseData", + "FlagInPlanResponseData", "FlagResponseData", "FlagType", "FlagView", @@ -1842,6 +1767,8 @@ def __dir__(): "ListCreditBundlesResponse", "ListCreditEventLedgerParams", "ListCreditEventLedgerResponse", + "ListCustomPlanBillingsParams", + "ListCustomPlanBillingsResponse", "ListCustomersWithSubscriptionsParams", "ListCustomersWithSubscriptionsResponse", "ListEntityKeyDefinitionsParams", @@ -1900,6 +1827,8 @@ def __dir__(): "ManagePlanResponse", "ManagePlanResponseResponseData", "MeterRequestBody", + "MetricPeriod", + "MetricPeriodMonthReset", "NotFoundError", "OrderedPlansInGroup", "PaymentMethodRequestBody", @@ -1955,6 +1884,7 @@ def __dir__(): "QuickstartResponse", "RawEventBatchResponseData", "RawEventResponseData", + "RetryCustomPlanBillingResponse", "Rule", "RuleConditionDetailResponseData", "RuleConditionGroupDetailResponseData", @@ -1962,31 +1892,24 @@ def __dir__(): "RuleConditionResponseData", "RuleDetailResponseData", "RuleResponseData", - "RuleRuleType", + "RuleType", "RuleView", "RulesDetailResponseData", "RulesEngineSchemaVersion", "RulesengineCheckFlagResult", - "RulesengineCheckFlagResultFeatureUsagePeriod", - "RulesengineCheckFlagResultRuleType", "RulesengineCompany", "RulesengineCompanyMetric", - "RulesengineCompanyMetricMonthReset", - "RulesengineCompanyMetricPeriod", "RulesengineCondition", - "RulesengineConditionConditionType", "RulesengineConditionGroup", - "RulesengineConditionMetricPeriod", - "RulesengineConditionMetricPeriodMonthReset", - "RulesengineConditionOperator", + "RulesengineConditionType", "RulesengineEntitlementValueType", "RulesengineEntityType", "RulesengineFeatureEntitlement", - "RulesengineFeatureEntitlementMetricPeriod", - "RulesengineFeatureEntitlementMonthReset", "RulesengineFlag", + "RulesengineMetricPeriod", + "RulesengineMetricPeriodMonthReset", "RulesengineRule", - "RulesengineRuleRuleType", + "RulesengineRuleType", "RulesengineSubscription", "RulesengineTrait", "RulesengineTraitDefinition", @@ -2021,8 +1944,6 @@ def __dir__(): "UpdateBillingCreditResponse", "UpdateBillingPlanCreditGrantRequestBody", "UpdateBillingPlanCreditGrantResponse", - "UpdateCompanyOverrideRequestBodyMetricPeriod", - "UpdateCompanyOverrideRequestBodyMetricPeriodMonthReset", "UpdateCompanyOverrideResponse", "UpdateCompanyPlansResponse", "UpdateComponentResponse", @@ -2030,8 +1951,6 @@ def __dir__(): "UpdateCreditBundleRequestBody", "UpdateCustomerSubscriptionTrialEndResponse", "UpdateEntitlementReqCommon", - "UpdateEntitlementReqCommonMetricPeriod", - "UpdateEntitlementReqCommonMetricPeriodMonthReset", "UpdateEntityTraitDefinitionResponse", "UpdateEnvironmentResponse", "UpdateFeatureResponse", @@ -2039,13 +1958,10 @@ def __dir__(): "UpdateFlagRulesResponse", "UpdatePayInAdvanceRequestBody", "UpdatePlanBundleResponse", - "UpdatePlanEntitlementRequestBodyMetricPeriod", - "UpdatePlanEntitlementRequestBodyMetricPeriodMonthReset", "UpdatePlanEntitlementResponse", "UpdatePlanGroupResponse", "UpdatePlanRequestBody", "UpdatePlanResponse", - "UpdatePlanTraitResponse", "UpdatePlanTraitTraitRequestBody", "UpdatePlanTraitsBulkResponse", "UpdateRuleRequestBody", diff --git a/src/schematic/base_client.py b/src/schematic/base_client.py index aafa8b0..0dbd075 100644 --- a/src/schematic/base_client.py +++ b/src/schematic/base_client.py @@ -7,9 +7,7 @@ import httpx from .core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .core.logging import LogConfig, Logger -from .core.request_options import RequestOptions from .environment import SchematicEnvironment -from .raw_base_client import AsyncRawBaseSchematic, RawBaseSchematic if typing.TYPE_CHECKING: from .accesstokens.client import AccesstokensClient, AsyncAccesstokensClient @@ -103,7 +101,6 @@ def __init__( timeout=_defaulted_timeout, logging=logging, ) - self._raw_client = RawBaseSchematic(client_wrapper=self._client_wrapper) self._accounts: typing.Optional[AccountsClient] = None self._billing: typing.Optional[BillingClient] = None self._credits: typing.Optional[CreditsClient] = None @@ -124,79 +121,6 @@ def __init__( self._accesstokens: typing.Optional[AccesstokensClient] = None self._webhooks: typing.Optional[WebhooksClient] = None - @property - def with_raw_response(self) -> RawBaseSchematic: - """ - Retrieves a raw implementation of this client that returns raw responses. - - Returns - ------- - RawBaseSchematic - """ - return self._raw_client - - def put_plan_audiences_plan_audience_id( - self, plan_audience_id: str, *, request_options: typing.Optional[RequestOptions] = None - ) -> None: - """ - Parameters - ---------- - plan_audience_id : str - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - None - - Examples - -------- - from schematic import Schematic - - client = Schematic( - api_key="YOUR_API_KEY", - ) - client.put_plan_audiences_plan_audience_id( - plan_audience_id="plan_audience_id", - ) - """ - _response = self._raw_client.put_plan_audiences_plan_audience_id( - plan_audience_id, request_options=request_options - ) - return _response.data - - def delete_plan_audiences_plan_audience_id( - self, plan_audience_id: str, *, request_options: typing.Optional[RequestOptions] = None - ) -> None: - """ - Parameters - ---------- - plan_audience_id : str - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - None - - Examples - -------- - from schematic import Schematic - - client = Schematic( - api_key="YOUR_API_KEY", - ) - client.delete_plan_audiences_plan_audience_id( - plan_audience_id="plan_audience_id", - ) - """ - _response = self._raw_client.delete_plan_audiences_plan_audience_id( - plan_audience_id, request_options=request_options - ) - return _response.data - @property def accounts(self): if self._accounts is None: @@ -420,7 +344,6 @@ def __init__( timeout=_defaulted_timeout, logging=logging, ) - self._raw_client = AsyncRawBaseSchematic(client_wrapper=self._client_wrapper) self._accounts: typing.Optional[AsyncAccountsClient] = None self._billing: typing.Optional[AsyncBillingClient] = None self._credits: typing.Optional[AsyncCreditsClient] = None @@ -441,95 +364,6 @@ def __init__( self._accesstokens: typing.Optional[AsyncAccesstokensClient] = None self._webhooks: typing.Optional[AsyncWebhooksClient] = None - @property - def with_raw_response(self) -> AsyncRawBaseSchematic: - """ - Retrieves a raw implementation of this client that returns raw responses. - - Returns - ------- - AsyncRawBaseSchematic - """ - return self._raw_client - - async def put_plan_audiences_plan_audience_id( - self, plan_audience_id: str, *, request_options: typing.Optional[RequestOptions] = None - ) -> None: - """ - Parameters - ---------- - plan_audience_id : str - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - None - - Examples - -------- - import asyncio - - from schematic import AsyncSchematic - - client = AsyncSchematic( - api_key="YOUR_API_KEY", - ) - - - async def main() -> None: - await client.put_plan_audiences_plan_audience_id( - plan_audience_id="plan_audience_id", - ) - - - asyncio.run(main()) - """ - _response = await self._raw_client.put_plan_audiences_plan_audience_id( - plan_audience_id, request_options=request_options - ) - return _response.data - - async def delete_plan_audiences_plan_audience_id( - self, plan_audience_id: str, *, request_options: typing.Optional[RequestOptions] = None - ) -> None: - """ - Parameters - ---------- - plan_audience_id : str - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - None - - Examples - -------- - import asyncio - - from schematic import AsyncSchematic - - client = AsyncSchematic( - api_key="YOUR_API_KEY", - ) - - - async def main() -> None: - await client.delete_plan_audiences_plan_audience_id( - plan_audience_id="plan_audience_id", - ) - - - asyncio.run(main()) - """ - _response = await self._raw_client.delete_plan_audiences_plan_audience_id( - plan_audience_id, request_options=request_options - ) - return _response.data - @property def accounts(self): if self._accounts is None: diff --git a/src/schematic/billing/client.py b/src/schematic/billing/client.py index db69452..5faffeb 100644 --- a/src/schematic/billing/client.py +++ b/src/schematic/billing/client.py @@ -883,6 +883,7 @@ def upsert_billing_price( product_external_id: str, usage_type: BillingPriceUsageType, meter_id: typing.Optional[str] = OMIT, + nickname: typing.Optional[str] = OMIT, package_size: typing.Optional[int] = OMIT, price_decimal: typing.Optional[str] = OMIT, provider_type: typing.Optional[BillingProviderType] = OMIT, @@ -914,6 +915,8 @@ def upsert_billing_price( meter_id : typing.Optional[str] + nickname : typing.Optional[str] + package_size : typing.Optional[int] price_decimal : typing.Optional[str] @@ -966,6 +969,7 @@ def upsert_billing_price( product_external_id=product_external_id, usage_type=usage_type, meter_id=meter_id, + nickname=nickname, package_size=package_size, price_decimal=price_decimal, provider_type=provider_type, @@ -2489,6 +2493,7 @@ async def upsert_billing_price( product_external_id: str, usage_type: BillingPriceUsageType, meter_id: typing.Optional[str] = OMIT, + nickname: typing.Optional[str] = OMIT, package_size: typing.Optional[int] = OMIT, price_decimal: typing.Optional[str] = OMIT, provider_type: typing.Optional[BillingProviderType] = OMIT, @@ -2520,6 +2525,8 @@ async def upsert_billing_price( meter_id : typing.Optional[str] + nickname : typing.Optional[str] + package_size : typing.Optional[int] price_decimal : typing.Optional[str] @@ -2580,6 +2587,7 @@ async def main() -> None: product_external_id=product_external_id, usage_type=usage_type, meter_id=meter_id, + nickname=nickname, package_size=package_size, price_decimal=price_decimal, provider_type=provider_type, diff --git a/src/schematic/billing/raw_client.py b/src/schematic/billing/raw_client.py index a1adcff..d2d02aa 100644 --- a/src/schematic/billing/raw_client.py +++ b/src/schematic/billing/raw_client.py @@ -1682,6 +1682,7 @@ def upsert_billing_price( product_external_id: str, usage_type: BillingPriceUsageType, meter_id: typing.Optional[str] = OMIT, + nickname: typing.Optional[str] = OMIT, package_size: typing.Optional[int] = OMIT, price_decimal: typing.Optional[str] = OMIT, provider_type: typing.Optional[BillingProviderType] = OMIT, @@ -1713,6 +1714,8 @@ def upsert_billing_price( meter_id : typing.Optional[str] + nickname : typing.Optional[str] + package_size : typing.Optional[int] price_decimal : typing.Optional[str] @@ -1739,6 +1742,7 @@ def upsert_billing_price( "interval": interval, "is_active": is_active, "meter_id": meter_id, + "nickname": nickname, "package_size": package_size, "price": price, "price_decimal": price_decimal, @@ -4465,6 +4469,7 @@ async def upsert_billing_price( product_external_id: str, usage_type: BillingPriceUsageType, meter_id: typing.Optional[str] = OMIT, + nickname: typing.Optional[str] = OMIT, package_size: typing.Optional[int] = OMIT, price_decimal: typing.Optional[str] = OMIT, provider_type: typing.Optional[BillingProviderType] = OMIT, @@ -4496,6 +4501,8 @@ async def upsert_billing_price( meter_id : typing.Optional[str] + nickname : typing.Optional[str] + package_size : typing.Optional[int] price_decimal : typing.Optional[str] @@ -4522,6 +4529,7 @@ async def upsert_billing_price( "interval": interval, "is_active": is_active, "meter_id": meter_id, + "nickname": nickname, "package_size": package_size, "price": price, "price_decimal": price_decimal, diff --git a/src/schematic/companies/__init__.py b/src/schematic/companies/__init__.py index 95ab31d..ffb2813 100644 --- a/src/schematic/companies/__init__.py +++ b/src/schematic/companies/__init__.py @@ -18,13 +18,11 @@ CountUsersParams, CountUsersResponse, CreateCompanyResponse, - CreatePlanTraitResponse, CreateUserResponse, DeleteCompanyByKeysResponse, DeleteCompanyMembershipResponse, DeleteCompanyParams, DeleteCompanyResponse, - DeletePlanTraitResponse, DeleteUserByKeysResponse, DeleteUserResponse, GetActiveCompanySubscriptionParams, @@ -57,7 +55,6 @@ LookupUserParams, LookupUserResponse, UpdateEntityTraitDefinitionResponse, - UpdatePlanTraitResponse, UpdatePlanTraitsBulkResponse, UpsertCompanyResponse, UpsertCompanyTraitResponse, @@ -76,13 +73,11 @@ "CountUsersParams": ".types", "CountUsersResponse": ".types", "CreateCompanyResponse": ".types", - "CreatePlanTraitResponse": ".types", "CreateUserResponse": ".types", "DeleteCompanyByKeysResponse": ".types", "DeleteCompanyMembershipResponse": ".types", "DeleteCompanyParams": ".types", "DeleteCompanyResponse": ".types", - "DeletePlanTraitResponse": ".types", "DeleteUserByKeysResponse": ".types", "DeleteUserResponse": ".types", "GetActiveCompanySubscriptionParams": ".types", @@ -115,7 +110,6 @@ "LookupUserParams": ".types", "LookupUserResponse": ".types", "UpdateEntityTraitDefinitionResponse": ".types", - "UpdatePlanTraitResponse": ".types", "UpdatePlanTraitsBulkResponse": ".types", "UpsertCompanyResponse": ".types", "UpsertCompanyTraitResponse": ".types", @@ -157,13 +151,11 @@ def __dir__(): "CountUsersParams", "CountUsersResponse", "CreateCompanyResponse", - "CreatePlanTraitResponse", "CreateUserResponse", "DeleteCompanyByKeysResponse", "DeleteCompanyMembershipResponse", "DeleteCompanyParams", "DeleteCompanyResponse", - "DeletePlanTraitResponse", "DeleteUserByKeysResponse", "DeleteUserResponse", "GetActiveCompanySubscriptionParams", @@ -196,7 +188,6 @@ def __dir__(): "LookupUserParams", "LookupUserResponse", "UpdateEntityTraitDefinitionResponse", - "UpdatePlanTraitResponse", "UpdatePlanTraitsBulkResponse", "UpsertCompanyResponse", "UpsertCompanyTraitResponse", diff --git a/src/schematic/companies/client.py b/src/schematic/companies/client.py index aa40c25..f9ef3e7 100644 --- a/src/schematic/companies/client.py +++ b/src/schematic/companies/client.py @@ -20,12 +20,10 @@ from .types.count_plan_traits_response import CountPlanTraitsResponse from .types.count_users_response import CountUsersResponse from .types.create_company_response import CreateCompanyResponse -from .types.create_plan_trait_response import CreatePlanTraitResponse from .types.create_user_response import CreateUserResponse from .types.delete_company_by_keys_response import DeleteCompanyByKeysResponse from .types.delete_company_membership_response import DeleteCompanyMembershipResponse from .types.delete_company_response import DeleteCompanyResponse -from .types.delete_plan_trait_response import DeletePlanTraitResponse from .types.delete_user_by_keys_response import DeleteUserByKeysResponse from .types.delete_user_response import DeleteUserResponse from .types.get_active_company_subscription_response import GetActiveCompanySubscriptionResponse @@ -47,7 +45,6 @@ from .types.lookup_company_response import LookupCompanyResponse from .types.lookup_user_response import LookupUserResponse from .types.update_entity_trait_definition_response import UpdateEntityTraitDefinitionResponse -from .types.update_plan_trait_response import UpdatePlanTraitResponse from .types.update_plan_traits_bulk_response import UpdatePlanTraitsBulkResponse from .types.upsert_company_response import UpsertCompanyResponse from .types.upsert_company_trait_response import UpsertCompanyTraitResponse @@ -1434,44 +1431,6 @@ def list_plan_traits( ) return _response.data - def create_plan_trait( - self, *, plan_id: str, trait_id: str, trait_value: str, request_options: typing.Optional[RequestOptions] = None - ) -> CreatePlanTraitResponse: - """ - Parameters - ---------- - plan_id : str - - trait_id : str - - trait_value : str - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - CreatePlanTraitResponse - Created - - Examples - -------- - from schematic import Schematic - - client = Schematic( - api_key="YOUR_API_KEY", - ) - client.companies.create_plan_trait( - plan_id="plan_id", - trait_id="trait_id", - trait_value="trait_value", - ) - """ - _response = self._raw_client.create_plan_trait( - plan_id=plan_id, trait_id=trait_id, trait_value=trait_value, request_options=request_options - ) - return _response.data - def get_plan_trait( self, plan_trait_id: str, *, request_options: typing.Optional[RequestOptions] = None ) -> GetPlanTraitResponse: @@ -1503,81 +1462,6 @@ def get_plan_trait( _response = self._raw_client.get_plan_trait(plan_trait_id, request_options=request_options) return _response.data - def update_plan_trait( - self, - plan_trait_id: str, - *, - plan_id: str, - trait_value: str, - request_options: typing.Optional[RequestOptions] = None, - ) -> UpdatePlanTraitResponse: - """ - Parameters - ---------- - plan_trait_id : str - plan_trait_id - - plan_id : str - - trait_value : str - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - UpdatePlanTraitResponse - OK - - Examples - -------- - from schematic import Schematic - - client = Schematic( - api_key="YOUR_API_KEY", - ) - client.companies.update_plan_trait( - plan_trait_id="plan_trait_id", - plan_id="plan_id", - trait_value="trait_value", - ) - """ - _response = self._raw_client.update_plan_trait( - plan_trait_id, plan_id=plan_id, trait_value=trait_value, request_options=request_options - ) - return _response.data - - def delete_plan_trait( - self, plan_trait_id: str, *, request_options: typing.Optional[RequestOptions] = None - ) -> DeletePlanTraitResponse: - """ - Parameters - ---------- - plan_trait_id : str - plan_trait_id - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - DeletePlanTraitResponse - OK - - Examples - -------- - from schematic import Schematic - - client = Schematic( - api_key="YOUR_API_KEY", - ) - client.companies.delete_plan_trait( - plan_trait_id="plan_trait_id", - ) - """ - _response = self._raw_client.delete_plan_trait(plan_trait_id, request_options=request_options) - return _response.data - def update_plan_traits_bulk( self, *, @@ -3729,52 +3613,6 @@ async def main() -> None: ) return _response.data - async def create_plan_trait( - self, *, plan_id: str, trait_id: str, trait_value: str, request_options: typing.Optional[RequestOptions] = None - ) -> CreatePlanTraitResponse: - """ - Parameters - ---------- - plan_id : str - - trait_id : str - - trait_value : str - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - CreatePlanTraitResponse - Created - - Examples - -------- - import asyncio - - from schematic import AsyncSchematic - - client = AsyncSchematic( - api_key="YOUR_API_KEY", - ) - - - async def main() -> None: - await client.companies.create_plan_trait( - plan_id="plan_id", - trait_id="trait_id", - trait_value="trait_value", - ) - - - asyncio.run(main()) - """ - _response = await self._raw_client.create_plan_trait( - plan_id=plan_id, trait_id=trait_id, trait_value=trait_value, request_options=request_options - ) - return _response.data - async def get_plan_trait( self, plan_trait_id: str, *, request_options: typing.Optional[RequestOptions] = None ) -> GetPlanTraitResponse: @@ -3814,97 +3652,6 @@ async def main() -> None: _response = await self._raw_client.get_plan_trait(plan_trait_id, request_options=request_options) return _response.data - async def update_plan_trait( - self, - plan_trait_id: str, - *, - plan_id: str, - trait_value: str, - request_options: typing.Optional[RequestOptions] = None, - ) -> UpdatePlanTraitResponse: - """ - Parameters - ---------- - plan_trait_id : str - plan_trait_id - - plan_id : str - - trait_value : str - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - UpdatePlanTraitResponse - OK - - Examples - -------- - import asyncio - - from schematic import AsyncSchematic - - client = AsyncSchematic( - api_key="YOUR_API_KEY", - ) - - - async def main() -> None: - await client.companies.update_plan_trait( - plan_trait_id="plan_trait_id", - plan_id="plan_id", - trait_value="trait_value", - ) - - - asyncio.run(main()) - """ - _response = await self._raw_client.update_plan_trait( - plan_trait_id, plan_id=plan_id, trait_value=trait_value, request_options=request_options - ) - return _response.data - - async def delete_plan_trait( - self, plan_trait_id: str, *, request_options: typing.Optional[RequestOptions] = None - ) -> DeletePlanTraitResponse: - """ - Parameters - ---------- - plan_trait_id : str - plan_trait_id - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - DeletePlanTraitResponse - OK - - Examples - -------- - import asyncio - - from schematic import AsyncSchematic - - client = AsyncSchematic( - api_key="YOUR_API_KEY", - ) - - - async def main() -> None: - await client.companies.delete_plan_trait( - plan_trait_id="plan_trait_id", - ) - - - asyncio.run(main()) - """ - _response = await self._raw_client.delete_plan_trait(plan_trait_id, request_options=request_options) - return _response.data - async def update_plan_traits_bulk( self, *, diff --git a/src/schematic/companies/raw_client.py b/src/schematic/companies/raw_client.py index cbe2a1a..4e14395 100644 --- a/src/schematic/companies/raw_client.py +++ b/src/schematic/companies/raw_client.py @@ -32,12 +32,10 @@ from .types.count_plan_traits_response import CountPlanTraitsResponse from .types.count_users_response import CountUsersResponse from .types.create_company_response import CreateCompanyResponse -from .types.create_plan_trait_response import CreatePlanTraitResponse from .types.create_user_response import CreateUserResponse from .types.delete_company_by_keys_response import DeleteCompanyByKeysResponse from .types.delete_company_membership_response import DeleteCompanyMembershipResponse from .types.delete_company_response import DeleteCompanyResponse -from .types.delete_plan_trait_response import DeletePlanTraitResponse from .types.delete_user_by_keys_response import DeleteUserByKeysResponse from .types.delete_user_response import DeleteUserResponse from .types.get_active_company_subscription_response import GetActiveCompanySubscriptionResponse @@ -59,7 +57,6 @@ from .types.lookup_company_response import LookupCompanyResponse from .types.lookup_user_response import LookupUserResponse from .types.update_entity_trait_definition_response import UpdateEntityTraitDefinitionResponse -from .types.update_plan_trait_response import UpdatePlanTraitResponse from .types.update_plan_traits_bulk_response import UpdatePlanTraitsBulkResponse from .types.upsert_company_response import UpsertCompanyResponse from .types.upsert_company_trait_response import UpsertCompanyTraitResponse @@ -3027,118 +3024,6 @@ def list_plan_traits( status_code=_response.status_code, headers=dict(_response.headers), body=_response_json ) - def create_plan_trait( - self, *, plan_id: str, trait_id: str, trait_value: str, request_options: typing.Optional[RequestOptions] = None - ) -> HttpResponse[CreatePlanTraitResponse]: - """ - Parameters - ---------- - plan_id : str - - trait_id : str - - trait_value : str - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - HttpResponse[CreatePlanTraitResponse] - Created - """ - _response = self._client_wrapper.httpx_client.request( - "plan-traits", - method="POST", - json={ - "plan_id": plan_id, - "trait_id": trait_id, - "trait_value": trait_value, - }, - headers={ - "content-type": "application/json", - }, - request_options=request_options, - omit=OMIT, - ) - try: - if 200 <= _response.status_code < 300: - _data = typing.cast( - CreatePlanTraitResponse, - parse_obj_as( - type_=CreatePlanTraitResponse, # type: ignore - object_=_response.json(), - ), - ) - return HttpResponse(response=_response, data=_data) - if _response.status_code == 400: - raise BadRequestError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - if _response.status_code == 401: - raise UnauthorizedError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - if _response.status_code == 403: - raise ForbiddenError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - if _response.status_code == 404: - raise NotFoundError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - if _response.status_code == 500: - raise InternalServerError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - _response_json = _response.json() - except JSONDecodeError: - raise core_api_error_ApiError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.text - ) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) - raise core_api_error_ApiError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response_json - ) - def get_plan_trait( self, plan_trait_id: str, *, request_options: typing.Optional[RequestOptions] = None ) -> HttpResponse[GetPlanTraitResponse]: @@ -3228,38 +3113,40 @@ def get_plan_trait( status_code=_response.status_code, headers=dict(_response.headers), body=_response_json ) - def update_plan_trait( + def update_plan_traits_bulk( self, - plan_trait_id: str, *, + apply_to_existing_companies: bool, plan_id: str, - trait_value: str, + traits: typing.Sequence[UpdatePlanTraitTraitRequestBody], request_options: typing.Optional[RequestOptions] = None, - ) -> HttpResponse[UpdatePlanTraitResponse]: + ) -> HttpResponse[UpdatePlanTraitsBulkResponse]: """ Parameters ---------- - plan_trait_id : str - plan_trait_id + apply_to_existing_companies : bool plan_id : str - trait_value : str + traits : typing.Sequence[UpdatePlanTraitTraitRequestBody] request_options : typing.Optional[RequestOptions] Request-specific configuration. Returns ------- - HttpResponse[UpdatePlanTraitResponse] + HttpResponse[UpdatePlanTraitsBulkResponse] OK """ _response = self._client_wrapper.httpx_client.request( - f"plan-traits/{jsonable_encoder(plan_trait_id)}", - method="PUT", + "plan-traits/bulk", + method="POST", json={ + "apply_to_existing_companies": apply_to_existing_companies, "plan_id": plan_id, - "trait_value": trait_value, + "traits": convert_and_respect_annotation_metadata( + object_=traits, annotation=typing.Sequence[UpdatePlanTraitTraitRequestBody], direction="write" + ), }, headers={ "content-type": "application/json", @@ -3270,9 +3157,9 @@ def update_plan_trait( try: if 200 <= _response.status_code < 300: _data = typing.cast( - UpdatePlanTraitResponse, + UpdatePlanTraitsBulkResponse, parse_obj_as( - type_=UpdatePlanTraitResponse, # type: ignore + type_=UpdatePlanTraitsBulkResponse, # type: ignore object_=_response.json(), ), ) @@ -3345,34 +3232,61 @@ def update_plan_trait( status_code=_response.status_code, headers=dict(_response.headers), body=_response_json ) - def delete_plan_trait( - self, plan_trait_id: str, *, request_options: typing.Optional[RequestOptions] = None - ) -> HttpResponse[DeletePlanTraitResponse]: + def count_plan_traits( + self, + *, + ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None, + plan_id: typing.Optional[str] = None, + trait_id: typing.Optional[str] = None, + trait_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None, + limit: typing.Optional[int] = None, + offset: typing.Optional[int] = None, + request_options: typing.Optional[RequestOptions] = None, + ) -> HttpResponse[CountPlanTraitsResponse]: """ Parameters ---------- - plan_trait_id : str - plan_trait_id + ids : typing.Optional[typing.Union[str, typing.Sequence[str]]] + + plan_id : typing.Optional[str] + + trait_id : typing.Optional[str] + + trait_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]] + + limit : typing.Optional[int] + Page limit (default 100) + + offset : typing.Optional[int] + Page offset (default 0) request_options : typing.Optional[RequestOptions] Request-specific configuration. Returns ------- - HttpResponse[DeletePlanTraitResponse] + HttpResponse[CountPlanTraitsResponse] OK """ _response = self._client_wrapper.httpx_client.request( - f"plan-traits/{jsonable_encoder(plan_trait_id)}", - method="DELETE", + "plan-traits/count", + method="GET", + params={ + "ids": ids, + "plan_id": plan_id, + "trait_id": trait_id, + "trait_ids": trait_ids, + "limit": limit, + "offset": offset, + }, request_options=request_options, ) try: if 200 <= _response.status_code < 300: _data = typing.cast( - DeletePlanTraitResponse, + CountPlanTraitsResponse, parse_obj_as( - type_=DeletePlanTraitResponse, # type: ignore + type_=CountPlanTraitsResponse, # type: ignore object_=_response.json(), ), ) @@ -3445,40 +3359,51 @@ def delete_plan_trait( status_code=_response.status_code, headers=dict(_response.headers), body=_response_json ) - def update_plan_traits_bulk( + def upsert_user_trait( self, *, - apply_to_existing_companies: bool, - plan_id: str, - traits: typing.Sequence[UpdatePlanTraitTraitRequestBody], + keys: typing.Dict[str, str], + trait: str, + incr: typing.Optional[int] = OMIT, + set_: typing.Optional[str] = OMIT, + update_only: typing.Optional[bool] = OMIT, request_options: typing.Optional[RequestOptions] = None, - ) -> HttpResponse[UpdatePlanTraitsBulkResponse]: + ) -> HttpResponse[UpsertUserTraitResponse]: """ Parameters ---------- - apply_to_existing_companies : bool + keys : typing.Dict[str, str] + Key/value pairs to identify a company or user - plan_id : str + trait : str + Name of the trait to update - traits : typing.Sequence[UpdatePlanTraitTraitRequestBody] + incr : typing.Optional[int] + Amount to increment the trait by (positive or negative) + + set_ : typing.Optional[str] + Value to set the trait to + + update_only : typing.Optional[bool] + Unless this is set, the company or user will be created if it does not already exist request_options : typing.Optional[RequestOptions] Request-specific configuration. Returns ------- - HttpResponse[UpdatePlanTraitsBulkResponse] + HttpResponse[UpsertUserTraitResponse] OK """ _response = self._client_wrapper.httpx_client.request( - "plan-traits/bulk", + "user-traits", method="POST", json={ - "apply_to_existing_companies": apply_to_existing_companies, - "plan_id": plan_id, - "traits": convert_and_respect_annotation_metadata( - object_=traits, annotation=typing.Sequence[UpdatePlanTraitTraitRequestBody], direction="write" - ), + "incr": incr, + "keys": keys, + "set": set_, + "trait": trait, + "update_only": update_only, }, headers={ "content-type": "application/json", @@ -3489,9 +3414,9 @@ def update_plan_traits_bulk( try: if 200 <= _response.status_code < 300: _data = typing.cast( - UpdatePlanTraitsBulkResponse, + UpsertUserTraitResponse, parse_obj_as( - type_=UpdatePlanTraitsBulkResponse, # type: ignore + type_=UpsertUserTraitResponse, # type: ignore object_=_response.json(), ), ) @@ -3564,27 +3489,31 @@ def update_plan_traits_bulk( status_code=_response.status_code, headers=dict(_response.headers), body=_response_json ) - def count_plan_traits( + def list_users( self, *, + company_id: typing.Optional[str] = None, ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None, plan_id: typing.Optional[str] = None, - trait_id: typing.Optional[str] = None, - trait_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None, + q: typing.Optional[str] = None, limit: typing.Optional[int] = None, offset: typing.Optional[int] = None, request_options: typing.Optional[RequestOptions] = None, - ) -> HttpResponse[CountPlanTraitsResponse]: + ) -> HttpResponse[ListUsersResponse]: """ Parameters ---------- + company_id : typing.Optional[str] + Filter users by company ID (starts with comp_) + ids : typing.Optional[typing.Union[str, typing.Sequence[str]]] + Filter users by multiple user IDs (starts with user_) plan_id : typing.Optional[str] + Filter users by plan ID (starts with plan_) - trait_id : typing.Optional[str] - - trait_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]] + q : typing.Optional[str] + Search for users by name, keys or string traits limit : typing.Optional[int] Page limit (default 100) @@ -3597,17 +3526,17 @@ def count_plan_traits( Returns ------- - HttpResponse[CountPlanTraitsResponse] + HttpResponse[ListUsersResponse] OK """ _response = self._client_wrapper.httpx_client.request( - "plan-traits/count", + "users", method="GET", params={ + "company_id": company_id, "ids": ids, "plan_id": plan_id, - "trait_id": trait_id, - "trait_ids": trait_ids, + "q": q, "limit": limit, "offset": offset, }, @@ -3616,9 +3545,9 @@ def count_plan_traits( try: if 200 <= _response.status_code < 300: _data = typing.cast( - CountPlanTraitsResponse, + ListUsersResponse, parse_obj_as( - type_=CountPlanTraitsResponse, # type: ignore + type_=ListUsersResponse, # type: ignore object_=_response.json(), ), ) @@ -3691,759 +3620,26 @@ def count_plan_traits( status_code=_response.status_code, headers=dict(_response.headers), body=_response_json ) - def upsert_user_trait( + def upsert_user( self, *, keys: typing.Dict[str, str], - trait: str, - incr: typing.Optional[int] = OMIT, - set_: typing.Optional[str] = OMIT, + companies: typing.Optional[typing.Sequence[typing.Dict[str, str]]] = OMIT, + company: typing.Optional[typing.Dict[str, str]] = OMIT, + company_id: typing.Optional[str] = OMIT, + company_ids: typing.Optional[typing.Sequence[str]] = OMIT, + id: typing.Optional[str] = OMIT, + last_seen_at: typing.Optional[dt.datetime] = OMIT, + name: typing.Optional[str] = OMIT, + traits: typing.Optional[typing.Dict[str, typing.Any]] = OMIT, update_only: typing.Optional[bool] = OMIT, request_options: typing.Optional[RequestOptions] = None, - ) -> HttpResponse[UpsertUserTraitResponse]: + ) -> HttpResponse[UpsertUserResponse]: """ Parameters ---------- keys : typing.Dict[str, str] - Key/value pairs to identify a company or user - - trait : str - Name of the trait to update - - incr : typing.Optional[int] - Amount to increment the trait by (positive or negative) - - set_ : typing.Optional[str] - Value to set the trait to - - update_only : typing.Optional[bool] - Unless this is set, the company or user will be created if it does not already exist - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - HttpResponse[UpsertUserTraitResponse] - OK - """ - _response = self._client_wrapper.httpx_client.request( - "user-traits", - method="POST", - json={ - "incr": incr, - "keys": keys, - "set": set_, - "trait": trait, - "update_only": update_only, - }, - headers={ - "content-type": "application/json", - }, - request_options=request_options, - omit=OMIT, - ) - try: - if 200 <= _response.status_code < 300: - _data = typing.cast( - UpsertUserTraitResponse, - parse_obj_as( - type_=UpsertUserTraitResponse, # type: ignore - object_=_response.json(), - ), - ) - return HttpResponse(response=_response, data=_data) - if _response.status_code == 400: - raise BadRequestError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - if _response.status_code == 401: - raise UnauthorizedError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - if _response.status_code == 403: - raise ForbiddenError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - if _response.status_code == 404: - raise NotFoundError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - if _response.status_code == 500: - raise InternalServerError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - _response_json = _response.json() - except JSONDecodeError: - raise core_api_error_ApiError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.text - ) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) - raise core_api_error_ApiError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response_json - ) - - def list_users( - self, - *, - company_id: typing.Optional[str] = None, - ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None, - plan_id: typing.Optional[str] = None, - q: typing.Optional[str] = None, - limit: typing.Optional[int] = None, - offset: typing.Optional[int] = None, - request_options: typing.Optional[RequestOptions] = None, - ) -> HttpResponse[ListUsersResponse]: - """ - Parameters - ---------- - company_id : typing.Optional[str] - Filter users by company ID (starts with comp_) - - ids : typing.Optional[typing.Union[str, typing.Sequence[str]]] - Filter users by multiple user IDs (starts with user_) - - plan_id : typing.Optional[str] - Filter users by plan ID (starts with plan_) - - q : typing.Optional[str] - Search for users by name, keys or string traits - - limit : typing.Optional[int] - Page limit (default 100) - - offset : typing.Optional[int] - Page offset (default 0) - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - HttpResponse[ListUsersResponse] - OK - """ - _response = self._client_wrapper.httpx_client.request( - "users", - method="GET", - params={ - "company_id": company_id, - "ids": ids, - "plan_id": plan_id, - "q": q, - "limit": limit, - "offset": offset, - }, - request_options=request_options, - ) - try: - if 200 <= _response.status_code < 300: - _data = typing.cast( - ListUsersResponse, - parse_obj_as( - type_=ListUsersResponse, # type: ignore - object_=_response.json(), - ), - ) - return HttpResponse(response=_response, data=_data) - if _response.status_code == 400: - raise BadRequestError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - if _response.status_code == 401: - raise UnauthorizedError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - if _response.status_code == 403: - raise ForbiddenError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - if _response.status_code == 404: - raise NotFoundError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - if _response.status_code == 500: - raise InternalServerError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - _response_json = _response.json() - except JSONDecodeError: - raise core_api_error_ApiError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.text - ) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) - raise core_api_error_ApiError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response_json - ) - - def upsert_user( - self, - *, - keys: typing.Dict[str, str], - companies: typing.Optional[typing.Sequence[typing.Dict[str, str]]] = OMIT, - company: typing.Optional[typing.Dict[str, str]] = OMIT, - company_id: typing.Optional[str] = OMIT, - company_ids: typing.Optional[typing.Sequence[str]] = OMIT, - id: typing.Optional[str] = OMIT, - last_seen_at: typing.Optional[dt.datetime] = OMIT, - name: typing.Optional[str] = OMIT, - traits: typing.Optional[typing.Dict[str, typing.Any]] = OMIT, - update_only: typing.Optional[bool] = OMIT, - request_options: typing.Optional[RequestOptions] = None, - ) -> HttpResponse[UpsertUserResponse]: - """ - Parameters - ---------- - keys : typing.Dict[str, str] - See [Key Management](https://docs.schematichq.com/developer_resources/key_management) for more information - - companies : typing.Optional[typing.Sequence[typing.Dict[str, str]]] - Optionally specify companies using array of key/value pairs - - company : typing.Optional[typing.Dict[str, str]] - Add user to this company. Takes priority over companies. For exhaustive list of companies, use companies - - company_id : typing.Optional[str] - Add user to this company. Takes priority over company_ids. For exhaustive list of companies, use company_ids - - company_ids : typing.Optional[typing.Sequence[str]] - Optionally specify companies using Schematic company ID - - id : typing.Optional[str] - If you know the Schematic ID, you can use that here instead of keys - - last_seen_at : typing.Optional[dt.datetime] - - name : typing.Optional[str] - - traits : typing.Optional[typing.Dict[str, typing.Any]] - A map of trait names to trait values - - update_only : typing.Optional[bool] - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - HttpResponse[UpsertUserResponse] - OK - """ - _response = self._client_wrapper.httpx_client.request( - "users", - method="POST", - json={ - "companies": companies, - "company": company, - "company_id": company_id, - "company_ids": company_ids, - "id": id, - "keys": keys, - "last_seen_at": last_seen_at, - "name": name, - "traits": traits, - "update_only": update_only, - }, - headers={ - "content-type": "application/json", - }, - request_options=request_options, - omit=OMIT, - ) - try: - if 200 <= _response.status_code < 300: - _data = typing.cast( - UpsertUserResponse, - parse_obj_as( - type_=UpsertUserResponse, # type: ignore - object_=_response.json(), - ), - ) - return HttpResponse(response=_response, data=_data) - if _response.status_code == 400: - raise BadRequestError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - if _response.status_code == 401: - raise UnauthorizedError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - if _response.status_code == 403: - raise ForbiddenError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - if _response.status_code == 404: - raise NotFoundError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - if _response.status_code == 500: - raise InternalServerError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - _response_json = _response.json() - except JSONDecodeError: - raise core_api_error_ApiError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.text - ) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) - raise core_api_error_ApiError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response_json - ) - - def get_user( - self, user_id: str, *, request_options: typing.Optional[RequestOptions] = None - ) -> HttpResponse[GetUserResponse]: - """ - Parameters - ---------- - user_id : str - user_id - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - HttpResponse[GetUserResponse] - OK - """ - _response = self._client_wrapper.httpx_client.request( - f"users/{jsonable_encoder(user_id)}", - method="GET", - request_options=request_options, - ) - try: - if 200 <= _response.status_code < 300: - _data = typing.cast( - GetUserResponse, - parse_obj_as( - type_=GetUserResponse, # type: ignore - object_=_response.json(), - ), - ) - return HttpResponse(response=_response, data=_data) - if _response.status_code == 401: - raise UnauthorizedError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - if _response.status_code == 403: - raise ForbiddenError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - if _response.status_code == 404: - raise NotFoundError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - if _response.status_code == 500: - raise InternalServerError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - _response_json = _response.json() - except JSONDecodeError: - raise core_api_error_ApiError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.text - ) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) - raise core_api_error_ApiError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response_json - ) - - def delete_user( - self, user_id: str, *, request_options: typing.Optional[RequestOptions] = None - ) -> HttpResponse[DeleteUserResponse]: - """ - Parameters - ---------- - user_id : str - user_id - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - HttpResponse[DeleteUserResponse] - OK - """ - _response = self._client_wrapper.httpx_client.request( - f"users/{jsonable_encoder(user_id)}", - method="DELETE", - request_options=request_options, - ) - try: - if 200 <= _response.status_code < 300: - _data = typing.cast( - DeleteUserResponse, - parse_obj_as( - type_=DeleteUserResponse, # type: ignore - object_=_response.json(), - ), - ) - return HttpResponse(response=_response, data=_data) - if _response.status_code == 400: - raise BadRequestError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - if _response.status_code == 401: - raise UnauthorizedError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - if _response.status_code == 403: - raise ForbiddenError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - if _response.status_code == 404: - raise NotFoundError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - if _response.status_code == 500: - raise InternalServerError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - _response_json = _response.json() - except JSONDecodeError: - raise core_api_error_ApiError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.text - ) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) - raise core_api_error_ApiError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response_json - ) - - def count_users( - self, - *, - company_id: typing.Optional[str] = None, - ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None, - plan_id: typing.Optional[str] = None, - q: typing.Optional[str] = None, - limit: typing.Optional[int] = None, - offset: typing.Optional[int] = None, - request_options: typing.Optional[RequestOptions] = None, - ) -> HttpResponse[CountUsersResponse]: - """ - Parameters - ---------- - company_id : typing.Optional[str] - Filter users by company ID (starts with comp_) - - ids : typing.Optional[typing.Union[str, typing.Sequence[str]]] - Filter users by multiple user IDs (starts with user_) - - plan_id : typing.Optional[str] - Filter users by plan ID (starts with plan_) - - q : typing.Optional[str] - Search for users by name, keys or string traits - - limit : typing.Optional[int] - Page limit (default 100) - - offset : typing.Optional[int] - Page offset (default 0) - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - HttpResponse[CountUsersResponse] - OK - """ - _response = self._client_wrapper.httpx_client.request( - "users/count", - method="GET", - params={ - "company_id": company_id, - "ids": ids, - "plan_id": plan_id, - "q": q, - "limit": limit, - "offset": offset, - }, - request_options=request_options, - ) - try: - if 200 <= _response.status_code < 300: - _data = typing.cast( - CountUsersResponse, - parse_obj_as( - type_=CountUsersResponse, # type: ignore - object_=_response.json(), - ), - ) - return HttpResponse(response=_response, data=_data) - if _response.status_code == 400: - raise BadRequestError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - if _response.status_code == 401: - raise UnauthorizedError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - if _response.status_code == 403: - raise ForbiddenError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - if _response.status_code == 404: - raise NotFoundError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - if _response.status_code == 500: - raise InternalServerError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - _response_json = _response.json() - except JSONDecodeError: - raise core_api_error_ApiError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.text - ) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) - raise core_api_error_ApiError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response_json - ) - - def create_user( - self, - *, - keys: typing.Dict[str, str], - companies: typing.Optional[typing.Sequence[typing.Dict[str, str]]] = OMIT, - company: typing.Optional[typing.Dict[str, str]] = OMIT, - company_id: typing.Optional[str] = OMIT, - company_ids: typing.Optional[typing.Sequence[str]] = OMIT, - id: typing.Optional[str] = OMIT, - last_seen_at: typing.Optional[dt.datetime] = OMIT, - name: typing.Optional[str] = OMIT, - traits: typing.Optional[typing.Dict[str, typing.Any]] = OMIT, - update_only: typing.Optional[bool] = OMIT, - request_options: typing.Optional[RequestOptions] = None, - ) -> HttpResponse[CreateUserResponse]: - """ - Parameters - ---------- - keys : typing.Dict[str, str] - See [Key Management](https://docs.schematichq.com/developer_resources/key_management) for more information + See [Key Management](https://docs.schematichq.com/developer_resources/key_management) for more information companies : typing.Optional[typing.Sequence[typing.Dict[str, str]]] Optionally specify companies using array of key/value pairs @@ -4474,11 +3670,11 @@ def create_user( Returns ------- - HttpResponse[CreateUserResponse] - Created + HttpResponse[UpsertUserResponse] + OK """ _response = self._client_wrapper.httpx_client.request( - "users/create", + "users", method="POST", json={ "companies": companies, @@ -4501,9 +3697,9 @@ def create_user( try: if 200 <= _response.status_code < 300: _data = typing.cast( - CreateUserResponse, + UpsertUserResponse, parse_obj_as( - type_=CreateUserResponse, # type: ignore + type_=UpsertUserResponse, # type: ignore object_=_response.json(), ), ) @@ -4576,55 +3772,38 @@ def create_user( status_code=_response.status_code, headers=dict(_response.headers), body=_response_json ) - def delete_user_by_keys( - self, *, keys: typing.Dict[str, str], request_options: typing.Optional[RequestOptions] = None - ) -> HttpResponse[DeleteUserByKeysResponse]: + def get_user( + self, user_id: str, *, request_options: typing.Optional[RequestOptions] = None + ) -> HttpResponse[GetUserResponse]: """ Parameters ---------- - keys : typing.Dict[str, str] + user_id : str + user_id request_options : typing.Optional[RequestOptions] Request-specific configuration. Returns ------- - HttpResponse[DeleteUserByKeysResponse] + HttpResponse[GetUserResponse] OK """ _response = self._client_wrapper.httpx_client.request( - "users/delete", - method="POST", - json={ - "keys": keys, - }, - headers={ - "content-type": "application/json", - }, + f"users/{jsonable_encoder(user_id)}", + method="GET", request_options=request_options, - omit=OMIT, ) try: if 200 <= _response.status_code < 300: _data = typing.cast( - DeleteUserByKeysResponse, + GetUserResponse, parse_obj_as( - type_=DeleteUserByKeysResponse, # type: ignore + type_=GetUserResponse, # type: ignore object_=_response.json(), ), ) return HttpResponse(response=_response, data=_data) - if _response.status_code == 400: - raise BadRequestError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) if _response.status_code == 401: raise UnauthorizedError( headers=dict(_response.headers), @@ -4682,41 +3861,49 @@ def delete_user_by_keys( status_code=_response.status_code, headers=dict(_response.headers), body=_response_json ) - def lookup_user( - self, *, keys: typing.Dict[str, str], request_options: typing.Optional[RequestOptions] = None - ) -> HttpResponse[LookupUserResponse]: + def delete_user( + self, user_id: str, *, request_options: typing.Optional[RequestOptions] = None + ) -> HttpResponse[DeleteUserResponse]: """ Parameters ---------- - keys : typing.Dict[str, str] - Key/value pairs + user_id : str + user_id request_options : typing.Optional[RequestOptions] Request-specific configuration. Returns ------- - HttpResponse[LookupUserResponse] + HttpResponse[DeleteUserResponse] OK """ _response = self._client_wrapper.httpx_client.request( - "users/lookup", - method="GET", - params={ - "keys": keys, - }, + f"users/{jsonable_encoder(user_id)}", + method="DELETE", request_options=request_options, ) try: if 200 <= _response.status_code < 300: _data = typing.cast( - LookupUserResponse, + DeleteUserResponse, parse_obj_as( - type_=LookupUserResponse, # type: ignore + type_=DeleteUserResponse, # type: ignore object_=_response.json(), ), ) return HttpResponse(response=_response, data=_data) + if _response.status_code == 400: + raise BadRequestError( + headers=dict(_response.headers), + body=typing.cast( + types_api_error_ApiError, + parse_obj_as( + type_=types_api_error_ApiError, # type: ignore + object_=_response.json(), + ), + ), + ) if _response.status_code == 401: raise UnauthorizedError( headers=dict(_response.headers), @@ -4774,90 +3961,31 @@ def lookup_user( status_code=_response.status_code, headers=dict(_response.headers), body=_response_json ) - -class AsyncRawCompaniesClient: - def __init__(self, *, client_wrapper: AsyncClientWrapper): - self._client_wrapper = client_wrapper - - async def list_companies( + def count_users( self, *, - credit_type_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None, - has_scheduled_downgrade: typing.Optional[bool] = None, + company_id: typing.Optional[str] = None, ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None, - monetized_subscriptions: typing.Optional[bool] = None, plan_id: typing.Optional[str] = None, - plan_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None, - plan_version_id: typing.Optional[str] = None, q: typing.Optional[str] = None, - sort_order_column: typing.Optional[str] = None, - sort_order_direction: typing.Optional[SortDirection] = None, - subscription_statuses: typing.Optional[ - typing.Union[SubscriptionStatus, typing.Sequence[SubscriptionStatus]] - ] = None, - subscription_types: typing.Optional[typing.Union[SubscriptionType, typing.Sequence[SubscriptionType]]] = None, - with_entitlement_for: typing.Optional[str] = None, - without_feature_override_for: typing.Optional[str] = None, - without_plan: typing.Optional[bool] = None, - without_subscription: typing.Optional[bool] = None, - with_subscription: typing.Optional[bool] = None, limit: typing.Optional[int] = None, offset: typing.Optional[int] = None, request_options: typing.Optional[RequestOptions] = None, - ) -> AsyncHttpResponse[ListCompaniesResponse]: + ) -> HttpResponse[CountUsersResponse]: """ Parameters ---------- - credit_type_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]] - Filter companies by one or more credit type IDs (each ID starts with bcrd_) - - has_scheduled_downgrade : typing.Optional[bool] - Filter companies that have a pending scheduled downgrade + company_id : typing.Optional[str] + Filter users by company ID (starts with comp_) ids : typing.Optional[typing.Union[str, typing.Sequence[str]]] - Filter companies by multiple company IDs (starts with comp_) - - monetized_subscriptions : typing.Optional[bool] - Filter companies that have monetized subscriptions + Filter users by multiple user IDs (starts with user_) plan_id : typing.Optional[str] - Filter companies by plan ID (starts with plan_) - - plan_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]] - Filter companies by one or more plan IDs (each ID starts with plan_) - - plan_version_id : typing.Optional[str] - Filter companies by plan version ID (starts with plvr_) + Filter users by plan ID (starts with plan_) q : typing.Optional[str] - Search for companies by name, keys or string traits - - sort_order_column : typing.Optional[str] - Column to sort by (e.g. name, created_at, last_seen_at) - - sort_order_direction : typing.Optional[SortDirection] - Direction to sort by (asc or desc) - - subscription_statuses : typing.Optional[typing.Union[SubscriptionStatus, typing.Sequence[SubscriptionStatus]]] - Filter companies by one or more subscription statuses - - subscription_types : typing.Optional[typing.Union[SubscriptionType, typing.Sequence[SubscriptionType]]] - Filter companies by one or more subscription types - - with_entitlement_for : typing.Optional[str] - Filter companies that have an entitlement (plan entitlement or company override) for the specified feature ID - - without_feature_override_for : typing.Optional[str] - Filter out companies that already have a company override for the specified feature ID - - without_plan : typing.Optional[bool] - Filter out companies that have a plan - - without_subscription : typing.Optional[bool] - Filter out companies that have a subscription - - with_subscription : typing.Optional[bool] - Filter companies that have a subscription + Search for users by name, keys or string traits limit : typing.Optional[int] Page limit (default 100) @@ -4870,30 +3998,17 @@ async def list_companies( Returns ------- - AsyncHttpResponse[ListCompaniesResponse] + HttpResponse[CountUsersResponse] OK """ - _response = await self._client_wrapper.httpx_client.request( - "companies", + _response = self._client_wrapper.httpx_client.request( + "users/count", method="GET", params={ - "credit_type_ids": credit_type_ids, - "has_scheduled_downgrade": has_scheduled_downgrade, + "company_id": company_id, "ids": ids, - "monetized_subscriptions": monetized_subscriptions, "plan_id": plan_id, - "plan_ids": plan_ids, - "plan_version_id": plan_version_id, "q": q, - "sort_order_column": sort_order_column, - "sort_order_direction": sort_order_direction, - "subscription_statuses": subscription_statuses, - "subscription_types": subscription_types, - "with_entitlement_for": with_entitlement_for, - "without_feature_override_for": without_feature_override_for, - "without_plan": without_plan, - "without_subscription": without_subscription, - "with_subscription": with_subscription, "limit": limit, "offset": offset, }, @@ -4902,13 +4017,13 @@ async def list_companies( try: if 200 <= _response.status_code < 300: _data = typing.cast( - ListCompaniesResponse, + CountUsersResponse, parse_obj_as( - type_=ListCompaniesResponse, # type: ignore + type_=CountUsersResponse, # type: ignore object_=_response.json(), ), ) - return AsyncHttpResponse(response=_response, data=_data) + return HttpResponse(response=_response, data=_data) if _response.status_code == 400: raise BadRequestError( headers=dict(_response.headers), @@ -4977,24 +4092,39 @@ async def list_companies( status_code=_response.status_code, headers=dict(_response.headers), body=_response_json ) - async def upsert_company( + def create_user( self, *, keys: typing.Dict[str, str], + companies: typing.Optional[typing.Sequence[typing.Dict[str, str]]] = OMIT, + company: typing.Optional[typing.Dict[str, str]] = OMIT, + company_id: typing.Optional[str] = OMIT, + company_ids: typing.Optional[typing.Sequence[str]] = OMIT, id: typing.Optional[str] = OMIT, last_seen_at: typing.Optional[dt.datetime] = OMIT, name: typing.Optional[str] = OMIT, - prevent_key_remap: typing.Optional[bool] = OMIT, traits: typing.Optional[typing.Dict[str, typing.Any]] = OMIT, update_only: typing.Optional[bool] = OMIT, request_options: typing.Optional[RequestOptions] = None, - ) -> AsyncHttpResponse[UpsertCompanyResponse]: + ) -> HttpResponse[CreateUserResponse]: """ Parameters ---------- keys : typing.Dict[str, str] See [Key Management](https://docs.schematichq.com/developer_resources/key_management) for more information + companies : typing.Optional[typing.Sequence[typing.Dict[str, str]]] + Optionally specify companies using array of key/value pairs + + company : typing.Optional[typing.Dict[str, str]] + Add user to this company. Takes priority over companies. For exhaustive list of companies, use companies + + company_id : typing.Optional[str] + Add user to this company. Takes priority over company_ids. For exhaustive list of companies, use company_ids + + company_ids : typing.Optional[typing.Sequence[str]] + Optionally specify companies using Schematic company ID + id : typing.Optional[str] If you know the Schematic ID, you can use that here instead of keys @@ -5002,8 +4132,6 @@ async def upsert_company( name : typing.Optional[str] - prevent_key_remap : typing.Optional[bool] - traits : typing.Optional[typing.Dict[str, typing.Any]] A map of trait names to trait values @@ -5014,18 +4142,21 @@ async def upsert_company( Returns ------- - AsyncHttpResponse[UpsertCompanyResponse] - OK + HttpResponse[CreateUserResponse] + Created """ - _response = await self._client_wrapper.httpx_client.request( - "companies", + _response = self._client_wrapper.httpx_client.request( + "users/create", method="POST", json={ + "companies": companies, + "company": company, + "company_id": company_id, + "company_ids": company_ids, "id": id, "keys": keys, "last_seen_at": last_seen_at, "name": name, - "prevent_key_remap": prevent_key_remap, "traits": traits, "update_only": update_only, }, @@ -5038,13 +4169,13 @@ async def upsert_company( try: if 200 <= _response.status_code < 300: _data = typing.cast( - UpsertCompanyResponse, + CreateUserResponse, parse_obj_as( - type_=UpsertCompanyResponse, # type: ignore + type_=CreateUserResponse, # type: ignore object_=_response.json(), ), ) - return AsyncHttpResponse(response=_response, data=_data) + return HttpResponse(response=_response, data=_data) if _response.status_code == 400: raise BadRequestError( headers=dict(_response.headers), @@ -5113,38 +4244,55 @@ async def upsert_company( status_code=_response.status_code, headers=dict(_response.headers), body=_response_json ) - async def get_company( - self, company_id: str, *, request_options: typing.Optional[RequestOptions] = None - ) -> AsyncHttpResponse[GetCompanyResponse]: + def delete_user_by_keys( + self, *, keys: typing.Dict[str, str], request_options: typing.Optional[RequestOptions] = None + ) -> HttpResponse[DeleteUserByKeysResponse]: """ Parameters ---------- - company_id : str - company_id + keys : typing.Dict[str, str] request_options : typing.Optional[RequestOptions] Request-specific configuration. Returns ------- - AsyncHttpResponse[GetCompanyResponse] + HttpResponse[DeleteUserByKeysResponse] OK """ - _response = await self._client_wrapper.httpx_client.request( - f"companies/{jsonable_encoder(company_id)}", - method="GET", + _response = self._client_wrapper.httpx_client.request( + "users/delete", + method="POST", + json={ + "keys": keys, + }, + headers={ + "content-type": "application/json", + }, request_options=request_options, + omit=OMIT, ) try: if 200 <= _response.status_code < 300: _data = typing.cast( - GetCompanyResponse, + DeleteUserByKeysResponse, parse_obj_as( - type_=GetCompanyResponse, # type: ignore + type_=DeleteUserByKeysResponse, # type: ignore object_=_response.json(), ), ) - return AsyncHttpResponse(response=_response, data=_data) + return HttpResponse(response=_response, data=_data) + if _response.status_code == 400: + raise BadRequestError( + headers=dict(_response.headers), + body=typing.cast( + types_api_error_ApiError, + parse_obj_as( + type_=types_api_error_ApiError, # type: ignore + object_=_response.json(), + ), + ), + ) if _response.status_code == 401: raise UnauthorizedError( headers=dict(_response.headers), @@ -5202,62 +4350,41 @@ async def get_company( status_code=_response.status_code, headers=dict(_response.headers), body=_response_json ) - async def delete_company( - self, - company_id: str, - *, - cancel_subscription: typing.Optional[bool] = None, - prorate: typing.Optional[bool] = None, - request_options: typing.Optional[RequestOptions] = None, - ) -> AsyncHttpResponse[DeleteCompanyResponse]: + def lookup_user( + self, *, keys: typing.Dict[str, str], request_options: typing.Optional[RequestOptions] = None + ) -> HttpResponse[LookupUserResponse]: """ Parameters ---------- - company_id : str - company_id - - cancel_subscription : typing.Optional[bool] - - prorate : typing.Optional[bool] + keys : typing.Dict[str, str] + Key/value pairs request_options : typing.Optional[RequestOptions] Request-specific configuration. Returns ------- - AsyncHttpResponse[DeleteCompanyResponse] + HttpResponse[LookupUserResponse] OK """ - _response = await self._client_wrapper.httpx_client.request( - f"companies/{jsonable_encoder(company_id)}", - method="DELETE", + _response = self._client_wrapper.httpx_client.request( + "users/lookup", + method="GET", params={ - "cancel_subscription": cancel_subscription, - "prorate": prorate, + "keys": keys, }, request_options=request_options, ) try: if 200 <= _response.status_code < 300: _data = typing.cast( - DeleteCompanyResponse, + LookupUserResponse, parse_obj_as( - type_=DeleteCompanyResponse, # type: ignore + type_=LookupUserResponse, # type: ignore object_=_response.json(), ), ) - return AsyncHttpResponse(response=_response, data=_data) - if _response.status_code == 400: - raise BadRequestError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) + return HttpResponse(response=_response, data=_data) if _response.status_code == 401: raise UnauthorizedError( headers=dict(_response.headers), @@ -5315,7 +4442,12 @@ async def delete_company( status_code=_response.status_code, headers=dict(_response.headers), body=_response_json ) - async def count_companies( + +class AsyncRawCompaniesClient: + def __init__(self, *, client_wrapper: AsyncClientWrapper): + self._client_wrapper = client_wrapper + + async def list_companies( self, *, credit_type_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None, @@ -5340,7 +4472,7 @@ async def count_companies( limit: typing.Optional[int] = None, offset: typing.Optional[int] = None, request_options: typing.Optional[RequestOptions] = None, - ) -> AsyncHttpResponse[CountCompaniesResponse]: + ) -> AsyncHttpResponse[ListCompaniesResponse]: """ Parameters ---------- @@ -5406,11 +4538,11 @@ async def count_companies( Returns ------- - AsyncHttpResponse[CountCompaniesResponse] + AsyncHttpResponse[ListCompaniesResponse] OK """ _response = await self._client_wrapper.httpx_client.request( - "companies/count", + "companies", method="GET", params={ "credit_type_ids": credit_type_ids, @@ -5438,9 +4570,9 @@ async def count_companies( try: if 200 <= _response.status_code < 300: _data = typing.cast( - CountCompaniesResponse, + ListCompaniesResponse, parse_obj_as( - type_=CountCompaniesResponse, # type: ignore + type_=ListCompaniesResponse, # type: ignore object_=_response.json(), ), ) @@ -5513,7 +4645,7 @@ async def count_companies( status_code=_response.status_code, headers=dict(_response.headers), body=_response_json ) - async def create_company( + async def upsert_company( self, *, keys: typing.Dict[str, str], @@ -5524,7 +4656,7 @@ async def create_company( traits: typing.Optional[typing.Dict[str, typing.Any]] = OMIT, update_only: typing.Optional[bool] = OMIT, request_options: typing.Optional[RequestOptions] = None, - ) -> AsyncHttpResponse[CreateCompanyResponse]: + ) -> AsyncHttpResponse[UpsertCompanyResponse]: """ Parameters ---------- @@ -5550,11 +4682,11 @@ async def create_company( Returns ------- - AsyncHttpResponse[CreateCompanyResponse] - Created + AsyncHttpResponse[UpsertCompanyResponse] + OK """ _response = await self._client_wrapper.httpx_client.request( - "companies/create", + "companies", method="POST", json={ "id": id, @@ -5574,9 +4706,9 @@ async def create_company( try: if 200 <= _response.status_code < 300: _data = typing.cast( - CreateCompanyResponse, + UpsertCompanyResponse, parse_obj_as( - type_=CreateCompanyResponse, # type: ignore + type_=UpsertCompanyResponse, # type: ignore object_=_response.json(), ), ) @@ -5649,40 +4781,136 @@ async def create_company( status_code=_response.status_code, headers=dict(_response.headers), body=_response_json ) - async def delete_company_by_keys( - self, *, keys: typing.Dict[str, str], request_options: typing.Optional[RequestOptions] = None - ) -> AsyncHttpResponse[DeleteCompanyByKeysResponse]: + async def get_company( + self, company_id: str, *, request_options: typing.Optional[RequestOptions] = None + ) -> AsyncHttpResponse[GetCompanyResponse]: + """ + Parameters + ---------- + company_id : str + company_id + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + AsyncHttpResponse[GetCompanyResponse] + OK + """ + _response = await self._client_wrapper.httpx_client.request( + f"companies/{jsonable_encoder(company_id)}", + method="GET", + request_options=request_options, + ) + try: + if 200 <= _response.status_code < 300: + _data = typing.cast( + GetCompanyResponse, + parse_obj_as( + type_=GetCompanyResponse, # type: ignore + object_=_response.json(), + ), + ) + return AsyncHttpResponse(response=_response, data=_data) + if _response.status_code == 401: + raise UnauthorizedError( + headers=dict(_response.headers), + body=typing.cast( + types_api_error_ApiError, + parse_obj_as( + type_=types_api_error_ApiError, # type: ignore + object_=_response.json(), + ), + ), + ) + if _response.status_code == 403: + raise ForbiddenError( + headers=dict(_response.headers), + body=typing.cast( + types_api_error_ApiError, + parse_obj_as( + type_=types_api_error_ApiError, # type: ignore + object_=_response.json(), + ), + ), + ) + if _response.status_code == 404: + raise NotFoundError( + headers=dict(_response.headers), + body=typing.cast( + types_api_error_ApiError, + parse_obj_as( + type_=types_api_error_ApiError, # type: ignore + object_=_response.json(), + ), + ), + ) + if _response.status_code == 500: + raise InternalServerError( + headers=dict(_response.headers), + body=typing.cast( + types_api_error_ApiError, + parse_obj_as( + type_=types_api_error_ApiError, # type: ignore + object_=_response.json(), + ), + ), + ) + _response_json = _response.json() + except JSONDecodeError: + raise core_api_error_ApiError( + status_code=_response.status_code, headers=dict(_response.headers), body=_response.text + ) + except ValidationError as e: + raise ParsingError( + status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e + ) + raise core_api_error_ApiError( + status_code=_response.status_code, headers=dict(_response.headers), body=_response_json + ) + + async def delete_company( + self, + company_id: str, + *, + cancel_subscription: typing.Optional[bool] = None, + prorate: typing.Optional[bool] = None, + request_options: typing.Optional[RequestOptions] = None, + ) -> AsyncHttpResponse[DeleteCompanyResponse]: """ Parameters ---------- - keys : typing.Dict[str, str] + company_id : str + company_id + + cancel_subscription : typing.Optional[bool] + + prorate : typing.Optional[bool] request_options : typing.Optional[RequestOptions] Request-specific configuration. Returns ------- - AsyncHttpResponse[DeleteCompanyByKeysResponse] + AsyncHttpResponse[DeleteCompanyResponse] OK """ _response = await self._client_wrapper.httpx_client.request( - "companies/delete", - method="POST", - json={ - "keys": keys, - }, - headers={ - "content-type": "application/json", + f"companies/{jsonable_encoder(company_id)}", + method="DELETE", + params={ + "cancel_subscription": cancel_subscription, + "prorate": prorate, }, request_options=request_options, - omit=OMIT, ) try: if 200 <= _response.status_code < 300: _data = typing.cast( - DeleteCompanyByKeysResponse, + DeleteCompanyResponse, parse_obj_as( - type_=DeleteCompanyByKeysResponse, # type: ignore + type_=DeleteCompanyResponse, # type: ignore object_=_response.json(), ), ) @@ -5755,47 +4983,147 @@ async def delete_company_by_keys( status_code=_response.status_code, headers=dict(_response.headers), body=_response_json ) - async def lookup_company( - self, *, keys: typing.Dict[str, str], request_options: typing.Optional[RequestOptions] = None - ) -> AsyncHttpResponse[LookupCompanyResponse]: + async def count_companies( + self, + *, + credit_type_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None, + has_scheduled_downgrade: typing.Optional[bool] = None, + ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None, + monetized_subscriptions: typing.Optional[bool] = None, + plan_id: typing.Optional[str] = None, + plan_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None, + plan_version_id: typing.Optional[str] = None, + q: typing.Optional[str] = None, + sort_order_column: typing.Optional[str] = None, + sort_order_direction: typing.Optional[SortDirection] = None, + subscription_statuses: typing.Optional[ + typing.Union[SubscriptionStatus, typing.Sequence[SubscriptionStatus]] + ] = None, + subscription_types: typing.Optional[typing.Union[SubscriptionType, typing.Sequence[SubscriptionType]]] = None, + with_entitlement_for: typing.Optional[str] = None, + without_feature_override_for: typing.Optional[str] = None, + without_plan: typing.Optional[bool] = None, + without_subscription: typing.Optional[bool] = None, + with_subscription: typing.Optional[bool] = None, + limit: typing.Optional[int] = None, + offset: typing.Optional[int] = None, + request_options: typing.Optional[RequestOptions] = None, + ) -> AsyncHttpResponse[CountCompaniesResponse]: """ - Company lookup is determined to resolve a company from its keys, similar to how many of our other apis work. - The following approaches will all work to resolve a company and any of them are appropriate: - 1. `/companies/lookup?keys={"foo": "bar", "fizz": "buzz"}` - 2. `/companies/lookup?keys[foo]=bar&keys[fizz]=buzz` - 2. `/companies/lookup?foo=bar&fizz=buzz` - Parameters ---------- - keys : typing.Dict[str, str] - Key/value pairs + credit_type_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]] + Filter companies by one or more credit type IDs (each ID starts with bcrd_) + + has_scheduled_downgrade : typing.Optional[bool] + Filter companies that have a pending scheduled downgrade + + ids : typing.Optional[typing.Union[str, typing.Sequence[str]]] + Filter companies by multiple company IDs (starts with comp_) + + monetized_subscriptions : typing.Optional[bool] + Filter companies that have monetized subscriptions + + plan_id : typing.Optional[str] + Filter companies by plan ID (starts with plan_) + + plan_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]] + Filter companies by one or more plan IDs (each ID starts with plan_) + + plan_version_id : typing.Optional[str] + Filter companies by plan version ID (starts with plvr_) + + q : typing.Optional[str] + Search for companies by name, keys or string traits + + sort_order_column : typing.Optional[str] + Column to sort by (e.g. name, created_at, last_seen_at) + + sort_order_direction : typing.Optional[SortDirection] + Direction to sort by (asc or desc) + + subscription_statuses : typing.Optional[typing.Union[SubscriptionStatus, typing.Sequence[SubscriptionStatus]]] + Filter companies by one or more subscription statuses + + subscription_types : typing.Optional[typing.Union[SubscriptionType, typing.Sequence[SubscriptionType]]] + Filter companies by one or more subscription types + + with_entitlement_for : typing.Optional[str] + Filter companies that have an entitlement (plan entitlement or company override) for the specified feature ID + + without_feature_override_for : typing.Optional[str] + Filter out companies that already have a company override for the specified feature ID + + without_plan : typing.Optional[bool] + Filter out companies that have a plan + + without_subscription : typing.Optional[bool] + Filter out companies that have a subscription + + with_subscription : typing.Optional[bool] + Filter companies that have a subscription + + limit : typing.Optional[int] + Page limit (default 100) + + offset : typing.Optional[int] + Page offset (default 0) request_options : typing.Optional[RequestOptions] Request-specific configuration. Returns ------- - AsyncHttpResponse[LookupCompanyResponse] + AsyncHttpResponse[CountCompaniesResponse] OK """ _response = await self._client_wrapper.httpx_client.request( - "companies/lookup", + "companies/count", method="GET", params={ - "keys": keys, + "credit_type_ids": credit_type_ids, + "has_scheduled_downgrade": has_scheduled_downgrade, + "ids": ids, + "monetized_subscriptions": monetized_subscriptions, + "plan_id": plan_id, + "plan_ids": plan_ids, + "plan_version_id": plan_version_id, + "q": q, + "sort_order_column": sort_order_column, + "sort_order_direction": sort_order_direction, + "subscription_statuses": subscription_statuses, + "subscription_types": subscription_types, + "with_entitlement_for": with_entitlement_for, + "without_feature_override_for": without_feature_override_for, + "without_plan": without_plan, + "without_subscription": without_subscription, + "with_subscription": with_subscription, + "limit": limit, + "offset": offset, }, request_options=request_options, ) try: if 200 <= _response.status_code < 300: _data = typing.cast( - LookupCompanyResponse, + CountCompaniesResponse, parse_obj_as( - type_=LookupCompanyResponse, # type: ignore + type_=CountCompaniesResponse, # type: ignore object_=_response.json(), ), ) return AsyncHttpResponse(response=_response, data=_data) + if _response.status_code == 400: + raise BadRequestError( + headers=dict(_response.headers), + body=typing.cast( + types_api_error_ApiError, + parse_obj_as( + type_=types_api_error_ApiError, # type: ignore + object_=_response.json(), + ), + ), + ) if _response.status_code == 401: raise UnauthorizedError( headers=dict(_response.headers), @@ -5853,53 +5181,70 @@ async def lookup_company( status_code=_response.status_code, headers=dict(_response.headers), body=_response_json ) - async def list_company_memberships( + async def create_company( self, *, - company_id: typing.Optional[str] = None, - user_id: typing.Optional[str] = None, - limit: typing.Optional[int] = None, - offset: typing.Optional[int] = None, + keys: typing.Dict[str, str], + id: typing.Optional[str] = OMIT, + last_seen_at: typing.Optional[dt.datetime] = OMIT, + name: typing.Optional[str] = OMIT, + prevent_key_remap: typing.Optional[bool] = OMIT, + traits: typing.Optional[typing.Dict[str, typing.Any]] = OMIT, + update_only: typing.Optional[bool] = OMIT, request_options: typing.Optional[RequestOptions] = None, - ) -> AsyncHttpResponse[ListCompanyMembershipsResponse]: + ) -> AsyncHttpResponse[CreateCompanyResponse]: """ Parameters ---------- - company_id : typing.Optional[str] + keys : typing.Dict[str, str] + See [Key Management](https://docs.schematichq.com/developer_resources/key_management) for more information - user_id : typing.Optional[str] + id : typing.Optional[str] + If you know the Schematic ID, you can use that here instead of keys - limit : typing.Optional[int] - Page limit (default 100) + last_seen_at : typing.Optional[dt.datetime] - offset : typing.Optional[int] - Page offset (default 0) + name : typing.Optional[str] + + prevent_key_remap : typing.Optional[bool] + + traits : typing.Optional[typing.Dict[str, typing.Any]] + A map of trait names to trait values + + update_only : typing.Optional[bool] request_options : typing.Optional[RequestOptions] Request-specific configuration. Returns ------- - AsyncHttpResponse[ListCompanyMembershipsResponse] - OK + AsyncHttpResponse[CreateCompanyResponse] + Created """ _response = await self._client_wrapper.httpx_client.request( - "company-memberships", - method="GET", - params={ - "company_id": company_id, - "user_id": user_id, - "limit": limit, - "offset": offset, + "companies/create", + method="POST", + json={ + "id": id, + "keys": keys, + "last_seen_at": last_seen_at, + "name": name, + "prevent_key_remap": prevent_key_remap, + "traits": traits, + "update_only": update_only, + }, + headers={ + "content-type": "application/json", }, request_options=request_options, + omit=OMIT, ) try: if 200 <= _response.status_code < 300: _data = typing.cast( - ListCompanyMembershipsResponse, + CreateCompanyResponse, parse_obj_as( - type_=ListCompanyMembershipsResponse, # type: ignore + type_=CreateCompanyResponse, # type: ignore object_=_response.json(), ), ) @@ -5972,30 +5317,27 @@ async def list_company_memberships( status_code=_response.status_code, headers=dict(_response.headers), body=_response_json ) - async def get_or_create_company_membership( - self, *, company_id: str, user_id: str, request_options: typing.Optional[RequestOptions] = None - ) -> AsyncHttpResponse[GetOrCreateCompanyMembershipResponse]: + async def delete_company_by_keys( + self, *, keys: typing.Dict[str, str], request_options: typing.Optional[RequestOptions] = None + ) -> AsyncHttpResponse[DeleteCompanyByKeysResponse]: """ Parameters ---------- - company_id : str - - user_id : str + keys : typing.Dict[str, str] request_options : typing.Optional[RequestOptions] Request-specific configuration. Returns ------- - AsyncHttpResponse[GetOrCreateCompanyMembershipResponse] + AsyncHttpResponse[DeleteCompanyByKeysResponse] OK """ _response = await self._client_wrapper.httpx_client.request( - "company-memberships", + "companies/delete", method="POST", json={ - "company_id": company_id, - "user_id": user_id, + "keys": keys, }, headers={ "content-type": "application/json", @@ -6006,9 +5348,9 @@ async def get_or_create_company_membership( try: if 200 <= _response.status_code < 300: _data = typing.cast( - GetOrCreateCompanyMembershipResponse, + DeleteCompanyByKeysResponse, parse_obj_as( - type_=GetOrCreateCompanyMembershipResponse, # type: ignore + type_=DeleteCompanyByKeysResponse, # type: ignore object_=_response.json(), ), ) @@ -6081,49 +5423,47 @@ async def get_or_create_company_membership( status_code=_response.status_code, headers=dict(_response.headers), body=_response_json ) - async def delete_company_membership( - self, company_membership_id: str, *, request_options: typing.Optional[RequestOptions] = None - ) -> AsyncHttpResponse[DeleteCompanyMembershipResponse]: + async def lookup_company( + self, *, keys: typing.Dict[str, str], request_options: typing.Optional[RequestOptions] = None + ) -> AsyncHttpResponse[LookupCompanyResponse]: """ + Company lookup is determined to resolve a company from its keys, similar to how many of our other apis work. + The following approaches will all work to resolve a company and any of them are appropriate: + 1. `/companies/lookup?keys={"foo": "bar", "fizz": "buzz"}` + 2. `/companies/lookup?keys[foo]=bar&keys[fizz]=buzz` + 2. `/companies/lookup?foo=bar&fizz=buzz` + Parameters ---------- - company_membership_id : str - company_membership_id + keys : typing.Dict[str, str] + Key/value pairs request_options : typing.Optional[RequestOptions] Request-specific configuration. Returns ------- - AsyncHttpResponse[DeleteCompanyMembershipResponse] + AsyncHttpResponse[LookupCompanyResponse] OK """ _response = await self._client_wrapper.httpx_client.request( - f"company-memberships/{jsonable_encoder(company_membership_id)}", - method="DELETE", + "companies/lookup", + method="GET", + params={ + "keys": keys, + }, request_options=request_options, ) try: if 200 <= _response.status_code < 300: _data = typing.cast( - DeleteCompanyMembershipResponse, + LookupCompanyResponse, parse_obj_as( - type_=DeleteCompanyMembershipResponse, # type: ignore + type_=LookupCompanyResponse, # type: ignore object_=_response.json(), ), ) return AsyncHttpResponse(response=_response, data=_data) - if _response.status_code == 400: - raise BadRequestError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) if _response.status_code == 401: raise UnauthorizedError( headers=dict(_response.headers), @@ -6181,21 +5521,21 @@ async def delete_company_membership( status_code=_response.status_code, headers=dict(_response.headers), body=_response_json ) - async def get_active_company_subscription( + async def list_company_memberships( self, *, company_id: typing.Optional[str] = None, - company_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None, + user_id: typing.Optional[str] = None, limit: typing.Optional[int] = None, offset: typing.Optional[int] = None, request_options: typing.Optional[RequestOptions] = None, - ) -> AsyncHttpResponse[GetActiveCompanySubscriptionResponse]: + ) -> AsyncHttpResponse[ListCompanyMembershipsResponse]: """ Parameters ---------- company_id : typing.Optional[str] - company_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]] + user_id : typing.Optional[str] limit : typing.Optional[int] Page limit (default 100) @@ -6208,15 +5548,15 @@ async def get_active_company_subscription( Returns ------- - AsyncHttpResponse[GetActiveCompanySubscriptionResponse] + AsyncHttpResponse[ListCompanyMembershipsResponse] OK """ _response = await self._client_wrapper.httpx_client.request( - "company-subscriptions", + "company-memberships", method="GET", params={ "company_id": company_id, - "company_ids": company_ids, + "user_id": user_id, "limit": limit, "offset": offset, }, @@ -6225,9 +5565,9 @@ async def get_active_company_subscription( try: if 200 <= _response.status_code < 300: _data = typing.cast( - GetActiveCompanySubscriptionResponse, + ListCompanyMembershipsResponse, parse_obj_as( - type_=GetActiveCompanySubscriptionResponse, # type: ignore + type_=ListCompanyMembershipsResponse, # type: ignore object_=_response.json(), ), ) @@ -6300,51 +5640,30 @@ async def get_active_company_subscription( status_code=_response.status_code, headers=dict(_response.headers), body=_response_json ) - async def upsert_company_trait( - self, - *, - keys: typing.Dict[str, str], - trait: str, - incr: typing.Optional[int] = OMIT, - set_: typing.Optional[str] = OMIT, - update_only: typing.Optional[bool] = OMIT, - request_options: typing.Optional[RequestOptions] = None, - ) -> AsyncHttpResponse[UpsertCompanyTraitResponse]: + async def get_or_create_company_membership( + self, *, company_id: str, user_id: str, request_options: typing.Optional[RequestOptions] = None + ) -> AsyncHttpResponse[GetOrCreateCompanyMembershipResponse]: """ Parameters ---------- - keys : typing.Dict[str, str] - Key/value pairs to identify a company or user - - trait : str - Name of the trait to update - - incr : typing.Optional[int] - Amount to increment the trait by (positive or negative) - - set_ : typing.Optional[str] - Value to set the trait to + company_id : str - update_only : typing.Optional[bool] - Unless this is set, the company or user will be created if it does not already exist + user_id : str request_options : typing.Optional[RequestOptions] Request-specific configuration. Returns ------- - AsyncHttpResponse[UpsertCompanyTraitResponse] + AsyncHttpResponse[GetOrCreateCompanyMembershipResponse] OK """ _response = await self._client_wrapper.httpx_client.request( - "company-traits", + "company-memberships", method="POST", json={ - "incr": incr, - "keys": keys, - "set": set_, - "trait": trait, - "update_only": update_only, + "company_id": company_id, + "user_id": user_id, }, headers={ "content-type": "application/json", @@ -6355,9 +5674,9 @@ async def upsert_company_trait( try: if 200 <= _response.status_code < 300: _data = typing.cast( - UpsertCompanyTraitResponse, + GetOrCreateCompanyMembershipResponse, parse_obj_as( - type_=UpsertCompanyTraitResponse, # type: ignore + type_=GetOrCreateCompanyMembershipResponse, # type: ignore object_=_response.json(), ), ) @@ -6430,57 +5749,34 @@ async def upsert_company_trait( status_code=_response.status_code, headers=dict(_response.headers), body=_response_json ) - async def list_entity_key_definitions( - self, - *, - entity_type: typing.Optional[EntityType] = None, - ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None, - q: typing.Optional[str] = None, - limit: typing.Optional[int] = None, - offset: typing.Optional[int] = None, - request_options: typing.Optional[RequestOptions] = None, - ) -> AsyncHttpResponse[ListEntityKeyDefinitionsResponse]: + async def delete_company_membership( + self, company_membership_id: str, *, request_options: typing.Optional[RequestOptions] = None + ) -> AsyncHttpResponse[DeleteCompanyMembershipResponse]: """ Parameters ---------- - entity_type : typing.Optional[EntityType] - - ids : typing.Optional[typing.Union[str, typing.Sequence[str]]] - - q : typing.Optional[str] - - limit : typing.Optional[int] - Page limit (default 100) - - offset : typing.Optional[int] - Page offset (default 0) + company_membership_id : str + company_membership_id request_options : typing.Optional[RequestOptions] Request-specific configuration. Returns ------- - AsyncHttpResponse[ListEntityKeyDefinitionsResponse] + AsyncHttpResponse[DeleteCompanyMembershipResponse] OK """ _response = await self._client_wrapper.httpx_client.request( - "entity-key-definitions", - method="GET", - params={ - "entity_type": entity_type, - "ids": ids, - "q": q, - "limit": limit, - "offset": offset, - }, + f"company-memberships/{jsonable_encoder(company_membership_id)}", + method="DELETE", request_options=request_options, ) try: if 200 <= _response.status_code < 300: _data = typing.cast( - ListEntityKeyDefinitionsResponse, + DeleteCompanyMembershipResponse, parse_obj_as( - type_=ListEntityKeyDefinitionsResponse, # type: ignore + type_=DeleteCompanyMembershipResponse, # type: ignore object_=_response.json(), ), ) @@ -6553,24 +5849,21 @@ async def list_entity_key_definitions( status_code=_response.status_code, headers=dict(_response.headers), body=_response_json ) - async def count_entity_key_definitions( + async def get_active_company_subscription( self, *, - entity_type: typing.Optional[EntityType] = None, - ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None, - q: typing.Optional[str] = None, + company_id: typing.Optional[str] = None, + company_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None, limit: typing.Optional[int] = None, offset: typing.Optional[int] = None, request_options: typing.Optional[RequestOptions] = None, - ) -> AsyncHttpResponse[CountEntityKeyDefinitionsResponse]: + ) -> AsyncHttpResponse[GetActiveCompanySubscriptionResponse]: """ Parameters ---------- - entity_type : typing.Optional[EntityType] - - ids : typing.Optional[typing.Union[str, typing.Sequence[str]]] + company_id : typing.Optional[str] - q : typing.Optional[str] + company_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]] limit : typing.Optional[int] Page limit (default 100) @@ -6583,16 +5876,15 @@ async def count_entity_key_definitions( Returns ------- - AsyncHttpResponse[CountEntityKeyDefinitionsResponse] + AsyncHttpResponse[GetActiveCompanySubscriptionResponse] OK """ _response = await self._client_wrapper.httpx_client.request( - "entity-key-definitions/count", + "company-subscriptions", method="GET", params={ - "entity_type": entity_type, - "ids": ids, - "q": q, + "company_id": company_id, + "company_ids": company_ids, "limit": limit, "offset": offset, }, @@ -6601,9 +5893,9 @@ async def count_entity_key_definitions( try: if 200 <= _response.status_code < 300: _data = typing.cast( - CountEntityKeyDefinitionsResponse, + GetActiveCompanySubscriptionResponse, parse_obj_as( - type_=CountEntityKeyDefinitionsResponse, # type: ignore + type_=GetActiveCompanySubscriptionResponse, # type: ignore object_=_response.json(), ), ) @@ -6676,65 +5968,64 @@ async def count_entity_key_definitions( status_code=_response.status_code, headers=dict(_response.headers), body=_response_json ) - async def list_entity_trait_definitions( + async def upsert_company_trait( self, *, - entity_type: typing.Optional[EntityType] = None, - ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None, - q: typing.Optional[str] = None, - trait_type: typing.Optional[TraitType] = None, - trait_types: typing.Optional[typing.Union[TraitType, typing.Sequence[TraitType]]] = None, - limit: typing.Optional[int] = None, - offset: typing.Optional[int] = None, + keys: typing.Dict[str, str], + trait: str, + incr: typing.Optional[int] = OMIT, + set_: typing.Optional[str] = OMIT, + update_only: typing.Optional[bool] = OMIT, request_options: typing.Optional[RequestOptions] = None, - ) -> AsyncHttpResponse[ListEntityTraitDefinitionsResponse]: + ) -> AsyncHttpResponse[UpsertCompanyTraitResponse]: """ Parameters ---------- - entity_type : typing.Optional[EntityType] - - ids : typing.Optional[typing.Union[str, typing.Sequence[str]]] - - q : typing.Optional[str] + keys : typing.Dict[str, str] + Key/value pairs to identify a company or user - trait_type : typing.Optional[TraitType] + trait : str + Name of the trait to update - trait_types : typing.Optional[typing.Union[TraitType, typing.Sequence[TraitType]]] + incr : typing.Optional[int] + Amount to increment the trait by (positive or negative) - limit : typing.Optional[int] - Page limit (default 100) + set_ : typing.Optional[str] + Value to set the trait to - offset : typing.Optional[int] - Page offset (default 0) + update_only : typing.Optional[bool] + Unless this is set, the company or user will be created if it does not already exist request_options : typing.Optional[RequestOptions] Request-specific configuration. Returns ------- - AsyncHttpResponse[ListEntityTraitDefinitionsResponse] + AsyncHttpResponse[UpsertCompanyTraitResponse] OK """ _response = await self._client_wrapper.httpx_client.request( - "entity-trait-definitions", - method="GET", - params={ - "entity_type": entity_type, - "ids": ids, - "q": q, - "trait_type": trait_type, - "trait_types": trait_types, - "limit": limit, - "offset": offset, + "company-traits", + method="POST", + json={ + "incr": incr, + "keys": keys, + "set": set_, + "trait": trait, + "update_only": update_only, + }, + headers={ + "content-type": "application/json", }, request_options=request_options, + omit=OMIT, ) try: if 200 <= _response.status_code < 300: _data = typing.cast( - ListEntityTraitDefinitionsResponse, + UpsertCompanyTraitResponse, parse_obj_as( - type_=ListEntityTraitDefinitionsResponse, # type: ignore + type_=UpsertCompanyTraitResponse, # type: ignore object_=_response.json(), ), ) @@ -6807,55 +6098,57 @@ async def list_entity_trait_definitions( status_code=_response.status_code, headers=dict(_response.headers), body=_response_json ) - async def get_or_create_entity_trait_definition( + async def list_entity_key_definitions( self, *, - entity_type: EntityType, - hierarchy: typing.Sequence[str], - trait_type: TraitType, - display_name: typing.Optional[str] = OMIT, + entity_type: typing.Optional[EntityType] = None, + ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None, + q: typing.Optional[str] = None, + limit: typing.Optional[int] = None, + offset: typing.Optional[int] = None, request_options: typing.Optional[RequestOptions] = None, - ) -> AsyncHttpResponse[GetOrCreateEntityTraitDefinitionResponse]: + ) -> AsyncHttpResponse[ListEntityKeyDefinitionsResponse]: """ Parameters ---------- - entity_type : EntityType + entity_type : typing.Optional[EntityType] - hierarchy : typing.Sequence[str] + ids : typing.Optional[typing.Union[str, typing.Sequence[str]]] - trait_type : TraitType + q : typing.Optional[str] - display_name : typing.Optional[str] + limit : typing.Optional[int] + Page limit (default 100) + + offset : typing.Optional[int] + Page offset (default 0) request_options : typing.Optional[RequestOptions] Request-specific configuration. Returns ------- - AsyncHttpResponse[GetOrCreateEntityTraitDefinitionResponse] + AsyncHttpResponse[ListEntityKeyDefinitionsResponse] OK """ _response = await self._client_wrapper.httpx_client.request( - "entity-trait-definitions", - method="POST", - json={ - "display_name": display_name, + "entity-key-definitions", + method="GET", + params={ "entity_type": entity_type, - "hierarchy": hierarchy, - "trait_type": trait_type, - }, - headers={ - "content-type": "application/json", + "ids": ids, + "q": q, + "limit": limit, + "offset": offset, }, request_options=request_options, - omit=OMIT, ) try: if 200 <= _response.status_code < 300: _data = typing.cast( - GetOrCreateEntityTraitDefinitionResponse, + ListEntityKeyDefinitionsResponse, parse_obj_as( - type_=GetOrCreateEntityTraitDefinitionResponse, # type: ignore + type_=ListEntityKeyDefinitionsResponse, # type: ignore object_=_response.json(), ), ) @@ -6928,38 +6221,72 @@ async def get_or_create_entity_trait_definition( status_code=_response.status_code, headers=dict(_response.headers), body=_response_json ) - async def get_entity_trait_definition( - self, entity_trait_definition_id: str, *, request_options: typing.Optional[RequestOptions] = None - ) -> AsyncHttpResponse[GetEntityTraitDefinitionResponse]: + async def count_entity_key_definitions( + self, + *, + entity_type: typing.Optional[EntityType] = None, + ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None, + q: typing.Optional[str] = None, + limit: typing.Optional[int] = None, + offset: typing.Optional[int] = None, + request_options: typing.Optional[RequestOptions] = None, + ) -> AsyncHttpResponse[CountEntityKeyDefinitionsResponse]: """ Parameters ---------- - entity_trait_definition_id : str - entity_trait_definition_id + entity_type : typing.Optional[EntityType] + + ids : typing.Optional[typing.Union[str, typing.Sequence[str]]] + + q : typing.Optional[str] + + limit : typing.Optional[int] + Page limit (default 100) + + offset : typing.Optional[int] + Page offset (default 0) request_options : typing.Optional[RequestOptions] Request-specific configuration. Returns ------- - AsyncHttpResponse[GetEntityTraitDefinitionResponse] + AsyncHttpResponse[CountEntityKeyDefinitionsResponse] OK """ _response = await self._client_wrapper.httpx_client.request( - f"entity-trait-definitions/{jsonable_encoder(entity_trait_definition_id)}", + "entity-key-definitions/count", method="GET", + params={ + "entity_type": entity_type, + "ids": ids, + "q": q, + "limit": limit, + "offset": offset, + }, request_options=request_options, ) try: if 200 <= _response.status_code < 300: _data = typing.cast( - GetEntityTraitDefinitionResponse, + CountEntityKeyDefinitionsResponse, parse_obj_as( - type_=GetEntityTraitDefinitionResponse, # type: ignore + type_=CountEntityKeyDefinitionsResponse, # type: ignore object_=_response.json(), ), ) return AsyncHttpResponse(response=_response, data=_data) + if _response.status_code == 400: + raise BadRequestError( + headers=dict(_response.headers), + body=typing.cast( + types_api_error_ApiError, + parse_obj_as( + type_=types_api_error_ApiError, # type: ignore + object_=_response.json(), + ), + ), + ) if _response.status_code == 401: raise UnauthorizedError( headers=dict(_response.headers), @@ -7017,51 +6344,65 @@ async def get_entity_trait_definition( status_code=_response.status_code, headers=dict(_response.headers), body=_response_json ) - async def update_entity_trait_definition( + async def list_entity_trait_definitions( self, - entity_trait_definition_id: str, *, - trait_type: TraitType, - display_name: typing.Optional[str] = OMIT, + entity_type: typing.Optional[EntityType] = None, + ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None, + q: typing.Optional[str] = None, + trait_type: typing.Optional[TraitType] = None, + trait_types: typing.Optional[typing.Union[TraitType, typing.Sequence[TraitType]]] = None, + limit: typing.Optional[int] = None, + offset: typing.Optional[int] = None, request_options: typing.Optional[RequestOptions] = None, - ) -> AsyncHttpResponse[UpdateEntityTraitDefinitionResponse]: + ) -> AsyncHttpResponse[ListEntityTraitDefinitionsResponse]: """ Parameters ---------- - entity_trait_definition_id : str - entity_trait_definition_id + entity_type : typing.Optional[EntityType] - trait_type : TraitType + ids : typing.Optional[typing.Union[str, typing.Sequence[str]]] - display_name : typing.Optional[str] + q : typing.Optional[str] + + trait_type : typing.Optional[TraitType] + + trait_types : typing.Optional[typing.Union[TraitType, typing.Sequence[TraitType]]] + + limit : typing.Optional[int] + Page limit (default 100) + + offset : typing.Optional[int] + Page offset (default 0) request_options : typing.Optional[RequestOptions] Request-specific configuration. Returns ------- - AsyncHttpResponse[UpdateEntityTraitDefinitionResponse] + AsyncHttpResponse[ListEntityTraitDefinitionsResponse] OK """ _response = await self._client_wrapper.httpx_client.request( - f"entity-trait-definitions/{jsonable_encoder(entity_trait_definition_id)}", - method="PUT", - json={ - "display_name": display_name, + "entity-trait-definitions", + method="GET", + params={ + "entity_type": entity_type, + "ids": ids, + "q": q, "trait_type": trait_type, - }, - headers={ - "content-type": "application/json", + "trait_types": trait_types, + "limit": limit, + "offset": offset, }, request_options=request_options, - omit=OMIT, ) try: if 200 <= _response.status_code < 300: _data = typing.cast( - UpdateEntityTraitDefinitionResponse, + ListEntityTraitDefinitionsResponse, parse_obj_as( - type_=UpdateEntityTraitDefinitionResponse, # type: ignore + type_=ListEntityTraitDefinitionsResponse, # type: ignore object_=_response.json(), ), ) @@ -7134,65 +6475,55 @@ async def update_entity_trait_definition( status_code=_response.status_code, headers=dict(_response.headers), body=_response_json ) - async def count_entity_trait_definitions( + async def get_or_create_entity_trait_definition( self, *, - entity_type: typing.Optional[EntityType] = None, - ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None, - q: typing.Optional[str] = None, - trait_type: typing.Optional[TraitType] = None, - trait_types: typing.Optional[typing.Union[TraitType, typing.Sequence[TraitType]]] = None, - limit: typing.Optional[int] = None, - offset: typing.Optional[int] = None, + entity_type: EntityType, + hierarchy: typing.Sequence[str], + trait_type: TraitType, + display_name: typing.Optional[str] = OMIT, request_options: typing.Optional[RequestOptions] = None, - ) -> AsyncHttpResponse[CountEntityTraitDefinitionsResponse]: + ) -> AsyncHttpResponse[GetOrCreateEntityTraitDefinitionResponse]: """ Parameters ---------- - entity_type : typing.Optional[EntityType] - - ids : typing.Optional[typing.Union[str, typing.Sequence[str]]] - - q : typing.Optional[str] - - trait_type : typing.Optional[TraitType] + entity_type : EntityType - trait_types : typing.Optional[typing.Union[TraitType, typing.Sequence[TraitType]]] + hierarchy : typing.Sequence[str] - limit : typing.Optional[int] - Page limit (default 100) + trait_type : TraitType - offset : typing.Optional[int] - Page offset (default 0) + display_name : typing.Optional[str] request_options : typing.Optional[RequestOptions] Request-specific configuration. Returns ------- - AsyncHttpResponse[CountEntityTraitDefinitionsResponse] + AsyncHttpResponse[GetOrCreateEntityTraitDefinitionResponse] OK """ _response = await self._client_wrapper.httpx_client.request( - "entity-trait-definitions/count", - method="GET", - params={ + "entity-trait-definitions", + method="POST", + json={ + "display_name": display_name, "entity_type": entity_type, - "ids": ids, - "q": q, + "hierarchy": hierarchy, "trait_type": trait_type, - "trait_types": trait_types, - "limit": limit, - "offset": offset, + }, + headers={ + "content-type": "application/json", }, request_options=request_options, + omit=OMIT, ) try: if 200 <= _response.status_code < 300: _data = typing.cast( - CountEntityTraitDefinitionsResponse, + GetOrCreateEntityTraitDefinitionResponse, parse_obj_as( - type_=CountEntityTraitDefinitionsResponse, # type: ignore + type_=GetOrCreateEntityTraitDefinitionResponse, # type: ignore object_=_response.json(), ), ) @@ -7265,68 +6596,38 @@ async def count_entity_trait_definitions( status_code=_response.status_code, headers=dict(_response.headers), body=_response_json ) - async def get_entity_trait_values( - self, - *, - definition_id: str, - q: typing.Optional[str] = None, - limit: typing.Optional[int] = None, - offset: typing.Optional[int] = None, - request_options: typing.Optional[RequestOptions] = None, - ) -> AsyncHttpResponse[GetEntityTraitValuesResponse]: + async def get_entity_trait_definition( + self, entity_trait_definition_id: str, *, request_options: typing.Optional[RequestOptions] = None + ) -> AsyncHttpResponse[GetEntityTraitDefinitionResponse]: """ Parameters ---------- - definition_id : str - - q : typing.Optional[str] - - limit : typing.Optional[int] - Page limit (default 100) - - offset : typing.Optional[int] - Page offset (default 0) + entity_trait_definition_id : str + entity_trait_definition_id request_options : typing.Optional[RequestOptions] Request-specific configuration. Returns ------- - AsyncHttpResponse[GetEntityTraitValuesResponse] + AsyncHttpResponse[GetEntityTraitDefinitionResponse] OK """ _response = await self._client_wrapper.httpx_client.request( - "entity-trait-values", + f"entity-trait-definitions/{jsonable_encoder(entity_trait_definition_id)}", method="GET", - params={ - "definition_id": definition_id, - "q": q, - "limit": limit, - "offset": offset, - }, request_options=request_options, ) try: if 200 <= _response.status_code < 300: _data = typing.cast( - GetEntityTraitValuesResponse, + GetEntityTraitDefinitionResponse, parse_obj_as( - type_=GetEntityTraitValuesResponse, # type: ignore + type_=GetEntityTraitDefinitionResponse, # type: ignore object_=_response.json(), ), ) return AsyncHttpResponse(response=_response, data=_data) - if _response.status_code == 400: - raise BadRequestError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) if _response.status_code == 401: raise UnauthorizedError( headers=dict(_response.headers), @@ -7384,65 +6685,51 @@ async def get_entity_trait_values( status_code=_response.status_code, headers=dict(_response.headers), body=_response_json ) - async def list_plan_changes( + async def update_entity_trait_definition( self, + entity_trait_definition_id: str, *, - action: typing.Optional[PlanChangeAction] = None, - base_plan_action: typing.Optional[PlanChangeBasePlanAction] = None, - company_id: typing.Optional[str] = None, - company_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None, - plan_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None, - limit: typing.Optional[int] = None, - offset: typing.Optional[int] = None, + trait_type: TraitType, + display_name: typing.Optional[str] = OMIT, request_options: typing.Optional[RequestOptions] = None, - ) -> AsyncHttpResponse[ListPlanChangesResponse]: - """ - Parameters - ---------- - action : typing.Optional[PlanChangeAction] - - base_plan_action : typing.Optional[PlanChangeBasePlanAction] - - company_id : typing.Optional[str] - - company_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]] - - plan_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]] + ) -> AsyncHttpResponse[UpdateEntityTraitDefinitionResponse]: + """ + Parameters + ---------- + entity_trait_definition_id : str + entity_trait_definition_id - limit : typing.Optional[int] - Page limit (default 100) + trait_type : TraitType - offset : typing.Optional[int] - Page offset (default 0) + display_name : typing.Optional[str] request_options : typing.Optional[RequestOptions] Request-specific configuration. Returns ------- - AsyncHttpResponse[ListPlanChangesResponse] + AsyncHttpResponse[UpdateEntityTraitDefinitionResponse] OK """ _response = await self._client_wrapper.httpx_client.request( - "plan-changes", - method="GET", - params={ - "action": action, - "base_plan_action": base_plan_action, - "company_id": company_id, - "company_ids": company_ids, - "plan_ids": plan_ids, - "limit": limit, - "offset": offset, + f"entity-trait-definitions/{jsonable_encoder(entity_trait_definition_id)}", + method="PUT", + json={ + "display_name": display_name, + "trait_type": trait_type, + }, + headers={ + "content-type": "application/json", }, request_options=request_options, + omit=OMIT, ) try: if 200 <= _response.status_code < 300: _data = typing.cast( - ListPlanChangesResponse, + UpdateEntityTraitDefinitionResponse, parse_obj_as( - type_=ListPlanChangesResponse, # type: ignore + type_=UpdateEntityTraitDefinitionResponse, # type: ignore object_=_response.json(), ), ) @@ -7515,38 +6802,80 @@ async def list_plan_changes( status_code=_response.status_code, headers=dict(_response.headers), body=_response_json ) - async def get_plan_change( - self, plan_change_id: str, *, request_options: typing.Optional[RequestOptions] = None - ) -> AsyncHttpResponse[GetPlanChangeResponse]: + async def count_entity_trait_definitions( + self, + *, + entity_type: typing.Optional[EntityType] = None, + ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None, + q: typing.Optional[str] = None, + trait_type: typing.Optional[TraitType] = None, + trait_types: typing.Optional[typing.Union[TraitType, typing.Sequence[TraitType]]] = None, + limit: typing.Optional[int] = None, + offset: typing.Optional[int] = None, + request_options: typing.Optional[RequestOptions] = None, + ) -> AsyncHttpResponse[CountEntityTraitDefinitionsResponse]: """ Parameters ---------- - plan_change_id : str - plan_change_id + entity_type : typing.Optional[EntityType] + + ids : typing.Optional[typing.Union[str, typing.Sequence[str]]] + + q : typing.Optional[str] + + trait_type : typing.Optional[TraitType] + + trait_types : typing.Optional[typing.Union[TraitType, typing.Sequence[TraitType]]] + + limit : typing.Optional[int] + Page limit (default 100) + + offset : typing.Optional[int] + Page offset (default 0) request_options : typing.Optional[RequestOptions] Request-specific configuration. Returns ------- - AsyncHttpResponse[GetPlanChangeResponse] + AsyncHttpResponse[CountEntityTraitDefinitionsResponse] OK """ _response = await self._client_wrapper.httpx_client.request( - f"plan-changes/{jsonable_encoder(plan_change_id)}", + "entity-trait-definitions/count", method="GET", + params={ + "entity_type": entity_type, + "ids": ids, + "q": q, + "trait_type": trait_type, + "trait_types": trait_types, + "limit": limit, + "offset": offset, + }, request_options=request_options, ) try: if 200 <= _response.status_code < 300: _data = typing.cast( - GetPlanChangeResponse, + CountEntityTraitDefinitionsResponse, parse_obj_as( - type_=GetPlanChangeResponse, # type: ignore + type_=CountEntityTraitDefinitionsResponse, # type: ignore object_=_response.json(), ), ) return AsyncHttpResponse(response=_response, data=_data) + if _response.status_code == 400: + raise BadRequestError( + headers=dict(_response.headers), + body=typing.cast( + types_api_error_ApiError, + parse_obj_as( + type_=types_api_error_ApiError, # type: ignore + object_=_response.json(), + ), + ), + ) if _response.status_code == 401: raise UnauthorizedError( headers=dict(_response.headers), @@ -7604,27 +6933,21 @@ async def get_plan_change( status_code=_response.status_code, headers=dict(_response.headers), body=_response_json ) - async def list_plan_traits( + async def get_entity_trait_values( self, *, - ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None, - plan_id: typing.Optional[str] = None, - trait_id: typing.Optional[str] = None, - trait_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None, + definition_id: str, + q: typing.Optional[str] = None, limit: typing.Optional[int] = None, offset: typing.Optional[int] = None, request_options: typing.Optional[RequestOptions] = None, - ) -> AsyncHttpResponse[ListPlanTraitsResponse]: + ) -> AsyncHttpResponse[GetEntityTraitValuesResponse]: """ Parameters ---------- - ids : typing.Optional[typing.Union[str, typing.Sequence[str]]] - - plan_id : typing.Optional[str] - - trait_id : typing.Optional[str] + definition_id : str - trait_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]] + q : typing.Optional[str] limit : typing.Optional[int] Page limit (default 100) @@ -7637,17 +6960,15 @@ async def list_plan_traits( Returns ------- - AsyncHttpResponse[ListPlanTraitsResponse] + AsyncHttpResponse[GetEntityTraitValuesResponse] OK """ _response = await self._client_wrapper.httpx_client.request( - "plan-traits", + "entity-trait-values", method="GET", params={ - "ids": ids, - "plan_id": plan_id, - "trait_id": trait_id, - "trait_ids": trait_ids, + "definition_id": definition_id, + "q": q, "limit": limit, "offset": offset, }, @@ -7656,9 +6977,9 @@ async def list_plan_traits( try: if 200 <= _response.status_code < 300: _data = typing.cast( - ListPlanTraitsResponse, + GetEntityTraitValuesResponse, parse_obj_as( - type_=ListPlanTraitsResponse, # type: ignore + type_=GetEntityTraitValuesResponse, # type: ignore object_=_response.json(), ), ) @@ -7731,46 +7052,65 @@ async def list_plan_traits( status_code=_response.status_code, headers=dict(_response.headers), body=_response_json ) - async def create_plan_trait( - self, *, plan_id: str, trait_id: str, trait_value: str, request_options: typing.Optional[RequestOptions] = None - ) -> AsyncHttpResponse[CreatePlanTraitResponse]: + async def list_plan_changes( + self, + *, + action: typing.Optional[PlanChangeAction] = None, + base_plan_action: typing.Optional[PlanChangeBasePlanAction] = None, + company_id: typing.Optional[str] = None, + company_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None, + plan_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None, + limit: typing.Optional[int] = None, + offset: typing.Optional[int] = None, + request_options: typing.Optional[RequestOptions] = None, + ) -> AsyncHttpResponse[ListPlanChangesResponse]: """ Parameters ---------- - plan_id : str + action : typing.Optional[PlanChangeAction] + + base_plan_action : typing.Optional[PlanChangeBasePlanAction] + + company_id : typing.Optional[str] + + company_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]] + + plan_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]] - trait_id : str + limit : typing.Optional[int] + Page limit (default 100) - trait_value : str + offset : typing.Optional[int] + Page offset (default 0) request_options : typing.Optional[RequestOptions] Request-specific configuration. Returns ------- - AsyncHttpResponse[CreatePlanTraitResponse] - Created + AsyncHttpResponse[ListPlanChangesResponse] + OK """ _response = await self._client_wrapper.httpx_client.request( - "plan-traits", - method="POST", - json={ - "plan_id": plan_id, - "trait_id": trait_id, - "trait_value": trait_value, - }, - headers={ - "content-type": "application/json", + "plan-changes", + method="GET", + params={ + "action": action, + "base_plan_action": base_plan_action, + "company_id": company_id, + "company_ids": company_ids, + "plan_ids": plan_ids, + "limit": limit, + "offset": offset, }, request_options=request_options, - omit=OMIT, ) try: if 200 <= _response.status_code < 300: _data = typing.cast( - CreatePlanTraitResponse, + ListPlanChangesResponse, parse_obj_as( - type_=CreatePlanTraitResponse, # type: ignore + type_=ListPlanChangesResponse, # type: ignore object_=_response.json(), ), ) @@ -7843,34 +7183,34 @@ async def create_plan_trait( status_code=_response.status_code, headers=dict(_response.headers), body=_response_json ) - async def get_plan_trait( - self, plan_trait_id: str, *, request_options: typing.Optional[RequestOptions] = None - ) -> AsyncHttpResponse[GetPlanTraitResponse]: + async def get_plan_change( + self, plan_change_id: str, *, request_options: typing.Optional[RequestOptions] = None + ) -> AsyncHttpResponse[GetPlanChangeResponse]: """ Parameters ---------- - plan_trait_id : str - plan_trait_id + plan_change_id : str + plan_change_id request_options : typing.Optional[RequestOptions] Request-specific configuration. Returns ------- - AsyncHttpResponse[GetPlanTraitResponse] + AsyncHttpResponse[GetPlanChangeResponse] OK """ _response = await self._client_wrapper.httpx_client.request( - f"plan-traits/{jsonable_encoder(plan_trait_id)}", + f"plan-changes/{jsonable_encoder(plan_change_id)}", method="GET", request_options=request_options, ) try: if 200 <= _response.status_code < 300: _data = typing.cast( - GetPlanTraitResponse, + GetPlanChangeResponse, parse_obj_as( - type_=GetPlanTraitResponse, # type: ignore + type_=GetPlanChangeResponse, # type: ignore object_=_response.json(), ), ) @@ -7932,51 +7272,61 @@ async def get_plan_trait( status_code=_response.status_code, headers=dict(_response.headers), body=_response_json ) - async def update_plan_trait( + async def list_plan_traits( self, - plan_trait_id: str, *, - plan_id: str, - trait_value: str, + ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None, + plan_id: typing.Optional[str] = None, + trait_id: typing.Optional[str] = None, + trait_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None, + limit: typing.Optional[int] = None, + offset: typing.Optional[int] = None, request_options: typing.Optional[RequestOptions] = None, - ) -> AsyncHttpResponse[UpdatePlanTraitResponse]: + ) -> AsyncHttpResponse[ListPlanTraitsResponse]: """ Parameters ---------- - plan_trait_id : str - plan_trait_id + ids : typing.Optional[typing.Union[str, typing.Sequence[str]]] - plan_id : str + plan_id : typing.Optional[str] + + trait_id : typing.Optional[str] + + trait_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]] + + limit : typing.Optional[int] + Page limit (default 100) - trait_value : str + offset : typing.Optional[int] + Page offset (default 0) request_options : typing.Optional[RequestOptions] Request-specific configuration. Returns ------- - AsyncHttpResponse[UpdatePlanTraitResponse] + AsyncHttpResponse[ListPlanTraitsResponse] OK """ _response = await self._client_wrapper.httpx_client.request( - f"plan-traits/{jsonable_encoder(plan_trait_id)}", - method="PUT", - json={ + "plan-traits", + method="GET", + params={ + "ids": ids, "plan_id": plan_id, - "trait_value": trait_value, - }, - headers={ - "content-type": "application/json", + "trait_id": trait_id, + "trait_ids": trait_ids, + "limit": limit, + "offset": offset, }, request_options=request_options, - omit=OMIT, ) try: if 200 <= _response.status_code < 300: _data = typing.cast( - UpdatePlanTraitResponse, + ListPlanTraitsResponse, parse_obj_as( - type_=UpdatePlanTraitResponse, # type: ignore + type_=ListPlanTraitsResponse, # type: ignore object_=_response.json(), ), ) @@ -8049,9 +7399,9 @@ async def update_plan_trait( status_code=_response.status_code, headers=dict(_response.headers), body=_response_json ) - async def delete_plan_trait( + async def get_plan_trait( self, plan_trait_id: str, *, request_options: typing.Optional[RequestOptions] = None - ) -> AsyncHttpResponse[DeletePlanTraitResponse]: + ) -> AsyncHttpResponse[GetPlanTraitResponse]: """ Parameters ---------- @@ -8063,35 +7413,24 @@ async def delete_plan_trait( Returns ------- - AsyncHttpResponse[DeletePlanTraitResponse] + AsyncHttpResponse[GetPlanTraitResponse] OK """ _response = await self._client_wrapper.httpx_client.request( f"plan-traits/{jsonable_encoder(plan_trait_id)}", - method="DELETE", + method="GET", request_options=request_options, ) try: if 200 <= _response.status_code < 300: _data = typing.cast( - DeletePlanTraitResponse, + GetPlanTraitResponse, parse_obj_as( - type_=DeletePlanTraitResponse, # type: ignore + type_=GetPlanTraitResponse, # type: ignore object_=_response.json(), ), ) return AsyncHttpResponse(response=_response, data=_data) - if _response.status_code == 400: - raise BadRequestError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) if _response.status_code == 401: raise UnauthorizedError( headers=dict(_response.headers), diff --git a/src/schematic/companies/types/__init__.py b/src/schematic/companies/types/__init__.py index 50aa598..a8e0ac3 100644 --- a/src/schematic/companies/types/__init__.py +++ b/src/schematic/companies/types/__init__.py @@ -17,13 +17,11 @@ from .count_users_params import CountUsersParams from .count_users_response import CountUsersResponse from .create_company_response import CreateCompanyResponse - from .create_plan_trait_response import CreatePlanTraitResponse from .create_user_response import CreateUserResponse from .delete_company_by_keys_response import DeleteCompanyByKeysResponse from .delete_company_membership_response import DeleteCompanyMembershipResponse from .delete_company_params import DeleteCompanyParams from .delete_company_response import DeleteCompanyResponse - from .delete_plan_trait_response import DeletePlanTraitResponse from .delete_user_by_keys_response import DeleteUserByKeysResponse from .delete_user_response import DeleteUserResponse from .get_active_company_subscription_params import GetActiveCompanySubscriptionParams @@ -56,7 +54,6 @@ from .lookup_user_params import LookupUserParams from .lookup_user_response import LookupUserResponse from .update_entity_trait_definition_response import UpdateEntityTraitDefinitionResponse - from .update_plan_trait_response import UpdatePlanTraitResponse from .update_plan_traits_bulk_response import UpdatePlanTraitsBulkResponse from .upsert_company_response import UpsertCompanyResponse from .upsert_company_trait_response import UpsertCompanyTraitResponse @@ -74,13 +71,11 @@ "CountUsersParams": ".count_users_params", "CountUsersResponse": ".count_users_response", "CreateCompanyResponse": ".create_company_response", - "CreatePlanTraitResponse": ".create_plan_trait_response", "CreateUserResponse": ".create_user_response", "DeleteCompanyByKeysResponse": ".delete_company_by_keys_response", "DeleteCompanyMembershipResponse": ".delete_company_membership_response", "DeleteCompanyParams": ".delete_company_params", "DeleteCompanyResponse": ".delete_company_response", - "DeletePlanTraitResponse": ".delete_plan_trait_response", "DeleteUserByKeysResponse": ".delete_user_by_keys_response", "DeleteUserResponse": ".delete_user_response", "GetActiveCompanySubscriptionParams": ".get_active_company_subscription_params", @@ -113,7 +108,6 @@ "LookupUserParams": ".lookup_user_params", "LookupUserResponse": ".lookup_user_response", "UpdateEntityTraitDefinitionResponse": ".update_entity_trait_definition_response", - "UpdatePlanTraitResponse": ".update_plan_trait_response", "UpdatePlanTraitsBulkResponse": ".update_plan_traits_bulk_response", "UpsertCompanyResponse": ".upsert_company_response", "UpsertCompanyTraitResponse": ".upsert_company_trait_response", @@ -155,13 +149,11 @@ def __dir__(): "CountUsersParams", "CountUsersResponse", "CreateCompanyResponse", - "CreatePlanTraitResponse", "CreateUserResponse", "DeleteCompanyByKeysResponse", "DeleteCompanyMembershipResponse", "DeleteCompanyParams", "DeleteCompanyResponse", - "DeletePlanTraitResponse", "DeleteUserByKeysResponse", "DeleteUserResponse", "GetActiveCompanySubscriptionParams", @@ -194,7 +186,6 @@ def __dir__(): "LookupUserParams", "LookupUserResponse", "UpdateEntityTraitDefinitionResponse", - "UpdatePlanTraitResponse", "UpdatePlanTraitsBulkResponse", "UpsertCompanyResponse", "UpsertCompanyTraitResponse", diff --git a/src/schematic/companies/types/update_plan_trait_response.py b/src/schematic/companies/types/update_plan_trait_response.py deleted file mode 100644 index 35ce976..0000000 --- a/src/schematic/companies/types/update_plan_trait_response.py +++ /dev/null @@ -1,24 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ...core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from ...types.plan_trait_response_data import PlanTraitResponseData - - -class UpdatePlanTraitResponse(UniversalBaseModel): - data: PlanTraitResponseData - params: typing.Dict[str, typing.Any] = pydantic.Field() - """ - Input parameters - """ - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/schematic/entitlements/__init__.py b/src/schematic/entitlements/__init__.py index 158f96a..45bf41e 100644 --- a/src/schematic/entitlements/__init__.py +++ b/src/schematic/entitlements/__init__.py @@ -17,13 +17,7 @@ CountFeatureUsersResponse, CountPlanEntitlementsParams, CountPlanEntitlementsResponse, - CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriod, - CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriodMonthReset, - CreateCompanyOverrideRequestBodyMetricPeriod, - CreateCompanyOverrideRequestBodyMetricPeriodMonthReset, CreateCompanyOverrideResponse, - CreatePlanEntitlementRequestBodyMetricPeriod, - CreatePlanEntitlementRequestBodyMetricPeriodMonthReset, CreatePlanEntitlementResponse, DeleteCompanyOverrideResponse, DeletePlanEntitlementResponse, @@ -44,11 +38,7 @@ ListFeatureUsersResponse, ListPlanEntitlementsParams, ListPlanEntitlementsResponse, - UpdateCompanyOverrideRequestBodyMetricPeriod, - UpdateCompanyOverrideRequestBodyMetricPeriodMonthReset, UpdateCompanyOverrideResponse, - UpdatePlanEntitlementRequestBodyMetricPeriod, - UpdatePlanEntitlementRequestBodyMetricPeriodMonthReset, UpdatePlanEntitlementResponse, UpsertPlanEntitlementForBillingProductResponse, ) @@ -63,13 +53,7 @@ "CountFeatureUsersResponse": ".types", "CountPlanEntitlementsParams": ".types", "CountPlanEntitlementsResponse": ".types", - "CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriod": ".types", - "CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriodMonthReset": ".types", - "CreateCompanyOverrideRequestBodyMetricPeriod": ".types", - "CreateCompanyOverrideRequestBodyMetricPeriodMonthReset": ".types", "CreateCompanyOverrideResponse": ".types", - "CreatePlanEntitlementRequestBodyMetricPeriod": ".types", - "CreatePlanEntitlementRequestBodyMetricPeriodMonthReset": ".types", "CreatePlanEntitlementResponse": ".types", "DeleteCompanyOverrideResponse": ".types", "DeletePlanEntitlementResponse": ".types", @@ -90,11 +74,7 @@ "ListFeatureUsersResponse": ".types", "ListPlanEntitlementsParams": ".types", "ListPlanEntitlementsResponse": ".types", - "UpdateCompanyOverrideRequestBodyMetricPeriod": ".types", - "UpdateCompanyOverrideRequestBodyMetricPeriodMonthReset": ".types", "UpdateCompanyOverrideResponse": ".types", - "UpdatePlanEntitlementRequestBodyMetricPeriod": ".types", - "UpdatePlanEntitlementRequestBodyMetricPeriodMonthReset": ".types", "UpdatePlanEntitlementResponse": ".types", "UpsertPlanEntitlementForBillingProductResponse": ".types", } @@ -132,13 +112,7 @@ def __dir__(): "CountFeatureUsersResponse", "CountPlanEntitlementsParams", "CountPlanEntitlementsResponse", - "CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriod", - "CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriodMonthReset", - "CreateCompanyOverrideRequestBodyMetricPeriod", - "CreateCompanyOverrideRequestBodyMetricPeriodMonthReset", "CreateCompanyOverrideResponse", - "CreatePlanEntitlementRequestBodyMetricPeriod", - "CreatePlanEntitlementRequestBodyMetricPeriodMonthReset", "CreatePlanEntitlementResponse", "DeleteCompanyOverrideResponse", "DeletePlanEntitlementResponse", @@ -159,11 +133,7 @@ def __dir__(): "ListFeatureUsersResponse", "ListPlanEntitlementsParams", "ListPlanEntitlementsResponse", - "UpdateCompanyOverrideRequestBodyMetricPeriod", - "UpdateCompanyOverrideRequestBodyMetricPeriodMonthReset", "UpdateCompanyOverrideResponse", - "UpdatePlanEntitlementRequestBodyMetricPeriod", - "UpdatePlanEntitlementRequestBodyMetricPeriodMonthReset", "UpdatePlanEntitlementResponse", "UpsertPlanEntitlementForBillingProductResponse", ] diff --git a/src/schematic/entitlements/client.py b/src/schematic/entitlements/client.py index 505de13..028fcf5 100644 --- a/src/schematic/entitlements/client.py +++ b/src/schematic/entitlements/client.py @@ -11,6 +11,8 @@ from ..types.currency_price_request_body import CurrencyPriceRequestBody from ..types.entitlement_price_behavior import EntitlementPriceBehavior from ..types.entitlement_value_type import EntitlementValueType +from ..types.metric_period import MetricPeriod +from ..types.metric_period_month_reset import MetricPeriodMonthReset from ..types.time_series_granularity import TimeSeriesGranularity from .raw_client import AsyncRawEntitlementsClient, RawEntitlementsClient from .types.count_company_overrides_response import CountCompanyOverridesResponse @@ -18,21 +20,7 @@ from .types.count_feature_usage_response import CountFeatureUsageResponse from .types.count_feature_users_response import CountFeatureUsersResponse from .types.count_plan_entitlements_response import CountPlanEntitlementsResponse -from .types.create_billing_linked_plan_entitlement_request_body_metric_period import ( - CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriod, -) -from .types.create_billing_linked_plan_entitlement_request_body_metric_period_month_reset import ( - CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriodMonthReset, -) -from .types.create_company_override_request_body_metric_period import CreateCompanyOverrideRequestBodyMetricPeriod -from .types.create_company_override_request_body_metric_period_month_reset import ( - CreateCompanyOverrideRequestBodyMetricPeriodMonthReset, -) from .types.create_company_override_response import CreateCompanyOverrideResponse -from .types.create_plan_entitlement_request_body_metric_period import CreatePlanEntitlementRequestBodyMetricPeriod -from .types.create_plan_entitlement_request_body_metric_period_month_reset import ( - CreatePlanEntitlementRequestBodyMetricPeriodMonthReset, -) from .types.create_plan_entitlement_response import CreatePlanEntitlementResponse from .types.delete_company_override_response import DeleteCompanyOverrideResponse from .types.delete_plan_entitlement_response import DeletePlanEntitlementResponse @@ -46,15 +34,7 @@ from .types.list_feature_usage_response import ListFeatureUsageResponse from .types.list_feature_users_response import ListFeatureUsersResponse from .types.list_plan_entitlements_response import ListPlanEntitlementsResponse -from .types.update_company_override_request_body_metric_period import UpdateCompanyOverrideRequestBodyMetricPeriod -from .types.update_company_override_request_body_metric_period_month_reset import ( - UpdateCompanyOverrideRequestBodyMetricPeriodMonthReset, -) from .types.update_company_override_response import UpdateCompanyOverrideResponse -from .types.update_plan_entitlement_request_body_metric_period import UpdatePlanEntitlementRequestBodyMetricPeriod -from .types.update_plan_entitlement_request_body_metric_period_month_reset import ( - UpdatePlanEntitlementRequestBodyMetricPeriodMonthReset, -) from .types.update_plan_entitlement_response import UpdatePlanEntitlementResponse from .types.upsert_plan_entitlement_for_billing_product_response import UpsertPlanEntitlementForBillingProductResponse @@ -170,8 +150,8 @@ def create_company_override( value_type: EntitlementValueType, credit_consumption_rate: typing.Optional[float] = OMIT, expiration_date: typing.Optional[dt.datetime] = OMIT, - metric_period: typing.Optional[CreateCompanyOverrideRequestBodyMetricPeriod] = OMIT, - metric_period_month_reset: typing.Optional[CreateCompanyOverrideRequestBodyMetricPeriodMonthReset] = OMIT, + metric_period: typing.Optional[MetricPeriod] = OMIT, + metric_period_month_reset: typing.Optional[MetricPeriodMonthReset] = OMIT, note: typing.Optional[str] = OMIT, value_bool: typing.Optional[bool] = OMIT, value_credit_id: typing.Optional[str] = OMIT, @@ -192,9 +172,9 @@ def create_company_override( expiration_date : typing.Optional[dt.datetime] - metric_period : typing.Optional[CreateCompanyOverrideRequestBodyMetricPeriod] + metric_period : typing.Optional[MetricPeriod] - metric_period_month_reset : typing.Optional[CreateCompanyOverrideRequestBodyMetricPeriodMonthReset] + metric_period_month_reset : typing.Optional[MetricPeriodMonthReset] note : typing.Optional[str] @@ -282,8 +262,8 @@ def update_company_override( value_type: EntitlementValueType, credit_consumption_rate: typing.Optional[float] = OMIT, expiration_date: typing.Optional[dt.datetime] = OMIT, - metric_period: typing.Optional[UpdateCompanyOverrideRequestBodyMetricPeriod] = OMIT, - metric_period_month_reset: typing.Optional[UpdateCompanyOverrideRequestBodyMetricPeriodMonthReset] = OMIT, + metric_period: typing.Optional[MetricPeriod] = OMIT, + metric_period_month_reset: typing.Optional[MetricPeriodMonthReset] = OMIT, note: typing.Optional[str] = OMIT, value_bool: typing.Optional[bool] = OMIT, value_credit_id: typing.Optional[str] = OMIT, @@ -303,9 +283,9 @@ def update_company_override( expiration_date : typing.Optional[dt.datetime] - metric_period : typing.Optional[UpdateCompanyOverrideRequestBodyMetricPeriod] + metric_period : typing.Optional[MetricPeriod] - metric_period_month_reset : typing.Optional[UpdateCompanyOverrideRequestBodyMetricPeriodMonthReset] + metric_period_month_reset : typing.Optional[MetricPeriodMonthReset] note : typing.Optional[str] @@ -981,8 +961,8 @@ def create_plan_entitlement( credit_consumption_rate: typing.Optional[float] = OMIT, currency: typing.Optional[str] = OMIT, currency_prices: typing.Optional[typing.Sequence[CurrencyPriceRequestBody]] = OMIT, - metric_period: typing.Optional[CreatePlanEntitlementRequestBodyMetricPeriod] = OMIT, - metric_period_month_reset: typing.Optional[CreatePlanEntitlementRequestBodyMetricPeriodMonthReset] = OMIT, + metric_period: typing.Optional[MetricPeriod] = OMIT, + metric_period_month_reset: typing.Optional[MetricPeriodMonthReset] = OMIT, monthly_metered_price_id: typing.Optional[str] = OMIT, monthly_price_tiers: typing.Optional[typing.Sequence[CreatePriceTierRequestBody]] = OMIT, monthly_unit_price: typing.Optional[int] = OMIT, @@ -1022,9 +1002,9 @@ def create_plan_entitlement( currency_prices : typing.Optional[typing.Sequence[CurrencyPriceRequestBody]] - metric_period : typing.Optional[CreatePlanEntitlementRequestBodyMetricPeriod] + metric_period : typing.Optional[MetricPeriod] - metric_period_month_reset : typing.Optional[CreatePlanEntitlementRequestBodyMetricPeriodMonthReset] + metric_period_month_reset : typing.Optional[MetricPeriodMonthReset] monthly_metered_price_id : typing.Optional[str] @@ -1158,8 +1138,8 @@ def update_plan_entitlement( credit_consumption_rate: typing.Optional[float] = OMIT, currency: typing.Optional[str] = OMIT, currency_prices: typing.Optional[typing.Sequence[CurrencyPriceRequestBody]] = OMIT, - metric_period: typing.Optional[UpdatePlanEntitlementRequestBodyMetricPeriod] = OMIT, - metric_period_month_reset: typing.Optional[UpdatePlanEntitlementRequestBodyMetricPeriodMonthReset] = OMIT, + metric_period: typing.Optional[MetricPeriod] = OMIT, + metric_period_month_reset: typing.Optional[MetricPeriodMonthReset] = OMIT, monthly_metered_price_id: typing.Optional[str] = OMIT, monthly_price_tiers: typing.Optional[typing.Sequence[CreatePriceTierRequestBody]] = OMIT, monthly_unit_price: typing.Optional[int] = OMIT, @@ -1197,9 +1177,9 @@ def update_plan_entitlement( currency_prices : typing.Optional[typing.Sequence[CurrencyPriceRequestBody]] - metric_period : typing.Optional[UpdatePlanEntitlementRequestBodyMetricPeriod] + metric_period : typing.Optional[MetricPeriod] - metric_period_month_reset : typing.Optional[UpdatePlanEntitlementRequestBodyMetricPeriodMonthReset] + metric_period_month_reset : typing.Optional[MetricPeriodMonthReset] monthly_metered_price_id : typing.Optional[str] @@ -1331,10 +1311,8 @@ def upsert_plan_entitlement_for_billing_product( credit_consumption_rate: typing.Optional[float] = OMIT, currency: typing.Optional[str] = OMIT, currency_prices: typing.Optional[typing.Sequence[CurrencyPriceRequestBody]] = OMIT, - metric_period: typing.Optional[CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriod] = OMIT, - metric_period_month_reset: typing.Optional[ - CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriodMonthReset - ] = OMIT, + metric_period: typing.Optional[MetricPeriod] = OMIT, + metric_period_month_reset: typing.Optional[MetricPeriodMonthReset] = OMIT, monthly_metered_price_id: typing.Optional[str] = OMIT, monthly_price_tiers: typing.Optional[typing.Sequence[CreatePriceTierRequestBody]] = OMIT, monthly_unit_price: typing.Optional[int] = OMIT, @@ -1378,9 +1356,9 @@ def upsert_plan_entitlement_for_billing_product( currency_prices : typing.Optional[typing.Sequence[CurrencyPriceRequestBody]] - metric_period : typing.Optional[CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriod] + metric_period : typing.Optional[MetricPeriod] - metric_period_month_reset : typing.Optional[CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriodMonthReset] + metric_period_month_reset : typing.Optional[MetricPeriodMonthReset] monthly_metered_price_id : typing.Optional[str] @@ -1757,8 +1735,8 @@ async def create_company_override( value_type: EntitlementValueType, credit_consumption_rate: typing.Optional[float] = OMIT, expiration_date: typing.Optional[dt.datetime] = OMIT, - metric_period: typing.Optional[CreateCompanyOverrideRequestBodyMetricPeriod] = OMIT, - metric_period_month_reset: typing.Optional[CreateCompanyOverrideRequestBodyMetricPeriodMonthReset] = OMIT, + metric_period: typing.Optional[MetricPeriod] = OMIT, + metric_period_month_reset: typing.Optional[MetricPeriodMonthReset] = OMIT, note: typing.Optional[str] = OMIT, value_bool: typing.Optional[bool] = OMIT, value_credit_id: typing.Optional[str] = OMIT, @@ -1779,9 +1757,9 @@ async def create_company_override( expiration_date : typing.Optional[dt.datetime] - metric_period : typing.Optional[CreateCompanyOverrideRequestBodyMetricPeriod] + metric_period : typing.Optional[MetricPeriod] - metric_period_month_reset : typing.Optional[CreateCompanyOverrideRequestBodyMetricPeriodMonthReset] + metric_period_month_reset : typing.Optional[MetricPeriodMonthReset] note : typing.Optional[str] @@ -1885,8 +1863,8 @@ async def update_company_override( value_type: EntitlementValueType, credit_consumption_rate: typing.Optional[float] = OMIT, expiration_date: typing.Optional[dt.datetime] = OMIT, - metric_period: typing.Optional[UpdateCompanyOverrideRequestBodyMetricPeriod] = OMIT, - metric_period_month_reset: typing.Optional[UpdateCompanyOverrideRequestBodyMetricPeriodMonthReset] = OMIT, + metric_period: typing.Optional[MetricPeriod] = OMIT, + metric_period_month_reset: typing.Optional[MetricPeriodMonthReset] = OMIT, note: typing.Optional[str] = OMIT, value_bool: typing.Optional[bool] = OMIT, value_credit_id: typing.Optional[str] = OMIT, @@ -1906,9 +1884,9 @@ async def update_company_override( expiration_date : typing.Optional[dt.datetime] - metric_period : typing.Optional[UpdateCompanyOverrideRequestBodyMetricPeriod] + metric_period : typing.Optional[MetricPeriod] - metric_period_month_reset : typing.Optional[UpdateCompanyOverrideRequestBodyMetricPeriodMonthReset] + metric_period_month_reset : typing.Optional[MetricPeriodMonthReset] note : typing.Optional[str] @@ -2671,8 +2649,8 @@ async def create_plan_entitlement( credit_consumption_rate: typing.Optional[float] = OMIT, currency: typing.Optional[str] = OMIT, currency_prices: typing.Optional[typing.Sequence[CurrencyPriceRequestBody]] = OMIT, - metric_period: typing.Optional[CreatePlanEntitlementRequestBodyMetricPeriod] = OMIT, - metric_period_month_reset: typing.Optional[CreatePlanEntitlementRequestBodyMetricPeriodMonthReset] = OMIT, + metric_period: typing.Optional[MetricPeriod] = OMIT, + metric_period_month_reset: typing.Optional[MetricPeriodMonthReset] = OMIT, monthly_metered_price_id: typing.Optional[str] = OMIT, monthly_price_tiers: typing.Optional[typing.Sequence[CreatePriceTierRequestBody]] = OMIT, monthly_unit_price: typing.Optional[int] = OMIT, @@ -2712,9 +2690,9 @@ async def create_plan_entitlement( currency_prices : typing.Optional[typing.Sequence[CurrencyPriceRequestBody]] - metric_period : typing.Optional[CreatePlanEntitlementRequestBodyMetricPeriod] + metric_period : typing.Optional[MetricPeriod] - metric_period_month_reset : typing.Optional[CreatePlanEntitlementRequestBodyMetricPeriodMonthReset] + metric_period_month_reset : typing.Optional[MetricPeriodMonthReset] monthly_metered_price_id : typing.Optional[str] @@ -2864,8 +2842,8 @@ async def update_plan_entitlement( credit_consumption_rate: typing.Optional[float] = OMIT, currency: typing.Optional[str] = OMIT, currency_prices: typing.Optional[typing.Sequence[CurrencyPriceRequestBody]] = OMIT, - metric_period: typing.Optional[UpdatePlanEntitlementRequestBodyMetricPeriod] = OMIT, - metric_period_month_reset: typing.Optional[UpdatePlanEntitlementRequestBodyMetricPeriodMonthReset] = OMIT, + metric_period: typing.Optional[MetricPeriod] = OMIT, + metric_period_month_reset: typing.Optional[MetricPeriodMonthReset] = OMIT, monthly_metered_price_id: typing.Optional[str] = OMIT, monthly_price_tiers: typing.Optional[typing.Sequence[CreatePriceTierRequestBody]] = OMIT, monthly_unit_price: typing.Optional[int] = OMIT, @@ -2903,9 +2881,9 @@ async def update_plan_entitlement( currency_prices : typing.Optional[typing.Sequence[CurrencyPriceRequestBody]] - metric_period : typing.Optional[UpdatePlanEntitlementRequestBodyMetricPeriod] + metric_period : typing.Optional[MetricPeriod] - metric_period_month_reset : typing.Optional[UpdatePlanEntitlementRequestBodyMetricPeriodMonthReset] + metric_period_month_reset : typing.Optional[MetricPeriodMonthReset] monthly_metered_price_id : typing.Optional[str] @@ -3053,10 +3031,8 @@ async def upsert_plan_entitlement_for_billing_product( credit_consumption_rate: typing.Optional[float] = OMIT, currency: typing.Optional[str] = OMIT, currency_prices: typing.Optional[typing.Sequence[CurrencyPriceRequestBody]] = OMIT, - metric_period: typing.Optional[CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriod] = OMIT, - metric_period_month_reset: typing.Optional[ - CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriodMonthReset - ] = OMIT, + metric_period: typing.Optional[MetricPeriod] = OMIT, + metric_period_month_reset: typing.Optional[MetricPeriodMonthReset] = OMIT, monthly_metered_price_id: typing.Optional[str] = OMIT, monthly_price_tiers: typing.Optional[typing.Sequence[CreatePriceTierRequestBody]] = OMIT, monthly_unit_price: typing.Optional[int] = OMIT, @@ -3100,9 +3076,9 @@ async def upsert_plan_entitlement_for_billing_product( currency_prices : typing.Optional[typing.Sequence[CurrencyPriceRequestBody]] - metric_period : typing.Optional[CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriod] + metric_period : typing.Optional[MetricPeriod] - metric_period_month_reset : typing.Optional[CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriodMonthReset] + metric_period_month_reset : typing.Optional[MetricPeriodMonthReset] monthly_metered_price_id : typing.Optional[str] diff --git a/src/schematic/entitlements/raw_client.py b/src/schematic/entitlements/raw_client.py index bc3f10b..5e29542 100644 --- a/src/schematic/entitlements/raw_client.py +++ b/src/schematic/entitlements/raw_client.py @@ -25,27 +25,15 @@ from ..types.currency_price_request_body import CurrencyPriceRequestBody from ..types.entitlement_price_behavior import EntitlementPriceBehavior from ..types.entitlement_value_type import EntitlementValueType +from ..types.metric_period import MetricPeriod +from ..types.metric_period_month_reset import MetricPeriodMonthReset from ..types.time_series_granularity import TimeSeriesGranularity from .types.count_company_overrides_response import CountCompanyOverridesResponse from .types.count_feature_companies_response import CountFeatureCompaniesResponse from .types.count_feature_usage_response import CountFeatureUsageResponse from .types.count_feature_users_response import CountFeatureUsersResponse from .types.count_plan_entitlements_response import CountPlanEntitlementsResponse -from .types.create_billing_linked_plan_entitlement_request_body_metric_period import ( - CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriod, -) -from .types.create_billing_linked_plan_entitlement_request_body_metric_period_month_reset import ( - CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriodMonthReset, -) -from .types.create_company_override_request_body_metric_period import CreateCompanyOverrideRequestBodyMetricPeriod -from .types.create_company_override_request_body_metric_period_month_reset import ( - CreateCompanyOverrideRequestBodyMetricPeriodMonthReset, -) from .types.create_company_override_response import CreateCompanyOverrideResponse -from .types.create_plan_entitlement_request_body_metric_period import CreatePlanEntitlementRequestBodyMetricPeriod -from .types.create_plan_entitlement_request_body_metric_period_month_reset import ( - CreatePlanEntitlementRequestBodyMetricPeriodMonthReset, -) from .types.create_plan_entitlement_response import CreatePlanEntitlementResponse from .types.delete_company_override_response import DeleteCompanyOverrideResponse from .types.delete_plan_entitlement_response import DeletePlanEntitlementResponse @@ -59,15 +47,7 @@ from .types.list_feature_usage_response import ListFeatureUsageResponse from .types.list_feature_users_response import ListFeatureUsersResponse from .types.list_plan_entitlements_response import ListPlanEntitlementsResponse -from .types.update_company_override_request_body_metric_period import UpdateCompanyOverrideRequestBodyMetricPeriod -from .types.update_company_override_request_body_metric_period_month_reset import ( - UpdateCompanyOverrideRequestBodyMetricPeriodMonthReset, -) from .types.update_company_override_response import UpdateCompanyOverrideResponse -from .types.update_plan_entitlement_request_body_metric_period import UpdatePlanEntitlementRequestBodyMetricPeriod -from .types.update_plan_entitlement_request_body_metric_period_month_reset import ( - UpdatePlanEntitlementRequestBodyMetricPeriodMonthReset, -) from .types.update_plan_entitlement_response import UpdatePlanEntitlementResponse from .types.upsert_plan_entitlement_for_billing_product_response import UpsertPlanEntitlementForBillingProductResponse from pydantic import ValidationError @@ -234,8 +214,8 @@ def create_company_override( value_type: EntitlementValueType, credit_consumption_rate: typing.Optional[float] = OMIT, expiration_date: typing.Optional[dt.datetime] = OMIT, - metric_period: typing.Optional[CreateCompanyOverrideRequestBodyMetricPeriod] = OMIT, - metric_period_month_reset: typing.Optional[CreateCompanyOverrideRequestBodyMetricPeriodMonthReset] = OMIT, + metric_period: typing.Optional[MetricPeriod] = OMIT, + metric_period_month_reset: typing.Optional[MetricPeriodMonthReset] = OMIT, note: typing.Optional[str] = OMIT, value_bool: typing.Optional[bool] = OMIT, value_credit_id: typing.Optional[str] = OMIT, @@ -256,9 +236,9 @@ def create_company_override( expiration_date : typing.Optional[dt.datetime] - metric_period : typing.Optional[CreateCompanyOverrideRequestBodyMetricPeriod] + metric_period : typing.Optional[MetricPeriod] - metric_period_month_reset : typing.Optional[CreateCompanyOverrideRequestBodyMetricPeriodMonthReset] + metric_period_month_reset : typing.Optional[MetricPeriodMonthReset] note : typing.Optional[str] @@ -475,8 +455,8 @@ def update_company_override( value_type: EntitlementValueType, credit_consumption_rate: typing.Optional[float] = OMIT, expiration_date: typing.Optional[dt.datetime] = OMIT, - metric_period: typing.Optional[UpdateCompanyOverrideRequestBodyMetricPeriod] = OMIT, - metric_period_month_reset: typing.Optional[UpdateCompanyOverrideRequestBodyMetricPeriodMonthReset] = OMIT, + metric_period: typing.Optional[MetricPeriod] = OMIT, + metric_period_month_reset: typing.Optional[MetricPeriodMonthReset] = OMIT, note: typing.Optional[str] = OMIT, value_bool: typing.Optional[bool] = OMIT, value_credit_id: typing.Optional[str] = OMIT, @@ -496,9 +476,9 @@ def update_company_override( expiration_date : typing.Optional[dt.datetime] - metric_period : typing.Optional[UpdateCompanyOverrideRequestBodyMetricPeriod] + metric_period : typing.Optional[MetricPeriod] - metric_period_month_reset : typing.Optional[UpdateCompanyOverrideRequestBodyMetricPeriodMonthReset] + metric_period_month_reset : typing.Optional[MetricPeriodMonthReset] note : typing.Optional[str] @@ -1888,8 +1868,8 @@ def create_plan_entitlement( credit_consumption_rate: typing.Optional[float] = OMIT, currency: typing.Optional[str] = OMIT, currency_prices: typing.Optional[typing.Sequence[CurrencyPriceRequestBody]] = OMIT, - metric_period: typing.Optional[CreatePlanEntitlementRequestBodyMetricPeriod] = OMIT, - metric_period_month_reset: typing.Optional[CreatePlanEntitlementRequestBodyMetricPeriodMonthReset] = OMIT, + metric_period: typing.Optional[MetricPeriod] = OMIT, + metric_period_month_reset: typing.Optional[MetricPeriodMonthReset] = OMIT, monthly_metered_price_id: typing.Optional[str] = OMIT, monthly_price_tiers: typing.Optional[typing.Sequence[CreatePriceTierRequestBody]] = OMIT, monthly_unit_price: typing.Optional[int] = OMIT, @@ -1929,9 +1909,9 @@ def create_plan_entitlement( currency_prices : typing.Optional[typing.Sequence[CurrencyPriceRequestBody]] - metric_period : typing.Optional[CreatePlanEntitlementRequestBodyMetricPeriod] + metric_period : typing.Optional[MetricPeriod] - metric_period_month_reset : typing.Optional[CreatePlanEntitlementRequestBodyMetricPeriodMonthReset] + metric_period_month_reset : typing.Optional[MetricPeriodMonthReset] monthly_metered_price_id : typing.Optional[str] @@ -2206,8 +2186,8 @@ def update_plan_entitlement( credit_consumption_rate: typing.Optional[float] = OMIT, currency: typing.Optional[str] = OMIT, currency_prices: typing.Optional[typing.Sequence[CurrencyPriceRequestBody]] = OMIT, - metric_period: typing.Optional[UpdatePlanEntitlementRequestBodyMetricPeriod] = OMIT, - metric_period_month_reset: typing.Optional[UpdatePlanEntitlementRequestBodyMetricPeriodMonthReset] = OMIT, + metric_period: typing.Optional[MetricPeriod] = OMIT, + metric_period_month_reset: typing.Optional[MetricPeriodMonthReset] = OMIT, monthly_metered_price_id: typing.Optional[str] = OMIT, monthly_price_tiers: typing.Optional[typing.Sequence[CreatePriceTierRequestBody]] = OMIT, monthly_unit_price: typing.Optional[int] = OMIT, @@ -2245,9 +2225,9 @@ def update_plan_entitlement( currency_prices : typing.Optional[typing.Sequence[CurrencyPriceRequestBody]] - metric_period : typing.Optional[UpdatePlanEntitlementRequestBodyMetricPeriod] + metric_period : typing.Optional[MetricPeriod] - metric_period_month_reset : typing.Optional[UpdatePlanEntitlementRequestBodyMetricPeriodMonthReset] + metric_period_month_reset : typing.Optional[MetricPeriodMonthReset] monthly_metered_price_id : typing.Optional[str] @@ -2531,10 +2511,8 @@ def upsert_plan_entitlement_for_billing_product( credit_consumption_rate: typing.Optional[float] = OMIT, currency: typing.Optional[str] = OMIT, currency_prices: typing.Optional[typing.Sequence[CurrencyPriceRequestBody]] = OMIT, - metric_period: typing.Optional[CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriod] = OMIT, - metric_period_month_reset: typing.Optional[ - CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriodMonthReset - ] = OMIT, + metric_period: typing.Optional[MetricPeriod] = OMIT, + metric_period_month_reset: typing.Optional[MetricPeriodMonthReset] = OMIT, monthly_metered_price_id: typing.Optional[str] = OMIT, monthly_price_tiers: typing.Optional[typing.Sequence[CreatePriceTierRequestBody]] = OMIT, monthly_unit_price: typing.Optional[int] = OMIT, @@ -2578,9 +2556,9 @@ def upsert_plan_entitlement_for_billing_product( currency_prices : typing.Optional[typing.Sequence[CurrencyPriceRequestBody]] - metric_period : typing.Optional[CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriod] + metric_period : typing.Optional[MetricPeriod] - metric_period_month_reset : typing.Optional[CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriodMonthReset] + metric_period_month_reset : typing.Optional[MetricPeriodMonthReset] monthly_metered_price_id : typing.Optional[str] @@ -3274,8 +3252,8 @@ async def create_company_override( value_type: EntitlementValueType, credit_consumption_rate: typing.Optional[float] = OMIT, expiration_date: typing.Optional[dt.datetime] = OMIT, - metric_period: typing.Optional[CreateCompanyOverrideRequestBodyMetricPeriod] = OMIT, - metric_period_month_reset: typing.Optional[CreateCompanyOverrideRequestBodyMetricPeriodMonthReset] = OMIT, + metric_period: typing.Optional[MetricPeriod] = OMIT, + metric_period_month_reset: typing.Optional[MetricPeriodMonthReset] = OMIT, note: typing.Optional[str] = OMIT, value_bool: typing.Optional[bool] = OMIT, value_credit_id: typing.Optional[str] = OMIT, @@ -3296,9 +3274,9 @@ async def create_company_override( expiration_date : typing.Optional[dt.datetime] - metric_period : typing.Optional[CreateCompanyOverrideRequestBodyMetricPeriod] + metric_period : typing.Optional[MetricPeriod] - metric_period_month_reset : typing.Optional[CreateCompanyOverrideRequestBodyMetricPeriodMonthReset] + metric_period_month_reset : typing.Optional[MetricPeriodMonthReset] note : typing.Optional[str] @@ -3515,8 +3493,8 @@ async def update_company_override( value_type: EntitlementValueType, credit_consumption_rate: typing.Optional[float] = OMIT, expiration_date: typing.Optional[dt.datetime] = OMIT, - metric_period: typing.Optional[UpdateCompanyOverrideRequestBodyMetricPeriod] = OMIT, - metric_period_month_reset: typing.Optional[UpdateCompanyOverrideRequestBodyMetricPeriodMonthReset] = OMIT, + metric_period: typing.Optional[MetricPeriod] = OMIT, + metric_period_month_reset: typing.Optional[MetricPeriodMonthReset] = OMIT, note: typing.Optional[str] = OMIT, value_bool: typing.Optional[bool] = OMIT, value_credit_id: typing.Optional[str] = OMIT, @@ -3536,9 +3514,9 @@ async def update_company_override( expiration_date : typing.Optional[dt.datetime] - metric_period : typing.Optional[UpdateCompanyOverrideRequestBodyMetricPeriod] + metric_period : typing.Optional[MetricPeriod] - metric_period_month_reset : typing.Optional[UpdateCompanyOverrideRequestBodyMetricPeriodMonthReset] + metric_period_month_reset : typing.Optional[MetricPeriodMonthReset] note : typing.Optional[str] @@ -4928,8 +4906,8 @@ async def create_plan_entitlement( credit_consumption_rate: typing.Optional[float] = OMIT, currency: typing.Optional[str] = OMIT, currency_prices: typing.Optional[typing.Sequence[CurrencyPriceRequestBody]] = OMIT, - metric_period: typing.Optional[CreatePlanEntitlementRequestBodyMetricPeriod] = OMIT, - metric_period_month_reset: typing.Optional[CreatePlanEntitlementRequestBodyMetricPeriodMonthReset] = OMIT, + metric_period: typing.Optional[MetricPeriod] = OMIT, + metric_period_month_reset: typing.Optional[MetricPeriodMonthReset] = OMIT, monthly_metered_price_id: typing.Optional[str] = OMIT, monthly_price_tiers: typing.Optional[typing.Sequence[CreatePriceTierRequestBody]] = OMIT, monthly_unit_price: typing.Optional[int] = OMIT, @@ -4969,9 +4947,9 @@ async def create_plan_entitlement( currency_prices : typing.Optional[typing.Sequence[CurrencyPriceRequestBody]] - metric_period : typing.Optional[CreatePlanEntitlementRequestBodyMetricPeriod] + metric_period : typing.Optional[MetricPeriod] - metric_period_month_reset : typing.Optional[CreatePlanEntitlementRequestBodyMetricPeriodMonthReset] + metric_period_month_reset : typing.Optional[MetricPeriodMonthReset] monthly_metered_price_id : typing.Optional[str] @@ -5246,8 +5224,8 @@ async def update_plan_entitlement( credit_consumption_rate: typing.Optional[float] = OMIT, currency: typing.Optional[str] = OMIT, currency_prices: typing.Optional[typing.Sequence[CurrencyPriceRequestBody]] = OMIT, - metric_period: typing.Optional[UpdatePlanEntitlementRequestBodyMetricPeriod] = OMIT, - metric_period_month_reset: typing.Optional[UpdatePlanEntitlementRequestBodyMetricPeriodMonthReset] = OMIT, + metric_period: typing.Optional[MetricPeriod] = OMIT, + metric_period_month_reset: typing.Optional[MetricPeriodMonthReset] = OMIT, monthly_metered_price_id: typing.Optional[str] = OMIT, monthly_price_tiers: typing.Optional[typing.Sequence[CreatePriceTierRequestBody]] = OMIT, monthly_unit_price: typing.Optional[int] = OMIT, @@ -5285,9 +5263,9 @@ async def update_plan_entitlement( currency_prices : typing.Optional[typing.Sequence[CurrencyPriceRequestBody]] - metric_period : typing.Optional[UpdatePlanEntitlementRequestBodyMetricPeriod] + metric_period : typing.Optional[MetricPeriod] - metric_period_month_reset : typing.Optional[UpdatePlanEntitlementRequestBodyMetricPeriodMonthReset] + metric_period_month_reset : typing.Optional[MetricPeriodMonthReset] monthly_metered_price_id : typing.Optional[str] @@ -5571,10 +5549,8 @@ async def upsert_plan_entitlement_for_billing_product( credit_consumption_rate: typing.Optional[float] = OMIT, currency: typing.Optional[str] = OMIT, currency_prices: typing.Optional[typing.Sequence[CurrencyPriceRequestBody]] = OMIT, - metric_period: typing.Optional[CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriod] = OMIT, - metric_period_month_reset: typing.Optional[ - CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriodMonthReset - ] = OMIT, + metric_period: typing.Optional[MetricPeriod] = OMIT, + metric_period_month_reset: typing.Optional[MetricPeriodMonthReset] = OMIT, monthly_metered_price_id: typing.Optional[str] = OMIT, monthly_price_tiers: typing.Optional[typing.Sequence[CreatePriceTierRequestBody]] = OMIT, monthly_unit_price: typing.Optional[int] = OMIT, @@ -5618,9 +5594,9 @@ async def upsert_plan_entitlement_for_billing_product( currency_prices : typing.Optional[typing.Sequence[CurrencyPriceRequestBody]] - metric_period : typing.Optional[CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriod] + metric_period : typing.Optional[MetricPeriod] - metric_period_month_reset : typing.Optional[CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriodMonthReset] + metric_period_month_reset : typing.Optional[MetricPeriodMonthReset] monthly_metered_price_id : typing.Optional[str] diff --git a/src/schematic/entitlements/types/__init__.py b/src/schematic/entitlements/types/__init__.py index 680ee7a..47364e0 100644 --- a/src/schematic/entitlements/types/__init__.py +++ b/src/schematic/entitlements/types/__init__.py @@ -16,21 +16,7 @@ from .count_feature_users_response import CountFeatureUsersResponse from .count_plan_entitlements_params import CountPlanEntitlementsParams from .count_plan_entitlements_response import CountPlanEntitlementsResponse - from .create_billing_linked_plan_entitlement_request_body_metric_period import ( - CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriod, - ) - from .create_billing_linked_plan_entitlement_request_body_metric_period_month_reset import ( - CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriodMonthReset, - ) - from .create_company_override_request_body_metric_period import CreateCompanyOverrideRequestBodyMetricPeriod - from .create_company_override_request_body_metric_period_month_reset import ( - CreateCompanyOverrideRequestBodyMetricPeriodMonthReset, - ) from .create_company_override_response import CreateCompanyOverrideResponse - from .create_plan_entitlement_request_body_metric_period import CreatePlanEntitlementRequestBodyMetricPeriod - from .create_plan_entitlement_request_body_metric_period_month_reset import ( - CreatePlanEntitlementRequestBodyMetricPeriodMonthReset, - ) from .create_plan_entitlement_response import CreatePlanEntitlementResponse from .delete_company_override_response import DeleteCompanyOverrideResponse from .delete_plan_entitlement_response import DeletePlanEntitlementResponse @@ -51,15 +37,7 @@ from .list_feature_users_response import ListFeatureUsersResponse from .list_plan_entitlements_params import ListPlanEntitlementsParams from .list_plan_entitlements_response import ListPlanEntitlementsResponse - from .update_company_override_request_body_metric_period import UpdateCompanyOverrideRequestBodyMetricPeriod - from .update_company_override_request_body_metric_period_month_reset import ( - UpdateCompanyOverrideRequestBodyMetricPeriodMonthReset, - ) from .update_company_override_response import UpdateCompanyOverrideResponse - from .update_plan_entitlement_request_body_metric_period import UpdatePlanEntitlementRequestBodyMetricPeriod - from .update_plan_entitlement_request_body_metric_period_month_reset import ( - UpdatePlanEntitlementRequestBodyMetricPeriodMonthReset, - ) from .update_plan_entitlement_response import UpdatePlanEntitlementResponse from .upsert_plan_entitlement_for_billing_product_response import UpsertPlanEntitlementForBillingProductResponse _dynamic_imports: typing.Dict[str, str] = { @@ -73,13 +51,7 @@ "CountFeatureUsersResponse": ".count_feature_users_response", "CountPlanEntitlementsParams": ".count_plan_entitlements_params", "CountPlanEntitlementsResponse": ".count_plan_entitlements_response", - "CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriod": ".create_billing_linked_plan_entitlement_request_body_metric_period", - "CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriodMonthReset": ".create_billing_linked_plan_entitlement_request_body_metric_period_month_reset", - "CreateCompanyOverrideRequestBodyMetricPeriod": ".create_company_override_request_body_metric_period", - "CreateCompanyOverrideRequestBodyMetricPeriodMonthReset": ".create_company_override_request_body_metric_period_month_reset", "CreateCompanyOverrideResponse": ".create_company_override_response", - "CreatePlanEntitlementRequestBodyMetricPeriod": ".create_plan_entitlement_request_body_metric_period", - "CreatePlanEntitlementRequestBodyMetricPeriodMonthReset": ".create_plan_entitlement_request_body_metric_period_month_reset", "CreatePlanEntitlementResponse": ".create_plan_entitlement_response", "DeleteCompanyOverrideResponse": ".delete_company_override_response", "DeletePlanEntitlementResponse": ".delete_plan_entitlement_response", @@ -100,11 +72,7 @@ "ListFeatureUsersResponse": ".list_feature_users_response", "ListPlanEntitlementsParams": ".list_plan_entitlements_params", "ListPlanEntitlementsResponse": ".list_plan_entitlements_response", - "UpdateCompanyOverrideRequestBodyMetricPeriod": ".update_company_override_request_body_metric_period", - "UpdateCompanyOverrideRequestBodyMetricPeriodMonthReset": ".update_company_override_request_body_metric_period_month_reset", "UpdateCompanyOverrideResponse": ".update_company_override_response", - "UpdatePlanEntitlementRequestBodyMetricPeriod": ".update_plan_entitlement_request_body_metric_period", - "UpdatePlanEntitlementRequestBodyMetricPeriodMonthReset": ".update_plan_entitlement_request_body_metric_period_month_reset", "UpdatePlanEntitlementResponse": ".update_plan_entitlement_response", "UpsertPlanEntitlementForBillingProductResponse": ".upsert_plan_entitlement_for_billing_product_response", } @@ -142,13 +110,7 @@ def __dir__(): "CountFeatureUsersResponse", "CountPlanEntitlementsParams", "CountPlanEntitlementsResponse", - "CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriod", - "CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriodMonthReset", - "CreateCompanyOverrideRequestBodyMetricPeriod", - "CreateCompanyOverrideRequestBodyMetricPeriodMonthReset", "CreateCompanyOverrideResponse", - "CreatePlanEntitlementRequestBodyMetricPeriod", - "CreatePlanEntitlementRequestBodyMetricPeriodMonthReset", "CreatePlanEntitlementResponse", "DeleteCompanyOverrideResponse", "DeletePlanEntitlementResponse", @@ -169,11 +131,7 @@ def __dir__(): "ListFeatureUsersResponse", "ListPlanEntitlementsParams", "ListPlanEntitlementsResponse", - "UpdateCompanyOverrideRequestBodyMetricPeriod", - "UpdateCompanyOverrideRequestBodyMetricPeriodMonthReset", "UpdateCompanyOverrideResponse", - "UpdatePlanEntitlementRequestBodyMetricPeriod", - "UpdatePlanEntitlementRequestBodyMetricPeriodMonthReset", "UpdatePlanEntitlementResponse", "UpsertPlanEntitlementForBillingProductResponse", ] diff --git a/src/schematic/entitlements/types/create_billing_linked_plan_entitlement_request_body_metric_period.py b/src/schematic/entitlements/types/create_billing_linked_plan_entitlement_request_body_metric_period.py deleted file mode 100644 index 136c17b..0000000 --- a/src/schematic/entitlements/types/create_billing_linked_plan_entitlement_request_body_metric_period.py +++ /dev/null @@ -1,7 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriod = typing.Union[ - typing.Literal["all_time", "current_month", "current_week", "current_day"], typing.Any -] diff --git a/src/schematic/entitlements/types/create_billing_linked_plan_entitlement_request_body_metric_period_month_reset.py b/src/schematic/entitlements/types/create_billing_linked_plan_entitlement_request_body_metric_period_month_reset.py deleted file mode 100644 index 1db18e6..0000000 --- a/src/schematic/entitlements/types/create_billing_linked_plan_entitlement_request_body_metric_period_month_reset.py +++ /dev/null @@ -1,7 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriodMonthReset = typing.Union[ - typing.Literal["first_of_month", "billing_cycle"], typing.Any -] diff --git a/src/schematic/entitlements/types/create_company_override_request_body_metric_period.py b/src/schematic/entitlements/types/create_company_override_request_body_metric_period.py deleted file mode 100644 index beda67a..0000000 --- a/src/schematic/entitlements/types/create_company_override_request_body_metric_period.py +++ /dev/null @@ -1,7 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -CreateCompanyOverrideRequestBodyMetricPeriod = typing.Union[ - typing.Literal["all_time", "current_month", "current_week", "current_day"], typing.Any -] diff --git a/src/schematic/entitlements/types/create_company_override_request_body_metric_period_month_reset.py b/src/schematic/entitlements/types/create_company_override_request_body_metric_period_month_reset.py deleted file mode 100644 index 829da81..0000000 --- a/src/schematic/entitlements/types/create_company_override_request_body_metric_period_month_reset.py +++ /dev/null @@ -1,7 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -CreateCompanyOverrideRequestBodyMetricPeriodMonthReset = typing.Union[ - typing.Literal["first_of_month", "billing_cycle"], typing.Any -] diff --git a/src/schematic/entitlements/types/create_plan_entitlement_request_body_metric_period.py b/src/schematic/entitlements/types/create_plan_entitlement_request_body_metric_period.py deleted file mode 100644 index 0bcfcd1..0000000 --- a/src/schematic/entitlements/types/create_plan_entitlement_request_body_metric_period.py +++ /dev/null @@ -1,7 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -CreatePlanEntitlementRequestBodyMetricPeriod = typing.Union[ - typing.Literal["all_time", "current_month", "current_week", "current_day"], typing.Any -] diff --git a/src/schematic/entitlements/types/create_plan_entitlement_request_body_metric_period_month_reset.py b/src/schematic/entitlements/types/create_plan_entitlement_request_body_metric_period_month_reset.py deleted file mode 100644 index 204cd57..0000000 --- a/src/schematic/entitlements/types/create_plan_entitlement_request_body_metric_period_month_reset.py +++ /dev/null @@ -1,7 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -CreatePlanEntitlementRequestBodyMetricPeriodMonthReset = typing.Union[ - typing.Literal["first_of_month", "billing_cycle"], typing.Any -] diff --git a/src/schematic/entitlements/types/update_company_override_request_body_metric_period.py b/src/schematic/entitlements/types/update_company_override_request_body_metric_period.py deleted file mode 100644 index d92b779..0000000 --- a/src/schematic/entitlements/types/update_company_override_request_body_metric_period.py +++ /dev/null @@ -1,7 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -UpdateCompanyOverrideRequestBodyMetricPeriod = typing.Union[ - typing.Literal["all_time", "current_month", "current_week", "current_day"], typing.Any -] diff --git a/src/schematic/entitlements/types/update_company_override_request_body_metric_period_month_reset.py b/src/schematic/entitlements/types/update_company_override_request_body_metric_period_month_reset.py deleted file mode 100644 index 557dee5..0000000 --- a/src/schematic/entitlements/types/update_company_override_request_body_metric_period_month_reset.py +++ /dev/null @@ -1,7 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -UpdateCompanyOverrideRequestBodyMetricPeriodMonthReset = typing.Union[ - typing.Literal["first_of_month", "billing_cycle"], typing.Any -] diff --git a/src/schematic/entitlements/types/update_plan_entitlement_request_body_metric_period.py b/src/schematic/entitlements/types/update_plan_entitlement_request_body_metric_period.py deleted file mode 100644 index 53cd841..0000000 --- a/src/schematic/entitlements/types/update_plan_entitlement_request_body_metric_period.py +++ /dev/null @@ -1,7 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -UpdatePlanEntitlementRequestBodyMetricPeriod = typing.Union[ - typing.Literal["all_time", "current_month", "current_week", "current_day"], typing.Any -] diff --git a/src/schematic/entitlements/types/update_plan_entitlement_request_body_metric_period_month_reset.py b/src/schematic/entitlements/types/update_plan_entitlement_request_body_metric_period_month_reset.py deleted file mode 100644 index f054f74..0000000 --- a/src/schematic/entitlements/types/update_plan_entitlement_request_body_metric_period_month_reset.py +++ /dev/null @@ -1,7 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -UpdatePlanEntitlementRequestBodyMetricPeriodMonthReset = typing.Union[ - typing.Literal["first_of_month", "billing_cycle"], typing.Any -] diff --git a/src/schematic/features/client.py b/src/schematic/features/client.py index 3b72411..d8a6be2 100644 --- a/src/schematic/features/client.py +++ b/src/schematic/features/client.py @@ -142,7 +142,7 @@ def create_feature( flag: typing.Optional[CreateOrUpdateFlagRequestBody] = OMIT, icon: typing.Optional[str] = OMIT, lifecycle_phase: typing.Optional[FeatureLifecyclePhase] = OMIT, - maintainer_id: typing.Optional[str] = OMIT, + maintainer_account_member_id: typing.Optional[str] = OMIT, plural_name: typing.Optional[str] = OMIT, singular_name: typing.Optional[str] = OMIT, trait_id: typing.Optional[str] = OMIT, @@ -165,7 +165,7 @@ def create_feature( lifecycle_phase : typing.Optional[FeatureLifecyclePhase] - maintainer_id : typing.Optional[str] + maintainer_account_member_id : typing.Optional[str] plural_name : typing.Optional[str] @@ -202,7 +202,7 @@ def create_feature( flag=flag, icon=icon, lifecycle_phase=lifecycle_phase, - maintainer_id=maintainer_id, + maintainer_account_member_id=maintainer_account_member_id, plural_name=plural_name, singular_name=singular_name, trait_id=trait_id, @@ -251,7 +251,7 @@ def update_feature( flag: typing.Optional[CreateOrUpdateFlagRequestBody] = OMIT, icon: typing.Optional[str] = OMIT, lifecycle_phase: typing.Optional[FeatureLifecyclePhase] = OMIT, - maintainer_id: typing.Optional[str] = OMIT, + maintainer_account_member_id: typing.Optional[str] = OMIT, name: typing.Optional[str] = OMIT, plural_name: typing.Optional[str] = OMIT, singular_name: typing.Optional[str] = OMIT, @@ -276,7 +276,7 @@ def update_feature( lifecycle_phase : typing.Optional[FeatureLifecyclePhase] - maintainer_id : typing.Optional[str] + maintainer_account_member_id : typing.Optional[str] name : typing.Optional[str] @@ -313,7 +313,7 @@ def update_feature( flag=flag, icon=icon, lifecycle_phase=lifecycle_phase, - maintainer_id=maintainer_id, + maintainer_account_member_id=maintainer_account_member_id, name=name, plural_name=plural_name, singular_name=singular_name, @@ -365,7 +365,7 @@ def upsert_feature_for_billing_product( flag: typing.Optional[CreateOrUpdateFlagRequestBody] = OMIT, icon: typing.Optional[str] = OMIT, lifecycle_phase: typing.Optional[FeatureLifecyclePhase] = OMIT, - maintainer_id: typing.Optional[str] = OMIT, + maintainer_account_member_id: typing.Optional[str] = OMIT, plural_name: typing.Optional[str] = OMIT, singular_name: typing.Optional[str] = OMIT, trait_id: typing.Optional[str] = OMIT, @@ -392,7 +392,7 @@ def upsert_feature_for_billing_product( lifecycle_phase : typing.Optional[FeatureLifecyclePhase] - maintainer_id : typing.Optional[str] + maintainer_account_member_id : typing.Optional[str] plural_name : typing.Optional[str] @@ -433,7 +433,7 @@ def upsert_feature_for_billing_product( flag=flag, icon=icon, lifecycle_phase=lifecycle_phase, - maintainer_id=maintainer_id, + maintainer_account_member_id=maintainer_account_member_id, plural_name=plural_name, singular_name=singular_name, trait_id=trait_id, @@ -587,7 +587,7 @@ def create_flag( key: str, name: str, feature_id: typing.Optional[str] = OMIT, - maintainer_id: typing.Optional[str] = OMIT, + maintainer_account_member_id: typing.Optional[str] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> CreateFlagResponse: """ @@ -603,7 +603,7 @@ def create_flag( feature_id : typing.Optional[str] - maintainer_id : typing.Optional[str] + maintainer_account_member_id : typing.Optional[str] request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -633,7 +633,7 @@ def create_flag( key=key, name=name, feature_id=feature_id, - maintainer_id=maintainer_id, + maintainer_account_member_id=maintainer_account_member_id, request_options=request_options, ) return _response.data @@ -676,7 +676,7 @@ def update_flag( key: str, name: str, feature_id: typing.Optional[str] = OMIT, - maintainer_id: typing.Optional[str] = OMIT, + maintainer_account_member_id: typing.Optional[str] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> UpdateFlagResponse: """ @@ -695,7 +695,7 @@ def update_flag( feature_id : typing.Optional[str] - maintainer_id : typing.Optional[str] + maintainer_account_member_id : typing.Optional[str] request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -727,7 +727,7 @@ def update_flag( key=key, name=name, feature_id=feature_id, - maintainer_id=maintainer_id, + maintainer_account_member_id=maintainer_account_member_id, request_options=request_options, ) return _response.data @@ -806,7 +806,7 @@ def update_flag_rules( CreateOrUpdateConditionGroupRequestBody( conditions=[ CreateOrUpdateConditionRequestBody( - condition_type="company", + condition_type="base_plan", operator="eq", resource_ids=["resource_ids"], ) @@ -815,7 +815,7 @@ def update_flag_rules( ], conditions=[ CreateOrUpdateConditionRequestBody( - condition_type="company", + condition_type="base_plan", operator="eq", resource_ids=["resource_ids"], ) @@ -1109,7 +1109,7 @@ async def create_feature( flag: typing.Optional[CreateOrUpdateFlagRequestBody] = OMIT, icon: typing.Optional[str] = OMIT, lifecycle_phase: typing.Optional[FeatureLifecyclePhase] = OMIT, - maintainer_id: typing.Optional[str] = OMIT, + maintainer_account_member_id: typing.Optional[str] = OMIT, plural_name: typing.Optional[str] = OMIT, singular_name: typing.Optional[str] = OMIT, trait_id: typing.Optional[str] = OMIT, @@ -1132,7 +1132,7 @@ async def create_feature( lifecycle_phase : typing.Optional[FeatureLifecyclePhase] - maintainer_id : typing.Optional[str] + maintainer_account_member_id : typing.Optional[str] plural_name : typing.Optional[str] @@ -1177,7 +1177,7 @@ async def main() -> None: flag=flag, icon=icon, lifecycle_phase=lifecycle_phase, - maintainer_id=maintainer_id, + maintainer_account_member_id=maintainer_account_member_id, plural_name=plural_name, singular_name=singular_name, trait_id=trait_id, @@ -1234,7 +1234,7 @@ async def update_feature( flag: typing.Optional[CreateOrUpdateFlagRequestBody] = OMIT, icon: typing.Optional[str] = OMIT, lifecycle_phase: typing.Optional[FeatureLifecyclePhase] = OMIT, - maintainer_id: typing.Optional[str] = OMIT, + maintainer_account_member_id: typing.Optional[str] = OMIT, name: typing.Optional[str] = OMIT, plural_name: typing.Optional[str] = OMIT, singular_name: typing.Optional[str] = OMIT, @@ -1259,7 +1259,7 @@ async def update_feature( lifecycle_phase : typing.Optional[FeatureLifecyclePhase] - maintainer_id : typing.Optional[str] + maintainer_account_member_id : typing.Optional[str] name : typing.Optional[str] @@ -1304,7 +1304,7 @@ async def main() -> None: flag=flag, icon=icon, lifecycle_phase=lifecycle_phase, - maintainer_id=maintainer_id, + maintainer_account_member_id=maintainer_account_member_id, name=name, plural_name=plural_name, singular_name=singular_name, @@ -1364,7 +1364,7 @@ async def upsert_feature_for_billing_product( flag: typing.Optional[CreateOrUpdateFlagRequestBody] = OMIT, icon: typing.Optional[str] = OMIT, lifecycle_phase: typing.Optional[FeatureLifecyclePhase] = OMIT, - maintainer_id: typing.Optional[str] = OMIT, + maintainer_account_member_id: typing.Optional[str] = OMIT, plural_name: typing.Optional[str] = OMIT, singular_name: typing.Optional[str] = OMIT, trait_id: typing.Optional[str] = OMIT, @@ -1391,7 +1391,7 @@ async def upsert_feature_for_billing_product( lifecycle_phase : typing.Optional[FeatureLifecyclePhase] - maintainer_id : typing.Optional[str] + maintainer_account_member_id : typing.Optional[str] plural_name : typing.Optional[str] @@ -1440,7 +1440,7 @@ async def main() -> None: flag=flag, icon=icon, lifecycle_phase=lifecycle_phase, - maintainer_id=maintainer_id, + maintainer_account_member_id=maintainer_account_member_id, plural_name=plural_name, singular_name=singular_name, trait_id=trait_id, @@ -1610,7 +1610,7 @@ async def create_flag( key: str, name: str, feature_id: typing.Optional[str] = OMIT, - maintainer_id: typing.Optional[str] = OMIT, + maintainer_account_member_id: typing.Optional[str] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> CreateFlagResponse: """ @@ -1626,7 +1626,7 @@ async def create_flag( feature_id : typing.Optional[str] - maintainer_id : typing.Optional[str] + maintainer_account_member_id : typing.Optional[str] request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -1664,7 +1664,7 @@ async def main() -> None: key=key, name=name, feature_id=feature_id, - maintainer_id=maintainer_id, + maintainer_account_member_id=maintainer_account_member_id, request_options=request_options, ) return _response.data @@ -1717,7 +1717,7 @@ async def update_flag( key: str, name: str, feature_id: typing.Optional[str] = OMIT, - maintainer_id: typing.Optional[str] = OMIT, + maintainer_account_member_id: typing.Optional[str] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> UpdateFlagResponse: """ @@ -1736,7 +1736,7 @@ async def update_flag( feature_id : typing.Optional[str] - maintainer_id : typing.Optional[str] + maintainer_account_member_id : typing.Optional[str] request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -1776,7 +1776,7 @@ async def main() -> None: key=key, name=name, feature_id=feature_id, - maintainer_id=maintainer_id, + maintainer_account_member_id=maintainer_account_member_id, request_options=request_options, ) return _response.data @@ -1868,7 +1868,7 @@ async def main() -> None: CreateOrUpdateConditionGroupRequestBody( conditions=[ CreateOrUpdateConditionRequestBody( - condition_type="company", + condition_type="base_plan", operator="eq", resource_ids=["resource_ids"], ) @@ -1877,7 +1877,7 @@ async def main() -> None: ], conditions=[ CreateOrUpdateConditionRequestBody( - condition_type="company", + condition_type="base_plan", operator="eq", resource_ids=["resource_ids"], ) diff --git a/src/schematic/features/raw_client.py b/src/schematic/features/raw_client.py index 554eae4..6b60fba 100644 --- a/src/schematic/features/raw_client.py +++ b/src/schematic/features/raw_client.py @@ -205,7 +205,7 @@ def create_feature( flag: typing.Optional[CreateOrUpdateFlagRequestBody] = OMIT, icon: typing.Optional[str] = OMIT, lifecycle_phase: typing.Optional[FeatureLifecyclePhase] = OMIT, - maintainer_id: typing.Optional[str] = OMIT, + maintainer_account_member_id: typing.Optional[str] = OMIT, plural_name: typing.Optional[str] = OMIT, singular_name: typing.Optional[str] = OMIT, trait_id: typing.Optional[str] = OMIT, @@ -228,7 +228,7 @@ def create_feature( lifecycle_phase : typing.Optional[FeatureLifecyclePhase] - maintainer_id : typing.Optional[str] + maintainer_account_member_id : typing.Optional[str] plural_name : typing.Optional[str] @@ -256,7 +256,7 @@ def create_feature( ), "icon": icon, "lifecycle_phase": lifecycle_phase, - "maintainer_id": maintainer_id, + "maintainer_account_member_id": maintainer_account_member_id, "name": name, "plural_name": plural_name, "singular_name": singular_name, @@ -445,7 +445,7 @@ def update_feature( flag: typing.Optional[CreateOrUpdateFlagRequestBody] = OMIT, icon: typing.Optional[str] = OMIT, lifecycle_phase: typing.Optional[FeatureLifecyclePhase] = OMIT, - maintainer_id: typing.Optional[str] = OMIT, + maintainer_account_member_id: typing.Optional[str] = OMIT, name: typing.Optional[str] = OMIT, plural_name: typing.Optional[str] = OMIT, singular_name: typing.Optional[str] = OMIT, @@ -470,7 +470,7 @@ def update_feature( lifecycle_phase : typing.Optional[FeatureLifecyclePhase] - maintainer_id : typing.Optional[str] + maintainer_account_member_id : typing.Optional[str] name : typing.Optional[str] @@ -500,7 +500,7 @@ def update_feature( ), "icon": icon, "lifecycle_phase": lifecycle_phase, - "maintainer_id": maintainer_id, + "maintainer_account_member_id": maintainer_account_member_id, "name": name, "plural_name": plural_name, "singular_name": singular_name, @@ -702,7 +702,7 @@ def upsert_feature_for_billing_product( flag: typing.Optional[CreateOrUpdateFlagRequestBody] = OMIT, icon: typing.Optional[str] = OMIT, lifecycle_phase: typing.Optional[FeatureLifecyclePhase] = OMIT, - maintainer_id: typing.Optional[str] = OMIT, + maintainer_account_member_id: typing.Optional[str] = OMIT, plural_name: typing.Optional[str] = OMIT, singular_name: typing.Optional[str] = OMIT, trait_id: typing.Optional[str] = OMIT, @@ -729,7 +729,7 @@ def upsert_feature_for_billing_product( lifecycle_phase : typing.Optional[FeatureLifecyclePhase] - maintainer_id : typing.Optional[str] + maintainer_account_member_id : typing.Optional[str] plural_name : typing.Optional[str] @@ -759,7 +759,7 @@ def upsert_feature_for_billing_product( ), "icon": icon, "lifecycle_phase": lifecycle_phase, - "maintainer_id": maintainer_id, + "maintainer_account_member_id": maintainer_account_member_id, "name": name, "plural_name": plural_name, "singular_name": singular_name, @@ -1126,7 +1126,7 @@ def create_flag( key: str, name: str, feature_id: typing.Optional[str] = OMIT, - maintainer_id: typing.Optional[str] = OMIT, + maintainer_account_member_id: typing.Optional[str] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> HttpResponse[CreateFlagResponse]: """ @@ -1142,7 +1142,7 @@ def create_flag( feature_id : typing.Optional[str] - maintainer_id : typing.Optional[str] + maintainer_account_member_id : typing.Optional[str] request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -1160,7 +1160,7 @@ def create_flag( "description": description, "feature_id": feature_id, "key": key, - "maintainer_id": maintainer_id, + "maintainer_account_member_id": maintainer_account_member_id, "name": name, "flag_type": "boolean", }, @@ -1346,7 +1346,7 @@ def update_flag( key: str, name: str, feature_id: typing.Optional[str] = OMIT, - maintainer_id: typing.Optional[str] = OMIT, + maintainer_account_member_id: typing.Optional[str] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> HttpResponse[UpdateFlagResponse]: """ @@ -1365,7 +1365,7 @@ def update_flag( feature_id : typing.Optional[str] - maintainer_id : typing.Optional[str] + maintainer_account_member_id : typing.Optional[str] request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -1383,7 +1383,7 @@ def update_flag( "description": description, "feature_id": feature_id, "key": key, - "maintainer_id": maintainer_id, + "maintainer_account_member_id": maintainer_account_member_id, "name": name, "flag_type": "boolean", }, @@ -2311,7 +2311,7 @@ async def create_feature( flag: typing.Optional[CreateOrUpdateFlagRequestBody] = OMIT, icon: typing.Optional[str] = OMIT, lifecycle_phase: typing.Optional[FeatureLifecyclePhase] = OMIT, - maintainer_id: typing.Optional[str] = OMIT, + maintainer_account_member_id: typing.Optional[str] = OMIT, plural_name: typing.Optional[str] = OMIT, singular_name: typing.Optional[str] = OMIT, trait_id: typing.Optional[str] = OMIT, @@ -2334,7 +2334,7 @@ async def create_feature( lifecycle_phase : typing.Optional[FeatureLifecyclePhase] - maintainer_id : typing.Optional[str] + maintainer_account_member_id : typing.Optional[str] plural_name : typing.Optional[str] @@ -2362,7 +2362,7 @@ async def create_feature( ), "icon": icon, "lifecycle_phase": lifecycle_phase, - "maintainer_id": maintainer_id, + "maintainer_account_member_id": maintainer_account_member_id, "name": name, "plural_name": plural_name, "singular_name": singular_name, @@ -2551,7 +2551,7 @@ async def update_feature( flag: typing.Optional[CreateOrUpdateFlagRequestBody] = OMIT, icon: typing.Optional[str] = OMIT, lifecycle_phase: typing.Optional[FeatureLifecyclePhase] = OMIT, - maintainer_id: typing.Optional[str] = OMIT, + maintainer_account_member_id: typing.Optional[str] = OMIT, name: typing.Optional[str] = OMIT, plural_name: typing.Optional[str] = OMIT, singular_name: typing.Optional[str] = OMIT, @@ -2576,7 +2576,7 @@ async def update_feature( lifecycle_phase : typing.Optional[FeatureLifecyclePhase] - maintainer_id : typing.Optional[str] + maintainer_account_member_id : typing.Optional[str] name : typing.Optional[str] @@ -2606,7 +2606,7 @@ async def update_feature( ), "icon": icon, "lifecycle_phase": lifecycle_phase, - "maintainer_id": maintainer_id, + "maintainer_account_member_id": maintainer_account_member_id, "name": name, "plural_name": plural_name, "singular_name": singular_name, @@ -2808,7 +2808,7 @@ async def upsert_feature_for_billing_product( flag: typing.Optional[CreateOrUpdateFlagRequestBody] = OMIT, icon: typing.Optional[str] = OMIT, lifecycle_phase: typing.Optional[FeatureLifecyclePhase] = OMIT, - maintainer_id: typing.Optional[str] = OMIT, + maintainer_account_member_id: typing.Optional[str] = OMIT, plural_name: typing.Optional[str] = OMIT, singular_name: typing.Optional[str] = OMIT, trait_id: typing.Optional[str] = OMIT, @@ -2835,7 +2835,7 @@ async def upsert_feature_for_billing_product( lifecycle_phase : typing.Optional[FeatureLifecyclePhase] - maintainer_id : typing.Optional[str] + maintainer_account_member_id : typing.Optional[str] plural_name : typing.Optional[str] @@ -2865,7 +2865,7 @@ async def upsert_feature_for_billing_product( ), "icon": icon, "lifecycle_phase": lifecycle_phase, - "maintainer_id": maintainer_id, + "maintainer_account_member_id": maintainer_account_member_id, "name": name, "plural_name": plural_name, "singular_name": singular_name, @@ -3232,7 +3232,7 @@ async def create_flag( key: str, name: str, feature_id: typing.Optional[str] = OMIT, - maintainer_id: typing.Optional[str] = OMIT, + maintainer_account_member_id: typing.Optional[str] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> AsyncHttpResponse[CreateFlagResponse]: """ @@ -3248,7 +3248,7 @@ async def create_flag( feature_id : typing.Optional[str] - maintainer_id : typing.Optional[str] + maintainer_account_member_id : typing.Optional[str] request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -3266,7 +3266,7 @@ async def create_flag( "description": description, "feature_id": feature_id, "key": key, - "maintainer_id": maintainer_id, + "maintainer_account_member_id": maintainer_account_member_id, "name": name, "flag_type": "boolean", }, @@ -3452,7 +3452,7 @@ async def update_flag( key: str, name: str, feature_id: typing.Optional[str] = OMIT, - maintainer_id: typing.Optional[str] = OMIT, + maintainer_account_member_id: typing.Optional[str] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> AsyncHttpResponse[UpdateFlagResponse]: """ @@ -3471,7 +3471,7 @@ async def update_flag( feature_id : typing.Optional[str] - maintainer_id : typing.Optional[str] + maintainer_account_member_id : typing.Optional[str] request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -3489,7 +3489,7 @@ async def update_flag( "description": description, "feature_id": feature_id, "key": key, - "maintainer_id": maintainer_id, + "maintainer_account_member_id": maintainer_account_member_id, "name": name, "flag_type": "boolean", }, diff --git a/src/schematic/plans/__init__.py b/src/schematic/plans/__init__.py index 3849742..ef40e49 100644 --- a/src/schematic/plans/__init__.py +++ b/src/schematic/plans/__init__.py @@ -20,11 +20,14 @@ GetPlanResponse, ListBillingProductMatchCompaniesParams, ListBillingProductMatchCompaniesResponse, + ListCustomPlanBillingsParams, + ListCustomPlanBillingsResponse, ListPlanIssuesParams, ListPlanIssuesResponse, ListPlansParams, ListPlansResponse, PublishPlanVersionResponse, + RetryCustomPlanBillingResponse, UpdateCompanyPlansResponse, UpdatePlanResponse, UpsertBillingProductPlanResponse, @@ -44,11 +47,14 @@ "GetPlanResponse": ".types", "ListBillingProductMatchCompaniesParams": ".types", "ListBillingProductMatchCompaniesResponse": ".types", + "ListCustomPlanBillingsParams": ".types", + "ListCustomPlanBillingsResponse": ".types", "ListPlanIssuesParams": ".types", "ListPlanIssuesResponse": ".types", "ListPlansParams": ".types", "ListPlansResponse": ".types", "PublishPlanVersionResponse": ".types", + "RetryCustomPlanBillingResponse": ".types", "UpdateCompanyPlansResponse": ".types", "UpdatePlanResponse": ".types", "UpsertBillingProductPlanResponse": ".types", @@ -91,11 +97,14 @@ def __dir__(): "GetPlanResponse", "ListBillingProductMatchCompaniesParams", "ListBillingProductMatchCompaniesResponse", + "ListCustomPlanBillingsParams", + "ListCustomPlanBillingsResponse", "ListPlanIssuesParams", "ListPlanIssuesResponse", "ListPlansParams", "ListPlansResponse", "PublishPlanVersionResponse", + "RetryCustomPlanBillingResponse", "UpdateCompanyPlansResponse", "UpdatePlanResponse", "UpsertBillingProductPlanResponse", diff --git a/src/schematic/plans/client.py b/src/schematic/plans/client.py index d967593..3016829 100644 --- a/src/schematic/plans/client.py +++ b/src/schematic/plans/client.py @@ -7,6 +7,7 @@ from ..types.billing_provider_type import BillingProviderType from ..types.charge_type import ChargeType from ..types.custom_plan_activation_strategy import CustomPlanActivationStrategy +from ..types.custom_plan_billing_status import CustomPlanBillingStatus from ..types.plan_currency_price_request_body import PlanCurrencyPriceRequestBody from ..types.plan_icon import PlanIcon from ..types.plan_type import PlanType @@ -21,9 +22,11 @@ from .types.delete_plan_version_response import DeletePlanVersionResponse from .types.get_plan_response import GetPlanResponse from .types.list_billing_product_match_companies_response import ListBillingProductMatchCompaniesResponse +from .types.list_custom_plan_billings_response import ListCustomPlanBillingsResponse from .types.list_plan_issues_response import ListPlanIssuesResponse from .types.list_plans_response import ListPlansResponse from .types.publish_plan_version_response import PublishPlanVersionResponse +from .types.retry_custom_plan_billing_response import RetryCustomPlanBillingResponse from .types.update_company_plans_response import UpdateCompanyPlansResponse from .types.update_plan_response import UpdatePlanResponse from .types.upsert_billing_product_plan_response import UpsertBillingProductPlanResponse @@ -91,6 +94,135 @@ def update_company_plans( ) return _response.data + def list_custom_plan_billings( + self, + *, + company_id: typing.Optional[str] = None, + plan_id: typing.Optional[str] = None, + status: typing.Optional[CustomPlanBillingStatus] = None, + statuses: typing.Optional[ + typing.Union[CustomPlanBillingStatus, typing.Sequence[CustomPlanBillingStatus]] + ] = None, + limit: typing.Optional[int] = None, + offset: typing.Optional[int] = None, + request_options: typing.Optional[RequestOptions] = None, + ) -> ListCustomPlanBillingsResponse: + """ + Parameters + ---------- + company_id : typing.Optional[str] + Filter by company ID + + plan_id : typing.Optional[str] + Filter by plan ID + + status : typing.Optional[CustomPlanBillingStatus] + Filter by billing status + + statuses : typing.Optional[typing.Union[CustomPlanBillingStatus, typing.Sequence[CustomPlanBillingStatus]]] + Filter by multiple billing statuses + + limit : typing.Optional[int] + Page limit (default 100) + + offset : typing.Optional[int] + Page offset (default 0) + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + ListCustomPlanBillingsResponse + OK + + Examples + -------- + from schematic import Schematic + + client = Schematic( + api_key="YOUR_API_KEY", + ) + client.plans.list_custom_plan_billings( + company_id="company_id", + plan_id="plan_id", + status="active", + statuses=["active"], + limit=1000000, + offset=1000000, + ) + """ + _response = self._raw_client.list_custom_plan_billings( + company_id=company_id, + plan_id=plan_id, + status=status, + statuses=statuses, + limit=limit, + offset=offset, + request_options=request_options, + ) + return _response.data + + def retry_custom_plan_billing( + self, + custom_plan_billing_id: str, + *, + customer_email: str, + pay_in_advance: typing.Sequence[UpdatePayInAdvanceRequestBody], + activation_strategy: typing.Optional[CustomPlanActivationStrategy] = OMIT, + days_until_due: typing.Optional[int] = OMIT, + request_options: typing.Optional[RequestOptions] = None, + ) -> RetryCustomPlanBillingResponse: + """ + Parameters + ---------- + custom_plan_billing_id : str + custom_plan_billing_id + + customer_email : str + + pay_in_advance : typing.Sequence[UpdatePayInAdvanceRequestBody] + + activation_strategy : typing.Optional[CustomPlanActivationStrategy] + + days_until_due : typing.Optional[int] + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + RetryCustomPlanBillingResponse + OK + + Examples + -------- + from schematic import Schematic, UpdatePayInAdvanceRequestBody + + client = Schematic( + api_key="YOUR_API_KEY", + ) + client.plans.retry_custom_plan_billing( + custom_plan_billing_id="custom_plan_billing_id", + customer_email="customer_email", + pay_in_advance=[ + UpdatePayInAdvanceRequestBody( + price_id="price_id", + quantity=1000000, + ) + ], + ) + """ + _response = self._raw_client.retry_custom_plan_billing( + custom_plan_billing_id, + customer_email=customer_email, + pay_in_advance=pay_in_advance, + activation_strategy=activation_strategy, + days_until_due=days_until_due, + request_options=request_options, + ) + return _response.data + def create_custom_plan( self, *, @@ -149,6 +281,7 @@ def list_plans( self, *, company_id: typing.Optional[str] = None, + exclude_company_scoped: typing.Optional[bool] = None, for_fallback_plan: typing.Optional[bool] = None, for_initial_plan: typing.Optional[bool] = None, for_trial_expiry_plan: typing.Optional[bool] = None, @@ -169,6 +302,9 @@ def list_plans( ---------- company_id : typing.Optional[str] + exclude_company_scoped : typing.Optional[bool] + Exclude plans that are scoped to a company (custom plans assigned to a company) + for_fallback_plan : typing.Optional[bool] Filter for plans valid as fallback plans (not linked to billing) @@ -223,6 +359,7 @@ def list_plans( ) client.plans.list_plans( company_id="company_id", + exclude_company_scoped=True, for_fallback_plan=True, for_initial_plan=True, for_trial_expiry_plan=True, @@ -240,6 +377,7 @@ def list_plans( """ _response = self._raw_client.list_plans( company_id=company_id, + exclude_company_scoped=exclude_company_scoped, for_fallback_plan=for_fallback_plan, for_initial_plan=for_initial_plan, for_trial_expiry_plan=for_trial_expiry_plan, @@ -672,6 +810,7 @@ def count_plans( self, *, company_id: typing.Optional[str] = None, + exclude_company_scoped: typing.Optional[bool] = None, for_fallback_plan: typing.Optional[bool] = None, for_initial_plan: typing.Optional[bool] = None, for_trial_expiry_plan: typing.Optional[bool] = None, @@ -692,6 +831,9 @@ def count_plans( ---------- company_id : typing.Optional[str] + exclude_company_scoped : typing.Optional[bool] + Exclude plans that are scoped to a company (custom plans assigned to a company) + for_fallback_plan : typing.Optional[bool] Filter for plans valid as fallback plans (not linked to billing) @@ -746,6 +888,7 @@ def count_plans( ) client.plans.count_plans( company_id="company_id", + exclude_company_scoped=True, for_fallback_plan=True, for_initial_plan=True, for_trial_expiry_plan=True, @@ -763,6 +906,7 @@ def count_plans( """ _response = self._raw_client.count_plans( company_id=company_id, + exclude_company_scoped=exclude_company_scoped, for_fallback_plan=for_fallback_plan, for_initial_plan=for_initial_plan, for_trial_expiry_plan=for_trial_expiry_plan, @@ -995,6 +1139,151 @@ async def main() -> None: ) return _response.data + async def list_custom_plan_billings( + self, + *, + company_id: typing.Optional[str] = None, + plan_id: typing.Optional[str] = None, + status: typing.Optional[CustomPlanBillingStatus] = None, + statuses: typing.Optional[ + typing.Union[CustomPlanBillingStatus, typing.Sequence[CustomPlanBillingStatus]] + ] = None, + limit: typing.Optional[int] = None, + offset: typing.Optional[int] = None, + request_options: typing.Optional[RequestOptions] = None, + ) -> ListCustomPlanBillingsResponse: + """ + Parameters + ---------- + company_id : typing.Optional[str] + Filter by company ID + + plan_id : typing.Optional[str] + Filter by plan ID + + status : typing.Optional[CustomPlanBillingStatus] + Filter by billing status + + statuses : typing.Optional[typing.Union[CustomPlanBillingStatus, typing.Sequence[CustomPlanBillingStatus]]] + Filter by multiple billing statuses + + limit : typing.Optional[int] + Page limit (default 100) + + offset : typing.Optional[int] + Page offset (default 0) + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + ListCustomPlanBillingsResponse + OK + + Examples + -------- + import asyncio + + from schematic import AsyncSchematic + + client = AsyncSchematic( + api_key="YOUR_API_KEY", + ) + + + async def main() -> None: + await client.plans.list_custom_plan_billings( + company_id="company_id", + plan_id="plan_id", + status="active", + statuses=["active"], + limit=1000000, + offset=1000000, + ) + + + asyncio.run(main()) + """ + _response = await self._raw_client.list_custom_plan_billings( + company_id=company_id, + plan_id=plan_id, + status=status, + statuses=statuses, + limit=limit, + offset=offset, + request_options=request_options, + ) + return _response.data + + async def retry_custom_plan_billing( + self, + custom_plan_billing_id: str, + *, + customer_email: str, + pay_in_advance: typing.Sequence[UpdatePayInAdvanceRequestBody], + activation_strategy: typing.Optional[CustomPlanActivationStrategy] = OMIT, + days_until_due: typing.Optional[int] = OMIT, + request_options: typing.Optional[RequestOptions] = None, + ) -> RetryCustomPlanBillingResponse: + """ + Parameters + ---------- + custom_plan_billing_id : str + custom_plan_billing_id + + customer_email : str + + pay_in_advance : typing.Sequence[UpdatePayInAdvanceRequestBody] + + activation_strategy : typing.Optional[CustomPlanActivationStrategy] + + days_until_due : typing.Optional[int] + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + RetryCustomPlanBillingResponse + OK + + Examples + -------- + import asyncio + + from schematic import AsyncSchematic, UpdatePayInAdvanceRequestBody + + client = AsyncSchematic( + api_key="YOUR_API_KEY", + ) + + + async def main() -> None: + await client.plans.retry_custom_plan_billing( + custom_plan_billing_id="custom_plan_billing_id", + customer_email="customer_email", + pay_in_advance=[ + UpdatePayInAdvanceRequestBody( + price_id="price_id", + quantity=1000000, + ) + ], + ) + + + asyncio.run(main()) + """ + _response = await self._raw_client.retry_custom_plan_billing( + custom_plan_billing_id, + customer_email=customer_email, + pay_in_advance=pay_in_advance, + activation_strategy=activation_strategy, + days_until_due=days_until_due, + request_options=request_options, + ) + return _response.data + async def create_custom_plan( self, *, @@ -1061,6 +1350,7 @@ async def list_plans( self, *, company_id: typing.Optional[str] = None, + exclude_company_scoped: typing.Optional[bool] = None, for_fallback_plan: typing.Optional[bool] = None, for_initial_plan: typing.Optional[bool] = None, for_trial_expiry_plan: typing.Optional[bool] = None, @@ -1081,6 +1371,9 @@ async def list_plans( ---------- company_id : typing.Optional[str] + exclude_company_scoped : typing.Optional[bool] + Exclude plans that are scoped to a company (custom plans assigned to a company) + for_fallback_plan : typing.Optional[bool] Filter for plans valid as fallback plans (not linked to billing) @@ -1140,6 +1433,7 @@ async def list_plans( async def main() -> None: await client.plans.list_plans( company_id="company_id", + exclude_company_scoped=True, for_fallback_plan=True, for_initial_plan=True, for_trial_expiry_plan=True, @@ -1160,6 +1454,7 @@ async def main() -> None: """ _response = await self._raw_client.list_plans( company_id=company_id, + exclude_company_scoped=exclude_company_scoped, for_fallback_plan=for_fallback_plan, for_initial_plan=for_initial_plan, for_trial_expiry_plan=for_trial_expiry_plan, @@ -1658,6 +1953,7 @@ async def count_plans( self, *, company_id: typing.Optional[str] = None, + exclude_company_scoped: typing.Optional[bool] = None, for_fallback_plan: typing.Optional[bool] = None, for_initial_plan: typing.Optional[bool] = None, for_trial_expiry_plan: typing.Optional[bool] = None, @@ -1678,6 +1974,9 @@ async def count_plans( ---------- company_id : typing.Optional[str] + exclude_company_scoped : typing.Optional[bool] + Exclude plans that are scoped to a company (custom plans assigned to a company) + for_fallback_plan : typing.Optional[bool] Filter for plans valid as fallback plans (not linked to billing) @@ -1737,6 +2036,7 @@ async def count_plans( async def main() -> None: await client.plans.count_plans( company_id="company_id", + exclude_company_scoped=True, for_fallback_plan=True, for_initial_plan=True, for_trial_expiry_plan=True, @@ -1757,6 +2057,7 @@ async def main() -> None: """ _response = await self._raw_client.count_plans( company_id=company_id, + exclude_company_scoped=exclude_company_scoped, for_fallback_plan=for_fallback_plan, for_initial_plan=for_initial_plan, for_trial_expiry_plan=for_trial_expiry_plan, diff --git a/src/schematic/plans/raw_client.py b/src/schematic/plans/raw_client.py index 1e7268c..4e31e15 100644 --- a/src/schematic/plans/raw_client.py +++ b/src/schematic/plans/raw_client.py @@ -20,6 +20,7 @@ from ..types.billing_provider_type import BillingProviderType from ..types.charge_type import ChargeType from ..types.custom_plan_activation_strategy import CustomPlanActivationStrategy +from ..types.custom_plan_billing_status import CustomPlanBillingStatus from ..types.plan_currency_price_request_body import PlanCurrencyPriceRequestBody from ..types.plan_icon import PlanIcon from ..types.plan_type import PlanType @@ -33,9 +34,11 @@ from .types.delete_plan_version_response import DeletePlanVersionResponse from .types.get_plan_response import GetPlanResponse from .types.list_billing_product_match_companies_response import ListBillingProductMatchCompaniesResponse +from .types.list_custom_plan_billings_response import ListCustomPlanBillingsResponse from .types.list_plan_issues_response import ListPlanIssuesResponse from .types.list_plans_response import ListPlansResponse from .types.publish_plan_version_response import PublishPlanVersionResponse +from .types.retry_custom_plan_billing_response import RetryCustomPlanBillingResponse from .types.update_company_plans_response import UpdateCompanyPlansResponse from .types.update_plan_response import UpdatePlanResponse from .types.upsert_billing_product_plan_response import UpsertBillingProductPlanResponse @@ -167,6 +170,266 @@ def update_company_plans( status_code=_response.status_code, headers=dict(_response.headers), body=_response_json ) + def list_custom_plan_billings( + self, + *, + company_id: typing.Optional[str] = None, + plan_id: typing.Optional[str] = None, + status: typing.Optional[CustomPlanBillingStatus] = None, + statuses: typing.Optional[ + typing.Union[CustomPlanBillingStatus, typing.Sequence[CustomPlanBillingStatus]] + ] = None, + limit: typing.Optional[int] = None, + offset: typing.Optional[int] = None, + request_options: typing.Optional[RequestOptions] = None, + ) -> HttpResponse[ListCustomPlanBillingsResponse]: + """ + Parameters + ---------- + company_id : typing.Optional[str] + Filter by company ID + + plan_id : typing.Optional[str] + Filter by plan ID + + status : typing.Optional[CustomPlanBillingStatus] + Filter by billing status + + statuses : typing.Optional[typing.Union[CustomPlanBillingStatus, typing.Sequence[CustomPlanBillingStatus]]] + Filter by multiple billing statuses + + limit : typing.Optional[int] + Page limit (default 100) + + offset : typing.Optional[int] + Page offset (default 0) + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + HttpResponse[ListCustomPlanBillingsResponse] + OK + """ + _response = self._client_wrapper.httpx_client.request( + "custom-plan-billings", + method="GET", + params={ + "company_id": company_id, + "plan_id": plan_id, + "status": status, + "statuses": statuses, + "limit": limit, + "offset": offset, + }, + request_options=request_options, + ) + try: + if 200 <= _response.status_code < 300: + _data = typing.cast( + ListCustomPlanBillingsResponse, + parse_obj_as( + type_=ListCustomPlanBillingsResponse, # type: ignore + object_=_response.json(), + ), + ) + return HttpResponse(response=_response, data=_data) + if _response.status_code == 400: + raise BadRequestError( + headers=dict(_response.headers), + body=typing.cast( + types_api_error_ApiError, + parse_obj_as( + type_=types_api_error_ApiError, # type: ignore + object_=_response.json(), + ), + ), + ) + if _response.status_code == 401: + raise UnauthorizedError( + headers=dict(_response.headers), + body=typing.cast( + types_api_error_ApiError, + parse_obj_as( + type_=types_api_error_ApiError, # type: ignore + object_=_response.json(), + ), + ), + ) + if _response.status_code == 403: + raise ForbiddenError( + headers=dict(_response.headers), + body=typing.cast( + types_api_error_ApiError, + parse_obj_as( + type_=types_api_error_ApiError, # type: ignore + object_=_response.json(), + ), + ), + ) + if _response.status_code == 404: + raise NotFoundError( + headers=dict(_response.headers), + body=typing.cast( + types_api_error_ApiError, + parse_obj_as( + type_=types_api_error_ApiError, # type: ignore + object_=_response.json(), + ), + ), + ) + if _response.status_code == 500: + raise InternalServerError( + headers=dict(_response.headers), + body=typing.cast( + types_api_error_ApiError, + parse_obj_as( + type_=types_api_error_ApiError, # type: ignore + object_=_response.json(), + ), + ), + ) + _response_json = _response.json() + except JSONDecodeError: + raise core_api_error_ApiError( + status_code=_response.status_code, headers=dict(_response.headers), body=_response.text + ) + except ValidationError as e: + raise ParsingError( + status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e + ) + raise core_api_error_ApiError( + status_code=_response.status_code, headers=dict(_response.headers), body=_response_json + ) + + def retry_custom_plan_billing( + self, + custom_plan_billing_id: str, + *, + customer_email: str, + pay_in_advance: typing.Sequence[UpdatePayInAdvanceRequestBody], + activation_strategy: typing.Optional[CustomPlanActivationStrategy] = OMIT, + days_until_due: typing.Optional[int] = OMIT, + request_options: typing.Optional[RequestOptions] = None, + ) -> HttpResponse[RetryCustomPlanBillingResponse]: + """ + Parameters + ---------- + custom_plan_billing_id : str + custom_plan_billing_id + + customer_email : str + + pay_in_advance : typing.Sequence[UpdatePayInAdvanceRequestBody] + + activation_strategy : typing.Optional[CustomPlanActivationStrategy] + + days_until_due : typing.Optional[int] + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + HttpResponse[RetryCustomPlanBillingResponse] + OK + """ + _response = self._client_wrapper.httpx_client.request( + f"custom-plan-billings/{jsonable_encoder(custom_plan_billing_id)}/retry", + method="PUT", + json={ + "activation_strategy": activation_strategy, + "customer_email": customer_email, + "days_until_due": days_until_due, + "pay_in_advance": convert_and_respect_annotation_metadata( + object_=pay_in_advance, annotation=typing.Sequence[UpdatePayInAdvanceRequestBody], direction="write" + ), + }, + headers={ + "content-type": "application/json", + }, + request_options=request_options, + omit=OMIT, + ) + try: + if 200 <= _response.status_code < 300: + _data = typing.cast( + RetryCustomPlanBillingResponse, + parse_obj_as( + type_=RetryCustomPlanBillingResponse, # type: ignore + object_=_response.json(), + ), + ) + return HttpResponse(response=_response, data=_data) + if _response.status_code == 400: + raise BadRequestError( + headers=dict(_response.headers), + body=typing.cast( + types_api_error_ApiError, + parse_obj_as( + type_=types_api_error_ApiError, # type: ignore + object_=_response.json(), + ), + ), + ) + if _response.status_code == 401: + raise UnauthorizedError( + headers=dict(_response.headers), + body=typing.cast( + types_api_error_ApiError, + parse_obj_as( + type_=types_api_error_ApiError, # type: ignore + object_=_response.json(), + ), + ), + ) + if _response.status_code == 403: + raise ForbiddenError( + headers=dict(_response.headers), + body=typing.cast( + types_api_error_ApiError, + parse_obj_as( + type_=types_api_error_ApiError, # type: ignore + object_=_response.json(), + ), + ), + ) + if _response.status_code == 404: + raise NotFoundError( + headers=dict(_response.headers), + body=typing.cast( + types_api_error_ApiError, + parse_obj_as( + type_=types_api_error_ApiError, # type: ignore + object_=_response.json(), + ), + ), + ) + if _response.status_code == 500: + raise InternalServerError( + headers=dict(_response.headers), + body=typing.cast( + types_api_error_ApiError, + parse_obj_as( + type_=types_api_error_ApiError, # type: ignore + object_=_response.json(), + ), + ), + ) + _response_json = _response.json() + except JSONDecodeError: + raise core_api_error_ApiError( + status_code=_response.status_code, headers=dict(_response.headers), body=_response.text + ) + except ValidationError as e: + raise ParsingError( + status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e + ) + raise core_api_error_ApiError( + status_code=_response.status_code, headers=dict(_response.headers), body=_response_json + ) + def create_custom_plan( self, *, @@ -296,6 +559,7 @@ def list_plans( self, *, company_id: typing.Optional[str] = None, + exclude_company_scoped: typing.Optional[bool] = None, for_fallback_plan: typing.Optional[bool] = None, for_initial_plan: typing.Optional[bool] = None, for_trial_expiry_plan: typing.Optional[bool] = None, @@ -316,6 +580,9 @@ def list_plans( ---------- company_id : typing.Optional[str] + exclude_company_scoped : typing.Optional[bool] + Exclude plans that are scoped to a company (custom plans assigned to a company) + for_fallback_plan : typing.Optional[bool] Filter for plans valid as fallback plans (not linked to billing) @@ -366,6 +633,7 @@ def list_plans( method="GET", params={ "company_id": company_id, + "exclude_company_scoped": exclude_company_scoped, "for_fallback_plan": for_fallback_plan, "for_initial_plan": for_initial_plan, "for_trial_expiry_plan": for_trial_expiry_plan, @@ -1435,6 +1703,7 @@ def count_plans( self, *, company_id: typing.Optional[str] = None, + exclude_company_scoped: typing.Optional[bool] = None, for_fallback_plan: typing.Optional[bool] = None, for_initial_plan: typing.Optional[bool] = None, for_trial_expiry_plan: typing.Optional[bool] = None, @@ -1455,6 +1724,9 @@ def count_plans( ---------- company_id : typing.Optional[str] + exclude_company_scoped : typing.Optional[bool] + Exclude plans that are scoped to a company (custom plans assigned to a company) + for_fallback_plan : typing.Optional[bool] Filter for plans valid as fallback plans (not linked to billing) @@ -1505,6 +1777,7 @@ def count_plans( method="GET", params={ "company_id": company_id, + "exclude_company_scoped": exclude_company_scoped, "for_fallback_plan": for_fallback_plan, "for_initial_plan": for_initial_plan, "for_trial_expiry_plan": for_trial_expiry_plan, @@ -2074,6 +2347,266 @@ async def update_company_plans( status_code=_response.status_code, headers=dict(_response.headers), body=_response_json ) + async def list_custom_plan_billings( + self, + *, + company_id: typing.Optional[str] = None, + plan_id: typing.Optional[str] = None, + status: typing.Optional[CustomPlanBillingStatus] = None, + statuses: typing.Optional[ + typing.Union[CustomPlanBillingStatus, typing.Sequence[CustomPlanBillingStatus]] + ] = None, + limit: typing.Optional[int] = None, + offset: typing.Optional[int] = None, + request_options: typing.Optional[RequestOptions] = None, + ) -> AsyncHttpResponse[ListCustomPlanBillingsResponse]: + """ + Parameters + ---------- + company_id : typing.Optional[str] + Filter by company ID + + plan_id : typing.Optional[str] + Filter by plan ID + + status : typing.Optional[CustomPlanBillingStatus] + Filter by billing status + + statuses : typing.Optional[typing.Union[CustomPlanBillingStatus, typing.Sequence[CustomPlanBillingStatus]]] + Filter by multiple billing statuses + + limit : typing.Optional[int] + Page limit (default 100) + + offset : typing.Optional[int] + Page offset (default 0) + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + AsyncHttpResponse[ListCustomPlanBillingsResponse] + OK + """ + _response = await self._client_wrapper.httpx_client.request( + "custom-plan-billings", + method="GET", + params={ + "company_id": company_id, + "plan_id": plan_id, + "status": status, + "statuses": statuses, + "limit": limit, + "offset": offset, + }, + request_options=request_options, + ) + try: + if 200 <= _response.status_code < 300: + _data = typing.cast( + ListCustomPlanBillingsResponse, + parse_obj_as( + type_=ListCustomPlanBillingsResponse, # type: ignore + object_=_response.json(), + ), + ) + return AsyncHttpResponse(response=_response, data=_data) + if _response.status_code == 400: + raise BadRequestError( + headers=dict(_response.headers), + body=typing.cast( + types_api_error_ApiError, + parse_obj_as( + type_=types_api_error_ApiError, # type: ignore + object_=_response.json(), + ), + ), + ) + if _response.status_code == 401: + raise UnauthorizedError( + headers=dict(_response.headers), + body=typing.cast( + types_api_error_ApiError, + parse_obj_as( + type_=types_api_error_ApiError, # type: ignore + object_=_response.json(), + ), + ), + ) + if _response.status_code == 403: + raise ForbiddenError( + headers=dict(_response.headers), + body=typing.cast( + types_api_error_ApiError, + parse_obj_as( + type_=types_api_error_ApiError, # type: ignore + object_=_response.json(), + ), + ), + ) + if _response.status_code == 404: + raise NotFoundError( + headers=dict(_response.headers), + body=typing.cast( + types_api_error_ApiError, + parse_obj_as( + type_=types_api_error_ApiError, # type: ignore + object_=_response.json(), + ), + ), + ) + if _response.status_code == 500: + raise InternalServerError( + headers=dict(_response.headers), + body=typing.cast( + types_api_error_ApiError, + parse_obj_as( + type_=types_api_error_ApiError, # type: ignore + object_=_response.json(), + ), + ), + ) + _response_json = _response.json() + except JSONDecodeError: + raise core_api_error_ApiError( + status_code=_response.status_code, headers=dict(_response.headers), body=_response.text + ) + except ValidationError as e: + raise ParsingError( + status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e + ) + raise core_api_error_ApiError( + status_code=_response.status_code, headers=dict(_response.headers), body=_response_json + ) + + async def retry_custom_plan_billing( + self, + custom_plan_billing_id: str, + *, + customer_email: str, + pay_in_advance: typing.Sequence[UpdatePayInAdvanceRequestBody], + activation_strategy: typing.Optional[CustomPlanActivationStrategy] = OMIT, + days_until_due: typing.Optional[int] = OMIT, + request_options: typing.Optional[RequestOptions] = None, + ) -> AsyncHttpResponse[RetryCustomPlanBillingResponse]: + """ + Parameters + ---------- + custom_plan_billing_id : str + custom_plan_billing_id + + customer_email : str + + pay_in_advance : typing.Sequence[UpdatePayInAdvanceRequestBody] + + activation_strategy : typing.Optional[CustomPlanActivationStrategy] + + days_until_due : typing.Optional[int] + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + AsyncHttpResponse[RetryCustomPlanBillingResponse] + OK + """ + _response = await self._client_wrapper.httpx_client.request( + f"custom-plan-billings/{jsonable_encoder(custom_plan_billing_id)}/retry", + method="PUT", + json={ + "activation_strategy": activation_strategy, + "customer_email": customer_email, + "days_until_due": days_until_due, + "pay_in_advance": convert_and_respect_annotation_metadata( + object_=pay_in_advance, annotation=typing.Sequence[UpdatePayInAdvanceRequestBody], direction="write" + ), + }, + headers={ + "content-type": "application/json", + }, + request_options=request_options, + omit=OMIT, + ) + try: + if 200 <= _response.status_code < 300: + _data = typing.cast( + RetryCustomPlanBillingResponse, + parse_obj_as( + type_=RetryCustomPlanBillingResponse, # type: ignore + object_=_response.json(), + ), + ) + return AsyncHttpResponse(response=_response, data=_data) + if _response.status_code == 400: + raise BadRequestError( + headers=dict(_response.headers), + body=typing.cast( + types_api_error_ApiError, + parse_obj_as( + type_=types_api_error_ApiError, # type: ignore + object_=_response.json(), + ), + ), + ) + if _response.status_code == 401: + raise UnauthorizedError( + headers=dict(_response.headers), + body=typing.cast( + types_api_error_ApiError, + parse_obj_as( + type_=types_api_error_ApiError, # type: ignore + object_=_response.json(), + ), + ), + ) + if _response.status_code == 403: + raise ForbiddenError( + headers=dict(_response.headers), + body=typing.cast( + types_api_error_ApiError, + parse_obj_as( + type_=types_api_error_ApiError, # type: ignore + object_=_response.json(), + ), + ), + ) + if _response.status_code == 404: + raise NotFoundError( + headers=dict(_response.headers), + body=typing.cast( + types_api_error_ApiError, + parse_obj_as( + type_=types_api_error_ApiError, # type: ignore + object_=_response.json(), + ), + ), + ) + if _response.status_code == 500: + raise InternalServerError( + headers=dict(_response.headers), + body=typing.cast( + types_api_error_ApiError, + parse_obj_as( + type_=types_api_error_ApiError, # type: ignore + object_=_response.json(), + ), + ), + ) + _response_json = _response.json() + except JSONDecodeError: + raise core_api_error_ApiError( + status_code=_response.status_code, headers=dict(_response.headers), body=_response.text + ) + except ValidationError as e: + raise ParsingError( + status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e + ) + raise core_api_error_ApiError( + status_code=_response.status_code, headers=dict(_response.headers), body=_response_json + ) + async def create_custom_plan( self, *, @@ -2203,6 +2736,7 @@ async def list_plans( self, *, company_id: typing.Optional[str] = None, + exclude_company_scoped: typing.Optional[bool] = None, for_fallback_plan: typing.Optional[bool] = None, for_initial_plan: typing.Optional[bool] = None, for_trial_expiry_plan: typing.Optional[bool] = None, @@ -2223,6 +2757,9 @@ async def list_plans( ---------- company_id : typing.Optional[str] + exclude_company_scoped : typing.Optional[bool] + Exclude plans that are scoped to a company (custom plans assigned to a company) + for_fallback_plan : typing.Optional[bool] Filter for plans valid as fallback plans (not linked to billing) @@ -2273,6 +2810,7 @@ async def list_plans( method="GET", params={ "company_id": company_id, + "exclude_company_scoped": exclude_company_scoped, "for_fallback_plan": for_fallback_plan, "for_initial_plan": for_initial_plan, "for_trial_expiry_plan": for_trial_expiry_plan, @@ -3342,6 +3880,7 @@ async def count_plans( self, *, company_id: typing.Optional[str] = None, + exclude_company_scoped: typing.Optional[bool] = None, for_fallback_plan: typing.Optional[bool] = None, for_initial_plan: typing.Optional[bool] = None, for_trial_expiry_plan: typing.Optional[bool] = None, @@ -3362,6 +3901,9 @@ async def count_plans( ---------- company_id : typing.Optional[str] + exclude_company_scoped : typing.Optional[bool] + Exclude plans that are scoped to a company (custom plans assigned to a company) + for_fallback_plan : typing.Optional[bool] Filter for plans valid as fallback plans (not linked to billing) @@ -3412,6 +3954,7 @@ async def count_plans( method="GET", params={ "company_id": company_id, + "exclude_company_scoped": exclude_company_scoped, "for_fallback_plan": for_fallback_plan, "for_initial_plan": for_initial_plan, "for_trial_expiry_plan": for_trial_expiry_plan, diff --git a/src/schematic/plans/types/__init__.py b/src/schematic/plans/types/__init__.py index 445010c..0d4ae7c 100644 --- a/src/schematic/plans/types/__init__.py +++ b/src/schematic/plans/types/__init__.py @@ -19,11 +19,14 @@ from .get_plan_response import GetPlanResponse from .list_billing_product_match_companies_params import ListBillingProductMatchCompaniesParams from .list_billing_product_match_companies_response import ListBillingProductMatchCompaniesResponse + from .list_custom_plan_billings_params import ListCustomPlanBillingsParams + from .list_custom_plan_billings_response import ListCustomPlanBillingsResponse from .list_plan_issues_params import ListPlanIssuesParams from .list_plan_issues_response import ListPlanIssuesResponse from .list_plans_params import ListPlansParams from .list_plans_response import ListPlansResponse from .publish_plan_version_response import PublishPlanVersionResponse + from .retry_custom_plan_billing_response import RetryCustomPlanBillingResponse from .update_company_plans_response import UpdateCompanyPlansResponse from .update_plan_response import UpdatePlanResponse from .upsert_billing_product_plan_response import UpsertBillingProductPlanResponse @@ -42,11 +45,14 @@ "GetPlanResponse": ".get_plan_response", "ListBillingProductMatchCompaniesParams": ".list_billing_product_match_companies_params", "ListBillingProductMatchCompaniesResponse": ".list_billing_product_match_companies_response", + "ListCustomPlanBillingsParams": ".list_custom_plan_billings_params", + "ListCustomPlanBillingsResponse": ".list_custom_plan_billings_response", "ListPlanIssuesParams": ".list_plan_issues_params", "ListPlanIssuesResponse": ".list_plan_issues_response", "ListPlansParams": ".list_plans_params", "ListPlansResponse": ".list_plans_response", "PublishPlanVersionResponse": ".publish_plan_version_response", + "RetryCustomPlanBillingResponse": ".retry_custom_plan_billing_response", "UpdateCompanyPlansResponse": ".update_company_plans_response", "UpdatePlanResponse": ".update_plan_response", "UpsertBillingProductPlanResponse": ".upsert_billing_product_plan_response", @@ -89,11 +95,14 @@ def __dir__(): "GetPlanResponse", "ListBillingProductMatchCompaniesParams", "ListBillingProductMatchCompaniesResponse", + "ListCustomPlanBillingsParams", + "ListCustomPlanBillingsResponse", "ListPlanIssuesParams", "ListPlanIssuesResponse", "ListPlansParams", "ListPlansResponse", "PublishPlanVersionResponse", + "RetryCustomPlanBillingResponse", "UpdateCompanyPlansResponse", "UpdatePlanResponse", "UpsertBillingProductPlanResponse", diff --git a/src/schematic/plans/types/count_plans_params.py b/src/schematic/plans/types/count_plans_params.py index 7a1942b..de92dfb 100644 --- a/src/schematic/plans/types/count_plans_params.py +++ b/src/schematic/plans/types/count_plans_params.py @@ -13,6 +13,11 @@ class CountPlansParams(UniversalBaseModel): """ company_id: typing.Optional[str] = None + exclude_company_scoped: typing.Optional[bool] = pydantic.Field(default=None) + """ + Exclude plans that are scoped to a company (custom plans assigned to a company) + """ + for_fallback_plan: typing.Optional[bool] = pydantic.Field(default=None) """ Filter for plans valid as fallback plans (not linked to billing) diff --git a/src/schematic/plans/types/list_custom_plan_billings_params.py b/src/schematic/plans/types/list_custom_plan_billings_params.py new file mode 100644 index 0000000..c26c871 --- /dev/null +++ b/src/schematic/plans/types/list_custom_plan_billings_params.py @@ -0,0 +1,52 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ...core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from ...types.custom_plan_billing_status import CustomPlanBillingStatus + + +class ListCustomPlanBillingsParams(UniversalBaseModel): + """ + Input parameters + """ + + company_id: typing.Optional[str] = pydantic.Field(default=None) + """ + Filter by company ID + """ + + limit: typing.Optional[int] = pydantic.Field(default=None) + """ + Page limit (default 100) + """ + + offset: typing.Optional[int] = pydantic.Field(default=None) + """ + Page offset (default 0) + """ + + plan_id: typing.Optional[str] = pydantic.Field(default=None) + """ + Filter by plan ID + """ + + status: typing.Optional[CustomPlanBillingStatus] = pydantic.Field(default=None) + """ + Filter by billing status + """ + + statuses: typing.Optional[typing.List[CustomPlanBillingStatus]] = pydantic.Field(default=None) + """ + Filter by multiple billing statuses + """ + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/schematic/companies/types/delete_plan_trait_response.py b/src/schematic/plans/types/list_custom_plan_billings_response.py similarity index 60% rename from src/schematic/companies/types/delete_plan_trait_response.py rename to src/schematic/plans/types/list_custom_plan_billings_response.py index 5381083..a902b0a 100644 --- a/src/schematic/companies/types/delete_plan_trait_response.py +++ b/src/schematic/plans/types/list_custom_plan_billings_response.py @@ -4,12 +4,13 @@ import pydantic from ...core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from ...types.delete_response import DeleteResponse +from ...types.custom_plan_billing_response_data import CustomPlanBillingResponseData +from .list_custom_plan_billings_params import ListCustomPlanBillingsParams -class DeletePlanTraitResponse(UniversalBaseModel): - data: DeleteResponse - params: typing.Dict[str, typing.Any] = pydantic.Field() +class ListCustomPlanBillingsResponse(UniversalBaseModel): + data: typing.List[CustomPlanBillingResponseData] + params: ListCustomPlanBillingsParams = pydantic.Field() """ Input parameters """ diff --git a/src/schematic/plans/types/list_plans_params.py b/src/schematic/plans/types/list_plans_params.py index bd53fb1..ad46bb6 100644 --- a/src/schematic/plans/types/list_plans_params.py +++ b/src/schematic/plans/types/list_plans_params.py @@ -13,6 +13,11 @@ class ListPlansParams(UniversalBaseModel): """ company_id: typing.Optional[str] = None + exclude_company_scoped: typing.Optional[bool] = pydantic.Field(default=None) + """ + Exclude plans that are scoped to a company (custom plans assigned to a company) + """ + for_fallback_plan: typing.Optional[bool] = pydantic.Field(default=None) """ Filter for plans valid as fallback plans (not linked to billing) diff --git a/src/schematic/companies/types/create_plan_trait_response.py b/src/schematic/plans/types/retry_custom_plan_billing_response.py similarity index 75% rename from src/schematic/companies/types/create_plan_trait_response.py rename to src/schematic/plans/types/retry_custom_plan_billing_response.py index b5516fd..f3b11f8 100644 --- a/src/schematic/companies/types/create_plan_trait_response.py +++ b/src/schematic/plans/types/retry_custom_plan_billing_response.py @@ -4,11 +4,11 @@ import pydantic from ...core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from ...types.plan_trait_response_data import PlanTraitResponseData +from ...types.custom_plan_billing_response_data import CustomPlanBillingResponseData -class CreatePlanTraitResponse(UniversalBaseModel): - data: PlanTraitResponseData +class RetryCustomPlanBillingResponse(UniversalBaseModel): + data: CustomPlanBillingResponseData params: typing.Dict[str, typing.Any] = pydantic.Field() """ Input parameters diff --git a/src/schematic/raw_base_client.py b/src/schematic/raw_base_client.py deleted file mode 100644 index e6e9dce..0000000 --- a/src/schematic/raw_base_client.py +++ /dev/null @@ -1,150 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing -from json.decoder import JSONDecodeError - -from .core.api_error import ApiError -from .core.client_wrapper import AsyncClientWrapper, SyncClientWrapper -from .core.http_response import AsyncHttpResponse, HttpResponse -from .core.jsonable_encoder import jsonable_encoder -from .core.parse_error import ParsingError -from .core.request_options import RequestOptions -from pydantic import ValidationError - - -class RawBaseSchematic: - def __init__(self, *, client_wrapper: SyncClientWrapper): - self._client_wrapper = client_wrapper - - def put_plan_audiences_plan_audience_id( - self, plan_audience_id: str, *, request_options: typing.Optional[RequestOptions] = None - ) -> HttpResponse[None]: - """ - Parameters - ---------- - plan_audience_id : str - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - HttpResponse[None] - """ - _response = self._client_wrapper.httpx_client.request( - f"plan-audiences/{jsonable_encoder(plan_audience_id)}", - method="PUT", - request_options=request_options, - ) - try: - if 200 <= _response.status_code < 300: - return HttpResponse(response=_response, data=None) - _response_json = _response.json() - except JSONDecodeError: - raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) - raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) - - def delete_plan_audiences_plan_audience_id( - self, plan_audience_id: str, *, request_options: typing.Optional[RequestOptions] = None - ) -> HttpResponse[None]: - """ - Parameters - ---------- - plan_audience_id : str - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - HttpResponse[None] - """ - _response = self._client_wrapper.httpx_client.request( - f"plan-audiences/{jsonable_encoder(plan_audience_id)}", - method="DELETE", - request_options=request_options, - ) - try: - if 200 <= _response.status_code < 300: - return HttpResponse(response=_response, data=None) - _response_json = _response.json() - except JSONDecodeError: - raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) - raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) - - -class AsyncRawBaseSchematic: - def __init__(self, *, client_wrapper: AsyncClientWrapper): - self._client_wrapper = client_wrapper - - async def put_plan_audiences_plan_audience_id( - self, plan_audience_id: str, *, request_options: typing.Optional[RequestOptions] = None - ) -> AsyncHttpResponse[None]: - """ - Parameters - ---------- - plan_audience_id : str - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - AsyncHttpResponse[None] - """ - _response = await self._client_wrapper.httpx_client.request( - f"plan-audiences/{jsonable_encoder(plan_audience_id)}", - method="PUT", - request_options=request_options, - ) - try: - if 200 <= _response.status_code < 300: - return AsyncHttpResponse(response=_response, data=None) - _response_json = _response.json() - except JSONDecodeError: - raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) - raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) - - async def delete_plan_audiences_plan_audience_id( - self, plan_audience_id: str, *, request_options: typing.Optional[RequestOptions] = None - ) -> AsyncHttpResponse[None]: - """ - Parameters - ---------- - plan_audience_id : str - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - AsyncHttpResponse[None] - """ - _response = await self._client_wrapper.httpx_client.request( - f"plan-audiences/{jsonable_encoder(plan_audience_id)}", - method="DELETE", - request_options=request_options, - ) - try: - if 200 <= _response.status_code < 300: - return AsyncHttpResponse(response=_response, data=None) - _response_json = _response.json() - except JSONDecodeError: - raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) - raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/schematic/types/__init__.py b/src/schematic/types/__init__.py index 8038c83..0ce3ea8 100644 --- a/src/schematic/types/__init__.py +++ b/src/schematic/types/__init__.py @@ -83,6 +83,7 @@ from .company_plan_with_billing_sub_view import CompanyPlanWithBillingSubView from .company_response_data import CompanyResponseData from .company_subscription_response_data import CompanySubscriptionResponseData + from .comparable_operator import ComparableOperator from .compatible_plans import CompatiblePlans from .compatible_plans_response_data import CompatiblePlansResponseData from .component_capabilities import ComponentCapabilities @@ -95,44 +96,24 @@ from .component_settings_response_data import ComponentSettingsResponseData from .component_state import ComponentState from .condition import Condition - from .condition_condition_type import ConditionConditionType from .condition_group import ConditionGroup from .condition_group_response_data import ConditionGroupResponseData from .condition_group_view import ConditionGroupView - from .condition_metric_period import ConditionMetricPeriod - from .condition_metric_period_month_reset import ConditionMetricPeriodMonthReset - from .condition_operator import ConditionOperator from .condition_response_data import ConditionResponseData + from .condition_type import ConditionType from .condition_view import ConditionView from .count_response import CountResponse from .coupon_request_body import CouponRequestBody from .create_billing_plan_credit_grant_request_body import CreateBillingPlanCreditGrantRequestBody from .create_billing_price_tier_request_body import CreateBillingPriceTierRequestBody from .create_entitlement_in_bundle_request_body import CreateEntitlementInBundleRequestBody - from .create_entitlement_in_bundle_request_body_metric_period import ( - CreateEntitlementInBundleRequestBodyMetricPeriod, - ) - from .create_entitlement_in_bundle_request_body_metric_period_month_reset import ( - CreateEntitlementInBundleRequestBodyMetricPeriodMonthReset, - ) from .create_entitlement_req_common import CreateEntitlementReqCommon - from .create_entitlement_req_common_metric_period import CreateEntitlementReqCommonMetricPeriod - from .create_entitlement_req_common_metric_period_month_reset import ( - CreateEntitlementReqCommonMetricPeriodMonthReset, - ) from .create_event_request_body import CreateEventRequestBody from .create_flag_request_body import CreateFlagRequestBody from .create_or_update_condition_group_request_body import CreateOrUpdateConditionGroupRequestBody from .create_or_update_condition_request_body import CreateOrUpdateConditionRequestBody - from .create_or_update_condition_request_body_condition_type import CreateOrUpdateConditionRequestBodyConditionType - from .create_or_update_condition_request_body_metric_period import CreateOrUpdateConditionRequestBodyMetricPeriod - from .create_or_update_condition_request_body_metric_period_month_reset import ( - CreateOrUpdateConditionRequestBodyMetricPeriodMonthReset, - ) - from .create_or_update_condition_request_body_operator import CreateOrUpdateConditionRequestBodyOperator from .create_or_update_flag_request_body import CreateOrUpdateFlagRequestBody from .create_or_update_rule_request_body import CreateOrUpdateRuleRequestBody - from .create_or_update_rule_request_body_rule_type import CreateOrUpdateRuleRequestBodyRuleType from .create_plan_request_body import CreatePlanRequestBody from .create_price_tier_request_body import CreatePriceTierRequestBody from .credit_auto_topup_amount_type import CreditAutoTopupAmountType @@ -205,8 +186,7 @@ from .feature_company_user_response_data import FeatureCompanyUserResponseData from .feature_detail_response_data import FeatureDetailResponseData from .feature_entitlement import FeatureEntitlement - from .feature_entitlement_metric_period import FeatureEntitlementMetricPeriod - from .feature_entitlement_month_reset import FeatureEntitlementMonthReset + from .feature_in_plan_response_data import FeatureInPlanResponseData from .feature_ledger_response_data import FeatureLedgerResponseData from .feature_lifecycle_phase import FeatureLifecyclePhase from .feature_response_data import FeatureResponseData @@ -217,6 +197,7 @@ from .feature_usage_time_series_response_data import FeatureUsageTimeSeriesResponseData from .feature_view import FeatureView from .flag_detail_response_data import FlagDetailResponseData + from .flag_in_plan_response_data import FlagInPlanResponseData from .flag_response_data import FlagResponseData from .flag_type import FlagType from .flag_view import FlagView @@ -233,6 +214,8 @@ from .manage_plan_request import ManagePlanRequest from .manage_plan_response_response_data import ManagePlanResponseResponseData from .meter_request_body import MeterRequestBody + from .metric_period import MetricPeriod + from .metric_period_month_reset import MetricPeriodMonthReset from .ordered_plans_in_group import OrderedPlansInGroup from .payment_method_request_body import PaymentMethodRequestBody from .payment_method_response_data import PaymentMethodResponseData @@ -288,31 +271,24 @@ from .rule_condition_response_data import RuleConditionResponseData from .rule_detail_response_data import RuleDetailResponseData from .rule_response_data import RuleResponseData - from .rule_rule_type import RuleRuleType + from .rule_type import RuleType from .rule_view import RuleView from .rules_detail_response_data import RulesDetailResponseData from .rules_engine_schema_version import RulesEngineSchemaVersion from .rulesengine_check_flag_result import RulesengineCheckFlagResult - from .rulesengine_check_flag_result_feature_usage_period import RulesengineCheckFlagResultFeatureUsagePeriod - from .rulesengine_check_flag_result_rule_type import RulesengineCheckFlagResultRuleType from .rulesengine_company import RulesengineCompany from .rulesengine_company_metric import RulesengineCompanyMetric - from .rulesengine_company_metric_month_reset import RulesengineCompanyMetricMonthReset - from .rulesengine_company_metric_period import RulesengineCompanyMetricPeriod from .rulesengine_condition import RulesengineCondition - from .rulesengine_condition_condition_type import RulesengineConditionConditionType from .rulesengine_condition_group import RulesengineConditionGroup - from .rulesengine_condition_metric_period import RulesengineConditionMetricPeriod - from .rulesengine_condition_metric_period_month_reset import RulesengineConditionMetricPeriodMonthReset - from .rulesengine_condition_operator import RulesengineConditionOperator + from .rulesengine_condition_type import RulesengineConditionType from .rulesengine_entitlement_value_type import RulesengineEntitlementValueType from .rulesengine_entity_type import RulesengineEntityType from .rulesengine_feature_entitlement import RulesengineFeatureEntitlement - from .rulesengine_feature_entitlement_metric_period import RulesengineFeatureEntitlementMetricPeriod - from .rulesengine_feature_entitlement_month_reset import RulesengineFeatureEntitlementMonthReset from .rulesengine_flag import RulesengineFlag + from .rulesengine_metric_period import RulesengineMetricPeriod + from .rulesengine_metric_period_month_reset import RulesengineMetricPeriodMonthReset from .rulesengine_rule import RulesengineRule - from .rulesengine_rule_rule_type import RulesengineRuleRuleType + from .rulesengine_rule_type import RulesengineRuleType from .rulesengine_subscription import RulesengineSubscription from .rulesengine_trait import RulesengineTrait from .rulesengine_trait_definition import RulesengineTraitDefinition @@ -341,10 +317,6 @@ from .update_billing_plan_credit_grant_request_body import UpdateBillingPlanCreditGrantRequestBody from .update_credit_bundle_request_body import UpdateCreditBundleRequestBody from .update_entitlement_req_common import UpdateEntitlementReqCommon - from .update_entitlement_req_common_metric_period import UpdateEntitlementReqCommonMetricPeriod - from .update_entitlement_req_common_metric_period_month_reset import ( - UpdateEntitlementReqCommonMetricPeriodMonthReset, - ) from .update_pay_in_advance_request_body import UpdatePayInAdvanceRequestBody from .update_plan_request_body import UpdatePlanRequestBody from .update_plan_trait_trait_request_body import UpdatePlanTraitTraitRequestBody @@ -447,6 +419,7 @@ "CompanyPlanWithBillingSubView": ".company_plan_with_billing_sub_view", "CompanyResponseData": ".company_response_data", "CompanySubscriptionResponseData": ".company_subscription_response_data", + "ComparableOperator": ".comparable_operator", "CompatiblePlans": ".compatible_plans", "CompatiblePlansResponseData": ".compatible_plans_response_data", "ComponentCapabilities": ".component_capabilities", @@ -459,36 +432,24 @@ "ComponentSettingsResponseData": ".component_settings_response_data", "ComponentState": ".component_state", "Condition": ".condition", - "ConditionConditionType": ".condition_condition_type", "ConditionGroup": ".condition_group", "ConditionGroupResponseData": ".condition_group_response_data", "ConditionGroupView": ".condition_group_view", - "ConditionMetricPeriod": ".condition_metric_period", - "ConditionMetricPeriodMonthReset": ".condition_metric_period_month_reset", - "ConditionOperator": ".condition_operator", "ConditionResponseData": ".condition_response_data", + "ConditionType": ".condition_type", "ConditionView": ".condition_view", "CountResponse": ".count_response", "CouponRequestBody": ".coupon_request_body", "CreateBillingPlanCreditGrantRequestBody": ".create_billing_plan_credit_grant_request_body", "CreateBillingPriceTierRequestBody": ".create_billing_price_tier_request_body", "CreateEntitlementInBundleRequestBody": ".create_entitlement_in_bundle_request_body", - "CreateEntitlementInBundleRequestBodyMetricPeriod": ".create_entitlement_in_bundle_request_body_metric_period", - "CreateEntitlementInBundleRequestBodyMetricPeriodMonthReset": ".create_entitlement_in_bundle_request_body_metric_period_month_reset", "CreateEntitlementReqCommon": ".create_entitlement_req_common", - "CreateEntitlementReqCommonMetricPeriod": ".create_entitlement_req_common_metric_period", - "CreateEntitlementReqCommonMetricPeriodMonthReset": ".create_entitlement_req_common_metric_period_month_reset", "CreateEventRequestBody": ".create_event_request_body", "CreateFlagRequestBody": ".create_flag_request_body", "CreateOrUpdateConditionGroupRequestBody": ".create_or_update_condition_group_request_body", "CreateOrUpdateConditionRequestBody": ".create_or_update_condition_request_body", - "CreateOrUpdateConditionRequestBodyConditionType": ".create_or_update_condition_request_body_condition_type", - "CreateOrUpdateConditionRequestBodyMetricPeriod": ".create_or_update_condition_request_body_metric_period", - "CreateOrUpdateConditionRequestBodyMetricPeriodMonthReset": ".create_or_update_condition_request_body_metric_period_month_reset", - "CreateOrUpdateConditionRequestBodyOperator": ".create_or_update_condition_request_body_operator", "CreateOrUpdateFlagRequestBody": ".create_or_update_flag_request_body", "CreateOrUpdateRuleRequestBody": ".create_or_update_rule_request_body", - "CreateOrUpdateRuleRequestBodyRuleType": ".create_or_update_rule_request_body_rule_type", "CreatePlanRequestBody": ".create_plan_request_body", "CreatePriceTierRequestBody": ".create_price_tier_request_body", "CreditAutoTopupAmountType": ".credit_auto_topup_amount_type", @@ -561,8 +522,7 @@ "FeatureCompanyUserResponseData": ".feature_company_user_response_data", "FeatureDetailResponseData": ".feature_detail_response_data", "FeatureEntitlement": ".feature_entitlement", - "FeatureEntitlementMetricPeriod": ".feature_entitlement_metric_period", - "FeatureEntitlementMonthReset": ".feature_entitlement_month_reset", + "FeatureInPlanResponseData": ".feature_in_plan_response_data", "FeatureLedgerResponseData": ".feature_ledger_response_data", "FeatureLifecyclePhase": ".feature_lifecycle_phase", "FeatureResponseData": ".feature_response_data", @@ -573,6 +533,7 @@ "FeatureUsageTimeSeriesResponseData": ".feature_usage_time_series_response_data", "FeatureView": ".feature_view", "FlagDetailResponseData": ".flag_detail_response_data", + "FlagInPlanResponseData": ".flag_in_plan_response_data", "FlagResponseData": ".flag_response_data", "FlagType": ".flag_type", "FlagView": ".flag_view", @@ -589,6 +550,8 @@ "ManagePlanRequest": ".manage_plan_request", "ManagePlanResponseResponseData": ".manage_plan_response_response_data", "MeterRequestBody": ".meter_request_body", + "MetricPeriod": ".metric_period", + "MetricPeriodMonthReset": ".metric_period_month_reset", "OrderedPlansInGroup": ".ordered_plans_in_group", "PaymentMethodRequestBody": ".payment_method_request_body", "PaymentMethodResponseData": ".payment_method_response_data", @@ -644,31 +607,24 @@ "RuleConditionResponseData": ".rule_condition_response_data", "RuleDetailResponseData": ".rule_detail_response_data", "RuleResponseData": ".rule_response_data", - "RuleRuleType": ".rule_rule_type", + "RuleType": ".rule_type", "RuleView": ".rule_view", "RulesDetailResponseData": ".rules_detail_response_data", "RulesEngineSchemaVersion": ".rules_engine_schema_version", "RulesengineCheckFlagResult": ".rulesengine_check_flag_result", - "RulesengineCheckFlagResultFeatureUsagePeriod": ".rulesengine_check_flag_result_feature_usage_period", - "RulesengineCheckFlagResultRuleType": ".rulesengine_check_flag_result_rule_type", "RulesengineCompany": ".rulesengine_company", "RulesengineCompanyMetric": ".rulesengine_company_metric", - "RulesengineCompanyMetricMonthReset": ".rulesengine_company_metric_month_reset", - "RulesengineCompanyMetricPeriod": ".rulesengine_company_metric_period", "RulesengineCondition": ".rulesengine_condition", - "RulesengineConditionConditionType": ".rulesengine_condition_condition_type", "RulesengineConditionGroup": ".rulesengine_condition_group", - "RulesengineConditionMetricPeriod": ".rulesengine_condition_metric_period", - "RulesengineConditionMetricPeriodMonthReset": ".rulesengine_condition_metric_period_month_reset", - "RulesengineConditionOperator": ".rulesengine_condition_operator", + "RulesengineConditionType": ".rulesengine_condition_type", "RulesengineEntitlementValueType": ".rulesengine_entitlement_value_type", "RulesengineEntityType": ".rulesengine_entity_type", "RulesengineFeatureEntitlement": ".rulesengine_feature_entitlement", - "RulesengineFeatureEntitlementMetricPeriod": ".rulesengine_feature_entitlement_metric_period", - "RulesengineFeatureEntitlementMonthReset": ".rulesengine_feature_entitlement_month_reset", "RulesengineFlag": ".rulesengine_flag", + "RulesengineMetricPeriod": ".rulesengine_metric_period", + "RulesengineMetricPeriodMonthReset": ".rulesengine_metric_period_month_reset", "RulesengineRule": ".rulesengine_rule", - "RulesengineRuleRuleType": ".rulesengine_rule_rule_type", + "RulesengineRuleType": ".rulesengine_rule_type", "RulesengineSubscription": ".rulesengine_subscription", "RulesengineTrait": ".rulesengine_trait", "RulesengineTraitDefinition": ".rulesengine_trait_definition", @@ -697,8 +653,6 @@ "UpdateBillingPlanCreditGrantRequestBody": ".update_billing_plan_credit_grant_request_body", "UpdateCreditBundleRequestBody": ".update_credit_bundle_request_body", "UpdateEntitlementReqCommon": ".update_entitlement_req_common", - "UpdateEntitlementReqCommonMetricPeriod": ".update_entitlement_req_common_metric_period", - "UpdateEntitlementReqCommonMetricPeriodMonthReset": ".update_entitlement_req_common_metric_period_month_reset", "UpdatePayInAdvanceRequestBody": ".update_pay_in_advance_request_body", "UpdatePlanRequestBody": ".update_plan_request_body", "UpdatePlanTraitTraitRequestBody": ".update_plan_trait_trait_request_body", @@ -825,6 +779,7 @@ def __dir__(): "CompanyPlanWithBillingSubView", "CompanyResponseData", "CompanySubscriptionResponseData", + "ComparableOperator", "CompatiblePlans", "CompatiblePlansResponseData", "ComponentCapabilities", @@ -837,36 +792,24 @@ def __dir__(): "ComponentSettingsResponseData", "ComponentState", "Condition", - "ConditionConditionType", "ConditionGroup", "ConditionGroupResponseData", "ConditionGroupView", - "ConditionMetricPeriod", - "ConditionMetricPeriodMonthReset", - "ConditionOperator", "ConditionResponseData", + "ConditionType", "ConditionView", "CountResponse", "CouponRequestBody", "CreateBillingPlanCreditGrantRequestBody", "CreateBillingPriceTierRequestBody", "CreateEntitlementInBundleRequestBody", - "CreateEntitlementInBundleRequestBodyMetricPeriod", - "CreateEntitlementInBundleRequestBodyMetricPeriodMonthReset", "CreateEntitlementReqCommon", - "CreateEntitlementReqCommonMetricPeriod", - "CreateEntitlementReqCommonMetricPeriodMonthReset", "CreateEventRequestBody", "CreateFlagRequestBody", "CreateOrUpdateConditionGroupRequestBody", "CreateOrUpdateConditionRequestBody", - "CreateOrUpdateConditionRequestBodyConditionType", - "CreateOrUpdateConditionRequestBodyMetricPeriod", - "CreateOrUpdateConditionRequestBodyMetricPeriodMonthReset", - "CreateOrUpdateConditionRequestBodyOperator", "CreateOrUpdateFlagRequestBody", "CreateOrUpdateRuleRequestBody", - "CreateOrUpdateRuleRequestBodyRuleType", "CreatePlanRequestBody", "CreatePriceTierRequestBody", "CreditAutoTopupAmountType", @@ -939,8 +882,7 @@ def __dir__(): "FeatureCompanyUserResponseData", "FeatureDetailResponseData", "FeatureEntitlement", - "FeatureEntitlementMetricPeriod", - "FeatureEntitlementMonthReset", + "FeatureInPlanResponseData", "FeatureLedgerResponseData", "FeatureLifecyclePhase", "FeatureResponseData", @@ -951,6 +893,7 @@ def __dir__(): "FeatureUsageTimeSeriesResponseData", "FeatureView", "FlagDetailResponseData", + "FlagInPlanResponseData", "FlagResponseData", "FlagType", "FlagView", @@ -967,6 +910,8 @@ def __dir__(): "ManagePlanRequest", "ManagePlanResponseResponseData", "MeterRequestBody", + "MetricPeriod", + "MetricPeriodMonthReset", "OrderedPlansInGroup", "PaymentMethodRequestBody", "PaymentMethodResponseData", @@ -1022,31 +967,24 @@ def __dir__(): "RuleConditionResponseData", "RuleDetailResponseData", "RuleResponseData", - "RuleRuleType", + "RuleType", "RuleView", "RulesDetailResponseData", "RulesEngineSchemaVersion", "RulesengineCheckFlagResult", - "RulesengineCheckFlagResultFeatureUsagePeriod", - "RulesengineCheckFlagResultRuleType", "RulesengineCompany", "RulesengineCompanyMetric", - "RulesengineCompanyMetricMonthReset", - "RulesengineCompanyMetricPeriod", "RulesengineCondition", - "RulesengineConditionConditionType", "RulesengineConditionGroup", - "RulesengineConditionMetricPeriod", - "RulesengineConditionMetricPeriodMonthReset", - "RulesengineConditionOperator", + "RulesengineConditionType", "RulesengineEntitlementValueType", "RulesengineEntityType", "RulesengineFeatureEntitlement", - "RulesengineFeatureEntitlementMetricPeriod", - "RulesengineFeatureEntitlementMonthReset", "RulesengineFlag", + "RulesengineMetricPeriod", + "RulesengineMetricPeriodMonthReset", "RulesengineRule", - "RulesengineRuleRuleType", + "RulesengineRuleType", "RulesengineSubscription", "RulesengineTrait", "RulesengineTraitDefinition", @@ -1075,8 +1013,6 @@ def __dir__(): "UpdateBillingPlanCreditGrantRequestBody", "UpdateCreditBundleRequestBody", "UpdateEntitlementReqCommon", - "UpdateEntitlementReqCommonMetricPeriod", - "UpdateEntitlementReqCommonMetricPeriodMonthReset", "UpdatePayInAdvanceRequestBody", "UpdatePlanRequestBody", "UpdatePlanTraitTraitRequestBody", diff --git a/src/schematic/types/api_key_create_response_data.py b/src/schematic/types/api_key_create_response_data.py index e073acb..d1ad347 100644 --- a/src/schematic/types/api_key_create_response_data.py +++ b/src/schematic/types/api_key_create_response_data.py @@ -6,11 +6,13 @@ import pydantic from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel from .api_key_scope import ApiKeyScope +from .environment_response_data import EnvironmentResponseData class ApiKeyCreateResponseData(UniversalBaseModel): created_at: dt.datetime description: typing.Optional[str] = None + environment: typing.Optional[EnvironmentResponseData] = None environment_id: typing.Optional[str] = None id: str last_used_at: typing.Optional[dt.datetime] = None diff --git a/src/schematic/types/api_key_response_data.py b/src/schematic/types/api_key_response_data.py index ca58ffb..9e695b4 100644 --- a/src/schematic/types/api_key_response_data.py +++ b/src/schematic/types/api_key_response_data.py @@ -6,11 +6,13 @@ import pydantic from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel from .api_key_scope import ApiKeyScope +from .environment_response_data import EnvironmentResponseData class ApiKeyResponseData(UniversalBaseModel): created_at: dt.datetime description: typing.Optional[str] = None + environment: typing.Optional[EnvironmentResponseData] = None environment_id: typing.Optional[str] = None id: str last_used_at: typing.Optional[dt.datetime] = None diff --git a/src/schematic/types/audit_log_list_response_data.py b/src/schematic/types/audit_log_list_response_data.py index 494180c..6fbedc4 100644 --- a/src/schematic/types/audit_log_list_response_data.py +++ b/src/schematic/types/audit_log_list_response_data.py @@ -6,12 +6,14 @@ import pydantic from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel from .actor_type import ActorType +from .environment_response_data import EnvironmentResponseData class AuditLogListResponseData(UniversalBaseModel): actor_type: ActorType api_key_id: typing.Optional[str] = None ended_at: typing.Optional[dt.datetime] = None + environment: typing.Optional[EnvironmentResponseData] = None environment_id: typing.Optional[str] = None id: str method: str diff --git a/src/schematic/types/audit_log_response_data.py b/src/schematic/types/audit_log_response_data.py index 618a4b9..b9bf233 100644 --- a/src/schematic/types/audit_log_response_data.py +++ b/src/schematic/types/audit_log_response_data.py @@ -6,12 +6,14 @@ import pydantic from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel from .actor_type import ActorType +from .environment_response_data import EnvironmentResponseData class AuditLogResponseData(UniversalBaseModel): actor_type: ActorType api_key_id: typing.Optional[str] = None ended_at: typing.Optional[dt.datetime] = None + environment: typing.Optional[EnvironmentResponseData] = None environment_id: typing.Optional[str] = None id: str method: str diff --git a/src/schematic/types/billing_price_response_data.py b/src/schematic/types/billing_price_response_data.py index dc33607..6e075ba 100644 --- a/src/schematic/types/billing_price_response_data.py +++ b/src/schematic/types/billing_price_response_data.py @@ -14,6 +14,7 @@ class BillingPriceResponseData(UniversalBaseModel): external_price_id: str id: str interval: BillingProductPriceInterval + nickname: typing.Optional[str] = None price: int price_decimal: typing.Optional[str] = None provider_type: BillingProviderType diff --git a/src/schematic/types/billing_price_view.py b/src/schematic/types/billing_price_view.py index 91c1449..7c8a5e2 100644 --- a/src/schematic/types/billing_price_view.py +++ b/src/schematic/types/billing_price_view.py @@ -23,6 +23,7 @@ class BillingPriceView(UniversalBaseModel): meter_event_name: typing.Optional[str] = None meter_event_payload_key: typing.Optional[str] = None meter_id: typing.Optional[str] = None + nickname: typing.Optional[str] = None package_size: int price: int price_decimal: typing.Optional[str] = None diff --git a/src/schematic/types/billing_product_price_response_data.py b/src/schematic/types/billing_product_price_response_data.py index a828a45..18f077c 100644 --- a/src/schematic/types/billing_product_price_response_data.py +++ b/src/schematic/types/billing_product_price_response_data.py @@ -20,6 +20,7 @@ class BillingProductPriceResponseData(UniversalBaseModel): interval: BillingProductPriceInterval is_active: bool meter_id: typing.Optional[str] = None + nickname: typing.Optional[str] = None package_size: int price: int price_decimal: typing.Optional[str] = None diff --git a/src/schematic/types/check_flag_response_data.py b/src/schematic/types/check_flag_response_data.py index b0e6e4c..4da7e11 100644 --- a/src/schematic/types/check_flag_response_data.py +++ b/src/schematic/types/check_flag_response_data.py @@ -6,6 +6,8 @@ import pydantic from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel from .feature_entitlement import FeatureEntitlement +from .metric_period import MetricPeriod +from .rule_type import RuleType class CheckFlagResponseData(UniversalBaseModel): @@ -39,7 +41,7 @@ class CheckFlagResponseData(UniversalBaseModel): Deprecated: Use Entitlement.EventName instead. """ - feature_usage_period: typing.Optional[str] = pydantic.Field(default=None) + feature_usage_period: typing.Optional[MetricPeriod] = pydantic.Field(default=None) """ Deprecated: Use Entitlement.MetricPeriod instead. """ @@ -69,7 +71,7 @@ class CheckFlagResponseData(UniversalBaseModel): If a rule was found, its ID """ - rule_type: typing.Optional[str] = pydantic.Field(default=None) + rule_type: typing.Optional[RuleType] = pydantic.Field(default=None) """ If a rule was found, its type """ diff --git a/src/schematic/types/company_event_period_metrics_response_data.py b/src/schematic/types/company_event_period_metrics_response_data.py index c298e80..d446f45 100644 --- a/src/schematic/types/company_event_period_metrics_response_data.py +++ b/src/schematic/types/company_event_period_metrics_response_data.py @@ -5,6 +5,8 @@ import pydantic from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from .metric_period import MetricPeriod +from .metric_period_month_reset import MetricPeriodMonthReset class CompanyEventPeriodMetricsResponseData(UniversalBaseModel): @@ -15,8 +17,8 @@ class CompanyEventPeriodMetricsResponseData(UniversalBaseModel): created_at: dt.datetime environment_id: str event_subtype: str - month_reset: str - period: str + month_reset: MetricPeriodMonthReset + period: MetricPeriod valid_until: typing.Optional[dt.datetime] = None value: int diff --git a/src/schematic/types/company_override_response_data.py b/src/schematic/types/company_override_response_data.py index c88040d..47ff366 100644 --- a/src/schematic/types/company_override_response_data.py +++ b/src/schematic/types/company_override_response_data.py @@ -10,6 +10,8 @@ from .entitlement_value_type import EntitlementValueType from .entity_trait_definition_response_data import EntityTraitDefinitionResponseData from .feature_response_data import FeatureResponseData +from .metric_period import MetricPeriod +from .metric_period_month_reset import MetricPeriodMonthReset class CompanyOverrideResponseData(UniversalBaseModel): @@ -22,8 +24,8 @@ class CompanyOverrideResponseData(UniversalBaseModel): feature: typing.Optional[FeatureResponseData] = None feature_id: str id: str - metric_period: typing.Optional[str] = None - metric_period_month_reset: typing.Optional[str] = None + metric_period: typing.Optional[MetricPeriod] = None + metric_period_month_reset: typing.Optional[MetricPeriodMonthReset] = None notes: typing.List[CompanyOverrideNoteResponseData] rule_id: typing.Optional[str] = None rule_id_usage_exceeded: typing.Optional[str] = None diff --git a/src/schematic/types/company_plan_detail_response_data.py b/src/schematic/types/company_plan_detail_response_data.py index f974f4a..109ee39 100644 --- a/src/schematic/types/company_plan_detail_response_data.py +++ b/src/schematic/types/company_plan_detail_response_data.py @@ -8,10 +8,11 @@ from .billing_linked_resource_response_data import BillingLinkedResourceResponseData from .billing_price_response_data import BillingPriceResponseData from .billing_product_detail_response_data import BillingProductDetailResponseData +from .billing_provider_type import BillingProviderType from .charge_type import ChargeType from .company_plan_invalid_reason import CompanyPlanInvalidReason from .custom_plan_config import CustomPlanConfig -from .feature_detail_response_data import FeatureDetailResponseData +from .feature_in_plan_response_data import FeatureInPlanResponseData from .feature_usage_response_data import FeatureUsageResponseData from .plan_credit_grant_view import PlanCreditGrantView from .plan_currency_prices_response_data import PlanCurrencyPricesResponseData @@ -32,7 +33,7 @@ class CompanyPlanDetailResponseData(UniversalBaseModel): company_id: typing.Optional[str] = None company_name: typing.Optional[str] = None compatible_plan_ids: typing.List[str] - controlled_by: str + controlled_by: BillingProviderType copied_from_plan_id: typing.Optional[str] = None created_at: dt.datetime currency_prices: typing.List[PlanCurrencyPricesResponseData] @@ -42,7 +43,7 @@ class CompanyPlanDetailResponseData(UniversalBaseModel): description: str draft_version: typing.Optional[PlanVersionResponseData] = None entitlements: typing.List[PlanEntitlementResponseData] - features: typing.List[FeatureDetailResponseData] + features: typing.List[FeatureInPlanResponseData] icon: PlanIcon id: str included_credit_grants: typing.List[PlanCreditGrantView] diff --git a/src/schematic/types/company_subscription_response_data.py b/src/schematic/types/company_subscription_response_data.py index ff05d0a..80ecdb7 100644 --- a/src/schematic/types/company_subscription_response_data.py +++ b/src/schematic/types/company_subscription_response_data.py @@ -6,6 +6,7 @@ import pydantic from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel from .billing_product_for_subscription_response_data import BillingProductForSubscriptionResponseData +from .billing_provider_type import BillingProviderType from .billing_subscription_discount_view import BillingSubscriptionDiscountView from .invoice_response_data import InvoiceResponseData from .payment_method_response_data import PaymentMethodResponseData @@ -22,6 +23,7 @@ class CompanySubscriptionResponseData(UniversalBaseModel): latest_invoice: typing.Optional[InvoiceResponseData] = None payment_method: typing.Optional[PaymentMethodResponseData] = None products: typing.List[BillingProductForSubscriptionResponseData] + provider_type: BillingProviderType status: str subscription_external_id: str total_price: int diff --git a/src/schematic/types/comparable_operator.py b/src/schematic/types/comparable_operator.py new file mode 100644 index 0000000..567dc53 --- /dev/null +++ b/src/schematic/types/comparable_operator.py @@ -0,0 +1,7 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +ComparableOperator = typing.Union[ + typing.Literal["eq", "gt", "gte", "is_empty", "lt", "lte", "not_empty", "ne"], typing.Any +] diff --git a/src/schematic/types/condition.py b/src/schematic/types/condition.py index 45063ad..e2ffe5c 100644 --- a/src/schematic/types/condition.py +++ b/src/schematic/types/condition.py @@ -4,26 +4,26 @@ import pydantic from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from .condition_condition_type import ConditionConditionType -from .condition_metric_period import ConditionMetricPeriod -from .condition_metric_period_month_reset import ConditionMetricPeriodMonthReset -from .condition_operator import ConditionOperator +from .comparable_operator import ComparableOperator +from .condition_type import ConditionType +from .metric_period import MetricPeriod +from .metric_period_month_reset import MetricPeriodMonthReset from .trait_definition import TraitDefinition class Condition(UniversalBaseModel): account_id: str comparison_trait_definition: typing.Optional[TraitDefinition] = None - condition_type: ConditionConditionType + condition_type: ConditionType consumption_rate: typing.Optional[float] = None credit_id: typing.Optional[str] = None environment_id: str event_subtype: typing.Optional[str] = None id: str - metric_period: typing.Optional[ConditionMetricPeriod] = None - metric_period_month_reset: typing.Optional[ConditionMetricPeriodMonthReset] = None + metric_period: typing.Optional[MetricPeriod] = None + metric_period_month_reset: typing.Optional[MetricPeriodMonthReset] = None metric_value: typing.Optional[int] = None - operator: ConditionOperator + operator: ComparableOperator resource_ids: typing.List[str] trait_definition: typing.Optional[TraitDefinition] = None trait_value: str diff --git a/src/schematic/types/condition_metric_period_month_reset.py b/src/schematic/types/condition_metric_period_month_reset.py deleted file mode 100644 index e3b36f3..0000000 --- a/src/schematic/types/condition_metric_period_month_reset.py +++ /dev/null @@ -1,5 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -ConditionMetricPeriodMonthReset = typing.Union[typing.Literal["first_of_month", "billing_cycle"], typing.Any] diff --git a/src/schematic/types/condition_operator.py b/src/schematic/types/condition_operator.py deleted file mode 100644 index 2bddfea..0000000 --- a/src/schematic/types/condition_operator.py +++ /dev/null @@ -1,7 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -ConditionOperator = typing.Union[ - typing.Literal["eq", "ne", "gt", "lt", "gte", "lte", "is_empty", "not_empty"], typing.Any -] diff --git a/src/schematic/types/condition_response_data.py b/src/schematic/types/condition_response_data.py index fc08e31..95686f7 100644 --- a/src/schematic/types/condition_response_data.py +++ b/src/schematic/types/condition_response_data.py @@ -5,14 +5,18 @@ import pydantic from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from .comparable_operator import ComparableOperator +from .condition_type import ConditionType from .entity_type import EntityType +from .metric_period import MetricPeriod +from .metric_period_month_reset import MetricPeriodMonthReset class ConditionResponseData(UniversalBaseModel): account_id: str comparison_trait_id: typing.Optional[str] = None condition_group_id: typing.Optional[str] = None - condition_type: str + condition_type: ConditionType consumption_rate: typing.Optional[float] = None created_at: dt.datetime credit_id: typing.Optional[str] = None @@ -20,10 +24,10 @@ class ConditionResponseData(UniversalBaseModel): event_subtype: typing.Optional[str] = None flag_id: typing.Optional[str] = None id: str - metric_period: typing.Optional[str] = None - metric_period_month_reset: typing.Optional[str] = None + metric_period: typing.Optional[MetricPeriod] = None + metric_period_month_reset: typing.Optional[MetricPeriodMonthReset] = None metric_value: typing.Optional[int] = None - operator: str + operator: ComparableOperator resource_unspecified_ids: typing.List[str] rule_id: str trait_entity_type: typing.Optional[EntityType] = None diff --git a/src/schematic/types/condition_condition_type.py b/src/schematic/types/condition_type.py similarity index 85% rename from src/schematic/types/condition_condition_type.py rename to src/schematic/types/condition_type.py index e915536..a9f2d46 100644 --- a/src/schematic/types/condition_condition_type.py +++ b/src/schematic/types/condition_type.py @@ -2,7 +2,7 @@ import typing -ConditionConditionType = typing.Union[ +ConditionType = typing.Union[ typing.Literal[ "base_plan", "billing_product", "company", "credit", "metric", "plan", "plan_version", "trait", "user" ], diff --git a/src/schematic/types/condition_view.py b/src/schematic/types/condition_view.py index db6721a..2589253 100644 --- a/src/schematic/types/condition_view.py +++ b/src/schematic/types/condition_view.py @@ -5,9 +5,13 @@ import pydantic from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from .comparable_operator import ComparableOperator +from .condition_type import ConditionType from .entity_trait_definition_response_data import EntityTraitDefinitionResponseData from .entity_type import EntityType from .generic_preview_object import GenericPreviewObject +from .metric_period import MetricPeriod +from .metric_period_month_reset import MetricPeriodMonthReset class ConditionView(UniversalBaseModel): @@ -17,7 +21,7 @@ class ConditionView(UniversalBaseModel): comparison_trait: typing.Optional[EntityTraitDefinitionResponseData] = None comparison_trait_id: typing.Optional[str] = None condition_group_id: typing.Optional[str] = None - condition_type: str + condition_type: ConditionType consumption_rate: typing.Optional[float] = None created_at: dt.datetime credit_id: typing.Optional[str] = None @@ -25,10 +29,10 @@ class ConditionView(UniversalBaseModel): event_subtype: typing.Optional[str] = None flag_id: typing.Optional[str] = None id: str - metric_period: typing.Optional[str] = None - metric_period_month_reset: typing.Optional[str] = None + metric_period: typing.Optional[MetricPeriod] = None + metric_period_month_reset: typing.Optional[MetricPeriodMonthReset] = None metric_value: typing.Optional[int] = None - operator: str + operator: ComparableOperator plan_versions: typing.List[GenericPreviewObject] plans: typing.List[GenericPreviewObject] resource_unspecified_ids: typing.List[str] diff --git a/src/schematic/types/create_entitlement_in_bundle_request_body.py b/src/schematic/types/create_entitlement_in_bundle_request_body.py index c448dc3..64d97ff 100644 --- a/src/schematic/types/create_entitlement_in_bundle_request_body.py +++ b/src/schematic/types/create_entitlement_in_bundle_request_body.py @@ -5,14 +5,12 @@ import pydantic from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel from .billing_tiers_mode import BillingTiersMode -from .create_entitlement_in_bundle_request_body_metric_period import CreateEntitlementInBundleRequestBodyMetricPeriod -from .create_entitlement_in_bundle_request_body_metric_period_month_reset import ( - CreateEntitlementInBundleRequestBodyMetricPeriodMonthReset, -) from .create_price_tier_request_body import CreatePriceTierRequestBody from .currency_price_request_body import CurrencyPriceRequestBody from .entitlement_price_behavior import EntitlementPriceBehavior from .entitlement_value_type import EntitlementValueType +from .metric_period import MetricPeriod +from .metric_period_month_reset import MetricPeriodMonthReset class CreateEntitlementInBundleRequestBody(UniversalBaseModel): @@ -22,8 +20,8 @@ class CreateEntitlementInBundleRequestBody(UniversalBaseModel): currency: typing.Optional[str] = None currency_prices: typing.Optional[typing.List[CurrencyPriceRequestBody]] = None feature_id: str - metric_period: typing.Optional[CreateEntitlementInBundleRequestBodyMetricPeriod] = None - metric_period_month_reset: typing.Optional[CreateEntitlementInBundleRequestBodyMetricPeriodMonthReset] = None + metric_period: typing.Optional[MetricPeriod] = None + metric_period_month_reset: typing.Optional[MetricPeriodMonthReset] = None monthly_metered_price_id: typing.Optional[str] = None monthly_price_tiers: typing.Optional[typing.List[CreatePriceTierRequestBody]] = None monthly_unit_price: typing.Optional[int] = None diff --git a/src/schematic/types/create_entitlement_in_bundle_request_body_metric_period.py b/src/schematic/types/create_entitlement_in_bundle_request_body_metric_period.py deleted file mode 100644 index 275867f..0000000 --- a/src/schematic/types/create_entitlement_in_bundle_request_body_metric_period.py +++ /dev/null @@ -1,7 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -CreateEntitlementInBundleRequestBodyMetricPeriod = typing.Union[ - typing.Literal["all_time", "current_month", "current_week", "current_day"], typing.Any -] diff --git a/src/schematic/types/create_entitlement_in_bundle_request_body_metric_period_month_reset.py b/src/schematic/types/create_entitlement_in_bundle_request_body_metric_period_month_reset.py deleted file mode 100644 index 4c54ab8..0000000 --- a/src/schematic/types/create_entitlement_in_bundle_request_body_metric_period_month_reset.py +++ /dev/null @@ -1,7 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -CreateEntitlementInBundleRequestBodyMetricPeriodMonthReset = typing.Union[ - typing.Literal["first_of_month", "billing_cycle"], typing.Any -] diff --git a/src/schematic/types/create_entitlement_req_common.py b/src/schematic/types/create_entitlement_req_common.py index c9720cc..734cadc 100644 --- a/src/schematic/types/create_entitlement_req_common.py +++ b/src/schematic/types/create_entitlement_req_common.py @@ -4,16 +4,16 @@ import pydantic from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from .create_entitlement_req_common_metric_period import CreateEntitlementReqCommonMetricPeriod -from .create_entitlement_req_common_metric_period_month_reset import CreateEntitlementReqCommonMetricPeriodMonthReset from .entitlement_value_type import EntitlementValueType +from .metric_period import MetricPeriod +from .metric_period_month_reset import MetricPeriodMonthReset class CreateEntitlementReqCommon(UniversalBaseModel): credit_consumption_rate: typing.Optional[float] = None feature_id: str - metric_period: typing.Optional[CreateEntitlementReqCommonMetricPeriod] = None - metric_period_month_reset: typing.Optional[CreateEntitlementReqCommonMetricPeriodMonthReset] = None + metric_period: typing.Optional[MetricPeriod] = None + metric_period_month_reset: typing.Optional[MetricPeriodMonthReset] = None value_bool: typing.Optional[bool] = None value_credit_id: typing.Optional[str] = None value_numeric: typing.Optional[int] = None diff --git a/src/schematic/types/create_entitlement_req_common_metric_period.py b/src/schematic/types/create_entitlement_req_common_metric_period.py deleted file mode 100644 index 87bd1ac..0000000 --- a/src/schematic/types/create_entitlement_req_common_metric_period.py +++ /dev/null @@ -1,7 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -CreateEntitlementReqCommonMetricPeriod = typing.Union[ - typing.Literal["all_time", "current_month", "current_week", "current_day"], typing.Any -] diff --git a/src/schematic/types/create_entitlement_req_common_metric_period_month_reset.py b/src/schematic/types/create_entitlement_req_common_metric_period_month_reset.py deleted file mode 100644 index 956e459..0000000 --- a/src/schematic/types/create_entitlement_req_common_metric_period_month_reset.py +++ /dev/null @@ -1,7 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -CreateEntitlementReqCommonMetricPeriodMonthReset = typing.Union[ - typing.Literal["first_of_month", "billing_cycle"], typing.Any -] diff --git a/src/schematic/types/create_flag_request_body.py b/src/schematic/types/create_flag_request_body.py index e16f1d5..99e8289 100644 --- a/src/schematic/types/create_flag_request_body.py +++ b/src/schematic/types/create_flag_request_body.py @@ -13,7 +13,7 @@ class CreateFlagRequestBody(UniversalBaseModel): feature_id: typing.Optional[str] = None flag_type: FlagType = "boolean" key: str - maintainer_id: typing.Optional[str] = None + maintainer_account_member_id: typing.Optional[str] = None name: str if IS_PYDANTIC_V2: diff --git a/src/schematic/types/create_or_update_condition_request_body.py b/src/schematic/types/create_or_update_condition_request_body.py index 21e6f58..516832f 100644 --- a/src/schematic/types/create_or_update_condition_request_body.py +++ b/src/schematic/types/create_or_update_condition_request_body.py @@ -4,12 +4,10 @@ import pydantic from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from .create_or_update_condition_request_body_condition_type import CreateOrUpdateConditionRequestBodyConditionType -from .create_or_update_condition_request_body_metric_period import CreateOrUpdateConditionRequestBodyMetricPeriod -from .create_or_update_condition_request_body_metric_period_month_reset import ( - CreateOrUpdateConditionRequestBodyMetricPeriodMonthReset, -) -from .create_or_update_condition_request_body_operator import CreateOrUpdateConditionRequestBodyOperator +from .comparable_operator import ComparableOperator +from .condition_type import ConditionType +from .metric_period import MetricPeriod +from .metric_period_month_reset import MetricPeriodMonthReset class CreateOrUpdateConditionRequestBody(UniversalBaseModel): @@ -18,7 +16,7 @@ class CreateOrUpdateConditionRequestBody(UniversalBaseModel): Optionally provide a trait ID to compare a metric or trait value against instead of a value """ - condition_type: CreateOrUpdateConditionRequestBodyConditionType + condition_type: ConditionType credit_cost: typing.Optional[float] = pydantic.Field(default=None) """ Cost of credit to use to measure this condition @@ -35,14 +33,12 @@ class CreateOrUpdateConditionRequestBody(UniversalBaseModel): """ id: typing.Optional[str] = None - metric_period: typing.Optional[CreateOrUpdateConditionRequestBodyMetricPeriod] = pydantic.Field(default=None) + metric_period: typing.Optional[MetricPeriod] = pydantic.Field(default=None) """ Period of time over which to measure the track event metric """ - metric_period_month_reset: typing.Optional[CreateOrUpdateConditionRequestBodyMetricPeriodMonthReset] = ( - pydantic.Field(default=None) - ) + metric_period_month_reset: typing.Optional[MetricPeriodMonthReset] = pydantic.Field(default=None) """ When metric_period=current_month, specify whether the month restarts based on the calendar month or the billing period """ @@ -52,7 +48,7 @@ class CreateOrUpdateConditionRequestBody(UniversalBaseModel): Value to compare the track event metric against """ - operator: CreateOrUpdateConditionRequestBodyOperator + operator: ComparableOperator resource_ids: typing.List[str] = pydantic.Field() """ List of resource IDs (companies, users, or plans) targeted by this condition diff --git a/src/schematic/types/create_or_update_condition_request_body_condition_type.py b/src/schematic/types/create_or_update_condition_request_body_condition_type.py deleted file mode 100644 index b220d1f..0000000 --- a/src/schematic/types/create_or_update_condition_request_body_condition_type.py +++ /dev/null @@ -1,8 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -CreateOrUpdateConditionRequestBodyConditionType = typing.Union[ - typing.Literal["company", "metric", "trait", "user", "plan", "plan_version", "billing_product", "base_plan"], - typing.Any, -] diff --git a/src/schematic/types/create_or_update_condition_request_body_metric_period.py b/src/schematic/types/create_or_update_condition_request_body_metric_period.py deleted file mode 100644 index 622b8c9..0000000 --- a/src/schematic/types/create_or_update_condition_request_body_metric_period.py +++ /dev/null @@ -1,7 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -CreateOrUpdateConditionRequestBodyMetricPeriod = typing.Union[ - typing.Literal["all_time", "current_month", "current_week", "current_day"], typing.Any -] diff --git a/src/schematic/types/create_or_update_condition_request_body_metric_period_month_reset.py b/src/schematic/types/create_or_update_condition_request_body_metric_period_month_reset.py deleted file mode 100644 index 1dc5451..0000000 --- a/src/schematic/types/create_or_update_condition_request_body_metric_period_month_reset.py +++ /dev/null @@ -1,7 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -CreateOrUpdateConditionRequestBodyMetricPeriodMonthReset = typing.Union[ - typing.Literal["first_of_month", "billing_cycle"], typing.Any -] diff --git a/src/schematic/types/create_or_update_condition_request_body_operator.py b/src/schematic/types/create_or_update_condition_request_body_operator.py deleted file mode 100644 index 431b5e4..0000000 --- a/src/schematic/types/create_or_update_condition_request_body_operator.py +++ /dev/null @@ -1,7 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -CreateOrUpdateConditionRequestBodyOperator = typing.Union[ - typing.Literal["eq", "ne", "gt", "gte", "lt", "lte", "is_empty", "not_empty"], typing.Any -] diff --git a/src/schematic/types/create_or_update_flag_request_body.py b/src/schematic/types/create_or_update_flag_request_body.py index e7e40eb..75f9615 100644 --- a/src/schematic/types/create_or_update_flag_request_body.py +++ b/src/schematic/types/create_or_update_flag_request_body.py @@ -14,7 +14,7 @@ class CreateOrUpdateFlagRequestBody(UniversalBaseModel): flag_type: FlagType = "boolean" id: typing.Optional[str] = None key: str - maintainer_id: typing.Optional[str] = None + maintainer_account_member_id: typing.Optional[str] = None name: str if IS_PYDANTIC_V2: diff --git a/src/schematic/types/create_or_update_rule_request_body.py b/src/schematic/types/create_or_update_rule_request_body.py index 853bd91..4314e07 100644 --- a/src/schematic/types/create_or_update_rule_request_body.py +++ b/src/schematic/types/create_or_update_rule_request_body.py @@ -6,7 +6,7 @@ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel from .create_or_update_condition_group_request_body import CreateOrUpdateConditionGroupRequestBody from .create_or_update_condition_request_body import CreateOrUpdateConditionRequestBody -from .create_or_update_rule_request_body_rule_type import CreateOrUpdateRuleRequestBodyRuleType +from .rule_type import RuleType class CreateOrUpdateRuleRequestBody(UniversalBaseModel): @@ -15,7 +15,7 @@ class CreateOrUpdateRuleRequestBody(UniversalBaseModel): id: typing.Optional[str] = None name: str priority: int - rule_type: typing.Optional[CreateOrUpdateRuleRequestBodyRuleType] = None + rule_type: typing.Optional[RuleType] = None value: bool if IS_PYDANTIC_V2: diff --git a/src/schematic/types/create_or_update_rule_request_body_rule_type.py b/src/schematic/types/create_or_update_rule_request_body_rule_type.py deleted file mode 100644 index 5482671..0000000 --- a/src/schematic/types/create_or_update_rule_request_body_rule_type.py +++ /dev/null @@ -1,7 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -CreateOrUpdateRuleRequestBodyRuleType = typing.Union[ - typing.Literal["global_override", "company_override", "plan_entitlement", "standard", "default"], typing.Any -] diff --git a/src/schematic/types/feature_company_response_data.py b/src/schematic/types/feature_company_response_data.py index c7b97a8..921a743 100644 --- a/src/schematic/types/feature_company_response_data.py +++ b/src/schematic/types/feature_company_response_data.py @@ -15,7 +15,9 @@ from .entitlement_price_behavior import EntitlementPriceBehavior from .entitlement_type import EntitlementType from .entitlement_value_type import EntitlementValueType -from .feature_detail_response_data import FeatureDetailResponseData +from .feature_in_plan_response_data import FeatureInPlanResponseData +from .metric_period import MetricPeriod +from .metric_period_month_reset import MetricPeriodMonthReset from .plan_entitlement_response_data import PlanEntitlementResponseData from .plan_response_data import PlanResponseData @@ -86,7 +88,7 @@ class FeatureCompanyResponseData(UniversalBaseModel): """ entitlement_type: EntitlementType - feature: typing.Optional[FeatureDetailResponseData] = None + feature: typing.Optional[FeatureInPlanResponseData] = None has_valid_allocation: typing.Optional[bool] = pydantic.Field(default=None) """ Whether a valid allocation exists @@ -102,7 +104,7 @@ class FeatureCompanyResponseData(UniversalBaseModel): The time at which the metric will reset. """ - month_reset: typing.Optional[str] = pydantic.Field(default=None) + month_reset: typing.Optional[MetricPeriodMonthReset] = pydantic.Field(default=None) """ If the period is current_month, when the month resets. """ @@ -118,7 +120,7 @@ class FeatureCompanyResponseData(UniversalBaseModel): Percentage of allocation consumed (0-100+) """ - period: typing.Optional[str] = pydantic.Field(default=None) + period: typing.Optional[MetricPeriod] = pydantic.Field(default=None) """ The period over which usage is measured. """ diff --git a/src/schematic/types/feature_company_user_response_data.py b/src/schematic/types/feature_company_user_response_data.py index 1be2f48..58e73a3 100644 --- a/src/schematic/types/feature_company_user_response_data.py +++ b/src/schematic/types/feature_company_user_response_data.py @@ -9,6 +9,8 @@ from .entitlement_type import EntitlementType from .entitlement_value_type import EntitlementValueType from .feature_detail_response_data import FeatureDetailResponseData +from .metric_period import MetricPeriod +from .metric_period_month_reset import MetricPeriodMonthReset from .plan_response_data import PlanResponseData from .user_response_data import UserResponseData @@ -38,12 +40,12 @@ class FeatureCompanyUserResponseData(UniversalBaseModel): The time at which the metric will resets. """ - month_reset: typing.Optional[str] = pydantic.Field(default=None) + month_reset: typing.Optional[MetricPeriodMonthReset] = pydantic.Field(default=None) """ If the period is current_month, when the month resets. """ - period: typing.Optional[str] = pydantic.Field(default=None) + period: typing.Optional[MetricPeriod] = pydantic.Field(default=None) """ The period over which usage is measured. """ diff --git a/src/schematic/types/feature_detail_response_data.py b/src/schematic/types/feature_detail_response_data.py index 4cf6cfa..453c629 100644 --- a/src/schematic/types/feature_detail_response_data.py +++ b/src/schematic/types/feature_detail_response_data.py @@ -5,6 +5,7 @@ import pydantic from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from .account_member_response_data import AccountMemberResponseData from .billing_linked_resource_response_data import BillingLinkedResourceResponseData from .entity_trait_definition_response_data import EntityTraitDefinitionResponseData from .event_summary_response_data import EventSummaryResponseData @@ -25,7 +26,8 @@ class FeatureDetailResponseData(UniversalBaseModel): icon: str id: str lifecycle_phase: typing.Optional[FeatureLifecyclePhase] = None - maintainer_id: typing.Optional[str] = None + maintainer: typing.Optional[AccountMemberResponseData] = None + maintainer_account_member_id: typing.Optional[str] = None name: str plans: typing.List[PreviewObject] plural_name: typing.Optional[str] = None diff --git a/src/schematic/types/feature_entitlement.py b/src/schematic/types/feature_entitlement.py index 459b343..272ff0f 100644 --- a/src/schematic/types/feature_entitlement.py +++ b/src/schematic/types/feature_entitlement.py @@ -6,8 +6,8 @@ import pydantic from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel from .entitlement_value_type import EntitlementValueType -from .feature_entitlement_metric_period import FeatureEntitlementMetricPeriod -from .feature_entitlement_month_reset import FeatureEntitlementMonthReset +from .metric_period import MetricPeriod +from .metric_period_month_reset import MetricPeriodMonthReset class FeatureEntitlement(UniversalBaseModel): @@ -51,7 +51,7 @@ class FeatureEntitlement(UniversalBaseModel): The key of the flag associated with the feature """ - metric_period: typing.Optional[FeatureEntitlementMetricPeriod] = pydantic.Field(default=None) + metric_period: typing.Optional[MetricPeriod] = pydantic.Field(default=None) """ For event-based feature entitlements, the period over which usage is tracked """ @@ -61,7 +61,7 @@ class FeatureEntitlement(UniversalBaseModel): For event-based feature entitlements, when the usage period will reset """ - month_reset: typing.Optional[FeatureEntitlementMonthReset] = pydantic.Field(default=None) + month_reset: typing.Optional[MetricPeriodMonthReset] = pydantic.Field(default=None) """ For event-based feature entitlements that have a monthly period, whether that monthly reset is based on the calendar month or a billing cycle """ diff --git a/src/schematic/types/feature_entitlement_metric_period.py b/src/schematic/types/feature_entitlement_metric_period.py deleted file mode 100644 index 65a0da5..0000000 --- a/src/schematic/types/feature_entitlement_metric_period.py +++ /dev/null @@ -1,7 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -FeatureEntitlementMetricPeriod = typing.Union[ - typing.Literal["all_time", "current_day", "current_month", "current_week"], typing.Any -] diff --git a/src/schematic/types/feature_entitlement_month_reset.py b/src/schematic/types/feature_entitlement_month_reset.py deleted file mode 100644 index c93005d..0000000 --- a/src/schematic/types/feature_entitlement_month_reset.py +++ /dev/null @@ -1,5 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -FeatureEntitlementMonthReset = typing.Union[typing.Literal["first_of_month", "billing_cycle"], typing.Any] diff --git a/src/schematic/types/feature_in_plan_response_data.py b/src/schematic/types/feature_in_plan_response_data.py new file mode 100644 index 0000000..d205125 --- /dev/null +++ b/src/schematic/types/feature_in_plan_response_data.py @@ -0,0 +1,44 @@ +# This file was auto-generated by Fern from our API Definition. + +import datetime as dt +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from .billing_linked_resource_response_data import BillingLinkedResourceResponseData +from .entity_trait_definition_response_data import EntityTraitDefinitionResponseData +from .event_summary_response_data import EventSummaryResponseData +from .feature_lifecycle_phase import FeatureLifecyclePhase +from .feature_type import FeatureType +from .flag_in_plan_response_data import FlagInPlanResponseData +from .preview_object import PreviewObject + + +class FeatureInPlanResponseData(UniversalBaseModel): + billing_linked_resource: typing.Optional[BillingLinkedResourceResponseData] = None + created_at: dt.datetime + description: str + event_subtype: typing.Optional[str] = None + event_summary: typing.Optional[EventSummaryResponseData] = None + feature_type: FeatureType + flags: typing.List[FlagInPlanResponseData] + icon: str + id: str + lifecycle_phase: typing.Optional[FeatureLifecyclePhase] = None + maintainer_account_member_id: typing.Optional[str] = None + name: str + plans: typing.List[PreviewObject] + plural_name: typing.Optional[str] = None + singular_name: typing.Optional[str] = None + trait: typing.Optional[EntityTraitDefinitionResponseData] = None + trait_id: typing.Optional[str] = None + updated_at: dt.datetime + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/schematic/types/feature_response_data.py b/src/schematic/types/feature_response_data.py index cb4f330..cc6861f 100644 --- a/src/schematic/types/feature_response_data.py +++ b/src/schematic/types/feature_response_data.py @@ -17,7 +17,7 @@ class FeatureResponseData(UniversalBaseModel): icon: str id: str lifecycle_phase: typing.Optional[FeatureLifecyclePhase] = None - maintainer_id: typing.Optional[str] = None + maintainer_account_member_id: typing.Optional[str] = None name: str plural_name: typing.Optional[str] = None singular_name: typing.Optional[str] = None diff --git a/src/schematic/types/feature_usage_response_data.py b/src/schematic/types/feature_usage_response_data.py index 6ffaf69..16d7ee8 100644 --- a/src/schematic/types/feature_usage_response_data.py +++ b/src/schematic/types/feature_usage_response_data.py @@ -13,7 +13,9 @@ from .entitlement_price_behavior import EntitlementPriceBehavior from .entitlement_type import EntitlementType from .entitlement_value_type import EntitlementValueType -from .feature_detail_response_data import FeatureDetailResponseData +from .feature_in_plan_response_data import FeatureInPlanResponseData +from .metric_period import MetricPeriod +from .metric_period_month_reset import MetricPeriodMonthReset from .plan_entitlement_response_data import PlanEntitlementResponseData from .plan_response_data import PlanResponseData @@ -82,7 +84,7 @@ class FeatureUsageResponseData(UniversalBaseModel): """ entitlement_type: EntitlementType - feature: typing.Optional[FeatureDetailResponseData] = None + feature: typing.Optional[FeatureInPlanResponseData] = None has_valid_allocation: typing.Optional[bool] = pydantic.Field(default=None) """ Whether a valid allocation exists @@ -98,7 +100,7 @@ class FeatureUsageResponseData(UniversalBaseModel): The time at which the metric will reset. """ - month_reset: typing.Optional[str] = pydantic.Field(default=None) + month_reset: typing.Optional[MetricPeriodMonthReset] = pydantic.Field(default=None) """ If the period is current_month, when the month resets. """ @@ -114,7 +116,7 @@ class FeatureUsageResponseData(UniversalBaseModel): Percentage of allocation consumed (0-100+) """ - period: typing.Optional[str] = pydantic.Field(default=None) + period: typing.Optional[MetricPeriod] = pydantic.Field(default=None) """ The period over which usage is measured. """ diff --git a/src/schematic/types/feature_view.py b/src/schematic/types/feature_view.py index 64a853a..4e56b4c 100644 --- a/src/schematic/types/feature_view.py +++ b/src/schematic/types/feature_view.py @@ -26,7 +26,6 @@ class FeatureView(UniversalBaseModel): icon: str id: str lifecycle_phase: typing.Optional[FeatureLifecyclePhase] = None - maintainer_id: typing.Optional[str] = None name: str plans: typing.List[PreviewObject] plural_name: typing.Optional[str] = None diff --git a/src/schematic/types/flag_detail_response_data.py b/src/schematic/types/flag_detail_response_data.py index f4e17a7..50a17ed 100644 --- a/src/schematic/types/flag_detail_response_data.py +++ b/src/schematic/types/flag_detail_response_data.py @@ -5,6 +5,7 @@ import pydantic from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from .account_member_response_data import AccountMemberResponseData from .feature_response_data import FeatureResponseData from .flag_type import FlagType from .rule_detail_response_data import RuleDetailResponseData @@ -20,7 +21,8 @@ class FlagDetailResponseData(UniversalBaseModel): id: str key: str last_checked_at: typing.Optional[dt.datetime] = None - maintainer_id: typing.Optional[str] = None + maintainer: typing.Optional[AccountMemberResponseData] = None + maintainer_account_member_id: typing.Optional[str] = None name: str rules: typing.List[RuleDetailResponseData] updated_at: dt.datetime diff --git a/src/schematic/types/flag_in_plan_response_data.py b/src/schematic/types/flag_in_plan_response_data.py new file mode 100644 index 0000000..7b96520 --- /dev/null +++ b/src/schematic/types/flag_in_plan_response_data.py @@ -0,0 +1,35 @@ +# This file was auto-generated by Fern from our API Definition. + +import datetime as dt +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from .feature_response_data import FeatureResponseData +from .flag_type import FlagType +from .rule_detail_response_data import RuleDetailResponseData + + +class FlagInPlanResponseData(UniversalBaseModel): + created_at: dt.datetime + default_value: bool + description: str + feature: typing.Optional[FeatureResponseData] = None + feature_id: typing.Optional[str] = None + flag_type: FlagType = "boolean" + id: str + key: str + last_checked_at: typing.Optional[dt.datetime] = None + maintainer_account_member_id: typing.Optional[str] = None + name: str + rules: typing.List[RuleDetailResponseData] + updated_at: dt.datetime + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/schematic/types/flag_response_data.py b/src/schematic/types/flag_response_data.py index 0d20e68..ea03dda 100644 --- a/src/schematic/types/flag_response_data.py +++ b/src/schematic/types/flag_response_data.py @@ -16,7 +16,7 @@ class FlagResponseData(UniversalBaseModel): flag_type: FlagType = "boolean" id: str key: str - maintainer_id: typing.Optional[str] = None + maintainer_account_member_id: typing.Optional[str] = None name: str updated_at: dt.datetime diff --git a/src/schematic/types/flag_view.py b/src/schematic/types/flag_view.py index 1d5488f..a7be651 100644 --- a/src/schematic/types/flag_view.py +++ b/src/schematic/types/flag_view.py @@ -21,7 +21,6 @@ class FlagView(UniversalBaseModel): id: str key: str last_checked_at: typing.Optional[dt.datetime] = None - maintainer_id: typing.Optional[str] = None name: str rules: typing.List[RuleView] updated_at: dt.datetime diff --git a/src/schematic/types/metric_period.py b/src/schematic/types/metric_period.py new file mode 100644 index 0000000..b6cb852 --- /dev/null +++ b/src/schematic/types/metric_period.py @@ -0,0 +1,5 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +MetricPeriod = typing.Union[typing.Literal["all_time", "current_day", "current_month", "current_week"], typing.Any] diff --git a/src/schematic/types/metric_period_month_reset.py b/src/schematic/types/metric_period_month_reset.py new file mode 100644 index 0000000..056ba1c --- /dev/null +++ b/src/schematic/types/metric_period_month_reset.py @@ -0,0 +1,5 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +MetricPeriodMonthReset = typing.Union[typing.Literal["billing_cycle", "first_of_month"], typing.Any] diff --git a/src/schematic/types/plan_detail_response_data.py b/src/schematic/types/plan_detail_response_data.py index f341ac7..7fe468c 100644 --- a/src/schematic/types/plan_detail_response_data.py +++ b/src/schematic/types/plan_detail_response_data.py @@ -9,8 +9,9 @@ from .billing_plan_credit_grant_response_data import BillingPlanCreditGrantResponseData from .billing_price_response_data import BillingPriceResponseData from .billing_product_detail_response_data import BillingProductDetailResponseData +from .billing_provider_type import BillingProviderType from .charge_type import ChargeType -from .feature_detail_response_data import FeatureDetailResponseData +from .feature_in_plan_response_data import FeatureInPlanResponseData from .plan_currency_prices_response_data import PlanCurrencyPricesResponseData from .plan_icon import PlanIcon from .plan_type import PlanType @@ -26,13 +27,13 @@ class PlanDetailResponseData(UniversalBaseModel): company_count: int company_id: typing.Optional[str] = None company_name: typing.Optional[str] = None - controlled_by: str + controlled_by: BillingProviderType copied_from_plan_id: typing.Optional[str] = None created_at: dt.datetime currency_prices: typing.List[PlanCurrencyPricesResponseData] description: str draft_version: typing.Optional[PlanVersionResponseData] = None - features: typing.List[FeatureDetailResponseData] + features: typing.List[FeatureInPlanResponseData] icon: PlanIcon id: str included_credit_grants: typing.Optional[typing.List[BillingPlanCreditGrantResponseData]] = None diff --git a/src/schematic/types/plan_entitlement_response_data.py b/src/schematic/types/plan_entitlement_response_data.py index fe518ab..a1991c1 100644 --- a/src/schematic/types/plan_entitlement_response_data.py +++ b/src/schematic/types/plan_entitlement_response_data.py @@ -14,6 +14,8 @@ from .entitlement_value_type import EntitlementValueType from .entity_trait_definition_response_data import EntityTraitDefinitionResponseData from .feature_response_data import FeatureResponseData +from .metric_period import MetricPeriod +from .metric_period_month_reset import MetricPeriodMonthReset from .plan_response_data import PlanResponseData @@ -29,8 +31,8 @@ class PlanEntitlementResponseData(UniversalBaseModel): id: str metered_monthly_price: typing.Optional[BillingPriceView] = None metered_yearly_price: typing.Optional[BillingPriceView] = None - metric_period: typing.Optional[str] = None - metric_period_month_reset: typing.Optional[str] = None + metric_period: typing.Optional[MetricPeriod] = None + metric_period_month_reset: typing.Optional[MetricPeriodMonthReset] = None plan: typing.Optional[PlanResponseData] = None plan_id: str price_behavior: typing.Optional[EntitlementPriceBehavior] = None diff --git a/src/schematic/types/plan_group_plan_detail_response_data.py b/src/schematic/types/plan_group_plan_detail_response_data.py index 7a61aa3..b3a10d9 100644 --- a/src/schematic/types/plan_group_plan_detail_response_data.py +++ b/src/schematic/types/plan_group_plan_detail_response_data.py @@ -9,9 +9,10 @@ from .billing_plan_credit_grant_response_data import BillingPlanCreditGrantResponseData from .billing_price_response_data import BillingPriceResponseData from .billing_product_detail_response_data import BillingProductDetailResponseData +from .billing_provider_type import BillingProviderType from .charge_type import ChargeType from .custom_plan_view_config_response_data import CustomPlanViewConfigResponseData -from .feature_detail_response_data import FeatureDetailResponseData +from .feature_in_plan_response_data import FeatureInPlanResponseData from .plan_currency_prices_response_data import PlanCurrencyPricesResponseData from .plan_entitlement_response_data import PlanEntitlementResponseData from .plan_icon import PlanIcon @@ -29,7 +30,7 @@ class PlanGroupPlanDetailResponseData(UniversalBaseModel): company_id: typing.Optional[str] = None company_name: typing.Optional[str] = None compatible_plan_ids: typing.List[str] - controlled_by: str + controlled_by: BillingProviderType copied_from_plan_id: typing.Optional[str] = None created_at: dt.datetime currency_prices: typing.List[PlanCurrencyPricesResponseData] @@ -37,7 +38,7 @@ class PlanGroupPlanDetailResponseData(UniversalBaseModel): description: str draft_version: typing.Optional[PlanVersionResponseData] = None entitlements: typing.List[PlanEntitlementResponseData] - features: typing.List[FeatureDetailResponseData] + features: typing.List[FeatureInPlanResponseData] icon: PlanIcon id: str included_credit_grants: typing.Optional[typing.List[BillingPlanCreditGrantResponseData]] = None diff --git a/src/schematic/types/plan_view_public_response_data.py b/src/schematic/types/plan_view_public_response_data.py index da5866c..0aeb1d2 100644 --- a/src/schematic/types/plan_view_public_response_data.py +++ b/src/schematic/types/plan_view_public_response_data.py @@ -8,9 +8,10 @@ from .billing_linked_resource_response_data import BillingLinkedResourceResponseData from .billing_price_response_data import BillingPriceResponseData from .billing_product_detail_response_data import BillingProductDetailResponseData +from .billing_provider_type import BillingProviderType from .charge_type import ChargeType from .custom_plan_config import CustomPlanConfig -from .feature_detail_response_data import FeatureDetailResponseData +from .feature_in_plan_response_data import FeatureInPlanResponseData from .plan_credit_grant_view import PlanCreditGrantView from .plan_currency_prices_response_data import PlanCurrencyPricesResponseData from .plan_entitlement_response_data import PlanEntitlementResponseData @@ -29,7 +30,7 @@ class PlanViewPublicResponseData(UniversalBaseModel): company_id: typing.Optional[str] = None company_name: typing.Optional[str] = None compatible_plan_ids: typing.List[str] - controlled_by: str + controlled_by: BillingProviderType copied_from_plan_id: typing.Optional[str] = None created_at: dt.datetime currency_prices: typing.List[PlanCurrencyPricesResponseData] @@ -38,7 +39,7 @@ class PlanViewPublicResponseData(UniversalBaseModel): description: str draft_version: typing.Optional[PlanVersionResponseData] = None entitlements: typing.List[PlanEntitlementResponseData] - features: typing.List[FeatureDetailResponseData] + features: typing.List[FeatureInPlanResponseData] icon: PlanIcon id: str included_credit_grants: typing.List[PlanCreditGrantView] diff --git a/src/schematic/types/rule.py b/src/schematic/types/rule.py index 86338f6..d4d8a7d 100644 --- a/src/schematic/types/rule.py +++ b/src/schematic/types/rule.py @@ -6,7 +6,7 @@ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel from .condition import Condition from .condition_group import ConditionGroup -from .rule_rule_type import RuleRuleType +from .rule_type import RuleType class Rule(UniversalBaseModel): @@ -18,7 +18,7 @@ class Rule(UniversalBaseModel): id: str name: str priority: int - rule_type: RuleRuleType + rule_type: RuleType value: bool if IS_PYDANTIC_V2: diff --git a/src/schematic/types/rule_condition_detail_response_data.py b/src/schematic/types/rule_condition_detail_response_data.py index ff7a5ac..4d64cae 100644 --- a/src/schematic/types/rule_condition_detail_response_data.py +++ b/src/schematic/types/rule_condition_detail_response_data.py @@ -5,8 +5,12 @@ import pydantic from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from .comparable_operator import ComparableOperator +from .condition_type import ConditionType from .entity_trait_definition_response_data import EntityTraitDefinitionResponseData from .entity_type import EntityType +from .metric_period import MetricPeriod +from .metric_period_month_reset import MetricPeriodMonthReset from .preview_object_response_data import PreviewObjectResponseData @@ -14,16 +18,16 @@ class RuleConditionDetailResponseData(UniversalBaseModel): comparison_trait: typing.Optional[EntityTraitDefinitionResponseData] = None comparison_trait_id: typing.Optional[str] = None condition_group_id: typing.Optional[str] = None - condition_type: str + condition_type: ConditionType created_at: dt.datetime environment_id: str event_subtype: typing.Optional[str] = None flag_id: typing.Optional[str] = None id: str - metric_period: typing.Optional[str] = None - metric_period_month_reset: typing.Optional[str] = None + metric_period: typing.Optional[MetricPeriod] = None + metric_period_month_reset: typing.Optional[MetricPeriodMonthReset] = None metric_value: typing.Optional[int] = None - operator: str + operator: ComparableOperator resource_ids: typing.List[str] resources: typing.List[PreviewObjectResponseData] rule_id: str diff --git a/src/schematic/types/rule_condition_response_data.py b/src/schematic/types/rule_condition_response_data.py index f12c591..3bf0376 100644 --- a/src/schematic/types/rule_condition_response_data.py +++ b/src/schematic/types/rule_condition_response_data.py @@ -5,22 +5,26 @@ import pydantic from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from .comparable_operator import ComparableOperator +from .condition_type import ConditionType from .entity_type import EntityType +from .metric_period import MetricPeriod +from .metric_period_month_reset import MetricPeriodMonthReset class RuleConditionResponseData(UniversalBaseModel): comparison_trait_id: typing.Optional[str] = None condition_group_id: typing.Optional[str] = None - condition_type: str + condition_type: ConditionType created_at: dt.datetime environment_id: str event_subtype: typing.Optional[str] = None flag_id: typing.Optional[str] = None id: str - metric_period: typing.Optional[str] = None - metric_period_month_reset: typing.Optional[str] = None + metric_period: typing.Optional[MetricPeriod] = None + metric_period_month_reset: typing.Optional[MetricPeriodMonthReset] = None metric_value: typing.Optional[int] = None - operator: str + operator: ComparableOperator resource_ids: typing.List[str] rule_id: str trait_entity_type: typing.Optional[EntityType] = None diff --git a/src/schematic/types/rule_detail_response_data.py b/src/schematic/types/rule_detail_response_data.py index 7e849be..d0470c3 100644 --- a/src/schematic/types/rule_detail_response_data.py +++ b/src/schematic/types/rule_detail_response_data.py @@ -7,6 +7,7 @@ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel from .rule_condition_detail_response_data import RuleConditionDetailResponseData from .rule_condition_group_detail_response_data import RuleConditionGroupDetailResponseData +from .rule_type import RuleType class RuleDetailResponseData(UniversalBaseModel): @@ -18,7 +19,7 @@ class RuleDetailResponseData(UniversalBaseModel): id: str name: str priority: int - rule_type: str + rule_type: RuleType updated_at: dt.datetime value: bool diff --git a/src/schematic/types/rule_response_data.py b/src/schematic/types/rule_response_data.py index edd3b0d..5bf1dcb 100644 --- a/src/schematic/types/rule_response_data.py +++ b/src/schematic/types/rule_response_data.py @@ -5,6 +5,7 @@ import pydantic from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from .rule_type import RuleType class RuleResponseData(UniversalBaseModel): @@ -14,7 +15,7 @@ class RuleResponseData(UniversalBaseModel): id: str name: str priority: int - rule_type: str + rule_type: RuleType updated_at: dt.datetime value: bool diff --git a/src/schematic/types/rule_rule_type.py b/src/schematic/types/rule_type.py similarity index 91% rename from src/schematic/types/rule_rule_type.py rename to src/schematic/types/rule_type.py index baf7831..dbbaa8a 100644 --- a/src/schematic/types/rule_rule_type.py +++ b/src/schematic/types/rule_type.py @@ -2,12 +2,12 @@ import typing -RuleRuleType = typing.Union[ +RuleType = typing.Union[ typing.Literal[ - "default", - "global_override", "company_override", "company_override_usage_exceeded", + "default", + "global_override", "plan_entitlement", "plan_entitlement_usage_exceeded", "standard", diff --git a/src/schematic/types/rule_view.py b/src/schematic/types/rule_view.py index 80d7a1f..87e1560 100644 --- a/src/schematic/types/rule_view.py +++ b/src/schematic/types/rule_view.py @@ -7,6 +7,7 @@ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel from .condition_group_view import ConditionGroupView from .condition_view import ConditionView +from .rule_type import RuleType class RuleView(UniversalBaseModel): @@ -19,7 +20,7 @@ class RuleView(UniversalBaseModel): id: str name: str priority: int - rule_type: str + rule_type: RuleType updated_at: dt.datetime value: bool diff --git a/src/schematic/types/rules_engine_schema_version.py b/src/schematic/types/rules_engine_schema_version.py index da784eb..8038eb4 100644 --- a/src/schematic/types/rules_engine_schema_version.py +++ b/src/schematic/types/rules_engine_schema_version.py @@ -2,4 +2,4 @@ import typing -RulesEngineSchemaVersion = typing.Union[typing.Literal["v313fa646", "placeholder-for-fern-compatibility"], typing.Any] +RulesEngineSchemaVersion = typing.Union[typing.Literal["vf05bf5da", "placeholder-for-fern-compatibility"], typing.Any] diff --git a/src/schematic/types/rulesengine_check_flag_result.py b/src/schematic/types/rulesengine_check_flag_result.py index 4c14864..c93e5b8 100644 --- a/src/schematic/types/rulesengine_check_flag_result.py +++ b/src/schematic/types/rulesengine_check_flag_result.py @@ -5,9 +5,9 @@ import pydantic from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from .rulesengine_check_flag_result_feature_usage_period import RulesengineCheckFlagResultFeatureUsagePeriod -from .rulesengine_check_flag_result_rule_type import RulesengineCheckFlagResultRuleType from .rulesengine_feature_entitlement import RulesengineFeatureEntitlement +from .rulesengine_metric_period import RulesengineMetricPeriod +from .rulesengine_rule_type import RulesengineRuleType class RulesengineCheckFlagResult(UniversalBaseModel): @@ -17,13 +17,13 @@ class RulesengineCheckFlagResult(UniversalBaseModel): feature_allocation: typing.Optional[int] = None feature_usage: typing.Optional[int] = None feature_usage_event: typing.Optional[str] = None - feature_usage_period: typing.Optional[RulesengineCheckFlagResultFeatureUsagePeriod] = None + feature_usage_period: typing.Optional[RulesengineMetricPeriod] = None feature_usage_reset_at: typing.Optional[dt.datetime] = None flag_id: typing.Optional[str] = None flag_key: str reason: str rule_id: typing.Optional[str] = None - rule_type: typing.Optional[RulesengineCheckFlagResultRuleType] = None + rule_type: typing.Optional[RulesengineRuleType] = None user_id: typing.Optional[str] = None value: bool diff --git a/src/schematic/types/rulesengine_check_flag_result_feature_usage_period.py b/src/schematic/types/rulesengine_check_flag_result_feature_usage_period.py deleted file mode 100644 index 15e5b58..0000000 --- a/src/schematic/types/rulesengine_check_flag_result_feature_usage_period.py +++ /dev/null @@ -1,7 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -RulesengineCheckFlagResultFeatureUsagePeriod = typing.Union[ - typing.Literal["all_time", "current_day", "current_month", "current_week"], typing.Any -] diff --git a/src/schematic/types/rulesengine_check_flag_result_rule_type.py b/src/schematic/types/rulesengine_check_flag_result_rule_type.py deleted file mode 100644 index d87c19a..0000000 --- a/src/schematic/types/rulesengine_check_flag_result_rule_type.py +++ /dev/null @@ -1,16 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -RulesengineCheckFlagResultRuleType = typing.Union[ - typing.Literal[ - "default", - "global_override", - "company_override", - "company_override_usage_exceeded", - "plan_entitlement", - "plan_entitlement_usage_exceeded", - "standard", - ], - typing.Any, -] diff --git a/src/schematic/types/rulesengine_company_metric.py b/src/schematic/types/rulesengine_company_metric.py index d6cd2b4..747be0d 100644 --- a/src/schematic/types/rulesengine_company_metric.py +++ b/src/schematic/types/rulesengine_company_metric.py @@ -5,8 +5,8 @@ import pydantic from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from .rulesengine_company_metric_month_reset import RulesengineCompanyMetricMonthReset -from .rulesengine_company_metric_period import RulesengineCompanyMetricPeriod +from .rulesengine_metric_period import RulesengineMetricPeriod +from .rulesengine_metric_period_month_reset import RulesengineMetricPeriodMonthReset class RulesengineCompanyMetric(UniversalBaseModel): @@ -15,8 +15,8 @@ class RulesengineCompanyMetric(UniversalBaseModel): created_at: dt.datetime environment_id: str event_subtype: str - month_reset: RulesengineCompanyMetricMonthReset - period: RulesengineCompanyMetricPeriod + month_reset: RulesengineMetricPeriodMonthReset + period: RulesengineMetricPeriod valid_until: typing.Optional[dt.datetime] = None value: int diff --git a/src/schematic/types/rulesengine_company_metric_month_reset.py b/src/schematic/types/rulesengine_company_metric_month_reset.py deleted file mode 100644 index 340f821..0000000 --- a/src/schematic/types/rulesengine_company_metric_month_reset.py +++ /dev/null @@ -1,5 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -RulesengineCompanyMetricMonthReset = typing.Union[typing.Literal["first_of_month", "billing_cycle"], typing.Any] diff --git a/src/schematic/types/rulesengine_company_metric_period.py b/src/schematic/types/rulesengine_company_metric_period.py deleted file mode 100644 index 9dede5f..0000000 --- a/src/schematic/types/rulesengine_company_metric_period.py +++ /dev/null @@ -1,7 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -RulesengineCompanyMetricPeriod = typing.Union[ - typing.Literal["all_time", "current_day", "current_month", "current_week"], typing.Any -] diff --git a/src/schematic/types/rulesengine_condition.py b/src/schematic/types/rulesengine_condition.py index debbf00..118c2a6 100644 --- a/src/schematic/types/rulesengine_condition.py +++ b/src/schematic/types/rulesengine_condition.py @@ -4,26 +4,26 @@ import pydantic from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from .rulesengine_condition_condition_type import RulesengineConditionConditionType -from .rulesengine_condition_metric_period import RulesengineConditionMetricPeriod -from .rulesengine_condition_metric_period_month_reset import RulesengineConditionMetricPeriodMonthReset -from .rulesengine_condition_operator import RulesengineConditionOperator +from .comparable_operator import ComparableOperator +from .rulesengine_condition_type import RulesengineConditionType +from .rulesengine_metric_period import RulesengineMetricPeriod +from .rulesengine_metric_period_month_reset import RulesengineMetricPeriodMonthReset from .rulesengine_trait_definition import RulesengineTraitDefinition class RulesengineCondition(UniversalBaseModel): account_id: str comparison_trait_definition: typing.Optional[RulesengineTraitDefinition] = None - condition_type: RulesengineConditionConditionType + condition_type: RulesengineConditionType consumption_rate: typing.Optional[float] = None credit_id: typing.Optional[str] = None environment_id: str event_subtype: typing.Optional[str] = None id: str - metric_period: typing.Optional[RulesengineConditionMetricPeriod] = None - metric_period_month_reset: typing.Optional[RulesengineConditionMetricPeriodMonthReset] = None + metric_period: typing.Optional[RulesengineMetricPeriod] = None + metric_period_month_reset: typing.Optional[RulesengineMetricPeriodMonthReset] = None metric_value: typing.Optional[int] = None - operator: RulesengineConditionOperator + operator: ComparableOperator resource_ids: typing.List[str] trait_definition: typing.Optional[RulesengineTraitDefinition] = None trait_value: str diff --git a/src/schematic/types/rulesengine_condition_metric_period.py b/src/schematic/types/rulesengine_condition_metric_period.py deleted file mode 100644 index c75e7cd..0000000 --- a/src/schematic/types/rulesengine_condition_metric_period.py +++ /dev/null @@ -1,7 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -RulesengineConditionMetricPeriod = typing.Union[ - typing.Literal["all_time", "current_day", "current_month", "current_week"], typing.Any -] diff --git a/src/schematic/types/rulesengine_condition_metric_period_month_reset.py b/src/schematic/types/rulesengine_condition_metric_period_month_reset.py deleted file mode 100644 index b0b6b62..0000000 --- a/src/schematic/types/rulesengine_condition_metric_period_month_reset.py +++ /dev/null @@ -1,5 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -RulesengineConditionMetricPeriodMonthReset = typing.Union[typing.Literal["first_of_month", "billing_cycle"], typing.Any] diff --git a/src/schematic/types/rulesengine_condition_operator.py b/src/schematic/types/rulesengine_condition_operator.py deleted file mode 100644 index 18f1aae..0000000 --- a/src/schematic/types/rulesengine_condition_operator.py +++ /dev/null @@ -1,7 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -RulesengineConditionOperator = typing.Union[ - typing.Literal["eq", "ne", "gt", "lt", "gte", "lte", "is_empty", "not_empty"], typing.Any -] diff --git a/src/schematic/types/rulesengine_condition_condition_type.py b/src/schematic/types/rulesengine_condition_type.py similarity index 82% rename from src/schematic/types/rulesengine_condition_condition_type.py rename to src/schematic/types/rulesengine_condition_type.py index 89ecc65..7121126 100644 --- a/src/schematic/types/rulesengine_condition_condition_type.py +++ b/src/schematic/types/rulesengine_condition_type.py @@ -2,7 +2,7 @@ import typing -RulesengineConditionConditionType = typing.Union[ +RulesengineConditionType = typing.Union[ typing.Literal[ "base_plan", "billing_product", "company", "credit", "metric", "plan", "plan_version", "trait", "user" ], diff --git a/src/schematic/types/rulesengine_feature_entitlement.py b/src/schematic/types/rulesengine_feature_entitlement.py index 04b0b1a..0c4dfbd 100644 --- a/src/schematic/types/rulesengine_feature_entitlement.py +++ b/src/schematic/types/rulesengine_feature_entitlement.py @@ -6,8 +6,8 @@ import pydantic from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel from .rulesengine_entitlement_value_type import RulesengineEntitlementValueType -from .rulesengine_feature_entitlement_metric_period import RulesengineFeatureEntitlementMetricPeriod -from .rulesengine_feature_entitlement_month_reset import RulesengineFeatureEntitlementMonthReset +from .rulesengine_metric_period import RulesengineMetricPeriod +from .rulesengine_metric_period_month_reset import RulesengineMetricPeriodMonthReset class RulesengineFeatureEntitlement(UniversalBaseModel): @@ -51,7 +51,7 @@ class RulesengineFeatureEntitlement(UniversalBaseModel): The key of the flag associated with the feature """ - metric_period: typing.Optional[RulesengineFeatureEntitlementMetricPeriod] = pydantic.Field(default=None) + metric_period: typing.Optional[RulesengineMetricPeriod] = pydantic.Field(default=None) """ For event-based feature entitlements, the period over which usage is tracked """ @@ -61,7 +61,7 @@ class RulesengineFeatureEntitlement(UniversalBaseModel): For event-based feature entitlements, when the usage period will reset """ - month_reset: typing.Optional[RulesengineFeatureEntitlementMonthReset] = pydantic.Field(default=None) + month_reset: typing.Optional[RulesengineMetricPeriodMonthReset] = pydantic.Field(default=None) """ For event-based feature entitlements that have a monthly period, whether that monthly reset is based on the calendar month or a billing cycle """ diff --git a/src/schematic/types/rulesengine_feature_entitlement_metric_period.py b/src/schematic/types/rulesengine_feature_entitlement_metric_period.py deleted file mode 100644 index 2d1cf66..0000000 --- a/src/schematic/types/rulesengine_feature_entitlement_metric_period.py +++ /dev/null @@ -1,7 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -RulesengineFeatureEntitlementMetricPeriod = typing.Union[ - typing.Literal["all_time", "current_day", "current_month", "current_week"], typing.Any -] diff --git a/src/schematic/types/rulesengine_feature_entitlement_month_reset.py b/src/schematic/types/rulesengine_feature_entitlement_month_reset.py deleted file mode 100644 index 63cb499..0000000 --- a/src/schematic/types/rulesengine_feature_entitlement_month_reset.py +++ /dev/null @@ -1,5 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -RulesengineFeatureEntitlementMonthReset = typing.Union[typing.Literal["first_of_month", "billing_cycle"], typing.Any] diff --git a/src/schematic/types/condition_metric_period.py b/src/schematic/types/rulesengine_metric_period.py similarity index 81% rename from src/schematic/types/condition_metric_period.py rename to src/schematic/types/rulesengine_metric_period.py index 88bba10..bc3cf7e 100644 --- a/src/schematic/types/condition_metric_period.py +++ b/src/schematic/types/rulesengine_metric_period.py @@ -2,6 +2,6 @@ import typing -ConditionMetricPeriod = typing.Union[ +RulesengineMetricPeriod = typing.Union[ typing.Literal["all_time", "current_day", "current_month", "current_week"], typing.Any ] diff --git a/src/schematic/types/rulesengine_metric_period_month_reset.py b/src/schematic/types/rulesengine_metric_period_month_reset.py new file mode 100644 index 0000000..7265425 --- /dev/null +++ b/src/schematic/types/rulesengine_metric_period_month_reset.py @@ -0,0 +1,5 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +RulesengineMetricPeriodMonthReset = typing.Union[typing.Literal["billing_cycle", "first_of_month"], typing.Any] diff --git a/src/schematic/types/rulesengine_rule.py b/src/schematic/types/rulesengine_rule.py index 0927399..50977d6 100644 --- a/src/schematic/types/rulesengine_rule.py +++ b/src/schematic/types/rulesengine_rule.py @@ -6,7 +6,7 @@ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel from .rulesengine_condition import RulesengineCondition from .rulesengine_condition_group import RulesengineConditionGroup -from .rulesengine_rule_rule_type import RulesengineRuleRuleType +from .rulesengine_rule_type import RulesengineRuleType class RulesengineRule(UniversalBaseModel): @@ -18,7 +18,7 @@ class RulesengineRule(UniversalBaseModel): id: str name: str priority: int - rule_type: RulesengineRuleRuleType + rule_type: RulesengineRuleType value: bool if IS_PYDANTIC_V2: diff --git a/src/schematic/types/rulesengine_rule_rule_type.py b/src/schematic/types/rulesengine_rule_type.py similarity index 89% rename from src/schematic/types/rulesengine_rule_rule_type.py rename to src/schematic/types/rulesengine_rule_type.py index 894250a..2982b74 100644 --- a/src/schematic/types/rulesengine_rule_rule_type.py +++ b/src/schematic/types/rulesengine_rule_type.py @@ -2,12 +2,12 @@ import typing -RulesengineRuleRuleType = typing.Union[ +RulesengineRuleType = typing.Union[ typing.Literal[ - "default", - "global_override", "company_override", "company_override_usage_exceeded", + "default", + "global_override", "plan_entitlement", "plan_entitlement_usage_exceeded", "standard", diff --git a/src/schematic/types/update_entitlement_req_common.py b/src/schematic/types/update_entitlement_req_common.py index 88ef8df..9295704 100644 --- a/src/schematic/types/update_entitlement_req_common.py +++ b/src/schematic/types/update_entitlement_req_common.py @@ -5,14 +5,14 @@ import pydantic from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel from .entitlement_value_type import EntitlementValueType -from .update_entitlement_req_common_metric_period import UpdateEntitlementReqCommonMetricPeriod -from .update_entitlement_req_common_metric_period_month_reset import UpdateEntitlementReqCommonMetricPeriodMonthReset +from .metric_period import MetricPeriod +from .metric_period_month_reset import MetricPeriodMonthReset class UpdateEntitlementReqCommon(UniversalBaseModel): credit_consumption_rate: typing.Optional[float] = None - metric_period: typing.Optional[UpdateEntitlementReqCommonMetricPeriod] = None - metric_period_month_reset: typing.Optional[UpdateEntitlementReqCommonMetricPeriodMonthReset] = None + metric_period: typing.Optional[MetricPeriod] = None + metric_period_month_reset: typing.Optional[MetricPeriodMonthReset] = None value_bool: typing.Optional[bool] = None value_credit_id: typing.Optional[str] = None value_numeric: typing.Optional[int] = None diff --git a/src/schematic/types/update_entitlement_req_common_metric_period.py b/src/schematic/types/update_entitlement_req_common_metric_period.py deleted file mode 100644 index 077d04f..0000000 --- a/src/schematic/types/update_entitlement_req_common_metric_period.py +++ /dev/null @@ -1,7 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -UpdateEntitlementReqCommonMetricPeriod = typing.Union[ - typing.Literal["all_time", "current_month", "current_week", "current_day"], typing.Any -] diff --git a/src/schematic/types/update_entitlement_req_common_metric_period_month_reset.py b/src/schematic/types/update_entitlement_req_common_metric_period_month_reset.py deleted file mode 100644 index 904a201..0000000 --- a/src/schematic/types/update_entitlement_req_common_metric_period_month_reset.py +++ /dev/null @@ -1,7 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -UpdateEntitlementReqCommonMetricPeriodMonthReset = typing.Union[ - typing.Literal["first_of_month", "billing_cycle"], typing.Any -] diff --git a/src/schematic/types/usage_based_entitlement_response_data.py b/src/schematic/types/usage_based_entitlement_response_data.py index a0ae808..d645323 100644 --- a/src/schematic/types/usage_based_entitlement_response_data.py +++ b/src/schematic/types/usage_based_entitlement_response_data.py @@ -7,6 +7,8 @@ from .billing_price_view import BillingPriceView from .entitlement_price_behavior import EntitlementPriceBehavior from .entitlement_value_type import EntitlementValueType +from .metric_period import MetricPeriod +from .metric_period_month_reset import MetricPeriodMonthReset class UsageBasedEntitlementResponseData(UniversalBaseModel): @@ -14,8 +16,8 @@ class UsageBasedEntitlementResponseData(UniversalBaseModel): consumption_rate: typing.Optional[float] = None feature_id: str metered_price: typing.Optional[BillingPriceView] = None - metric_period: typing.Optional[str] = None - metric_period_month_reset: typing.Optional[str] = None + metric_period: typing.Optional[MetricPeriod] = None + metric_period_month_reset: typing.Optional[MetricPeriodMonthReset] = None monthly_usage_based_price: typing.Optional[BillingPriceView] = None price_behavior: typing.Optional[EntitlementPriceBehavior] = None value_bool: typing.Optional[bool] = None From 4abbb358b7373ee30c0b9557dcae8c858586d319 Mon Sep 17 00:00:00 2001 From: Ben Papillon Date: Thu, 23 Apr 2026 20:32:13 -0700 Subject: [PATCH 2/2] fix: regenerate poetry.lock to match pyproject.toml The regenerated SDK rewrote poetry.lock without the optional [datastream] and [rulesengine] extras (websockets, wasmtime) that pyproject.toml still declares, so `poetry install --extras datastream` fails in CI with "Extra [datastream] is not specified." --- poetry.lock | 967 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 965 insertions(+), 2 deletions(-) diff --git a/poetry.lock b/poetry.lock index 5013589..25e2811 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,172 @@ -# This file is automatically @generated by Poetry 1.8.5 and should not be changed by hand. +# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand. + +[[package]] +name = "aiohappyeyeballs" +version = "2.6.1" +description = "Happy Eyeballs for asyncio" +optional = false +python-versions = ">=3.9" +files = [ + {file = "aiohappyeyeballs-2.6.1-py3-none-any.whl", hash = "sha256:f349ba8f4b75cb25c99c5c2d84e997e485204d2902a9597802b0371f09331fb8"}, + {file = "aiohappyeyeballs-2.6.1.tar.gz", hash = "sha256:c3f9d0113123803ccadfdf3f0faa505bc78e6a72d1cc4806cbd719826e943558"}, +] + +[[package]] +name = "aiohttp" +version = "3.13.5" +description = "Async http client/server framework (asyncio)" +optional = false +python-versions = ">=3.9" +files = [ + {file = "aiohttp-3.13.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:02222e7e233295f40e011c1b00e3b0bd451f22cf853a0304c3595633ee47da4b"}, + {file = "aiohttp-3.13.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bace460460ed20614fa6bc8cb09966c0b8517b8c58ad8046828c6078d25333b5"}, + {file = "aiohttp-3.13.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8f546a4dc1e6a5edbb9fd1fd6ad18134550e096a5a43f4ad74acfbd834fc6670"}, + {file = "aiohttp-3.13.5-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c86969d012e51b8e415a8c6ce96f7857d6a87d6207303ab02d5d11ef0cad2274"}, + {file = "aiohttp-3.13.5-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:b6f6cd1560c5fa427e3b6074bb24d2c64e225afbb7165008903bd42e4e33e28a"}, + {file = "aiohttp-3.13.5-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:636bc362f0c5bbc7372bc3ae49737f9e3030dbce469f0f422c8f38079780363d"}, + {file = "aiohttp-3.13.5-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:6a7cbeb06d1070f1d14895eeeed4dac5913b22d7b456f2eb969f11f4b3993796"}, + {file = "aiohttp-3.13.5-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bca9ef7517fd7874a1a08970ae88f497bf5c984610caa0bf40bd7e8450852b95"}, + {file = "aiohttp-3.13.5-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:019a67772e034a0e6b9b17c13d0a8fe56ad9fb150fc724b7f3ffd3724288d9e5"}, + {file = "aiohttp-3.13.5-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:f34ecee82858e41dd217734f0c41a532bd066bcaab636ad830f03a30b2a96f2a"}, + {file = "aiohttp-3.13.5-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:4eac02d9af4813ee289cd63a361576da36dba57f5a1ab36377bc2600db0cbb73"}, + {file = "aiohttp-3.13.5-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:4beac52e9fe46d6abf98b0176a88154b742e878fdf209d2248e99fcdf73cd297"}, + {file = "aiohttp-3.13.5-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:c180f480207a9b2475f2b8d8bd7204e47aec952d084b2a2be58a782ffcf96074"}, + {file = "aiohttp-3.13.5-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:2837fb92951564d6339cedae4a7231692aa9f73cbc4fb2e04263b96844e03b4e"}, + {file = "aiohttp-3.13.5-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:d9010032a0b9710f58012a1e9c222528763d860ba2ee1422c03473eab47703e7"}, + {file = "aiohttp-3.13.5-cp310-cp310-win32.whl", hash = "sha256:7c4b6668b2b2b9027f209ddf647f2a4407784b5d88b8be4efcc72036f365baf9"}, + {file = "aiohttp-3.13.5-cp310-cp310-win_amd64.whl", hash = "sha256:cd3db5927bf9167d5a6157ddb2f036f6b6b0ad001ac82355d43e97a4bde76d76"}, + {file = "aiohttp-3.13.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:7ab7229b6f9b5c1ba4910d6c41a9eb11f543eadb3f384df1b4c293f4e73d44d6"}, + {file = "aiohttp-3.13.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:8f14c50708bb156b3a3ca7230b3d820199d56a48e3af76fa21c2d6087190fe3d"}, + {file = "aiohttp-3.13.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e7d2f8616f0ff60bd332022279011776c3ac0faa0f1b463f7bb12326fbc97a1c"}, + {file = "aiohttp-3.13.5-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a2567b72e1ffc3ab25510db43f355b29eeada56c0a622e58dcdb19530eb0a3cb"}, + {file = "aiohttp-3.13.5-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:fb0540c854ac9c0c5ad495908fdfd3e332d553ec731698c0e29b1877ba0d2ec6"}, + {file = "aiohttp-3.13.5-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c9883051c6972f58bfc4ebb2116345ee2aa151178e99c3f2b2bbe2af712abd13"}, + {file = "aiohttp-3.13.5-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:2294172ce08a82fb7c7273485895de1fa1186cc8294cfeb6aef4af42ad261174"}, + {file = "aiohttp-3.13.5-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3a807cabd5115fb55af198b98178997a5e0e57dead43eb74a93d9c07d6d4a7dc"}, + {file = "aiohttp-3.13.5-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:aa6d0d932e0f39c02b80744273cd5c388a2d9bc07760a03164f229c8e02662f6"}, + {file = "aiohttp-3.13.5-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:60869c7ac4aaabe7110f26499f3e6e5696eae98144735b12a9c3d9eae2b51a49"}, + {file = "aiohttp-3.13.5-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:26d2f8546f1dfa75efa50c3488215a903c0168d253b75fba4210f57ab77a0fb8"}, + {file = "aiohttp-3.13.5-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:f1162a1492032c82f14271e831c8f4b49f2b6078f4f5fc74de2c912fa225d51d"}, + {file = "aiohttp-3.13.5-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:8b14eb3262fad0dc2f89c1a43b13727e709504972186ff6a99a3ecaa77102b6c"}, + {file = "aiohttp-3.13.5-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:ca9ac61ac6db4eb6c2a0cd1d0f7e1357647b638ccc92f7e9d8d133e71ed3c6ac"}, + {file = "aiohttp-3.13.5-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:7996023b2ed59489ae4762256c8516df9820f751cf2c5da8ed2fb20ee50abab3"}, + {file = "aiohttp-3.13.5-cp311-cp311-win32.whl", hash = "sha256:77dfa48c9f8013271011e51c00f8ada19851f013cde2c48fca1ba5e0caf5bb06"}, + {file = "aiohttp-3.13.5-cp311-cp311-win_amd64.whl", hash = "sha256:d3a4834f221061624b8887090637db9ad4f61752001eae37d56c52fddade2dc8"}, + {file = "aiohttp-3.13.5-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:023ecba036ddd840b0b19bf195bfae970083fd7024ce1ac22e9bba90464620e9"}, + {file = "aiohttp-3.13.5-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:15c933ad7920b7d9a20de151efcd05a6e38302cbf0e10c9b2acb9a42210a2416"}, + {file = "aiohttp-3.13.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ab2899f9fa2f9f741896ebb6fa07c4c883bfa5c7f2ddd8cf2aafa86fa981b2d2"}, + {file = "aiohttp-3.13.5-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a60eaa2d440cd4707696b52e40ed3e2b0f73f65be07fd0ef23b6b539c9c0b0b4"}, + {file = "aiohttp-3.13.5-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:55b3bdd3292283295774ab585160c4004f4f2f203946997f49aac032c84649e9"}, + {file = "aiohttp-3.13.5-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c2b2355dc094e5f7d45a7bb262fe7207aa0460b37a0d87027dcf21b5d890e7d5"}, + {file = "aiohttp-3.13.5-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:b38765950832f7d728297689ad78f5f2cf79ff82487131c4d26fe6ceecdc5f8e"}, + {file = "aiohttp-3.13.5-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b18f31b80d5a33661e08c89e202edabf1986e9b49c42b4504371daeaa11b47c1"}, + {file = "aiohttp-3.13.5-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:33add2463dde55c4f2d9635c6ab33ce154e5ecf322bd26d09af95c5f81cfa286"}, + {file = "aiohttp-3.13.5-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:327cc432fdf1356fb4fbc6fe833ad4e9f6aacb71a8acaa5f1855e4b25910e4a9"}, + {file = "aiohttp-3.13.5-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:7c35b0bf0b48a70b4cb4fc5d7bed9b932532728e124874355de1a0af8ec4bc88"}, + {file = "aiohttp-3.13.5-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:df23d57718f24badef8656c49743e11a89fd6f5358fa8a7b96e728fda2abf7d3"}, + {file = "aiohttp-3.13.5-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:02e048037a6501a5ec1f6fc9736135aec6eb8a004ce48838cb951c515f32c80b"}, + {file = "aiohttp-3.13.5-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:31cebae8b26f8a615d2b546fee45d5ffb76852ae6450e2a03f42c9102260d6fe"}, + {file = "aiohttp-3.13.5-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:888e78eb5ca55a615d285c3c09a7a91b42e9dd6fc699b166ebd5dee87c9ccf14"}, + {file = "aiohttp-3.13.5-cp312-cp312-win32.whl", hash = "sha256:8bd3ec6376e68a41f9f95f5ed170e2fcf22d4eb27a1f8cb361d0508f6e0557f3"}, + {file = "aiohttp-3.13.5-cp312-cp312-win_amd64.whl", hash = "sha256:110e448e02c729bcebb18c60b9214a87ba33bac4a9fa5e9a5f139938b56c6cb1"}, + {file = "aiohttp-3.13.5-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a5029cc80718bbd545123cd8fe5d15025eccaaaace5d0eeec6bd556ad6163d61"}, + {file = "aiohttp-3.13.5-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:4bb6bf5811620003614076bdc807ef3b5e38244f9d25ca5fe888eaccea2a9832"}, + {file = "aiohttp-3.13.5-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a84792f8631bf5a94e52d9cc881c0b824ab42717165a5579c760b830d9392ac9"}, + {file = "aiohttp-3.13.5-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:57653eac22c6a4c13eb22ecf4d673d64a12f266e72785ab1c8b8e5940d0e8090"}, + {file = "aiohttp-3.13.5-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:e5e5f7debc7a57af53fdf5c5009f9391d9f4c12867049d509bf7bb164a6e295b"}, + {file = "aiohttp-3.13.5-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c719f65bebcdf6716f10e9eff80d27567f7892d8988c06de12bbbd39307c6e3a"}, + {file = "aiohttp-3.13.5-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d97f93fdae594d886c5a866636397e2bcab146fd7a132fd6bb9ce182224452f8"}, + {file = "aiohttp-3.13.5-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3df334e39d4c2f899a914f1dba283c1aadc311790733f705182998c6f7cae665"}, + {file = "aiohttp-3.13.5-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:fe6970addfea9e5e081401bcbadf865d2b6da045472f58af08427e108d618540"}, + {file = "aiohttp-3.13.5-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:7becdf835feff2f4f335d7477f121af787e3504b48b449ff737afb35869ba7bb"}, + {file = "aiohttp-3.13.5-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:676e5651705ad5d8a70aeb8eb6936c436d8ebbd56e63436cb7dd9bb36d2a9a46"}, + {file = "aiohttp-3.13.5-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:9b16c653d38eb1a611cc898c41e76859ca27f119d25b53c12875fd0474ae31a8"}, + {file = "aiohttp-3.13.5-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:999802d5fa0389f58decd24b537c54aa63c01c3219ce17d1214cbda3c2b22d2d"}, + {file = "aiohttp-3.13.5-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:ec707059ee75732b1ba130ed5f9580fe10ff75180c812bc267ded039db5128c6"}, + {file = "aiohttp-3.13.5-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:2d6d44a5b48132053c2f6cd5c8cb14bc67e99a63594e336b0f2af81e94d5530c"}, + {file = "aiohttp-3.13.5-cp313-cp313-win32.whl", hash = "sha256:329f292ed14d38a6c4c435e465f48bebb47479fd676a0411936cc371643225cc"}, + {file = "aiohttp-3.13.5-cp313-cp313-win_amd64.whl", hash = "sha256:69f571de7500e0557801c0b51f4780482c0ec5fe2ac851af5a92cfce1af1cb83"}, + {file = "aiohttp-3.13.5-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:eb4639f32fd4a9904ab8fb45bf3383ba71137f3d9d4ba25b3b3f3109977c5b8c"}, + {file = "aiohttp-3.13.5-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:7e5dc4311bd5ac493886c63cbf76ab579dbe4641268e7c74e48e774c74b6f2be"}, + {file = "aiohttp-3.13.5-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:756c3c304d394977519824449600adaf2be0ccee76d206ee339c5e76b70ded25"}, + {file = "aiohttp-3.13.5-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ecc26751323224cf8186efcf7fbcbc30f4e1d8c7970659daf25ad995e4032a56"}, + {file = "aiohttp-3.13.5-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:10a75acfcf794edf9d8db50e5a7ec5fc818b2a8d3f591ce93bc7b1210df016d2"}, + {file = "aiohttp-3.13.5-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:0f7a18f258d124cd678c5fe072fe4432a4d5232b0657fca7c1847f599233c83a"}, + {file = "aiohttp-3.13.5-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:df6104c009713d3a89621096f3e3e88cc323fd269dbd7c20afe18535094320be"}, + {file = "aiohttp-3.13.5-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:241a94f7de7c0c3b616627aaad530fe2cb620084a8b144d3be7b6ecfe95bae3b"}, + {file = "aiohttp-3.13.5-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c974fb66180e58709b6fc402846f13791240d180b74de81d23913abe48e96d94"}, + {file = "aiohttp-3.13.5-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:6e27ea05d184afac78aabbac667450c75e54e35f62238d44463131bd3f96753d"}, + {file = "aiohttp-3.13.5-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:a79a6d399cef33a11b6f004c67bb07741d91f2be01b8d712d52c75711b1e07c7"}, + {file = "aiohttp-3.13.5-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:c632ce9c0b534fbe25b52c974515ed674937c5b99f549a92127c85f771a78772"}, + {file = "aiohttp-3.13.5-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:fceedde51fbd67ee2bcc8c0b33d0126cc8b51ef3bbde2f86662bd6d5a6f10ec5"}, + {file = "aiohttp-3.13.5-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:f92995dfec9420bb69ae629abf422e516923ba79ba4403bc750d94fb4a6c68c1"}, + {file = "aiohttp-3.13.5-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:20ae0ff08b1f2c8788d6fb85afcb798654ae6ba0b747575f8562de738078457b"}, + {file = "aiohttp-3.13.5-cp314-cp314-win32.whl", hash = "sha256:b20df693de16f42b2472a9c485e1c948ee55524786a0a34345511afdd22246f3"}, + {file = "aiohttp-3.13.5-cp314-cp314-win_amd64.whl", hash = "sha256:f85c6f327bf0b8c29da7d93b1cabb6363fb5e4e160a32fa241ed2dce21b73162"}, + {file = "aiohttp-3.13.5-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:1efb06900858bb618ff5cee184ae2de5828896c448403d51fb633f09e109be0a"}, + {file = "aiohttp-3.13.5-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:fee86b7c4bd29bdaf0d53d14739b08a106fdda809ca5fe032a15f52fae5fe254"}, + {file = "aiohttp-3.13.5-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:20058e23909b9e65f9da62b396b77dfa95965cbe840f8def6e572538b1d32e36"}, + {file = "aiohttp-3.13.5-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8cf20a8d6868cb15a73cab329ffc07291ba8c22b1b88176026106ae39aa6df0f"}, + {file = "aiohttp-3.13.5-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:330f5da04c987f1d5bdb8ae189137c77139f36bd1cb23779ca1a354a4b027800"}, + {file = "aiohttp-3.13.5-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:6f1cbf0c7926d315c3c26c2da41fd2b5d2fe01ac0e157b78caefc51a782196cf"}, + {file = "aiohttp-3.13.5-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:53fc049ed6390d05423ba33103ded7281fe897cf97878f369a527070bd95795b"}, + {file = "aiohttp-3.13.5-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:898703aa2667e3c5ca4c54ca36cd73f58b7a38ef87a5606414799ebce4d3fd3a"}, + {file = "aiohttp-3.13.5-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:0494a01ca9584eea1e5fbd6d748e61ecff218c51b576ee1999c23db7066417d8"}, + {file = "aiohttp-3.13.5-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:6cf81fe010b8c17b09495cbd15c1d35afbc8fb405c0c9cf4738e5ae3af1d65be"}, + {file = "aiohttp-3.13.5-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:c564dd5f09ddc9d8f2c2d0a301cd30a79a2cc1b46dd1a73bef8f0038863d016b"}, + {file = "aiohttp-3.13.5-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:2994be9f6e51046c4f864598fd9abeb4fba6e88f0b2152422c9666dcd4aea9c6"}, + {file = "aiohttp-3.13.5-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:157826e2fa245d2ef46c83ea8a5faf77ca19355d278d425c29fda0beb3318037"}, + {file = "aiohttp-3.13.5-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:a8aca50daa9493e9e13c0f566201a9006f080e7c50e5e90d0b06f53146a54500"}, + {file = "aiohttp-3.13.5-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:3b13560160d07e047a93f23aaa30718606493036253d5430887514715b67c9d9"}, + {file = "aiohttp-3.13.5-cp314-cp314t-win32.whl", hash = "sha256:9a0f4474b6ea6818b41f82172d799e4b3d29e22c2c520ce4357856fced9af2f8"}, + {file = "aiohttp-3.13.5-cp314-cp314t-win_amd64.whl", hash = "sha256:18a2f6c1182c51baa1d28d68fea51513cb2a76612f038853c0ad3c145423d3d9"}, + {file = "aiohttp-3.13.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:347542f0ea3f95b2a955ee6656461fa1c776e401ac50ebce055a6c38454a0adf"}, + {file = "aiohttp-3.13.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:178c7b5e62b454c2bc790786e6058c3cc968613b4419251b478c153a4aec32b1"}, + {file = "aiohttp-3.13.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:af545c2cffdb0967a96b6249e6f5f7b0d92cdfd267f9d5238d5b9ca63e8edb10"}, + {file = "aiohttp-3.13.5-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:206b7b3ef96e4ce211754f0cd003feb28b7d81f0ad26b8d077a5d5161436067f"}, + {file = "aiohttp-3.13.5-cp39-cp39-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:ee5e86776273de1795947d17bddd6bb19e0365fd2af4289c0d2c5454b6b1d36b"}, + {file = "aiohttp-3.13.5-cp39-cp39-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:95d14ca7abefde230f7639ec136ade282655431fd5db03c343b19dda72dd1643"}, + {file = "aiohttp-3.13.5-cp39-cp39-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:912d4b6af530ddb1338a66229dac3a25ff11d4448be3ec3d6340583995f56031"}, + {file = "aiohttp-3.13.5-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e999f0c88a458c836d5fb521814e92ed2172c649200336a6df514987c1488258"}, + {file = "aiohttp-3.13.5-cp39-cp39-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:39380e12bd1f2fdab4285b6e055ad48efbaed5c836433b142ed4f5b9be71036a"}, + {file = "aiohttp-3.13.5-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:9efcc0f11d850cefcafdd9275b9576ad3bfb539bed96807663b32ad99c4d4b88"}, + {file = "aiohttp-3.13.5-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:147b4f501d0292077f29d5268c16bb7c864a1f054d7001c4c1812c0421ea1ed0"}, + {file = "aiohttp-3.13.5-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:d147004fede1b12f6013a6dbb2a26a986a671a03c6ea740ddc76500e5f1c399f"}, + {file = "aiohttp-3.13.5-cp39-cp39-musllinux_1_2_riscv64.whl", hash = "sha256:9277145d36a01653863899c665243871434694bcc3431922c3b35c978061bdb8"}, + {file = "aiohttp-3.13.5-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:4e704c52438f66fdd89588346183d898bb42167cf88f8b7ff1c0f9fc957c348f"}, + {file = "aiohttp-3.13.5-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:a8a4d3427e8de1312ddf309cc482186466c79895b3a139fed3259fc01dfa9a5b"}, + {file = "aiohttp-3.13.5-cp39-cp39-win32.whl", hash = "sha256:6f497a6876aa4b1a102b04996ce4c1170c7040d83faa9387dd921c16e30d5c83"}, + {file = "aiohttp-3.13.5-cp39-cp39-win_amd64.whl", hash = "sha256:cb979826071c0986a5f08333a36104153478ce6018c58cba7f9caddaf63d5d67"}, + {file = "aiohttp-3.13.5.tar.gz", hash = "sha256:9d98cc980ecc96be6eb4c1994ce35d28d8b1f5e5208a23b421187d1209dbb7d1"}, +] + +[package.dependencies] +aiohappyeyeballs = ">=2.5.0" +aiosignal = ">=1.4.0" +async-timeout = {version = ">=4.0,<6.0", markers = "python_version < \"3.11\""} +attrs = ">=17.3.0" +frozenlist = ">=1.1.1" +multidict = ">=4.5,<7.0" +propcache = ">=0.2.0" +yarl = ">=1.17.0,<2.0" + +[package.extras] +speedups = ["Brotli (>=1.2)", "aiodns (>=3.3.0)", "backports.zstd", "brotlicffi (>=1.2)"] + +[[package]] +name = "aiosignal" +version = "1.4.0" +description = "aiosignal: a list of registered asynchronous callbacks" +optional = false +python-versions = ">=3.9" +files = [ + {file = "aiosignal-1.4.0-py3-none-any.whl", hash = "sha256:053243f8b92b990551949e63930a839ff0cf0b0ebbe0597b0f3fb19e1a0fe82e"}, + {file = "aiosignal-1.4.0.tar.gz", hash = "sha256:f47eecd9468083c2029cc99945502cb7708b082c232f9aca65da147157b251c7"}, +] + +[package.dependencies] +frozenlist = ">=1.1.0" +typing-extensions = {version = ">=4.2", markers = "python_version < \"3.13\""} [[package]] name = "annotated-types" @@ -36,6 +204,28 @@ doc = ["Sphinx (>=7.4,<8.0)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "truststore (>=0.9.1)", "uvloop (>=0.21.0b1)"] trio = ["trio (>=0.26.1)"] +[[package]] +name = "async-timeout" +version = "5.0.1" +description = "Timeout context manager for asyncio programs" +optional = false +python-versions = ">=3.8" +files = [ + {file = "async_timeout-5.0.1-py3-none-any.whl", hash = "sha256:39e3809566ff85354557ec2398b55e096c8364bacac9405a7a1fa429e77fe76c"}, + {file = "async_timeout-5.0.1.tar.gz", hash = "sha256:d9321a7a3d5a6a5e187e824d2fa0793ce379a202935782d555d6e9d2735677d3"}, +] + +[[package]] +name = "attrs" +version = "26.1.0" +description = "Classes Without Boilerplate" +optional = false +python-versions = ">=3.9" +files = [ + {file = "attrs-26.1.0-py3-none-any.whl", hash = "sha256:c647aa4a12dfbad9333ca4e71fe62ddc36f4e63b2d260a37a8b83d2f043ac309"}, + {file = "attrs-26.1.0.tar.gz", hash = "sha256:d03ceb89cb322a8fd706d4fb91940737b6642aa36998fe130a9bc96c985eff32"}, +] + [[package]] name = "certifi" version = "2026.4.22" @@ -89,6 +279,145 @@ files = [ [package.extras] testing = ["hatch", "pre-commit", "pytest", "tox"] +[[package]] +name = "frozenlist" +version = "1.8.0" +description = "A list-like structure which implements collections.abc.MutableSequence" +optional = false +python-versions = ">=3.9" +files = [ + {file = "frozenlist-1.8.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:b37f6d31b3dcea7deb5e9696e529a6aa4a898adc33db82da12e4c60a7c4d2011"}, + {file = "frozenlist-1.8.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ef2b7b394f208233e471abc541cc6991f907ffd47dc72584acee3147899d6565"}, + {file = "frozenlist-1.8.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a88f062f072d1589b7b46e951698950e7da00442fc1cacbe17e19e025dc327ad"}, + {file = "frozenlist-1.8.0-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:f57fb59d9f385710aa7060e89410aeb5058b99e62f4d16b08b91986b9a2140c2"}, + {file = "frozenlist-1.8.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:799345ab092bee59f01a915620b5d014698547afd011e691a208637312db9186"}, + {file = "frozenlist-1.8.0-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:c23c3ff005322a6e16f71bf8692fcf4d5a304aaafe1e262c98c6d4adc7be863e"}, + {file = "frozenlist-1.8.0-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:8a76ea0f0b9dfa06f254ee06053d93a600865b3274358ca48a352ce4f0798450"}, + {file = "frozenlist-1.8.0-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:c7366fe1418a6133d5aa824ee53d406550110984de7637d65a178010f759c6ef"}, + {file = "frozenlist-1.8.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:13d23a45c4cebade99340c4165bd90eeb4a56c6d8a9d8aa49568cac19a6d0dc4"}, + {file = "frozenlist-1.8.0-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:e4a3408834f65da56c83528fb52ce7911484f0d1eaf7b761fc66001db1646eff"}, + {file = "frozenlist-1.8.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:42145cd2748ca39f32801dad54aeea10039da6f86e303659db90db1c4b614c8c"}, + {file = "frozenlist-1.8.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:e2de870d16a7a53901e41b64ffdf26f2fbb8917b3e6ebf398098d72c5b20bd7f"}, + {file = "frozenlist-1.8.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:20e63c9493d33ee48536600d1a5c95eefc870cd71e7ab037763d1fbb89cc51e7"}, + {file = "frozenlist-1.8.0-cp310-cp310-win32.whl", hash = "sha256:adbeebaebae3526afc3c96fad434367cafbfd1b25d72369a9e5858453b1bb71a"}, + {file = "frozenlist-1.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:667c3777ca571e5dbeb76f331562ff98b957431df140b54c85fd4d52eea8d8f6"}, + {file = "frozenlist-1.8.0-cp310-cp310-win_arm64.whl", hash = "sha256:80f85f0a7cc86e7a54c46d99c9e1318ff01f4687c172ede30fd52d19d1da1c8e"}, + {file = "frozenlist-1.8.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:09474e9831bc2b2199fad6da3c14c7b0fbdd377cce9d3d77131be28906cb7d84"}, + {file = "frozenlist-1.8.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:17c883ab0ab67200b5f964d2b9ed6b00971917d5d8a92df149dc2c9779208ee9"}, + {file = "frozenlist-1.8.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:fa47e444b8ba08fffd1c18e8cdb9a75db1b6a27f17507522834ad13ed5922b93"}, + {file = "frozenlist-1.8.0-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:2552f44204b744fba866e573be4c1f9048d6a324dfe14475103fd51613eb1d1f"}, + {file = "frozenlist-1.8.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:957e7c38f250991e48a9a73e6423db1bb9dd14e722a10f6b8bb8e16a0f55f695"}, + {file = "frozenlist-1.8.0-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:8585e3bb2cdea02fc88ffa245069c36555557ad3609e83be0ec71f54fd4abb52"}, + {file = "frozenlist-1.8.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:edee74874ce20a373d62dc28b0b18b93f645633c2943fd90ee9d898550770581"}, + {file = "frozenlist-1.8.0-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:c9a63152fe95756b85f31186bddf42e4c02c6321207fd6601a1c89ebac4fe567"}, + {file = "frozenlist-1.8.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:b6db2185db9be0a04fecf2f241c70b63b1a242e2805be291855078f2b404dd6b"}, + {file = "frozenlist-1.8.0-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:f4be2e3d8bc8aabd566f8d5b8ba7ecc09249d74ba3c9ed52e54dc23a293f0b92"}, + {file = "frozenlist-1.8.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:c8d1634419f39ea6f5c427ea2f90ca85126b54b50837f31497f3bf38266e853d"}, + {file = "frozenlist-1.8.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:1a7fa382a4a223773ed64242dbe1c9c326ec09457e6b8428efb4118c685c3dfd"}, + {file = "frozenlist-1.8.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:11847b53d722050808926e785df837353bd4d75f1d494377e59b23594d834967"}, + {file = "frozenlist-1.8.0-cp311-cp311-win32.whl", hash = "sha256:27c6e8077956cf73eadd514be8fb04d77fc946a7fe9f7fe167648b0b9085cc25"}, + {file = "frozenlist-1.8.0-cp311-cp311-win_amd64.whl", hash = "sha256:ac913f8403b36a2c8610bbfd25b8013488533e71e62b4b4adce9c86c8cea905b"}, + {file = "frozenlist-1.8.0-cp311-cp311-win_arm64.whl", hash = "sha256:d4d3214a0f8394edfa3e303136d0575eece0745ff2b47bd2cb2e66dd92d4351a"}, + {file = "frozenlist-1.8.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:78f7b9e5d6f2fdb88cdde9440dc147259b62b9d3b019924def9f6478be254ac1"}, + {file = "frozenlist-1.8.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:229bf37d2e4acdaf808fd3f06e854a4a7a3661e871b10dc1f8f1896a3b05f18b"}, + {file = "frozenlist-1.8.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f833670942247a14eafbb675458b4e61c82e002a148f49e68257b79296e865c4"}, + {file = "frozenlist-1.8.0-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:494a5952b1c597ba44e0e78113a7266e656b9794eec897b19ead706bd7074383"}, + {file = "frozenlist-1.8.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:96f423a119f4777a4a056b66ce11527366a8bb92f54e541ade21f2374433f6d4"}, + {file = "frozenlist-1.8.0-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3462dd9475af2025c31cc61be6652dfa25cbfb56cbbf52f4ccfe029f38decaf8"}, + {file = "frozenlist-1.8.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c4c800524c9cd9bac5166cd6f55285957fcfc907db323e193f2afcd4d9abd69b"}, + {file = "frozenlist-1.8.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d6a5df73acd3399d893dafc71663ad22534b5aa4f94e8a2fabfe856c3c1b6a52"}, + {file = "frozenlist-1.8.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:405e8fe955c2280ce66428b3ca55e12b3c4e9c336fb2103a4937e891c69a4a29"}, + {file = "frozenlist-1.8.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:908bd3f6439f2fef9e85031b59fd4f1297af54415fb60e4254a95f75b3cab3f3"}, + {file = "frozenlist-1.8.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:294e487f9ec720bd8ffcebc99d575f7eff3568a08a253d1ee1a0378754b74143"}, + {file = "frozenlist-1.8.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:74c51543498289c0c43656701be6b077f4b265868fa7f8a8859c197006efb608"}, + {file = "frozenlist-1.8.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:776f352e8329135506a1d6bf16ac3f87bc25b28e765949282dcc627af36123aa"}, + {file = "frozenlist-1.8.0-cp312-cp312-win32.whl", hash = "sha256:433403ae80709741ce34038da08511d4a77062aa924baf411ef73d1146e74faf"}, + {file = "frozenlist-1.8.0-cp312-cp312-win_amd64.whl", hash = "sha256:34187385b08f866104f0c0617404c8eb08165ab1272e884abc89c112e9c00746"}, + {file = "frozenlist-1.8.0-cp312-cp312-win_arm64.whl", hash = "sha256:fe3c58d2f5db5fbd18c2987cba06d51b0529f52bc3a6cdc33d3f4eab725104bd"}, + {file = "frozenlist-1.8.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8d92f1a84bb12d9e56f818b3a746f3efba93c1b63c8387a73dde655e1e42282a"}, + {file = "frozenlist-1.8.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:96153e77a591c8adc2ee805756c61f59fef4cf4073a9275ee86fe8cba41241f7"}, + {file = "frozenlist-1.8.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f21f00a91358803399890ab167098c131ec2ddd5f8f5fd5fe9c9f2c6fcd91e40"}, + {file = "frozenlist-1.8.0-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:fb30f9626572a76dfe4293c7194a09fb1fe93ba94c7d4f720dfae3b646b45027"}, + {file = "frozenlist-1.8.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:eaa352d7047a31d87dafcacbabe89df0aa506abb5b1b85a2fb91bc3faa02d822"}, + {file = "frozenlist-1.8.0-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:03ae967b4e297f58f8c774c7eabcce57fe3c2434817d4385c50661845a058121"}, + {file = "frozenlist-1.8.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f6292f1de555ffcc675941d65fffffb0a5bcd992905015f85d0592201793e0e5"}, + {file = "frozenlist-1.8.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:29548f9b5b5e3460ce7378144c3010363d8035cea44bc0bf02d57f5a685e084e"}, + {file = "frozenlist-1.8.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ec3cc8c5d4084591b4237c0a272cc4f50a5b03396a47d9caaf76f5d7b38a4f11"}, + {file = "frozenlist-1.8.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:517279f58009d0b1f2e7c1b130b377a349405da3f7621ed6bfae50b10adf20c1"}, + {file = "frozenlist-1.8.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:db1e72ede2d0d7ccb213f218df6a078a9c09a7de257c2fe8fcef16d5925230b1"}, + {file = "frozenlist-1.8.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:b4dec9482a65c54a5044486847b8a66bf10c9cb4926d42927ec4e8fd5db7fed8"}, + {file = "frozenlist-1.8.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:21900c48ae04d13d416f0e1e0c4d81f7931f73a9dfa0b7a8746fb2fe7dd970ed"}, + {file = "frozenlist-1.8.0-cp313-cp313-win32.whl", hash = "sha256:8b7b94a067d1c504ee0b16def57ad5738701e4ba10cec90529f13fa03c833496"}, + {file = "frozenlist-1.8.0-cp313-cp313-win_amd64.whl", hash = "sha256:878be833caa6a3821caf85eb39c5ba92d28e85df26d57afb06b35b2efd937231"}, + {file = "frozenlist-1.8.0-cp313-cp313-win_arm64.whl", hash = "sha256:44389d135b3ff43ba8cc89ff7f51f5a0bb6b63d829c8300f79a2fe4fe61bcc62"}, + {file = "frozenlist-1.8.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:e25ac20a2ef37e91c1b39938b591457666a0fa835c7783c3a8f33ea42870db94"}, + {file = "frozenlist-1.8.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:07cdca25a91a4386d2e76ad992916a85038a9b97561bf7a3fd12d5d9ce31870c"}, + {file = "frozenlist-1.8.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:4e0c11f2cc6717e0a741f84a527c52616140741cd812a50422f83dc31749fb52"}, + {file = "frozenlist-1.8.0-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:b3210649ee28062ea6099cfda39e147fa1bc039583c8ee4481cb7811e2448c51"}, + {file = "frozenlist-1.8.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:581ef5194c48035a7de2aefc72ac6539823bb71508189e5de01d60c9dcd5fa65"}, + {file = "frozenlist-1.8.0-cp313-cp313t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3ef2d026f16a2b1866e1d86fc4e1291e1ed8a387b2c333809419a2f8b3a77b82"}, + {file = "frozenlist-1.8.0-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:5500ef82073f599ac84d888e3a8c1f77ac831183244bfd7f11eaa0289fb30714"}, + {file = "frozenlist-1.8.0-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:50066c3997d0091c411a66e710f4e11752251e6d2d73d70d8d5d4c76442a199d"}, + {file = "frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:5c1c8e78426e59b3f8005e9b19f6ff46e5845895adbde20ece9218319eca6506"}, + {file = "frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:eefdba20de0d938cec6a89bd4d70f346a03108a19b9df4248d3cf0d88f1b0f51"}, + {file = "frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:cf253e0e1c3ceb4aaff6df637ce033ff6535fb8c70a764a8f46aafd3d6ab798e"}, + {file = "frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:032efa2674356903cd0261c4317a561a6850f3ac864a63fc1583147fb05a79b0"}, + {file = "frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:6da155091429aeba16851ecb10a9104a108bcd32f6c1642867eadaee401c1c41"}, + {file = "frozenlist-1.8.0-cp313-cp313t-win32.whl", hash = "sha256:0f96534f8bfebc1a394209427d0f8a63d343c9779cda6fc25e8e121b5fd8555b"}, + {file = "frozenlist-1.8.0-cp313-cp313t-win_amd64.whl", hash = "sha256:5d63a068f978fc69421fb0e6eb91a9603187527c86b7cd3f534a5b77a592b888"}, + {file = "frozenlist-1.8.0-cp313-cp313t-win_arm64.whl", hash = "sha256:bf0a7e10b077bf5fb9380ad3ae8ce20ef919a6ad93b4552896419ac7e1d8e042"}, + {file = "frozenlist-1.8.0-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:cee686f1f4cadeb2136007ddedd0aaf928ab95216e7691c63e50a8ec066336d0"}, + {file = "frozenlist-1.8.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:119fb2a1bd47307e899c2fac7f28e85b9a543864df47aa7ec9d3c1b4545f096f"}, + {file = "frozenlist-1.8.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:4970ece02dbc8c3a92fcc5228e36a3e933a01a999f7094ff7c23fbd2beeaa67c"}, + {file = "frozenlist-1.8.0-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:cba69cb73723c3f329622e34bdbf5ce1f80c21c290ff04256cff1cd3c2036ed2"}, + {file = "frozenlist-1.8.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:778a11b15673f6f1df23d9586f83c4846c471a8af693a22e066508b77d201ec8"}, + {file = "frozenlist-1.8.0-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:0325024fe97f94c41c08872db482cf8ac4800d80e79222c6b0b7b162d5b13686"}, + {file = "frozenlist-1.8.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:97260ff46b207a82a7567b581ab4190bd4dfa09f4db8a8b49d1a958f6aa4940e"}, + {file = "frozenlist-1.8.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:54b2077180eb7f83dd52c40b2750d0a9f175e06a42e3213ce047219de902717a"}, + {file = "frozenlist-1.8.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:2f05983daecab868a31e1da44462873306d3cbfd76d1f0b5b69c473d21dbb128"}, + {file = "frozenlist-1.8.0-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:33f48f51a446114bc5d251fb2954ab0164d5be02ad3382abcbfe07e2531d650f"}, + {file = "frozenlist-1.8.0-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:154e55ec0655291b5dd1b8731c637ecdb50975a2ae70c606d100750a540082f7"}, + {file = "frozenlist-1.8.0-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:4314debad13beb564b708b4a496020e5306c7333fa9a3ab90374169a20ffab30"}, + {file = "frozenlist-1.8.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:073f8bf8becba60aa931eb3bc420b217bb7d5b8f4750e6f8b3be7f3da85d38b7"}, + {file = "frozenlist-1.8.0-cp314-cp314-win32.whl", hash = "sha256:bac9c42ba2ac65ddc115d930c78d24ab8d4f465fd3fc473cdedfccadb9429806"}, + {file = "frozenlist-1.8.0-cp314-cp314-win_amd64.whl", hash = "sha256:3e0761f4d1a44f1d1a47996511752cf3dcec5bbdd9cc2b4fe595caf97754b7a0"}, + {file = "frozenlist-1.8.0-cp314-cp314-win_arm64.whl", hash = "sha256:d1eaff1d00c7751b7c6662e9c5ba6eb2c17a2306ba5e2a37f24ddf3cc953402b"}, + {file = "frozenlist-1.8.0-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:d3bb933317c52d7ea5004a1c442eef86f426886fba134ef8cf4226ea6ee1821d"}, + {file = "frozenlist-1.8.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:8009897cdef112072f93a0efdce29cd819e717fd2f649ee3016efd3cd885a7ed"}, + {file = "frozenlist-1.8.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:2c5dcbbc55383e5883246d11fd179782a9d07a986c40f49abe89ddf865913930"}, + {file = "frozenlist-1.8.0-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:39ecbc32f1390387d2aa4f5a995e465e9e2f79ba3adcac92d68e3e0afae6657c"}, + {file = "frozenlist-1.8.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:92db2bf818d5cc8d9c1f1fc56b897662e24ea5adb36ad1f1d82875bd64e03c24"}, + {file = "frozenlist-1.8.0-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:2dc43a022e555de94c3b68a4ef0b11c4f747d12c024a520c7101709a2144fb37"}, + {file = "frozenlist-1.8.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:cb89a7f2de3602cfed448095bab3f178399646ab7c61454315089787df07733a"}, + {file = "frozenlist-1.8.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:33139dc858c580ea50e7e60a1b0ea003efa1fd42e6ec7fdbad78fff65fad2fd2"}, + {file = "frozenlist-1.8.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:168c0969a329b416119507ba30b9ea13688fafffac1b7822802537569a1cb0ef"}, + {file = "frozenlist-1.8.0-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:28bd570e8e189d7f7b001966435f9dac6718324b5be2990ac496cf1ea9ddb7fe"}, + {file = "frozenlist-1.8.0-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:b2a095d45c5d46e5e79ba1e5b9cb787f541a8dee0433836cea4b96a2c439dcd8"}, + {file = "frozenlist-1.8.0-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:eab8145831a0d56ec9c4139b6c3e594c7a83c2c8be25d5bcf2d86136a532287a"}, + {file = "frozenlist-1.8.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:974b28cf63cc99dfb2188d8d222bc6843656188164848c4f679e63dae4b0708e"}, + {file = "frozenlist-1.8.0-cp314-cp314t-win32.whl", hash = "sha256:342c97bf697ac5480c0a7ec73cd700ecfa5a8a40ac923bd035484616efecc2df"}, + {file = "frozenlist-1.8.0-cp314-cp314t-win_amd64.whl", hash = "sha256:06be8f67f39c8b1dc671f5d83aaefd3358ae5cdcf8314552c57e7ed3e6475bdd"}, + {file = "frozenlist-1.8.0-cp314-cp314t-win_arm64.whl", hash = "sha256:102e6314ca4da683dca92e3b1355490fed5f313b768500084fbe6371fddfdb79"}, + {file = "frozenlist-1.8.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:d8b7138e5cd0647e4523d6685b0eac5d4be9a184ae9634492f25c6eb38c12a47"}, + {file = "frozenlist-1.8.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a6483e309ca809f1efd154b4d37dc6d9f61037d6c6a81c2dc7a15cb22c8c5dca"}, + {file = "frozenlist-1.8.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1b9290cf81e95e93fdf90548ce9d3c1211cf574b8e3f4b3b7cb0537cf2227068"}, + {file = "frozenlist-1.8.0-cp39-cp39-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:59a6a5876ca59d1b63af8cd5e7ffffb024c3dc1e9cf9301b21a2e76286505c95"}, + {file = "frozenlist-1.8.0-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6dc4126390929823e2d2d9dc79ab4046ed74680360fc5f38b585c12c66cdf459"}, + {file = "frozenlist-1.8.0-cp39-cp39-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:332db6b2563333c5671fecacd085141b5800cb866be16d5e3eb15a2086476675"}, + {file = "frozenlist-1.8.0-cp39-cp39-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:9ff15928d62a0b80bb875655c39bf517938c7d589554cbd2669be42d97c2cb61"}, + {file = "frozenlist-1.8.0-cp39-cp39-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:7bf6cdf8e07c8151fba6fe85735441240ec7f619f935a5205953d58009aef8c6"}, + {file = "frozenlist-1.8.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:48e6d3f4ec5c7273dfe83ff27c91083c6c9065af655dc2684d2c200c94308bb5"}, + {file = "frozenlist-1.8.0-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:1a7607e17ad33361677adcd1443edf6f5da0ce5e5377b798fba20fae194825f3"}, + {file = "frozenlist-1.8.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:5a3a935c3a4e89c733303a2d5a7c257ea44af3a56c8202df486b7f5de40f37e1"}, + {file = "frozenlist-1.8.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:940d4a017dbfed9daf46a3b086e1d2167e7012ee297fef9e1c545c4d022f5178"}, + {file = "frozenlist-1.8.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:b9be22a69a014bc47e78072d0ecae716f5eb56c15238acca0f43d6eb8e4a5bda"}, + {file = "frozenlist-1.8.0-cp39-cp39-win32.whl", hash = "sha256:1aa77cb5697069af47472e39612976ed05343ff2e84a3dcf15437b232cbfd087"}, + {file = "frozenlist-1.8.0-cp39-cp39-win_amd64.whl", hash = "sha256:7398c222d1d405e796970320036b1b563892b65809d9e5261487bb2c7f7b5c6a"}, + {file = "frozenlist-1.8.0-cp39-cp39-win_arm64.whl", hash = "sha256:b4f3b365f31c6cd4af24545ca0a244a53688cad8834e32f56831c4923b50a103"}, + {file = "frozenlist-1.8.0-py3-none-any.whl", hash = "sha256:0c18a16eab41e82c295618a77502e17b195883241c563b00f0aa5106fc4eaa0d"}, + {file = "frozenlist-1.8.0.tar.gz", hash = "sha256:3ede829ed8d842f6cd48fc7081d7a41001a56f1f38603f9d49bf3020d59a31ad"}, +] + [[package]] name = "h11" version = "0.16.0" @@ -159,6 +488,28 @@ files = [ [package.extras] all = ["mypy (>=1.11.2)", "pytest (>=8.3.2)", "ruff (>=0.6.2)"] +[[package]] +name = "importlib-resources" +version = "6.4.5" +description = "Read resources from Python packages" +optional = true +python-versions = ">=3.8" +files = [ + {file = "importlib_resources-6.4.5-py3-none-any.whl", hash = "sha256:ac29d5f956f01d5e4bb63102a5a19957f1b9175e45649977264a1416783bb717"}, + {file = "importlib_resources-6.4.5.tar.gz", hash = "sha256:980862a1d16c9e147a59603677fa2aa5fd82b87f223b6cb870695bcfce830065"}, +] + +[package.dependencies] +zipp = {version = ">=3.1.0", markers = "python_version < \"3.10\""} + +[package.extras] +check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)"] +cover = ["pytest-cov"] +doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +enabler = ["pytest-enabler (>=2.2)"] +test = ["jaraco.test (>=5.4)", "pytest (>=6,!=8.1.*)", "zipp (>=3.17)"] +type = ["pytest-mypy"] + [[package]] name = "iniconfig" version = "2.1.0" @@ -170,6 +521,164 @@ files = [ {file = "iniconfig-2.1.0.tar.gz", hash = "sha256:3abbd2e30b36733fee78f9c7f7308f2d0050e88f0087fd25c2645f63c773e1c7"}, ] +[[package]] +name = "multidict" +version = "6.7.1" +description = "multidict implementation" +optional = false +python-versions = ">=3.9" +files = [ + {file = "multidict-6.7.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:c93c3db7ea657dd4637d57e74ab73de31bccefe144d3d4ce370052035bc85fb5"}, + {file = "multidict-6.7.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:974e72a2474600827abaeda71af0c53d9ebbc3c2eb7da37b37d7829ae31232d8"}, + {file = "multidict-6.7.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:cdea2e7b2456cfb6694fb113066fd0ec7ea4d67e3a35e1f4cbeea0b448bf5872"}, + {file = "multidict-6.7.1-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:17207077e29342fdc2c9a82e4b306f1127bf1ea91f8b71e02d4798a70bb99991"}, + {file = "multidict-6.7.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d4f49cb5661344764e4c7c7973e92a47a59b8fc19b6523649ec9dc4960e58a03"}, + {file = "multidict-6.7.1-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:a9fc4caa29e2e6ae408d1c450ac8bf19892c5fca83ee634ecd88a53332c59981"}, + {file = "multidict-6.7.1-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c5f0c21549ab432b57dcc82130f388d84ad8179824cc3f223d5e7cfbfd4143f6"}, + {file = "multidict-6.7.1-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:7dfb78d966b2c906ae1d28ccf6e6712a3cd04407ee5088cd276fe8cb42186190"}, + {file = "multidict-6.7.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9b0d9b91d1aa44db9c1f1ecd0d9d2ae610b2f4f856448664e01a3b35899f3f92"}, + {file = "multidict-6.7.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:dd96c01a9dcd4889dcfcf9eb5544ca0c77603f239e3ffab0524ec17aea9a93ee"}, + {file = "multidict-6.7.1-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:067343c68cd6612d375710f895337b3a98a033c94f14b9a99eff902f205424e2"}, + {file = "multidict-6.7.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:5884a04f4ff56c6120f6ccf703bdeb8b5079d808ba604d4d53aec0d55dc33568"}, + {file = "multidict-6.7.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:8affcf1c98b82bc901702eb73b6947a1bfa170823c153fe8a47b5f5f02e48e40"}, + {file = "multidict-6.7.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:0d17522c37d03e85c8098ec8431636309b2682cf12e58f4dbc76121fb50e4962"}, + {file = "multidict-6.7.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:24c0cf81544ca5e17cfcb6e482e7a82cd475925242b308b890c9452a074d4505"}, + {file = "multidict-6.7.1-cp310-cp310-win32.whl", hash = "sha256:d82dd730a95e6643802f4454b8fdecdf08667881a9c5670db85bc5a56693f122"}, + {file = "multidict-6.7.1-cp310-cp310-win_amd64.whl", hash = "sha256:cf37cbe5ced48d417ba045aca1b21bafca67489452debcde94778a576666a1df"}, + {file = "multidict-6.7.1-cp310-cp310-win_arm64.whl", hash = "sha256:59bc83d3f66b41dac1e7460aac1d196edc70c9ba3094965c467715a70ecb46db"}, + {file = "multidict-6.7.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:7ff981b266af91d7b4b3793ca3382e53229088d193a85dfad6f5f4c27fc73e5d"}, + {file = "multidict-6.7.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:844c5bca0b5444adb44a623fb0a1310c2f4cd41f402126bb269cd44c9b3f3e1e"}, + {file = "multidict-6.7.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f2a0a924d4c2e9afcd7ec64f9de35fcd96915149b2216e1cb2c10a56df483855"}, + {file = "multidict-6.7.1-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:8be1802715a8e892c784c0197c2ace276ea52702a0ede98b6310c8f255a5afb3"}, + {file = "multidict-6.7.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2e2d2ed645ea29f31c4c7ea1552fcfd7cb7ba656e1eafd4134a6620c9f5fdd9e"}, + {file = "multidict-6.7.1-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:95922cee9a778659e91db6497596435777bd25ed116701a4c034f8e46544955a"}, + {file = "multidict-6.7.1-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:6b83cabdc375ffaaa15edd97eb7c0c672ad788e2687004990074d7d6c9b140c8"}, + {file = "multidict-6.7.1-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:38fb49540705369bab8484db0689d86c0a33a0a9f2c1b197f506b71b4b6c19b0"}, + {file = "multidict-6.7.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:439cbebd499f92e9aa6793016a8acaa161dfa749ae86d20960189f5398a19144"}, + {file = "multidict-6.7.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:6d3bc717b6fe763b8be3f2bee2701d3c8eb1b2a8ae9f60910f1b2860c82b6c49"}, + {file = "multidict-6.7.1-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:619e5a1ac57986dbfec9f0b301d865dddf763696435e2962f6d9cf2fdff2bb71"}, + {file = "multidict-6.7.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:0b38ebffd9be37c1170d33bc0f36f4f262e0a09bc1aac1c34c7aa51a7293f0b3"}, + {file = "multidict-6.7.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:10ae39c9cfe6adedcdb764f5e8411d4a92b055e35573a2eaa88d3323289ef93c"}, + {file = "multidict-6.7.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:25167cc263257660290fba06b9318d2026e3c910be240a146e1f66dd114af2b0"}, + {file = "multidict-6.7.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:128441d052254f42989ef98b7b6a6ecb1e6f708aa962c7984235316db59f50fa"}, + {file = "multidict-6.7.1-cp311-cp311-win32.whl", hash = "sha256:d62b7f64ffde3b99d06b707a280db04fb3855b55f5a06df387236051d0668f4a"}, + {file = "multidict-6.7.1-cp311-cp311-win_amd64.whl", hash = "sha256:bdbf9f3b332abd0cdb306e7c2113818ab1e922dc84b8f8fd06ec89ed2a19ab8b"}, + {file = "multidict-6.7.1-cp311-cp311-win_arm64.whl", hash = "sha256:b8c990b037d2fff2f4e33d3f21b9b531c5745b33a49a7d6dbe7a177266af44f6"}, + {file = "multidict-6.7.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:a90f75c956e32891a4eda3639ce6dd86e87105271f43d43442a3aedf3cddf172"}, + {file = "multidict-6.7.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:3fccb473e87eaa1382689053e4a4618e7ba7b9b9b8d6adf2027ee474597128cd"}, + {file = "multidict-6.7.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b0fa96985700739c4c7853a43c0b3e169360d6855780021bfc6d0f1ce7c123e7"}, + {file = "multidict-6.7.1-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:cb2a55f408c3043e42b40cc8eecd575afa27b7e0b956dfb190de0f8499a57a53"}, + {file = "multidict-6.7.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:eb0ce7b2a32d09892b3dd6cc44877a0d02a33241fafca5f25c8b6b62374f8b75"}, + {file = "multidict-6.7.1-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:c3a32d23520ee37bf327d1e1a656fec76a2edd5c038bf43eddfa0572ec49c60b"}, + {file = "multidict-6.7.1-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:9c90fed18bffc0189ba814749fdcc102b536e83a9f738a9003e569acd540a733"}, + {file = "multidict-6.7.1-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:da62917e6076f512daccfbbde27f46fed1c98fee202f0559adec8ee0de67f71a"}, + {file = "multidict-6.7.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bfde23ef6ed9db7eaee6c37dcec08524cb43903c60b285b172b6c094711b3961"}, + {file = "multidict-6.7.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3758692429e4e32f1ba0df23219cd0b4fc0a52f476726fff9337d1a57676a582"}, + {file = "multidict-6.7.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:398c1478926eca669f2fd6a5856b6de9c0acf23a2cb59a14c0ba5844fa38077e"}, + {file = "multidict-6.7.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:c102791b1c4f3ab36ce4101154549105a53dc828f016356b3e3bcae2e3a039d3"}, + {file = "multidict-6.7.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:a088b62bd733e2ad12c50dad01b7d0166c30287c166e137433d3b410add807a6"}, + {file = "multidict-6.7.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:3d51ff4785d58d3f6c91bdbffcb5e1f7ddfda557727043aa20d20ec4f65e324a"}, + {file = "multidict-6.7.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fc5907494fccf3e7d3f94f95c91d6336b092b5fc83811720fae5e2765890dfba"}, + {file = "multidict-6.7.1-cp312-cp312-win32.whl", hash = "sha256:28ca5ce2fd9716631133d0e9a9b9a745ad7f60bac2bccafb56aa380fc0b6c511"}, + {file = "multidict-6.7.1-cp312-cp312-win_amd64.whl", hash = "sha256:fcee94dfbd638784645b066074b338bc9cc155d4b4bffa4adce1615c5a426c19"}, + {file = "multidict-6.7.1-cp312-cp312-win_arm64.whl", hash = "sha256:ba0a9fb644d0c1a2194cf7ffb043bd852cea63a57f66fbd33959f7dae18517bf"}, + {file = "multidict-6.7.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:2b41f5fed0ed563624f1c17630cb9941cf2309d4df00e494b551b5f3e3d67a23"}, + {file = "multidict-6.7.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:84e61e3af5463c19b67ced91f6c634effb89ef8bfc5ca0267f954451ed4bb6a2"}, + {file = "multidict-6.7.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:935434b9853c7c112eee7ac891bc4cb86455aa631269ae35442cb316790c1445"}, + {file = "multidict-6.7.1-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:432feb25a1cb67fe82a9680b4d65fb542e4635cb3166cd9c01560651ad60f177"}, + {file = "multidict-6.7.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e82d14e3c948952a1a85503817e038cba5905a3352de76b9a465075d072fba23"}, + {file = "multidict-6.7.1-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:4cfb48c6ea66c83bcaaf7e4dfa7ec1b6bbcf751b7db85a328902796dfde4c060"}, + {file = "multidict-6.7.1-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:1d540e51b7e8e170174555edecddbd5538105443754539193e3e1061864d444d"}, + {file = "multidict-6.7.1-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:273d23f4b40f3dce4d6c8a821c741a86dec62cded82e1175ba3d99be128147ed"}, + {file = "multidict-6.7.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9d624335fd4fa1c08a53f8b4be7676ebde19cd092b3895c421045ca87895b429"}, + {file = "multidict-6.7.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:12fad252f8b267cc75b66e8fc51b3079604e8d43a75428ffe193cd9e2195dfd6"}, + {file = "multidict-6.7.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:03ede2a6ffbe8ef936b92cb4529f27f42be7f56afcdab5ab739cd5f27fb1cbf9"}, + {file = "multidict-6.7.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:90efbcf47dbe33dcf643a1e400d67d59abeac5db07dc3f27d6bdeae497a2198c"}, + {file = "multidict-6.7.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:5c4b9bfc148f5a91be9244d6264c53035c8a0dcd2f51f1c3c6e30e30ebaa1c84"}, + {file = "multidict-6.7.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:401c5a650f3add2472d1d288c26deebc540f99e2fb83e9525007a74cd2116f1d"}, + {file = "multidict-6.7.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:97891f3b1b3ffbded884e2916cacf3c6fc87b66bb0dde46f7357404750559f33"}, + {file = "multidict-6.7.1-cp313-cp313-win32.whl", hash = "sha256:e1c5988359516095535c4301af38d8a8838534158f649c05dd1050222321bcb3"}, + {file = "multidict-6.7.1-cp313-cp313-win_amd64.whl", hash = "sha256:960c83bf01a95b12b08fd54324a4eb1d5b52c88932b5cba5d6e712bb3ed12eb5"}, + {file = "multidict-6.7.1-cp313-cp313-win_arm64.whl", hash = "sha256:563fe25c678aaba333d5399408f5ec3c383ca5b663e7f774dd179a520b8144df"}, + {file = "multidict-6.7.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:c76c4bec1538375dad9d452d246ca5368ad6e1c9039dadcf007ae59c70619ea1"}, + {file = "multidict-6.7.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:57b46b24b5d5ebcc978da4ec23a819a9402b4228b8a90d9c656422b4bdd8a963"}, + {file = "multidict-6.7.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:e954b24433c768ce78ab7929e84ccf3422e46deb45a4dc9f93438f8217fa2d34"}, + {file = "multidict-6.7.1-cp313-cp313t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:3bd231490fa7217cc832528e1cd8752a96f0125ddd2b5749390f7c3ec8721b65"}, + {file = "multidict-6.7.1-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:253282d70d67885a15c8a7716f3a73edf2d635793ceda8173b9ecc21f2fb8292"}, + {file = "multidict-6.7.1-cp313-cp313t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:0b4c48648d7649c9335cf1927a8b87fa692de3dcb15faa676c6a6f1f1aabda43"}, + {file = "multidict-6.7.1-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:98bc624954ec4d2c7cb074b8eefc2b5d0ce7d482e410df446414355d158fe4ca"}, + {file = "multidict-6.7.1-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:1b99af4d9eec0b49927b4402bcbb58dea89d3e0db8806a4086117019939ad3dd"}, + {file = "multidict-6.7.1-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6aac4f16b472d5b7dc6f66a0d49dd57b0e0902090be16594dc9ebfd3d17c47e7"}, + {file = "multidict-6.7.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:21f830fe223215dffd51f538e78c172ed7c7f60c9b96a2bf05c4848ad49921c3"}, + {file = "multidict-6.7.1-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:f5dd81c45b05518b9aa4da4aa74e1c93d715efa234fd3e8a179df611cc85e5f4"}, + {file = "multidict-6.7.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:eb304767bca2bb92fb9c5bd33cedc95baee5bb5f6c88e63706533a1c06ad08c8"}, + {file = "multidict-6.7.1-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:c9035dde0f916702850ef66460bc4239d89d08df4d02023a5926e7446724212c"}, + {file = "multidict-6.7.1-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:af959b9beeb66c822380f222f0e0a1889331597e81f1ded7f374f3ecb0fd6c52"}, + {file = "multidict-6.7.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:41f2952231456154ee479651491e94118229844dd7226541788be783be2b5108"}, + {file = "multidict-6.7.1-cp313-cp313t-win32.whl", hash = "sha256:df9f19c28adcb40b6aae30bbaa1478c389efd50c28d541d76760199fc1037c32"}, + {file = "multidict-6.7.1-cp313-cp313t-win_amd64.whl", hash = "sha256:d54ecf9f301853f2c5e802da559604b3e95bb7a3b01a9c295c6ee591b9882de8"}, + {file = "multidict-6.7.1-cp313-cp313t-win_arm64.whl", hash = "sha256:5a37ca18e360377cfda1d62f5f382ff41f2b8c4ccb329ed974cc2e1643440118"}, + {file = "multidict-6.7.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:8f333ec9c5eb1b7105e3b84b53141e66ca05a19a605368c55450b6ba208cb9ee"}, + {file = "multidict-6.7.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:a407f13c188f804c759fc6a9f88286a565c242a76b27626594c133b82883b5c2"}, + {file = "multidict-6.7.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:0e161ddf326db5577c3a4cc2d8648f81456e8a20d40415541587a71620d7a7d1"}, + {file = "multidict-6.7.1-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:1e3a8bb24342a8201d178c3b4984c26ba81a577c80d4d525727427460a50c22d"}, + {file = "multidict-6.7.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:97231140a50f5d447d3164f994b86a0bed7cd016e2682f8650d6a9158e14fd31"}, + {file = "multidict-6.7.1-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:6b10359683bd8806a200fd2909e7c8ca3a7b24ec1d8132e483d58e791d881048"}, + {file = "multidict-6.7.1-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:283ddac99f7ac25a4acadbf004cb5ae34480bbeb063520f70ce397b281859362"}, + {file = "multidict-6.7.1-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:538cec1e18c067d0e6103aa9a74f9e832904c957adc260e61cd9d8cf0c3b3d37"}, + {file = "multidict-6.7.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7eee46ccb30ff48a1e35bb818cc90846c6be2b68240e42a78599166722cea709"}, + {file = "multidict-6.7.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:fa263a02f4f2dd2d11a7b1bb4362aa7cb1049f84a9235d31adf63f30143469a0"}, + {file = "multidict-6.7.1-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:2e1425e2f99ec5bd36c15a01b690a1a2456209c5deed58f95469ffb46039ccbb"}, + {file = "multidict-6.7.1-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:497394b3239fc6f0e13a78a3e1b61296e72bf1c5f94b4c4eb80b265c37a131cd"}, + {file = "multidict-6.7.1-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:233b398c29d3f1b9676b4b6f75c518a06fcb2ea0b925119fb2c1bc35c05e1601"}, + {file = "multidict-6.7.1-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:93b1818e4a6e0930454f0f2af7dfce69307ca03cdcfb3739bf4d91241967b6c1"}, + {file = "multidict-6.7.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:f33dc2a3abe9249ea5d8360f969ec7f4142e7ac45ee7014d8f8d5acddf178b7b"}, + {file = "multidict-6.7.1-cp314-cp314-win32.whl", hash = "sha256:3ab8b9d8b75aef9df299595d5388b14530839f6422333357af1339443cff777d"}, + {file = "multidict-6.7.1-cp314-cp314-win_amd64.whl", hash = "sha256:5e01429a929600e7dab7b166062d9bb54a5eed752384c7384c968c2afab8f50f"}, + {file = "multidict-6.7.1-cp314-cp314-win_arm64.whl", hash = "sha256:4885cb0e817aef5d00a2e8451d4665c1808378dc27c2705f1bf4ef8505c0d2e5"}, + {file = "multidict-6.7.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:0458c978acd8e6ea53c81eefaddbbee9c6c5e591f41b3f5e8e194780fe026581"}, + {file = "multidict-6.7.1-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:c0abd12629b0af3cf590982c0b413b1e7395cd4ec026f30986818ab95bfaa94a"}, + {file = "multidict-6.7.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:14525a5f61d7d0c94b368a42cff4c9a4e7ba2d52e2672a7b23d84dc86fb02b0c"}, + {file = "multidict-6.7.1-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:17307b22c217b4cf05033dabefe68255a534d637c6c9b0cc8382718f87be4262"}, + {file = "multidict-6.7.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7a7e590ff876a3eaf1c02a4dfe0724b6e69a9e9de6d8f556816f29c496046e59"}, + {file = "multidict-6.7.1-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:5fa6a95dfee63893d80a34758cd0e0c118a30b8dcb46372bf75106c591b77889"}, + {file = "multidict-6.7.1-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a0543217a6a017692aa6ae5cc39adb75e587af0f3a82288b1492eb73dd6cc2a4"}, + {file = "multidict-6.7.1-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f99fe611c312b3c1c0ace793f92464d8cd263cc3b26b5721950d977b006b6c4d"}, + {file = "multidict-6.7.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9004d8386d133b7e6135679424c91b0b854d2d164af6ea3f289f8f2761064609"}, + {file = "multidict-6.7.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e628ef0e6859ffd8273c69412a2465c4be4a9517d07261b33334b5ec6f3c7489"}, + {file = "multidict-6.7.1-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:841189848ba629c3552035a6a7f5bf3b02eb304e9fea7492ca220a8eda6b0e5c"}, + {file = "multidict-6.7.1-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:ce1bbd7d780bb5a0da032e095c951f7014d6b0a205f8318308140f1a6aba159e"}, + {file = "multidict-6.7.1-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:b26684587228afed0d50cf804cc71062cc9c1cdf55051c4c6345d372947b268c"}, + {file = "multidict-6.7.1-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:9f9af11306994335398293f9958071019e3ab95e9a707dc1383a35613f6abcb9"}, + {file = "multidict-6.7.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:b4938326284c4f1224178a560987b6cf8b4d38458b113d9b8c1db1a836e640a2"}, + {file = "multidict-6.7.1-cp314-cp314t-win32.whl", hash = "sha256:98655c737850c064a65e006a3df7c997cd3b220be4ec8fe26215760b9697d4d7"}, + {file = "multidict-6.7.1-cp314-cp314t-win_amd64.whl", hash = "sha256:497bde6223c212ba11d462853cfa4f0ae6ef97465033e7dc9940cdb3ab5b48e5"}, + {file = "multidict-6.7.1-cp314-cp314t-win_arm64.whl", hash = "sha256:2bbd113e0d4af5db41d5ebfe9ccaff89de2120578164f86a5d17d5a576d1e5b2"}, + {file = "multidict-6.7.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:65573858d27cdeaca41893185677dc82395159aa28875a8867af66532d413a8f"}, + {file = "multidict-6.7.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c524c6fb8fc342793708ab111c4dbc90ff9abd568de220432500e47e990c0358"}, + {file = "multidict-6.7.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:aa23b001d968faef416ff70dc0f1ab045517b9b42a90edd3e9bcdb06479e31d5"}, + {file = "multidict-6.7.1-cp39-cp39-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:6704fa2b7453b2fb121740555fa1ee20cd98c4d011120caf4d2b8d4e7c76eec0"}, + {file = "multidict-6.7.1-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:121a34e5bfa410cdf2c8c49716de160de3b1dbcd86b49656f5681e4543bcd1a8"}, + {file = "multidict-6.7.1-cp39-cp39-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:026d264228bcd637d4e060844e39cdc60f86c479e463d49075dedc21b18fbbe0"}, + {file = "multidict-6.7.1-cp39-cp39-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:0e697826df7eb63418ee190fd06ce9f1803593bb4b9517d08c60d9b9a7f69d8f"}, + {file = "multidict-6.7.1-cp39-cp39-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:bb08271280173720e9fea9ede98e5231defcbad90f1624bea26f32ec8a956e2f"}, + {file = "multidict-6.7.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c6b3228e1d80af737b72925ce5fb4daf5a335e49cd7ab77ed7b9fdfbf58c526e"}, + {file = "multidict-6.7.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:3943debf0fbb57bdde5901695c11094a9a36723e5c03875f87718ee15ca2f4d2"}, + {file = "multidict-6.7.1-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:98c5787b0a0d9a41d9311eae44c3b76e6753def8d8870ab501320efe75a6a5f8"}, + {file = "multidict-6.7.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:08ccb2a6dc72009093ebe7f3f073e5ec5964cba9a706fa94b1a1484039b87941"}, + {file = "multidict-6.7.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:eb351f72c26dc9abe338ca7294661aa22969ad8ffe7ef7d5541d19f368dc854a"}, + {file = "multidict-6.7.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:ac1c665bad8b5d762f5f85ebe4d94130c26965f11de70c708c75671297c776de"}, + {file = "multidict-6.7.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1fa6609d0364f4f6f58351b4659a1f3e0e898ba2a8c5cac04cb2c7bc556b0bc5"}, + {file = "multidict-6.7.1-cp39-cp39-win32.whl", hash = "sha256:6f77ce314a29263e67adadc7e7c1bc699fcb3a305059ab973d038f87caa42ed0"}, + {file = "multidict-6.7.1-cp39-cp39-win_amd64.whl", hash = "sha256:f537b55778cd3cbee430abe3131255d3a78202e0f9ea7ffc6ada893a4bcaeea4"}, + {file = "multidict-6.7.1-cp39-cp39-win_arm64.whl", hash = "sha256:749aa54f578f2e5f439538706a475aa844bfa8ef75854b1401e6e528e4937cf9"}, + {file = "multidict-6.7.1-py3-none-any.whl", hash = "sha256:55d97cc6dae627efa6a6e548885712d4864b81110ac76fa4e534c03819fa4a56"}, + {file = "multidict-6.7.1.tar.gz", hash = "sha256:ec6652a1bee61c53a3e5776b6049172c53b6aaba34f18c9ad04f82712bac623d"}, +] + +[package.dependencies] +typing-extensions = {version = ">=4.1.0", markers = "python_version < \"3.11\""} + [[package]] name = "mypy" version = "1.13.0" @@ -260,6 +769,137 @@ files = [ dev = ["pre-commit", "tox"] testing = ["pytest", "pytest-benchmark"] +[[package]] +name = "propcache" +version = "0.4.1" +description = "Accelerated property cache" +optional = false +python-versions = ">=3.9" +files = [ + {file = "propcache-0.4.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7c2d1fa3201efaf55d730400d945b5b3ab6e672e100ba0f9a409d950ab25d7db"}, + {file = "propcache-0.4.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1eb2994229cc8ce7fe9b3db88f5465f5fd8651672840b2e426b88cdb1a30aac8"}, + {file = "propcache-0.4.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:66c1f011f45a3b33d7bcb22daed4b29c0c9e2224758b6be00686731e1b46f925"}, + {file = "propcache-0.4.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9a52009f2adffe195d0b605c25ec929d26b36ef986ba85244891dee3b294df21"}, + {file = "propcache-0.4.1-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:5d4e2366a9c7b837555cf02fb9be2e3167d333aff716332ef1b7c3a142ec40c5"}, + {file = "propcache-0.4.1-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:9d2b6caef873b4f09e26ea7e33d65f42b944837563a47a94719cc3544319a0db"}, + {file = "propcache-0.4.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2b16ec437a8c8a965ecf95739448dd938b5c7f56e67ea009f4300d8df05f32b7"}, + {file = "propcache-0.4.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:296f4c8ed03ca7476813fe666c9ea97869a8d7aec972618671b33a38a5182ef4"}, + {file = "propcache-0.4.1-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:1f0978529a418ebd1f49dad413a2b68af33f85d5c5ca5c6ca2a3bed375a7ac60"}, + {file = "propcache-0.4.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:fd138803047fb4c062b1c1dd95462f5209456bfab55c734458f15d11da288f8f"}, + {file = "propcache-0.4.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:8c9b3cbe4584636d72ff556d9036e0c9317fa27b3ac1f0f558e7e84d1c9c5900"}, + {file = "propcache-0.4.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:f93243fdc5657247533273ac4f86ae106cc6445a0efacb9a1bfe982fcfefd90c"}, + {file = "propcache-0.4.1-cp310-cp310-win32.whl", hash = "sha256:a0ee98db9c5f80785b266eb805016e36058ac72c51a064040f2bc43b61101cdb"}, + {file = "propcache-0.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:1cdb7988c4e5ac7f6d175a28a9aa0c94cb6f2ebe52756a3c0cda98d2809a9e37"}, + {file = "propcache-0.4.1-cp310-cp310-win_arm64.whl", hash = "sha256:d82ad62b19645419fe79dd63b3f9253e15b30e955c0170e5cebc350c1844e581"}, + {file = "propcache-0.4.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:60a8fda9644b7dfd5dece8c61d8a85e271cb958075bfc4e01083c148b61a7caf"}, + {file = "propcache-0.4.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c30b53e7e6bda1d547cabb47c825f3843a0a1a42b0496087bb58d8fedf9f41b5"}, + {file = "propcache-0.4.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6918ecbd897443087a3b7cd978d56546a812517dcaaca51b49526720571fa93e"}, + {file = "propcache-0.4.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3d902a36df4e5989763425a8ab9e98cd8ad5c52c823b34ee7ef307fd50582566"}, + {file = "propcache-0.4.1-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a9695397f85973bb40427dedddf70d8dc4a44b22f1650dd4af9eedf443d45165"}, + {file = "propcache-0.4.1-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:2bb07ffd7eaad486576430c89f9b215f9e4be68c4866a96e97db9e97fead85dc"}, + {file = "propcache-0.4.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fd6f30fdcf9ae2a70abd34da54f18da086160e4d7d9251f81f3da0ff84fc5a48"}, + {file = "propcache-0.4.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:fc38cba02d1acba4e2869eef1a57a43dfbd3d49a59bf90dda7444ec2be6a5570"}, + {file = "propcache-0.4.1-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:67fad6162281e80e882fb3ec355398cf72864a54069d060321f6cd0ade95fe85"}, + {file = "propcache-0.4.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:f10207adf04d08bec185bae14d9606a1444715bc99180f9331c9c02093e1959e"}, + {file = "propcache-0.4.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:e9b0d8d0845bbc4cfcdcbcdbf5086886bc8157aa963c31c777ceff7846c77757"}, + {file = "propcache-0.4.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:981333cb2f4c1896a12f4ab92a9cc8f09ea664e9b7dbdc4eff74627af3a11c0f"}, + {file = "propcache-0.4.1-cp311-cp311-win32.whl", hash = "sha256:f1d2f90aeec838a52f1c1a32fe9a619fefd5e411721a9117fbf82aea638fe8a1"}, + {file = "propcache-0.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:364426a62660f3f699949ac8c621aad6977be7126c5807ce48c0aeb8e7333ea6"}, + {file = "propcache-0.4.1-cp311-cp311-win_arm64.whl", hash = "sha256:e53f3a38d3510c11953f3e6a33f205c6d1b001129f972805ca9b42fc308bc239"}, + {file = "propcache-0.4.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e153e9cd40cc8945138822807139367f256f89c6810c2634a4f6902b52d3b4e2"}, + {file = "propcache-0.4.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:cd547953428f7abb73c5ad82cbb32109566204260d98e41e5dfdc682eb7f8403"}, + {file = "propcache-0.4.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f048da1b4f243fc44f205dfd320933a951b8d89e0afd4c7cacc762a8b9165207"}, + {file = "propcache-0.4.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ec17c65562a827bba85e3872ead335f95405ea1674860d96483a02f5c698fa72"}, + {file = "propcache-0.4.1-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:405aac25c6394ef275dee4c709be43745d36674b223ba4eb7144bf4d691b7367"}, + {file = "propcache-0.4.1-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:0013cb6f8dde4b2a2f66903b8ba740bdfe378c943c4377a200551ceb27f379e4"}, + {file = "propcache-0.4.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:15932ab57837c3368b024473a525e25d316d8353016e7cc0e5ba9eb343fbb1cf"}, + {file = "propcache-0.4.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:031dce78b9dc099f4c29785d9cf5577a3faf9ebf74ecbd3c856a7b92768c3df3"}, + {file = "propcache-0.4.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:ab08df6c9a035bee56e31af99be621526bd237bea9f32def431c656b29e41778"}, + {file = "propcache-0.4.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:4d7af63f9f93fe593afbf104c21b3b15868efb2c21d07d8732c0c4287e66b6a6"}, + {file = "propcache-0.4.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:cfc27c945f422e8b5071b6e93169679e4eb5bf73bbcbf1ba3ae3a83d2f78ebd9"}, + {file = "propcache-0.4.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:35c3277624a080cc6ec6f847cbbbb5b49affa3598c4535a0a4682a697aaa5c75"}, + {file = "propcache-0.4.1-cp312-cp312-win32.whl", hash = "sha256:671538c2262dadb5ba6395e26c1731e1d52534bfe9ae56d0b5573ce539266aa8"}, + {file = "propcache-0.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:cb2d222e72399fcf5890d1d5cc1060857b9b236adff2792ff48ca2dfd46c81db"}, + {file = "propcache-0.4.1-cp312-cp312-win_arm64.whl", hash = "sha256:204483131fb222bdaaeeea9f9e6c6ed0cac32731f75dfc1d4a567fc1926477c1"}, + {file = "propcache-0.4.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:43eedf29202c08550aac1d14e0ee619b0430aaef78f85864c1a892294fbc28cf"}, + {file = "propcache-0.4.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:d62cdfcfd89ccb8de04e0eda998535c406bf5e060ffd56be6c586cbcc05b3311"}, + {file = "propcache-0.4.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:cae65ad55793da34db5f54e4029b89d3b9b9490d8abe1b4c7ab5d4b8ec7ebf74"}, + {file = "propcache-0.4.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:333ddb9031d2704a301ee3e506dc46b1fe5f294ec198ed6435ad5b6a085facfe"}, + {file = "propcache-0.4.1-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:fd0858c20f078a32cf55f7e81473d96dcf3b93fd2ccdb3d40fdf54b8573df3af"}, + {file = "propcache-0.4.1-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:678ae89ebc632c5c204c794f8dab2837c5f159aeb59e6ed0539500400577298c"}, + {file = "propcache-0.4.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d472aeb4fbf9865e0c6d622d7f4d54a4e101a89715d8904282bb5f9a2f476c3f"}, + {file = "propcache-0.4.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:4d3df5fa7e36b3225954fba85589da77a0fe6a53e3976de39caf04a0db4c36f1"}, + {file = "propcache-0.4.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:ee17f18d2498f2673e432faaa71698032b0127ebf23ae5974eeaf806c279df24"}, + {file = "propcache-0.4.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:580e97762b950f993ae618e167e7be9256b8353c2dcd8b99ec100eb50f5286aa"}, + {file = "propcache-0.4.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:501d20b891688eb8e7aa903021f0b72d5a55db40ffaab27edefd1027caaafa61"}, + {file = "propcache-0.4.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9a0bd56e5b100aef69bd8562b74b46254e7c8812918d3baa700c8a8009b0af66"}, + {file = "propcache-0.4.1-cp313-cp313-win32.whl", hash = "sha256:bcc9aaa5d80322bc2fb24bb7accb4a30f81e90ab8d6ba187aec0744bc302ad81"}, + {file = "propcache-0.4.1-cp313-cp313-win_amd64.whl", hash = "sha256:381914df18634f5494334d201e98245c0596067504b9372d8cf93f4bb23e025e"}, + {file = "propcache-0.4.1-cp313-cp313-win_arm64.whl", hash = "sha256:8873eb4460fd55333ea49b7d189749ecf6e55bf85080f11b1c4530ed3034cba1"}, + {file = "propcache-0.4.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:92d1935ee1f8d7442da9c0c4fa7ac20d07e94064184811b685f5c4fada64553b"}, + {file = "propcache-0.4.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:473c61b39e1460d386479b9b2f337da492042447c9b685f28be4f74d3529e566"}, + {file = "propcache-0.4.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:c0ef0aaafc66fbd87842a3fe3902fd889825646bc21149eafe47be6072725835"}, + {file = "propcache-0.4.1-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f95393b4d66bfae908c3ca8d169d5f79cd65636ae15b5e7a4f6e67af675adb0e"}, + {file = "propcache-0.4.1-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c07fda85708bc48578467e85099645167a955ba093be0a2dcba962195676e859"}, + {file = "propcache-0.4.1-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:af223b406d6d000830c6f65f1e6431783fc3f713ba3e6cc8c024d5ee96170a4b"}, + {file = "propcache-0.4.1-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a78372c932c90ee474559c5ddfffd718238e8673c340dc21fe45c5b8b54559a0"}, + {file = "propcache-0.4.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:564d9f0d4d9509e1a870c920a89b2fec951b44bf5ba7d537a9e7c1ccec2c18af"}, + {file = "propcache-0.4.1-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:17612831fda0138059cc5546f4d12a2aacfb9e47068c06af35c400ba58ba7393"}, + {file = "propcache-0.4.1-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:41a89040cb10bd345b3c1a873b2bf36413d48da1def52f268a055f7398514874"}, + {file = "propcache-0.4.1-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:e35b88984e7fa64aacecea39236cee32dd9bd8c55f57ba8a75cf2399553f9bd7"}, + {file = "propcache-0.4.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:6f8b465489f927b0df505cbe26ffbeed4d6d8a2bbc61ce90eb074ff129ef0ab1"}, + {file = "propcache-0.4.1-cp313-cp313t-win32.whl", hash = "sha256:2ad890caa1d928c7c2965b48f3a3815c853180831d0e5503d35cf00c472f4717"}, + {file = "propcache-0.4.1-cp313-cp313t-win_amd64.whl", hash = "sha256:f7ee0e597f495cf415bcbd3da3caa3bd7e816b74d0d52b8145954c5e6fd3ff37"}, + {file = "propcache-0.4.1-cp313-cp313t-win_arm64.whl", hash = "sha256:929d7cbe1f01bb7baffb33dc14eb5691c95831450a26354cd210a8155170c93a"}, + {file = "propcache-0.4.1-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:3f7124c9d820ba5548d431afb4632301acf965db49e666aa21c305cbe8c6de12"}, + {file = "propcache-0.4.1-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:c0d4b719b7da33599dfe3b22d3db1ef789210a0597bc650b7cee9c77c2be8c5c"}, + {file = "propcache-0.4.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:9f302f4783709a78240ebc311b793f123328716a60911d667e0c036bc5dcbded"}, + {file = "propcache-0.4.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c80ee5802e3fb9ea37938e7eecc307fb984837091d5fd262bb37238b1ae97641"}, + {file = "propcache-0.4.1-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ed5a841e8bb29a55fb8159ed526b26adc5bdd7e8bd7bf793ce647cb08656cdf4"}, + {file = "propcache-0.4.1-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:55c72fd6ea2da4c318e74ffdf93c4fe4e926051133657459131a95c846d16d44"}, + {file = "propcache-0.4.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8326e144341460402713f91df60ade3c999d601e7eb5ff8f6f7862d54de0610d"}, + {file = "propcache-0.4.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:060b16ae65bc098da7f6d25bf359f1f31f688384858204fe5d652979e0015e5b"}, + {file = "propcache-0.4.1-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:89eb3fa9524f7bec9de6e83cf3faed9d79bffa560672c118a96a171a6f55831e"}, + {file = "propcache-0.4.1-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:dee69d7015dc235f526fe80a9c90d65eb0039103fe565776250881731f06349f"}, + {file = "propcache-0.4.1-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:5558992a00dfd54ccbc64a32726a3357ec93825a418a401f5cc67df0ac5d9e49"}, + {file = "propcache-0.4.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:c9b822a577f560fbd9554812526831712c1436d2c046cedee4c3796d3543b144"}, + {file = "propcache-0.4.1-cp314-cp314-win32.whl", hash = "sha256:ab4c29b49d560fe48b696cdcb127dd36e0bc2472548f3bf56cc5cb3da2b2984f"}, + {file = "propcache-0.4.1-cp314-cp314-win_amd64.whl", hash = "sha256:5a103c3eb905fcea0ab98be99c3a9a5ab2de60228aa5aceedc614c0281cf6153"}, + {file = "propcache-0.4.1-cp314-cp314-win_arm64.whl", hash = "sha256:74c1fb26515153e482e00177a1ad654721bf9207da8a494a0c05e797ad27b992"}, + {file = "propcache-0.4.1-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:824e908bce90fb2743bd6b59db36eb4f45cd350a39637c9f73b1c1ea66f5b75f"}, + {file = "propcache-0.4.1-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:c2b5e7db5328427c57c8e8831abda175421b709672f6cfc3d630c3b7e2146393"}, + {file = "propcache-0.4.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:6f6ff873ed40292cd4969ef5310179afd5db59fdf055897e282485043fc80ad0"}, + {file = "propcache-0.4.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:49a2dc67c154db2c1463013594c458881a069fcf98940e61a0569016a583020a"}, + {file = "propcache-0.4.1-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:005f08e6a0529984491e37d8dbc3dd86f84bd78a8ceb5fa9a021f4c48d4984be"}, + {file = "propcache-0.4.1-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5c3310452e0d31390da9035c348633b43d7e7feb2e37be252be6da45abd1abcc"}, + {file = "propcache-0.4.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4c3c70630930447f9ef1caac7728c8ad1c56bc5015338b20fed0d08ea2480b3a"}, + {file = "propcache-0.4.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:8e57061305815dfc910a3634dcf584f08168a8836e6999983569f51a8544cd89"}, + {file = "propcache-0.4.1-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:521a463429ef54143092c11a77e04056dd00636f72e8c45b70aaa3140d639726"}, + {file = "propcache-0.4.1-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:120c964da3fdc75e3731aa392527136d4ad35868cc556fd09bb6d09172d9a367"}, + {file = "propcache-0.4.1-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:d8f353eb14ee3441ee844ade4277d560cdd68288838673273b978e3d6d2c8f36"}, + {file = "propcache-0.4.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:ab2943be7c652f09638800905ee1bab2c544e537edb57d527997a24c13dc1455"}, + {file = "propcache-0.4.1-cp314-cp314t-win32.whl", hash = "sha256:05674a162469f31358c30bcaa8883cb7829fa3110bf9c0991fe27d7896c42d85"}, + {file = "propcache-0.4.1-cp314-cp314t-win_amd64.whl", hash = "sha256:990f6b3e2a27d683cb7602ed6c86f15ee6b43b1194736f9baaeb93d0016633b1"}, + {file = "propcache-0.4.1-cp314-cp314t-win_arm64.whl", hash = "sha256:ecef2343af4cc68e05131e45024ba34f6095821988a9d0a02aa7c73fcc448aa9"}, + {file = "propcache-0.4.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:3d233076ccf9e450c8b3bc6720af226b898ef5d051a2d145f7d765e6e9f9bcff"}, + {file = "propcache-0.4.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:357f5bb5c377a82e105e44bd3d52ba22b616f7b9773714bff93573988ef0a5fb"}, + {file = "propcache-0.4.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:cbc3b6dfc728105b2a57c06791eb07a94229202ea75c59db644d7d496b698cac"}, + {file = "propcache-0.4.1-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:182b51b421f0501952d938dc0b0eb45246a5b5153c50d42b495ad5fb7517c888"}, + {file = "propcache-0.4.1-cp39-cp39-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:4b536b39c5199b96fc6245eb5fb796c497381d3942f169e44e8e392b29c9ebcc"}, + {file = "propcache-0.4.1-cp39-cp39-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:db65d2af507bbfbdcedb254a11149f894169d90488dd3e7190f7cdcb2d6cd57a"}, + {file = "propcache-0.4.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fd2dbc472da1f772a4dae4fa24be938a6c544671a912e30529984dd80400cd88"}, + {file = "propcache-0.4.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:daede9cd44e0f8bdd9e6cc9a607fc81feb80fae7a5fc6cecaff0e0bb32e42d00"}, + {file = "propcache-0.4.1-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:71b749281b816793678ae7f3d0d84bd36e694953822eaad408d682efc5ca18e0"}, + {file = "propcache-0.4.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:0002004213ee1f36cfb3f9a42b5066100c44276b9b72b4e1504cddd3d692e86e"}, + {file = "propcache-0.4.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:fe49d0a85038f36ba9e3ffafa1103e61170b28e95b16622e11be0a0ea07c6781"}, + {file = "propcache-0.4.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:99d43339c83aaf4d32bda60928231848eee470c6bda8d02599cc4cebe872d183"}, + {file = "propcache-0.4.1-cp39-cp39-win32.whl", hash = "sha256:a129e76735bc792794d5177069691c3217898b9f5cee2b2661471e52ffe13f19"}, + {file = "propcache-0.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:948dab269721ae9a87fd16c514a0a2c2a1bdb23a9a61b969b0f9d9ee2968546f"}, + {file = "propcache-0.4.1-cp39-cp39-win_arm64.whl", hash = "sha256:5fd37c406dd6dc85aa743e214cef35dc54bbdd1419baac4f6ae5e5b1a2976938"}, + {file = "propcache-0.4.1-py3-none-any.whl", hash = "sha256:af2a6052aeb6cf17d3e46ee169099044fd8224cbaf75c76a2ef596e8163e2237"}, + {file = "propcache-0.4.1.tar.gz", hash = "sha256:f48107a8c637e80362555f37ecf49abe20370e557cc4ab374f04ec4423c97c3d"}, +] + [[package]] name = "pydantic" version = "2.10.6" @@ -392,6 +1032,26 @@ files = [ [package.dependencies] typing-extensions = ">=4.6.0,<4.7.0 || >4.7.0" +[[package]] +name = "pyjwt" +version = "2.12.1" +description = "JSON Web Token implementation in Python" +optional = false +python-versions = ">=3.9" +files = [ + {file = "pyjwt-2.12.1-py3-none-any.whl", hash = "sha256:28ca37c070cad8ba8cd9790cd940535d40274d22f80ab87f3ac6a713e6e8454c"}, + {file = "pyjwt-2.12.1.tar.gz", hash = "sha256:c74a7a2adf861c04d002db713dd85f84beb242228e671280bf709d765b03672b"}, +] + +[package.dependencies] +typing_extensions = {version = ">=4.0", markers = "python_version < \"3.11\""} + +[package.extras] +crypto = ["cryptography (>=3.4.0)"] +dev = ["coverage[toml] (==7.10.7)", "cryptography (>=3.4.0)", "pre-commit", "pytest (>=8.4.2,<9.0.0)", "sphinx", "sphinx-rtd-theme", "zope.interface"] +docs = ["sphinx", "sphinx-rtd-theme", "zope.interface"] +tests = ["coverage[toml] (==7.10.7)", "pytest (>=8.4.2,<9.0.0)"] + [[package]] name = "pytest" version = "7.4.4" @@ -466,6 +1126,25 @@ files = [ [package.dependencies] six = ">=1.5" +[[package]] +name = "redis" +version = "5.3.1" +description = "Python client for Redis database and key-value store" +optional = false +python-versions = ">=3.8" +files = [ + {file = "redis-5.3.1-py3-none-any.whl", hash = "sha256:dc1909bd24669cc31b5f67a039700b16ec30571096c5f1f0d9d2324bff31af97"}, + {file = "redis-5.3.1.tar.gz", hash = "sha256:ca49577a531ea64039b5a36db3d6cd1a0c7a60c34124d46924a45b956e8cf14c"}, +] + +[package.dependencies] +async-timeout = {version = ">=4.0.3", markers = "python_full_version < \"3.11.3\""} +PyJWT = ">=2.9.0" + +[package.extras] +hiredis = ["hiredis (>=3.0.0)"] +ocsp = ["cryptography (>=36.0.1)", "pyopenssl (==23.2.1)", "requests (>=2.31.0)"] + [[package]] name = "ruff" version = "0.11.5" @@ -593,7 +1272,291 @@ files = [ {file = "typing_extensions-4.13.2.tar.gz", hash = "sha256:e6c81219bd689f51865d9e372991c540bda33a0379d5573cddb9a3a23f7caaef"}, ] +[[package]] +name = "wasmtime" +version = "25.0.0" +description = "A WebAssembly runtime powered by Wasmtime" +optional = true +python-versions = ">=3.8" +files = [ + {file = "wasmtime-25.0.0-py3-none-any.whl", hash = "sha256:22aa59fc6e01deec8a6703046f82466090d5811096a3bb5c169907e36c842af1"}, + {file = "wasmtime-25.0.0-py3-none-macosx_10_13_x86_64.whl", hash = "sha256:13e9a718e9d580c1738782cc19f4dcb9fb068f7e51778ea621fd664f4433525b"}, + {file = "wasmtime-25.0.0-py3-none-macosx_11_0_arm64.whl", hash = "sha256:5bdf1214ee3ee78a4a8a92da339f4c4c8c109e65af881b37f4adfc05d02af426"}, + {file = "wasmtime-25.0.0-py3-none-manylinux1_x86_64.whl", hash = "sha256:b4364e14d44e3b7afe6a40bf608e9d0d2c40b09dece441d20f4f6e31906b729c"}, + {file = "wasmtime-25.0.0-py3-none-manylinux2014_aarch64.whl", hash = "sha256:a07445073cf36a6e5d1dc28246a897dcbdaa537ba8be8805be65422ecca297eb"}, + {file = "wasmtime-25.0.0-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:53d5f614348a28aabdf80ae4f6fdfa803031af1f74ada03826fd4fd43aeee6c8"}, + {file = "wasmtime-25.0.0-py3-none-win_amd64.whl", hash = "sha256:f8a2a213b9179965db2d2eedececd69a37e287e902330509afae51c71a3a6842"}, +] + +[package.dependencies] +importlib-resources = ">=5.10" + +[package.extras] +testing = ["componentize-py", "coverage", "pycparser", "pytest", "pytest-mypy"] + +[[package]] +name = "websockets" +version = "13.1" +description = "An implementation of the WebSocket Protocol (RFC 6455 & 7692)" +optional = true +python-versions = ">=3.8" +files = [ + {file = "websockets-13.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:f48c749857f8fb598fb890a75f540e3221d0976ed0bf879cf3c7eef34151acee"}, + {file = "websockets-13.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c7e72ce6bda6fb9409cc1e8164dd41d7c91466fb599eb047cfda72fe758a34a7"}, + {file = "websockets-13.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f779498eeec470295a2b1a5d97aa1bc9814ecd25e1eb637bd9d1c73a327387f6"}, + {file = "websockets-13.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4676df3fe46956fbb0437d8800cd5f2b6d41143b6e7e842e60554398432cf29b"}, + {file = "websockets-13.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a7affedeb43a70351bb811dadf49493c9cfd1ed94c9c70095fd177e9cc1541fa"}, + {file = "websockets-13.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1971e62d2caa443e57588e1d82d15f663b29ff9dfe7446d9964a4b6f12c1e700"}, + {file = "websockets-13.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:5f2e75431f8dc4a47f31565a6e1355fb4f2ecaa99d6b89737527ea917066e26c"}, + {file = "websockets-13.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:58cf7e75dbf7e566088b07e36ea2e3e2bd5676e22216e4cad108d4df4a7402a0"}, + {file = "websockets-13.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:c90d6dec6be2c7d03378a574de87af9b1efea77d0c52a8301dd831ece938452f"}, + {file = "websockets-13.1-cp310-cp310-win32.whl", hash = "sha256:730f42125ccb14602f455155084f978bd9e8e57e89b569b4d7f0f0c17a448ffe"}, + {file = "websockets-13.1-cp310-cp310-win_amd64.whl", hash = "sha256:5993260f483d05a9737073be197371940c01b257cc45ae3f1d5d7adb371b266a"}, + {file = "websockets-13.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:61fc0dfcda609cda0fc9fe7977694c0c59cf9d749fbb17f4e9483929e3c48a19"}, + {file = "websockets-13.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ceec59f59d092c5007e815def4ebb80c2de330e9588e101cf8bd94c143ec78a5"}, + {file = "websockets-13.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c1dca61c6db1166c48b95198c0b7d9c990b30c756fc2923cc66f68d17dc558fd"}, + {file = "websockets-13.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:308e20f22c2c77f3f39caca508e765f8725020b84aa963474e18c59accbf4c02"}, + {file = "websockets-13.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:62d516c325e6540e8a57b94abefc3459d7dab8ce52ac75c96cad5549e187e3a7"}, + {file = "websockets-13.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:87c6e35319b46b99e168eb98472d6c7d8634ee37750d7693656dc766395df096"}, + {file = "websockets-13.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:5f9fee94ebafbc3117c30be1844ed01a3b177bb6e39088bc6b2fa1dc15572084"}, + {file = "websockets-13.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:7c1e90228c2f5cdde263253fa5db63e6653f1c00e7ec64108065a0b9713fa1b3"}, + {file = "websockets-13.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:6548f29b0e401eea2b967b2fdc1c7c7b5ebb3eeb470ed23a54cd45ef078a0db9"}, + {file = "websockets-13.1-cp311-cp311-win32.whl", hash = "sha256:c11d4d16e133f6df8916cc5b7e3e96ee4c44c936717d684a94f48f82edb7c92f"}, + {file = "websockets-13.1-cp311-cp311-win_amd64.whl", hash = "sha256:d04f13a1d75cb2b8382bdc16ae6fa58c97337253826dfe136195b7f89f661557"}, + {file = "websockets-13.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:9d75baf00138f80b48f1eac72ad1535aac0b6461265a0bcad391fc5aba875cfc"}, + {file = "websockets-13.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:9b6f347deb3dcfbfde1c20baa21c2ac0751afaa73e64e5b693bb2b848efeaa49"}, + {file = "websockets-13.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:de58647e3f9c42f13f90ac7e5f58900c80a39019848c5547bc691693098ae1bd"}, + {file = "websockets-13.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a1b54689e38d1279a51d11e3467dd2f3a50f5f2e879012ce8f2d6943f00e83f0"}, + {file = "websockets-13.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cf1781ef73c073e6b0f90af841aaf98501f975d306bbf6221683dd594ccc52b6"}, + {file = "websockets-13.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8d23b88b9388ed85c6faf0e74d8dec4f4d3baf3ecf20a65a47b836d56260d4b9"}, + {file = "websockets-13.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3c78383585f47ccb0fcf186dcb8a43f5438bd7d8f47d69e0b56f71bf431a0a68"}, + {file = "websockets-13.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:d6d300f8ec35c24025ceb9b9019ae9040c1ab2f01cddc2bcc0b518af31c75c14"}, + {file = "websockets-13.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a9dcaf8b0cc72a392760bb8755922c03e17a5a54e08cca58e8b74f6902b433cf"}, + {file = "websockets-13.1-cp312-cp312-win32.whl", hash = "sha256:2f85cf4f2a1ba8f602298a853cec8526c2ca42a9a4b947ec236eaedb8f2dc80c"}, + {file = "websockets-13.1-cp312-cp312-win_amd64.whl", hash = "sha256:38377f8b0cdeee97c552d20cf1865695fcd56aba155ad1b4ca8779a5b6ef4ac3"}, + {file = "websockets-13.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a9ab1e71d3d2e54a0aa646ab6d4eebfaa5f416fe78dfe4da2839525dc5d765c6"}, + {file = "websockets-13.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:b9d7439d7fab4dce00570bb906875734df13d9faa4b48e261c440a5fec6d9708"}, + {file = "websockets-13.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:327b74e915cf13c5931334c61e1a41040e365d380f812513a255aa804b183418"}, + {file = "websockets-13.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:325b1ccdbf5e5725fdcb1b0e9ad4d2545056479d0eee392c291c1bf76206435a"}, + {file = "websockets-13.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:346bee67a65f189e0e33f520f253d5147ab76ae42493804319b5716e46dddf0f"}, + {file = "websockets-13.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:91a0fa841646320ec0d3accdff5b757b06e2e5c86ba32af2e0815c96c7a603c5"}, + {file = "websockets-13.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:18503d2c5f3943e93819238bf20df71982d193f73dcecd26c94514f417f6b135"}, + {file = "websockets-13.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:a9cd1af7e18e5221d2878378fbc287a14cd527fdd5939ed56a18df8a31136bb2"}, + {file = "websockets-13.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:70c5be9f416aa72aab7a2a76c90ae0a4fe2755c1816c153c1a2bcc3333ce4ce6"}, + {file = "websockets-13.1-cp313-cp313-win32.whl", hash = "sha256:624459daabeb310d3815b276c1adef475b3e6804abaf2d9d2c061c319f7f187d"}, + {file = "websockets-13.1-cp313-cp313-win_amd64.whl", hash = "sha256:c518e84bb59c2baae725accd355c8dc517b4a3ed8db88b4bc93c78dae2974bf2"}, + {file = "websockets-13.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:c7934fd0e920e70468e676fe7f1b7261c1efa0d6c037c6722278ca0228ad9d0d"}, + {file = "websockets-13.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:149e622dc48c10ccc3d2760e5f36753db9cacf3ad7bc7bbbfd7d9c819e286f23"}, + {file = "websockets-13.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:a569eb1b05d72f9bce2ebd28a1ce2054311b66677fcd46cf36204ad23acead8c"}, + {file = "websockets-13.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:95df24ca1e1bd93bbca51d94dd049a984609687cb2fb08a7f2c56ac84e9816ea"}, + {file = "websockets-13.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d8dbb1bf0c0a4ae8b40bdc9be7f644e2f3fb4e8a9aca7145bfa510d4a374eeb7"}, + {file = "websockets-13.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:035233b7531fb92a76beefcbf479504db8c72eb3bff41da55aecce3a0f729e54"}, + {file = "websockets-13.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:e4450fc83a3df53dec45922b576e91e94f5578d06436871dce3a6be38e40f5db"}, + {file = "websockets-13.1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:463e1c6ec853202dd3657f156123d6b4dad0c546ea2e2e38be2b3f7c5b8e7295"}, + {file = "websockets-13.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:6d6855bbe70119872c05107e38fbc7f96b1d8cb047d95c2c50869a46c65a8e96"}, + {file = "websockets-13.1-cp38-cp38-win32.whl", hash = "sha256:204e5107f43095012b00f1451374693267adbb832d29966a01ecc4ce1db26faf"}, + {file = "websockets-13.1-cp38-cp38-win_amd64.whl", hash = "sha256:485307243237328c022bc908b90e4457d0daa8b5cf4b3723fd3c4a8012fce4c6"}, + {file = "websockets-13.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:9b37c184f8b976f0c0a231a5f3d6efe10807d41ccbe4488df8c74174805eea7d"}, + {file = "websockets-13.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:163e7277e1a0bd9fb3c8842a71661ad19c6aa7bb3d6678dc7f89b17fbcc4aeb7"}, + {file = "websockets-13.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4b889dbd1342820cc210ba44307cf75ae5f2f96226c0038094455a96e64fb07a"}, + {file = "websockets-13.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:586a356928692c1fed0eca68b4d1c2cbbd1ca2acf2ac7e7ebd3b9052582deefa"}, + {file = "websockets-13.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7bd6abf1e070a6b72bfeb71049d6ad286852e285f146682bf30d0296f5fbadfa"}, + {file = "websockets-13.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d2aad13a200e5934f5a6767492fb07151e1de1d6079c003ab31e1823733ae79"}, + {file = "websockets-13.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:df01aea34b6e9e33572c35cd16bae5a47785e7d5c8cb2b54b2acdb9678315a17"}, + {file = "websockets-13.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:e54affdeb21026329fb0744ad187cf812f7d3c2aa702a5edb562b325191fcab6"}, + {file = "websockets-13.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:9ef8aa8bdbac47f4968a5d66462a2a0935d044bf35c0e5a8af152d58516dbeb5"}, + {file = "websockets-13.1-cp39-cp39-win32.whl", hash = "sha256:deeb929efe52bed518f6eb2ddc00cc496366a14c726005726ad62c2dd9017a3c"}, + {file = "websockets-13.1-cp39-cp39-win_amd64.whl", hash = "sha256:7c65ffa900e7cc958cd088b9a9157a8141c991f8c53d11087e6fb7277a03f81d"}, + {file = "websockets-13.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:5dd6da9bec02735931fccec99d97c29f47cc61f644264eb995ad6c0c27667238"}, + {file = "websockets-13.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:2510c09d8e8df777177ee3d40cd35450dc169a81e747455cc4197e63f7e7bfe5"}, + {file = "websockets-13.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f1c3cf67185543730888b20682fb186fc8d0fa6f07ccc3ef4390831ab4b388d9"}, + {file = "websockets-13.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bcc03c8b72267e97b49149e4863d57c2d77f13fae12066622dc78fe322490fe6"}, + {file = "websockets-13.1-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:004280a140f220c812e65f36944a9ca92d766b6cc4560be652a0a3883a79ed8a"}, + {file = "websockets-13.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:e2620453c075abeb0daa949a292e19f56de518988e079c36478bacf9546ced23"}, + {file = "websockets-13.1-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:9156c45750b37337f7b0b00e6248991a047be4aa44554c9886fe6bdd605aab3b"}, + {file = "websockets-13.1-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:80c421e07973a89fbdd93e6f2003c17d20b69010458d3a8e37fb47874bd67d51"}, + {file = "websockets-13.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:82d0ba76371769d6a4e56f7e83bb8e81846d17a6190971e38b5de108bde9b0d7"}, + {file = "websockets-13.1-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e9875a0143f07d74dc5e1ded1c4581f0d9f7ab86c78994e2ed9e95050073c94d"}, + {file = "websockets-13.1-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a11e38ad8922c7961447f35c7b17bffa15de4d17c70abd07bfbe12d6faa3e027"}, + {file = "websockets-13.1-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:4059f790b6ae8768471cddb65d3c4fe4792b0ab48e154c9f0a04cefaabcd5978"}, + {file = "websockets-13.1-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:25c35bf84bf7c7369d247f0b8cfa157f989862c49104c5cf85cb5436a641d93e"}, + {file = "websockets-13.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:83f91d8a9bb404b8c2c41a707ac7f7f75b9442a0a876df295de27251a856ad09"}, + {file = "websockets-13.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7a43cfdcddd07f4ca2b1afb459824dd3c6d53a51410636a2c7fc97b9a8cf4842"}, + {file = "websockets-13.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:48a2ef1381632a2f0cb4efeff34efa97901c9fbc118e01951ad7cfc10601a9bb"}, + {file = "websockets-13.1-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:459bf774c754c35dbb487360b12c5727adab887f1622b8aed5755880a21c4a20"}, + {file = "websockets-13.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:95858ca14a9f6fa8413d29e0a585b31b278388aa775b8a81fa24830123874678"}, + {file = "websockets-13.1-py3-none-any.whl", hash = "sha256:a9a396a6ad26130cdae92ae10c36af09d9bfe6cafe69670fd3b6da9b07b4044f"}, + {file = "websockets-13.1.tar.gz", hash = "sha256:a3b3366087c1bc0a2795111edcadddb8b3b59509d5db5d7ea3fdd69f954a8878"}, +] + +[[package]] +name = "yarl" +version = "1.22.0" +description = "Yet another URL library" +optional = false +python-versions = ">=3.9" +files = [ + {file = "yarl-1.22.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:c7bd6683587567e5a49ee6e336e0612bec8329be1b7d4c8af5687dcdeb67ee1e"}, + {file = "yarl-1.22.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5cdac20da754f3a723cceea5b3448e1a2074866406adeb4ef35b469d089adb8f"}, + {file = "yarl-1.22.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:07a524d84df0c10f41e3ee918846e1974aba4ec017f990dc735aad487a0bdfdf"}, + {file = "yarl-1.22.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e1b329cb8146d7b736677a2440e422eadd775d1806a81db2d4cded80a48efc1a"}, + {file = "yarl-1.22.0-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:75976c6945d85dbb9ee6308cd7ff7b1fb9409380c82d6119bd778d8fcfe2931c"}, + {file = "yarl-1.22.0-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:80ddf7a5f8c86cb3eb4bc9028b07bbbf1f08a96c5c0bc1244be5e8fefcb94147"}, + {file = "yarl-1.22.0-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d332fc2e3c94dad927f2112395772a4e4fedbcf8f80efc21ed7cdfae4d574fdb"}, + {file = "yarl-1.22.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0cf71bf877efeac18b38d3930594c0948c82b64547c1cf420ba48722fe5509f6"}, + {file = "yarl-1.22.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:663e1cadaddae26be034a6ab6072449a8426ddb03d500f43daf952b74553bba0"}, + {file = "yarl-1.22.0-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:6dcbb0829c671f305be48a7227918cfcd11276c2d637a8033a99a02b67bf9eda"}, + {file = "yarl-1.22.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:f0d97c18dfd9a9af4490631905a3f131a8e4c9e80a39353919e2cfed8f00aedc"}, + {file = "yarl-1.22.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:437840083abe022c978470b942ff832c3940b2ad3734d424b7eaffcd07f76737"}, + {file = "yarl-1.22.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:a899cbd98dce6f5d8de1aad31cb712ec0a530abc0a86bd6edaa47c1090138467"}, + {file = "yarl-1.22.0-cp310-cp310-win32.whl", hash = "sha256:595697f68bd1f0c1c159fcb97b661fc9c3f5db46498043555d04805430e79bea"}, + {file = "yarl-1.22.0-cp310-cp310-win_amd64.whl", hash = "sha256:cb95a9b1adaa48e41815a55ae740cfda005758104049a640a398120bf02515ca"}, + {file = "yarl-1.22.0-cp310-cp310-win_arm64.whl", hash = "sha256:b85b982afde6df99ecc996990d4ad7ccbdbb70e2a4ba4de0aecde5922ba98a0b"}, + {file = "yarl-1.22.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:1ab72135b1f2db3fed3997d7e7dc1b80573c67138023852b6efb336a5eae6511"}, + {file = "yarl-1.22.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:669930400e375570189492dc8d8341301578e8493aec04aebc20d4717f899dd6"}, + {file = "yarl-1.22.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:792a2af6d58177ef7c19cbf0097aba92ca1b9cb3ffdd9c7470e156c8f9b5e028"}, + {file = "yarl-1.22.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3ea66b1c11c9150f1372f69afb6b8116f2dd7286f38e14ea71a44eee9ec51b9d"}, + {file = "yarl-1.22.0-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3e2daa88dc91870215961e96a039ec73e4937da13cf77ce17f9cad0c18df3503"}, + {file = "yarl-1.22.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ba440ae430c00eee41509353628600212112cd5018d5def7e9b05ea7ac34eb65"}, + {file = "yarl-1.22.0-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:e6438cc8f23a9c1478633d216b16104a586b9761db62bfacb6425bac0a36679e"}, + {file = "yarl-1.22.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4c52a6e78aef5cf47a98ef8e934755abf53953379b7d53e68b15ff4420e6683d"}, + {file = "yarl-1.22.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:3b06bcadaac49c70f4c88af4ffcfbe3dc155aab3163e75777818092478bcbbe7"}, + {file = "yarl-1.22.0-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:6944b2dc72c4d7f7052683487e3677456050ff77fcf5e6204e98caf785ad1967"}, + {file = "yarl-1.22.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:d5372ca1df0f91a86b047d1277c2aaf1edb32d78bbcefffc81b40ffd18f027ed"}, + {file = "yarl-1.22.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:51af598701f5299012b8416486b40fceef8c26fc87dc6d7d1f6fc30609ea0aa6"}, + {file = "yarl-1.22.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b266bd01fedeffeeac01a79ae181719ff848a5a13ce10075adbefc8f1daee70e"}, + {file = "yarl-1.22.0-cp311-cp311-win32.whl", hash = "sha256:a9b1ba5610a4e20f655258d5a1fdc7ebe3d837bb0e45b581398b99eb98b1f5ca"}, + {file = "yarl-1.22.0-cp311-cp311-win_amd64.whl", hash = "sha256:078278b9b0b11568937d9509b589ee83ef98ed6d561dfe2020e24a9fd08eaa2b"}, + {file = "yarl-1.22.0-cp311-cp311-win_arm64.whl", hash = "sha256:b6a6f620cfe13ccec221fa312139135166e47ae169f8253f72a0abc0dae94376"}, + {file = "yarl-1.22.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e340382d1afa5d32b892b3ff062436d592ec3d692aeea3bef3a5cfe11bbf8c6f"}, + {file = "yarl-1.22.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f1e09112a2c31ffe8d80be1b0988fa6a18c5d5cad92a9ffbb1c04c91bfe52ad2"}, + {file = "yarl-1.22.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:939fe60db294c786f6b7c2d2e121576628468f65453d86b0fe36cb52f987bd74"}, + {file = "yarl-1.22.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e1651bf8e0398574646744c1885a41198eba53dc8a9312b954073f845c90a8df"}, + {file = "yarl-1.22.0-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:b8a0588521a26bf92a57a1705b77b8b59044cdceccac7151bd8d229e66b8dedb"}, + {file = "yarl-1.22.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:42188e6a615c1a75bcaa6e150c3fe8f3e8680471a6b10150c5f7e83f47cc34d2"}, + {file = "yarl-1.22.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f6d2cb59377d99718913ad9a151030d6f83ef420a2b8f521d94609ecc106ee82"}, + {file = "yarl-1.22.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:50678a3b71c751d58d7908edc96d332af328839eea883bb554a43f539101277a"}, + {file = "yarl-1.22.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1e8fbaa7cec507aa24ea27a01456e8dd4b6fab829059b69844bd348f2d467124"}, + {file = "yarl-1.22.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:433885ab5431bc3d3d4f2f9bd15bfa1614c522b0f1405d62c4f926ccd69d04fa"}, + {file = "yarl-1.22.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:b790b39c7e9a4192dc2e201a282109ed2985a1ddbd5ac08dc56d0e121400a8f7"}, + {file = "yarl-1.22.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:31f0b53913220599446872d757257be5898019c85e7971599065bc55065dc99d"}, + {file = "yarl-1.22.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a49370e8f711daec68d09b821a34e1167792ee2d24d405cbc2387be4f158b520"}, + {file = "yarl-1.22.0-cp312-cp312-win32.whl", hash = "sha256:70dfd4f241c04bd9239d53b17f11e6ab672b9f1420364af63e8531198e3f5fe8"}, + {file = "yarl-1.22.0-cp312-cp312-win_amd64.whl", hash = "sha256:8884d8b332a5e9b88e23f60bb166890009429391864c685e17bd73a9eda9105c"}, + {file = "yarl-1.22.0-cp312-cp312-win_arm64.whl", hash = "sha256:ea70f61a47f3cc93bdf8b2f368ed359ef02a01ca6393916bc8ff877427181e74"}, + {file = "yarl-1.22.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8dee9c25c74997f6a750cd317b8ca63545169c098faee42c84aa5e506c819b53"}, + {file = "yarl-1.22.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:01e73b85a5434f89fc4fe27dcda2aff08ddf35e4d47bbbea3bdcd25321af538a"}, + {file = "yarl-1.22.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:22965c2af250d20c873cdbee8ff958fb809940aeb2e74ba5f20aaf6b7ac8c70c"}, + {file = "yarl-1.22.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b4f15793aa49793ec8d1c708ab7f9eded1aa72edc5174cae703651555ed1b601"}, + {file = "yarl-1.22.0-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:e5542339dcf2747135c5c85f68680353d5cb9ffd741c0f2e8d832d054d41f35a"}, + {file = "yarl-1.22.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:5c401e05ad47a75869c3ab3e35137f8468b846770587e70d71e11de797d113df"}, + {file = "yarl-1.22.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:243dda95d901c733f5b59214d28b0120893d91777cb8aa043e6ef059d3cddfe2"}, + {file = "yarl-1.22.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bec03d0d388060058f5d291a813f21c011041938a441c593374da6077fe21b1b"}, + {file = "yarl-1.22.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:b0748275abb8c1e1e09301ee3cf90c8a99678a4e92e4373705f2a2570d581273"}, + {file = "yarl-1.22.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:47fdb18187e2a4e18fda2c25c05d8251a9e4a521edaed757fef033e7d8498d9a"}, + {file = "yarl-1.22.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:c7044802eec4524fde550afc28edda0dd5784c4c45f0be151a2d3ba017daca7d"}, + {file = "yarl-1.22.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:139718f35149ff544caba20fce6e8a2f71f1e39b92c700d8438a0b1d2a631a02"}, + {file = "yarl-1.22.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e1b51bebd221006d3d2f95fbe124b22b247136647ae5dcc8c7acafba66e5ee67"}, + {file = "yarl-1.22.0-cp313-cp313-win32.whl", hash = "sha256:d3e32536234a95f513bd374e93d717cf6b2231a791758de6c509e3653f234c95"}, + {file = "yarl-1.22.0-cp313-cp313-win_amd64.whl", hash = "sha256:47743b82b76d89a1d20b83e60d5c20314cbd5ba2befc9cda8f28300c4a08ed4d"}, + {file = "yarl-1.22.0-cp313-cp313-win_arm64.whl", hash = "sha256:5d0fcda9608875f7d052eff120c7a5da474a6796fe4d83e152e0e4d42f6d1a9b"}, + {file = "yarl-1.22.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:719ae08b6972befcba4310e49edb1161a88cdd331e3a694b84466bd938a6ab10"}, + {file = "yarl-1.22.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:47d8a5c446df1c4db9d21b49619ffdba90e77c89ec6e283f453856c74b50b9e3"}, + {file = "yarl-1.22.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:cfebc0ac8333520d2d0423cbbe43ae43c8838862ddb898f5ca68565e395516e9"}, + {file = "yarl-1.22.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4398557cbf484207df000309235979c79c4356518fd5c99158c7d38203c4da4f"}, + {file = "yarl-1.22.0-cp313-cp313t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:2ca6fd72a8cd803be290d42f2dec5cdcd5299eeb93c2d929bf060ad9efaf5de0"}, + {file = "yarl-1.22.0-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ca1f59c4e1ab6e72f0a23c13fca5430f889634166be85dbf1013683e49e3278e"}, + {file = "yarl-1.22.0-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:6c5010a52015e7c70f86eb967db0f37f3c8bd503a695a49f8d45700144667708"}, + {file = "yarl-1.22.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9d7672ecf7557476642c88497c2f8d8542f8e36596e928e9bcba0e42e1e7d71f"}, + {file = "yarl-1.22.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:3b7c88eeef021579d600e50363e0b6ee4f7f6f728cd3486b9d0f3ee7b946398d"}, + {file = "yarl-1.22.0-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:f4afb5c34f2c6fecdcc182dfcfc6af6cccf1aa923eed4d6a12e9d96904e1a0d8"}, + {file = "yarl-1.22.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:59c189e3e99a59cf8d83cbb31d4db02d66cda5a1a4374e8a012b51255341abf5"}, + {file = "yarl-1.22.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:5a3bf7f62a289fa90f1990422dc8dff5a458469ea71d1624585ec3a4c8d6960f"}, + {file = "yarl-1.22.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:de6b9a04c606978fdfe72666fa216ffcf2d1a9f6a381058d4378f8d7b1e5de62"}, + {file = "yarl-1.22.0-cp313-cp313t-win32.whl", hash = "sha256:1834bb90991cc2999f10f97f5f01317f99b143284766d197e43cd5b45eb18d03"}, + {file = "yarl-1.22.0-cp313-cp313t-win_amd64.whl", hash = "sha256:ff86011bd159a9d2dfc89c34cfd8aff12875980e3bd6a39ff097887520e60249"}, + {file = "yarl-1.22.0-cp313-cp313t-win_arm64.whl", hash = "sha256:7861058d0582b847bc4e3a4a4c46828a410bca738673f35a29ba3ca5db0b473b"}, + {file = "yarl-1.22.0-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:34b36c2c57124530884d89d50ed2c1478697ad7473efd59cfd479945c95650e4"}, + {file = "yarl-1.22.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:0dd9a702591ca2e543631c2a017e4a547e38a5c0f29eece37d9097e04a7ac683"}, + {file = "yarl-1.22.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:594fcab1032e2d2cc3321bb2e51271e7cd2b516c7d9aee780ece81b07ff8244b"}, + {file = "yarl-1.22.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f3d7a87a78d46a2e3d5b72587ac14b4c16952dd0887dbb051451eceac774411e"}, + {file = "yarl-1.22.0-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:852863707010316c973162e703bddabec35e8757e67fcb8ad58829de1ebc8590"}, + {file = "yarl-1.22.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:131a085a53bfe839a477c0845acf21efc77457ba2bcf5899618136d64f3303a2"}, + {file = "yarl-1.22.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:078a8aefd263f4d4f923a9677b942b445a2be970ca24548a8102689a3a8ab8da"}, + {file = "yarl-1.22.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bca03b91c323036913993ff5c738d0842fc9c60c4648e5c8d98331526df89784"}, + {file = "yarl-1.22.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:68986a61557d37bb90d3051a45b91fa3d5c516d177dfc6dd6f2f436a07ff2b6b"}, + {file = "yarl-1.22.0-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:4792b262d585ff0dff6bcb787f8492e40698443ec982a3568c2096433660c694"}, + {file = "yarl-1.22.0-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:ebd4549b108d732dba1d4ace67614b9545b21ece30937a63a65dd34efa19732d"}, + {file = "yarl-1.22.0-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:f87ac53513d22240c7d59203f25cc3beac1e574c6cd681bbfd321987b69f95fd"}, + {file = "yarl-1.22.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:22b029f2881599e2f1b06f8f1db2ee63bd309e2293ba2d566e008ba12778b8da"}, + {file = "yarl-1.22.0-cp314-cp314-win32.whl", hash = "sha256:6a635ea45ba4ea8238463b4f7d0e721bad669f80878b7bfd1f89266e2ae63da2"}, + {file = "yarl-1.22.0-cp314-cp314-win_amd64.whl", hash = "sha256:0d6e6885777af0f110b0e5d7e5dda8b704efed3894da26220b7f3d887b839a79"}, + {file = "yarl-1.22.0-cp314-cp314-win_arm64.whl", hash = "sha256:8218f4e98d3c10d683584cb40f0424f4b9fd6e95610232dd75e13743b070ee33"}, + {file = "yarl-1.22.0-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:45c2842ff0e0d1b35a6bf1cd6c690939dacb617a70827f715232b2e0494d55d1"}, + {file = "yarl-1.22.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:d947071e6ebcf2e2bee8fce76e10faca8f7a14808ca36a910263acaacef08eca"}, + {file = "yarl-1.22.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:334b8721303e61b00019474cc103bdac3d7b1f65e91f0bfedeec2d56dfe74b53"}, + {file = "yarl-1.22.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1e7ce67c34138a058fd092f67d07a72b8e31ff0c9236e751957465a24b28910c"}, + {file = "yarl-1.22.0-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:d77e1b2c6d04711478cb1c4ab90db07f1609ccf06a287d5607fcd90dc9863acf"}, + {file = "yarl-1.22.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c4647674b6150d2cae088fc07de2738a84b8bcedebef29802cf0b0a82ab6face"}, + {file = "yarl-1.22.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:efb07073be061c8f79d03d04139a80ba33cbd390ca8f0297aae9cce6411e4c6b"}, + {file = "yarl-1.22.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e51ac5435758ba97ad69617e13233da53908beccc6cfcd6c34bbed8dcbede486"}, + {file = "yarl-1.22.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:33e32a0dd0c8205efa8e83d04fc9f19313772b78522d1bdc7d9aed706bfd6138"}, + {file = "yarl-1.22.0-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:bf4a21e58b9cde0e401e683ebd00f6ed30a06d14e93f7c8fd059f8b6e8f87b6a"}, + {file = "yarl-1.22.0-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:e4b582bab49ac33c8deb97e058cd67c2c50dac0dd134874106d9c774fd272529"}, + {file = "yarl-1.22.0-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:0b5bcc1a9c4839e7e30b7b30dd47fe5e7e44fb7054ec29b5bb8d526aa1041093"}, + {file = "yarl-1.22.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:c0232bce2170103ec23c454e54a57008a9a72b5d1c3105dc2496750da8cfa47c"}, + {file = "yarl-1.22.0-cp314-cp314t-win32.whl", hash = "sha256:8009b3173bcd637be650922ac455946197d858b3630b6d8787aa9e5c4564533e"}, + {file = "yarl-1.22.0-cp314-cp314t-win_amd64.whl", hash = "sha256:9fb17ea16e972c63d25d4a97f016d235c78dd2344820eb35bc034bc32012ee27"}, + {file = "yarl-1.22.0-cp314-cp314t-win_arm64.whl", hash = "sha256:9f6d73c1436b934e3f01df1e1b21ff765cd1d28c77dfb9ace207f746d4610ee1"}, + {file = "yarl-1.22.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:3aa27acb6de7a23785d81557577491f6c38a5209a254d1191519d07d8fe51748"}, + {file = "yarl-1.22.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:af74f05666a5e531289cb1cc9c883d1de2088b8e5b4de48004e5ca8a830ac859"}, + {file = "yarl-1.22.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:62441e55958977b8167b2709c164c91a6363e25da322d87ae6dd9c6019ceecf9"}, + {file = "yarl-1.22.0-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b580e71cac3f8113d3135888770903eaf2f507e9421e5697d6ee6d8cd1c7f054"}, + {file = "yarl-1.22.0-cp39-cp39-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:e81fda2fb4a07eda1a2252b216aa0df23ebcd4d584894e9612e80999a78fd95b"}, + {file = "yarl-1.22.0-cp39-cp39-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:99b6fc1d55782461b78221e95fc357b47ad98b041e8e20f47c1411d0aacddc60"}, + {file = "yarl-1.22.0-cp39-cp39-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:088e4e08f033db4be2ccd1f34cf29fe994772fb54cfe004bbf54db320af56890"}, + {file = "yarl-1.22.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2e4e1f6f0b4da23e61188676e3ed027ef0baa833a2e633c29ff8530800edccba"}, + {file = "yarl-1.22.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:84fc3ec96fce86ce5aa305eb4aa9358279d1aa644b71fab7b8ed33fe3ba1a7ca"}, + {file = "yarl-1.22.0-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:5dbeefd6ca588b33576a01b0ad58aa934bc1b41ef89dee505bf2932b22ddffba"}, + {file = "yarl-1.22.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:14291620375b1060613f4aab9ebf21850058b6b1b438f386cc814813d901c60b"}, + {file = "yarl-1.22.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:a4fcfc8eb2c34148c118dfa02e6427ca278bfd0f3df7c5f99e33d2c0e81eae3e"}, + {file = "yarl-1.22.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:029866bde8d7b0878b9c160e72305bbf0a7342bcd20b9999381704ae03308dc8"}, + {file = "yarl-1.22.0-cp39-cp39-win32.whl", hash = "sha256:4dcc74149ccc8bba31ce1944acee24813e93cfdee2acda3c172df844948ddf7b"}, + {file = "yarl-1.22.0-cp39-cp39-win_amd64.whl", hash = "sha256:10619d9fdee46d20edc49d3479e2f8269d0779f1b031e6f7c2aa1c76be04b7ed"}, + {file = "yarl-1.22.0-cp39-cp39-win_arm64.whl", hash = "sha256:dd7afd3f8b0bfb4e0d9fc3c31bfe8a4ec7debe124cfd90619305def3c8ca8cd2"}, + {file = "yarl-1.22.0-py3-none-any.whl", hash = "sha256:1380560bdba02b6b6c90de54133c81c9f2a453dee9912fe58c1dcced1edb7cff"}, + {file = "yarl-1.22.0.tar.gz", hash = "sha256:bebf8557577d4401ba8bd9ff33906f1376c877aa78d1fe216ad01b4d6745af71"}, +] + +[package.dependencies] +idna = ">=2.0" +multidict = ">=4.0" +propcache = ">=0.2.1" + +[[package]] +name = "zipp" +version = "3.20.2" +description = "Backport of pathlib-compatible object wrapper for zip files" +optional = true +python-versions = ">=3.8" +files = [ + {file = "zipp-3.20.2-py3-none-any.whl", hash = "sha256:a817ac80d6cf4b23bf7f2828b7cabf326f15a001bea8b1f9b49631780ba28350"}, + {file = "zipp-3.20.2.tar.gz", hash = "sha256:bc9eb26f4506fda01b81bcde0ca78103b6e62f991b381fec825435c836edbc29"}, +] + +[package.extras] +check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)"] +cover = ["pytest-cov"] +doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +enabler = ["pytest-enabler (>=2.2)"] +test = ["big-O", "importlib-resources", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-itertools", "pytest (>=6,!=8.1.*)", "pytest-ignore-flaky"] +type = ["pytest-mypy"] + +[extras] +datastream = ["wasmtime", "websockets"] +rulesengine = ["wasmtime"] + [metadata] lock-version = "2.0" python-versions = "^3.8" -content-hash = "bcf31a142c86d9e556553c8c260a93b563ac64a043076dbd48b26111d422c26e" +content-hash = "7f8cd32f6180e0e5180d40c7376b4ba77af39b5647c1c2e9b93f49aea5eb3ac3"