From c915ebafac94f00d789b919b4a1c9d9dfb0782cb Mon Sep 17 00:00:00 2001 From: fern-api <115122769+fern-api[bot]@users.noreply.github.com> Date: Fri, 4 Apr 2025 21:19:18 +0000 Subject: [PATCH 1/3] SDK regeneration --- .github/workflows/ci.yml | 2 +- .gitignore | 1 + poetry.lock | 45 +- pyproject.toml | 10 +- reference.md | 252 +-- requirements.txt | 4 + src/polytomic/__init__.py | 3 + src/polytomic/bulk_sync/client.py | 1011 ++++++++-- src/polytomic/bulk_sync/executions/client.py | 364 +++- src/polytomic/bulk_sync/schemas/client.py | 379 +++- ...2_create_bulk_sync_request_schemas_item.py | 1 - ...2_update_bulk_sync_request_schemas_item.py | 1 - src/polytomic/client.py | 62 +- src/polytomic/connections/client.py | 854 +++++++-- src/polytomic/core/__init__.py | 25 +- src/polytomic/core/client_wrapper.py | 20 +- src/polytomic/core/file.py | 45 +- src/polytomic/core/http_client.py | 94 +- src/polytomic/core/jsonable_encoder.py | 63 +- src/polytomic/core/pydantic_utilities.py | 274 ++- src/polytomic/core/query_encoder.py | 51 +- src/polytomic/core/request_options.py | 3 + src/polytomic/core/serialization.py | 271 +++ src/polytomic/events/client.py | 144 +- src/polytomic/identity/client.py | 82 +- src/polytomic/jobs/client.py | 116 +- src/polytomic/model_sync/client.py | 1620 ++++++++++++++--- src/polytomic/model_sync/executions/client.py | 320 +++- src/polytomic/models/client.py | 955 ++++++++-- src/polytomic/organization/client.py | 370 +++- src/polytomic/permissions/client.py | 9 +- src/polytomic/permissions/policies/client.py | 501 ++++- src/polytomic/permissions/roles/client.py | 470 ++++- src/polytomic/query_runner/client.py | 224 ++- src/polytomic/schemas/client.py | 392 +++- src/polytomic/types/activate_sync_envelope.py | 32 +- src/polytomic/types/activate_sync_input.py | 32 +- src/polytomic/types/activate_sync_output.py | 32 +- src/polytomic/types/api_error.py | 34 +- src/polytomic/types/api_key_response.py | 32 +- .../types/api_key_response_envelope.py | 32 +- src/polytomic/types/bulk_field.py | 32 +- src/polytomic/types/bulk_filter.py | 36 +- src/polytomic/types/bulk_itemized_schedule.py | 41 +- .../bulk_multi_schedule_configuration.py | 39 +- src/polytomic/types/bulk_schedule.py | 39 +- src/polytomic/types/bulk_schema.py | 33 +- src/polytomic/types/bulk_schema_envelope.py | 32 +- .../types/bulk_sync_canceled_event.py | 32 +- .../types/bulk_sync_completed_event.py | 32 +- .../bulk_sync_completed_with_error_event.py | 32 +- src/polytomic/types/bulk_sync_dest.py | 34 +- .../types/bulk_sync_dest_envelope.py | 32 +- src/polytomic/types/bulk_sync_execution.py | 35 +- .../types/bulk_sync_execution_envelope.py | 32 +- .../types/bulk_sync_execution_status.py | 43 +- src/polytomic/types/bulk_sync_failed_event.py | 32 +- .../types/bulk_sync_list_envelope.py | 35 +- src/polytomic/types/bulk_sync_response.py | 49 +- .../types/bulk_sync_response_envelope.py | 35 +- .../types/bulk_sync_running_event.py | 32 +- .../types/bulk_sync_schema_execution.py | 39 +- .../bulk_sync_schema_execution_status.py | 41 +- src/polytomic/types/bulk_sync_source.py | 34 +- .../types/bulk_sync_source_envelope.py | 32 +- .../types/bulk_sync_source_schema_envelope.py | 32 +- .../types/bulk_sync_source_status.py | 33 +- .../types/bulk_sync_source_status_envelope.py | 32 +- .../types/bulk_sync_status_envelope.py | 32 +- .../types/bulk_sync_status_response.py | 33 +- src/polytomic/types/common_output_actor.py | 32 +- src/polytomic/types/configuration_value.py | 34 +- src/polytomic/types/connect_card_response.py | 36 +- .../types/connect_card_response_envelope.py | 32 +- .../connection_list_response_envelope.py | 32 +- src/polytomic/types/connection_meta.py | 34 +- .../types/connection_meta_response.py | 32 +- .../types/connection_parameter_value.py | 34 +- .../types/connection_parameter_values_resp.py | 32 +- ...tion_parameter_values_response_envelope.py | 32 +- .../types/connection_response_envelope.py | 32 +- .../types/connection_response_schema.py | 36 +- src/polytomic/types/connection_type.py | 40 +- .../connection_type_response_envelope.py | 32 +- src/polytomic/types/connection_type_schema.py | 32 +- .../create_connection_response_envelope.py | 32 +- .../create_connection_response_schema.py | 38 +- src/polytomic/types/create_model_request.py | 36 +- src/polytomic/types/enrichment.py | 38 +- src/polytomic/types/event.py | 33 +- src/polytomic/types/event_body.py | 15 +- src/polytomic/types/event_types_envelope.py | 32 +- src/polytomic/types/events_envelope.py | 32 +- src/polytomic/types/execution_counts.py | 32 +- src/polytomic/types/execution_log_response.py | 33 +- .../types/execution_logs_response_envelope.py | 32 +- src/polytomic/types/field_configuration.py | 36 +- src/polytomic/types/filter.py | 38 +- .../types/get_connection_meta_envelope.py | 32 +- .../types/get_execution_response_envelope.py | 32 +- .../types/get_execution_response_schema.py | 33 +- .../types/get_identity_response_envelope.py | 32 +- .../types/get_identity_response_schema.py | 32 +- .../get_model_sync_source_meta_envelope.py | 32 +- src/polytomic/types/identity.py | 34 +- src/polytomic/types/identity_function.py | 32 +- src/polytomic/types/job_response.py | 34 +- src/polytomic/types/job_response_envelope.py | 32 +- src/polytomic/types/jsonschema_definitions.py | 1 - src/polytomic/types/jsonschema_form.py | 2 +- src/polytomic/types/jsonschema_schema.py | 154 +- src/polytomic/types/label_label.py | 2 +- src/polytomic/types/list_bulk_schema.py | 32 +- ...ist_bulk_sync_execution_status_envelope.py | 32 +- .../list_bulk_sync_executions_envelope.py | 32 +- .../types/list_execution_response_envelope.py | 32 +- .../list_model_sync_response_envelope.py | 32 +- .../types/list_policies_response_envelope.py | 32 +- src/polytomic/types/list_users_envelope.py | 32 +- src/polytomic/types/mode.py | 32 +- src/polytomic/types/model_field.py | 34 +- src/polytomic/types/model_field_response.py | 32 +- .../types/model_list_response_envelope.py | 32 +- .../types/model_model_field_request.py | 32 +- src/polytomic/types/model_relation.py | 38 +- src/polytomic/types/model_relation_to.py | 32 +- src/polytomic/types/model_response.py | 37 +- .../types/model_response_envelope.py | 34 +- src/polytomic/types/model_sample.py | 32 +- .../types/model_sample_response_envelope.py | 34 +- src/polytomic/types/model_sync_field.py | 40 +- src/polytomic/types/model_sync_response.py | 37 +- .../types/model_sync_response_envelope.py | 32 +- .../types/model_sync_source_meta_response.py | 32 +- src/polytomic/types/organization.py | 32 +- src/polytomic/types/organization_envelope.py | 32 +- src/polytomic/types/organizations_envelope.py | 32 +- src/polytomic/types/override.py | 40 +- src/polytomic/types/pagination.py | 36 +- src/polytomic/types/pick_value.py | 32 +- src/polytomic/types/policy_action.py | 32 +- src/polytomic/types/policy_response.py | 32 +- .../types/policy_response_envelope.py | 32 +- src/polytomic/types/relation.py | 38 +- src/polytomic/types/relation_to.py | 32 +- src/polytomic/types/rest_err_response.py | 40 +- .../types/role_list_response_envelope.py | 32 +- src/polytomic/types/role_response.py | 32 +- src/polytomic/types/role_response_envelope.py | 32 +- src/polytomic/types/run_after.py | 32 +- src/polytomic/types/schedule.py | 36 +- .../types/schedule_option_response.py | 32 +- .../schedule_option_response_envelope.py | 32 +- .../types/schedule_schedule_option.py | 32 +- src/polytomic/types/schema.py | 32 +- src/polytomic/types/schema_association.py | 32 +- src/polytomic/types/schema_configuration.py | 39 +- src/polytomic/types/schema_field.py | 38 +- .../types/schema_records_response_envelope.py | 34 +- src/polytomic/types/source.py | 32 +- src/polytomic/types/source_meta.py | 34 +- .../start_model_sync_response_envelope.py | 32 +- .../types/start_model_sync_response_schema.py | 33 +- src/polytomic/types/supported_bulk_mode.py | 32 +- src/polytomic/types/supported_mode.py | 38 +- src/polytomic/types/sync_canceled_event.py | 32 +- src/polytomic/types/sync_completed_event.py | 32 +- .../types/sync_completed_with_errors_event.py | 32 +- .../types/sync_destination_properties.py | 32 +- src/polytomic/types/sync_failed_event.py | 32 +- src/polytomic/types/sync_running_event.py | 32 +- src/polytomic/types/sync_status_envelope.py | 32 +- src/polytomic/types/sync_status_response.py | 33 +- src/polytomic/types/target.py | 36 +- src/polytomic/types/target_field.py | 32 +- src/polytomic/types/target_object.py | 38 +- src/polytomic/types/target_response.py | 35 +- .../types/target_response_envelope.py | 32 +- src/polytomic/types/types_type.py | 2 +- src/polytomic/types/user.py | 32 +- src/polytomic/types/user_envelope.py | 32 +- .../types/v_2_enricher_configuration.py | 2 +- ...richment_input_fields_response_envelope.py | 32 +- ...ng_github_com_invopop_jsonschema_schema.py | 2 +- src/polytomic/types/v_2_sample_record.py | 2 +- .../v_2_schema_configuration_fields_item.py | 1 - .../types/v_4_bulk_sync_execution_logs.py | 2 +- .../v_4_bulk_sync_execution_logs_envelope.py | 32 +- .../types/v_4_export_sync_logs_envelope.py | 34 +- .../types/v_4_export_sync_logs_response.py | 32 +- .../types/v_4_query_results_envelope.py | 34 +- src/polytomic/types/v_4_run_query_envelope.py | 32 +- src/polytomic/types/v_4_run_query_result.py | 42 +- .../v_4_target_objects_response_envelope.py | 32 +- src/polytomic/types/webhook.py | 33 +- src/polytomic/types/webhook_envelope.py | 32 +- src/polytomic/types/webhook_list_envelope.py | 32 +- src/polytomic/users/client.py | 488 ++++- src/polytomic/version.py | 1 - src/polytomic/webhooks/client.py | 394 +++- tests/custom/test_client.py | 1 + tests/utils/__init__.py | 2 + tests/utils/assets/models/__init__.py | 21 + tests/utils/assets/models/circle.py | 11 + tests/utils/assets/models/color.py | 7 + .../assets/models/object_with_defaults.py | 16 + .../models/object_with_optional_field.py | 34 + tests/utils/assets/models/shape.py | 26 + tests/utils/assets/models/square.py | 11 + .../assets/models/undiscriminated_shape.py | 9 + tests/utils/test_http_client.py | 14 + tests/utils/test_query_encoding.py | 40 +- tests/utils/test_serialization.py | 72 + 213 files changed, 10381 insertions(+), 5078 deletions(-) create mode 100644 requirements.txt create mode 100644 src/polytomic/core/serialization.py create mode 100644 tests/utils/__init__.py create mode 100644 tests/utils/assets/models/__init__.py create mode 100644 tests/utils/assets/models/circle.py create mode 100644 tests/utils/assets/models/color.py create mode 100644 tests/utils/assets/models/object_with_defaults.py create mode 100644 tests/utils/assets/models/object_with_optional_field.py create mode 100644 tests/utils/assets/models/shape.py create mode 100644 tests/utils/assets/models/square.py create mode 100644 tests/utils/assets/models/undiscriminated_shape.py create mode 100644 tests/utils/test_serialization.py diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index bb1b2d3..fa41c1f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -34,7 +34,7 @@ jobs: run: poetry install - name: Test - run: poetry run pytest ./tests/custom/ + run: poetry run pytest -rP . publish: needs: [compile, test] diff --git a/.gitignore b/.gitignore index 42cb863..0da665f 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ dist/ .mypy_cache/ __pycache__/ poetry.toml +.ruff_cache/ diff --git a/poetry.lock b/poetry.lock index 1cfdc5e..d1637e3 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand. +# This file is automatically @generated by Poetry 1.8.5 and should not be changed by hand. [[package]] name = "annotated-types" @@ -144,13 +144,13 @@ all = ["flake8 (>=7.1.1)", "mypy (>=1.11.2)", "pytest (>=8.3.2)", "ruff (>=0.6.2 [[package]] name = "iniconfig" -version = "2.0.0" +version = "2.1.0" description = "brain-dead simple config-ini parsing" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"}, - {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, + {file = "iniconfig-2.1.0-py3-none-any.whl", hash = "sha256:9deba5723312380e77435581c6bf4935c94cbfab9b1ed33ef8d238ea168eb760"}, + {file = "iniconfig-2.1.0.tar.gz", hash = "sha256:3abbd2e30b36733fee78f9c7f7308f2d0050e88f0087fd25c2645f63c773e1c7"}, ] [[package]] @@ -422,6 +422,33 @@ files = [ [package.dependencies] six = ">=1.5" +[[package]] +name = "ruff" +version = "0.5.7" +description = "An extremely fast Python linter and code formatter, written in Rust." +optional = false +python-versions = ">=3.7" +files = [ + {file = "ruff-0.5.7-py3-none-linux_armv6l.whl", hash = "sha256:548992d342fc404ee2e15a242cdbea4f8e39a52f2e7752d0e4cbe88d2d2f416a"}, + {file = "ruff-0.5.7-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:00cc8872331055ee017c4f1071a8a31ca0809ccc0657da1d154a1d2abac5c0be"}, + {file = "ruff-0.5.7-py3-none-macosx_11_0_arm64.whl", hash = "sha256:eaf3d86a1fdac1aec8a3417a63587d93f906c678bb9ed0b796da7b59c1114a1e"}, + {file = "ruff-0.5.7-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a01c34400097b06cf8a6e61b35d6d456d5bd1ae6961542de18ec81eaf33b4cb8"}, + {file = "ruff-0.5.7-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fcc8054f1a717e2213500edaddcf1dbb0abad40d98e1bd9d0ad364f75c763eea"}, + {file = "ruff-0.5.7-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7f70284e73f36558ef51602254451e50dd6cc479f8b6f8413a95fcb5db4a55fc"}, + {file = "ruff-0.5.7-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:a78ad870ae3c460394fc95437d43deb5c04b5c29297815a2a1de028903f19692"}, + {file = "ruff-0.5.7-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9ccd078c66a8e419475174bfe60a69adb36ce04f8d4e91b006f1329d5cd44bcf"}, + {file = "ruff-0.5.7-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7e31c9bad4ebf8fdb77b59cae75814440731060a09a0e0077d559a556453acbb"}, + {file = "ruff-0.5.7-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8d796327eed8e168164346b769dd9a27a70e0298d667b4ecee6877ce8095ec8e"}, + {file = "ruff-0.5.7-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:4a09ea2c3f7778cc635e7f6edf57d566a8ee8f485f3c4454db7771efb692c499"}, + {file = "ruff-0.5.7-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:a36d8dcf55b3a3bc353270d544fb170d75d2dff41eba5df57b4e0b67a95bb64e"}, + {file = "ruff-0.5.7-py3-none-musllinux_1_2_i686.whl", hash = "sha256:9369c218f789eefbd1b8d82a8cf25017b523ac47d96b2f531eba73770971c9e5"}, + {file = "ruff-0.5.7-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:b88ca3db7eb377eb24fb7c82840546fb7acef75af4a74bd36e9ceb37a890257e"}, + {file = "ruff-0.5.7-py3-none-win32.whl", hash = "sha256:33d61fc0e902198a3e55719f4be6b375b28f860b09c281e4bdbf783c0566576a"}, + {file = "ruff-0.5.7-py3-none-win_amd64.whl", hash = "sha256:083bbcbe6fadb93cd86709037acc510f86eed5a314203079df174c40bbbca6b3"}, + {file = "ruff-0.5.7-py3-none-win_arm64.whl", hash = "sha256:2dca26154ff9571995107221d0aeaad0e75a77b5a682d6236cf89a58c70b76f4"}, + {file = "ruff-0.5.7.tar.gz", hash = "sha256:8dfc0a458797f5d9fb622dd0efc52d796f23f0a1493a9527f4e49a550ae9a7e5"}, +] + [[package]] name = "six" version = "1.17.0" @@ -498,16 +525,16 @@ files = [ [[package]] name = "typing-extensions" -version = "4.12.2" +version = "4.13.1" description = "Backported and Experimental Type Hints for Python 3.8+" optional = false python-versions = ">=3.8" files = [ - {file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"}, - {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"}, + {file = "typing_extensions-4.13.1-py3-none-any.whl", hash = "sha256:4b6cf02909eb5495cfbc3f6e8fd49217e6cc7944e145cdda8caa3734777f9e69"}, + {file = "typing_extensions-4.13.1.tar.gz", hash = "sha256:98795af00fb9640edec5b8e31fc647597b4691f099ad75f469a2616be1a76dff"}, ] [metadata] lock-version = "2.0" python-versions = "^3.8" -content-hash = "7fa2085bd251148908cf9a89f13b158fe85ccb037bb44614ae5f150ceecee53c" +content-hash = "6f6c191c1028d17a97fdfa84cedfd3cef94b5d63d98b8c1d333b3398eeea9055" diff --git a/pyproject.toml b/pyproject.toml index cc11629..c2298de 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,9 @@ +[project] +name = "polytomic" + [tool.poetry] name = "polytomic" -version = "1.11.2" +version = "1.11.3" description = "" readme = "README.md" authors = [] @@ -35,6 +38,7 @@ Repository = 'https://github.com/polytomic/polytomic-python' python = "^3.8" httpx = ">=0.21.2" pydantic = ">= 1.9.2" +pydantic-core = "^2.18.2" typing_extensions = ">= 4.0.0" [tool.poetry.dev-dependencies] @@ -43,6 +47,7 @@ pytest = "^7.4.0" pytest-asyncio = "^0.23.5" python-dateutil = "^2.9.0" types-python-dateutil = "^2.9.0.20240316" +ruff = "^0.5.6" [tool.pytest.ini_options] testpaths = [ "tests" ] @@ -51,6 +56,9 @@ asyncio_mode = "auto" [tool.mypy] plugins = ["pydantic.mypy"] +[tool.ruff] +line-length = 120 + [build-system] requires = ["poetry-core"] diff --git a/reference.md b/reference.md index 02f0be1..8986bb1 100644 --- a/reference.md +++ b/reference.md @@ -13,7 +13,7 @@
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -70,8 +70,7 @@ client.bulk_sync.list(
```python -from polytomic import BulkSchedule -from polytomic.client import Polytomic +from polytomic import BulkSchedule, Polytomic client = Polytomic( version="YOUR_VERSION", @@ -164,7 +163,7 @@ client.bulk_sync.create(
-**destination_configuration:** `typing.Optional[typing.Dict[str, typing.Any]]` +**destination_configuration:** `typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]]`
@@ -220,7 +219,7 @@ client.bulk_sync.create(
-**source_configuration:** `typing.Optional[typing.Dict[str, typing.Any]]` +**source_configuration:** `typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]]`
@@ -253,7 +252,7 @@ client.bulk_sync.create(
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -335,8 +334,7 @@ client.bulk_sync.get(
```python -from polytomic import BulkSchedule -from polytomic.client import Polytomic +from polytomic import BulkSchedule, Polytomic client = Polytomic( version="YOUR_VERSION", @@ -438,7 +436,7 @@ client.bulk_sync.update(
-**destination_configuration:** `typing.Optional[typing.Dict[str, typing.Any]]` +**destination_configuration:** `typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]]`
@@ -494,7 +492,7 @@ client.bulk_sync.update(
-**source_configuration:** `typing.Optional[typing.Dict[str, typing.Any]]` +**source_configuration:** `typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]]`
@@ -527,7 +525,7 @@ client.bulk_sync.update(
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -593,7 +591,7 @@ client.bulk_sync.remove(
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -659,7 +657,7 @@ client.bulk_sync.activate(
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -748,7 +746,7 @@ client.bulk_sync.start(
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -805,7 +803,7 @@ client.bulk_sync.get_status(
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -871,7 +869,7 @@ client.bulk_sync.get_source(
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -929,7 +927,7 @@ client.bulk_sync.get_destination(
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -976,7 +974,7 @@ client.connections.get_types()
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -1033,7 +1031,7 @@ client.connections.get_connection_type_schema(
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -1080,7 +1078,7 @@ client.connections.list()
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -1112,7 +1110,7 @@ client.connections.create(
-**configuration:** `typing.Dict[str, typing.Any]` +**configuration:** `typing.Dict[str, typing.Optional[typing.Any]]`
@@ -1193,7 +1191,7 @@ client.connections.create(
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -1218,7 +1216,7 @@ client.connections.connect(
-**name:** `str` +**name:** `str` — Name of the new connection.
@@ -1226,7 +1224,7 @@ client.connections.connect(
-**redirect_url:** `str` +**redirect_url:** `str` — URL to redirect to after connection is created.
@@ -1242,6 +1240,14 @@ client.connections.connect(
+**dark:** `typing.Optional[bool]` + +
+
+ +
+
+ **organization_id:** `typing.Optional[str]`
@@ -1250,7 +1256,7 @@ client.connections.connect(
-**type:** `typing.Optional[str]` +**type:** `typing.Optional[str]` — Connection type to create.
@@ -1258,7 +1264,7 @@ client.connections.connect(
-**whitelist:** `typing.Optional[typing.Sequence[str]]` +**whitelist:** `typing.Optional[typing.Sequence[str]]` — List of connection types which are allowed to be created. Ignored if type is set.
@@ -1291,7 +1297,7 @@ client.connections.connect(
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -1348,7 +1354,7 @@ client.connections.get(
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -1388,7 +1394,7 @@ client.connections.update(
-**configuration:** `typing.Dict[str, typing.Any]` +**configuration:** `typing.Dict[str, typing.Optional[typing.Any]]`
@@ -1469,7 +1475,7 @@ client.connections.update(
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -1535,7 +1541,7 @@ client.connections.remove(
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -1593,7 +1599,7 @@ client.connections.get_parameter_values(
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -1659,7 +1665,7 @@ client.query_runner.run_query(
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -1725,7 +1731,7 @@ client.query_runner.get_query(
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -1804,7 +1810,7 @@ For a given connection and enrichment configuration, provides the valid sets of
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -1869,7 +1875,7 @@ client.models.post(
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -1895,7 +1901,7 @@ client.models.preview(
-**configuration:** `typing.Dict[str, typing.Any]` +**configuration:** `typing.Dict[str, typing.Optional[typing.Any]]`
@@ -2024,7 +2030,7 @@ client.models.preview(
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -2071,7 +2077,7 @@ client.models.list()
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -2097,7 +2103,7 @@ client.models.create(
-**configuration:** `typing.Dict[str, typing.Any]` +**configuration:** `typing.Dict[str, typing.Optional[typing.Any]]`
@@ -2226,7 +2232,7 @@ client.models.create(
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -2291,7 +2297,7 @@ client.models.get(
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -2327,7 +2333,7 @@ client.models.update(
-**configuration:** `typing.Dict[str, typing.Any]` +**configuration:** `typing.Dict[str, typing.Optional[typing.Any]]`
@@ -2464,7 +2470,7 @@ client.models.update(
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -2543,7 +2549,7 @@ Returns sample records from the model. The first ten records that the source pro
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -2609,7 +2615,7 @@ client.models.sample(
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -2674,7 +2680,7 @@ client.model_sync.get_source(
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -2739,7 +2745,7 @@ client.model_sync.get_source_fields(
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -2812,7 +2818,7 @@ client.model_sync.get_target(
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -2887,7 +2893,7 @@ client.model_sync.get_target_fields(
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -2944,7 +2950,7 @@ client.model_sync.get_target_objects(
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -3018,8 +3024,7 @@ client.model_sync.list(
```python -from polytomic import ModelSyncField, Schedule, Target -from polytomic.client import Polytomic +from polytomic import ModelSyncField, Polytomic, Schedule, Target client = Polytomic( version="YOUR_VERSION", @@ -3134,6 +3139,14 @@ client.model_sync.create(
+**only_enrich_updates:** `typing.Optional[bool]` + +
+
+ +
+
+ **organization_id:** `typing.Optional[str]`
@@ -3166,6 +3179,14 @@ client.model_sync.create(
+**skip_initial_backfill:** `typing.Optional[bool]` + +
+
+ +
+
+ **sync_all_records:** `typing.Optional[bool]`
@@ -3199,7 +3220,7 @@ client.model_sync.create(
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -3246,7 +3267,7 @@ client.model_sync.get_schedule_options()
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -3303,8 +3324,7 @@ client.model_sync.get(
```python -from polytomic import ModelSyncField, Schedule, Target -from polytomic.client import Polytomic +from polytomic import ModelSyncField, Polytomic, Schedule, Target client = Polytomic( version="YOUR_VERSION", @@ -3428,6 +3448,14 @@ client.model_sync.update(
+**only_enrich_updates:** `typing.Optional[bool]` + +
+
+ +
+
+ **organization_id:** `typing.Optional[str]`
@@ -3460,6 +3488,14 @@ client.model_sync.update(
+**skip_initial_backfill:** `typing.Optional[bool]` + +
+
+ +
+
+ **sync_all_records:** `typing.Optional[bool]`
@@ -3493,7 +3529,7 @@ client.model_sync.update(
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -3550,7 +3586,7 @@ client.model_sync.remove(
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -3632,7 +3668,7 @@ client.model_sync.activate(
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -3705,7 +3741,7 @@ client.model_sync.start(
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -3763,7 +3799,7 @@ client.model_sync.get_status(
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -3820,7 +3856,7 @@ client.schemas.refresh(
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -3877,7 +3913,7 @@ client.schemas.get_status(
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -3943,7 +3979,7 @@ client.schemas.get(
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -4012,7 +4048,7 @@ client.schemas.get_records( ```python import datetime -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -4107,7 +4143,7 @@ client.events.list(
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -4155,7 +4191,7 @@ client.events.get_types()
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -4222,7 +4258,7 @@ client.jobs.get(
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -4286,7 +4322,7 @@ client.identity.get()
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -4349,7 +4385,7 @@ client.organization.list()
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -4462,7 +4498,7 @@ client.organization.create(
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -4535,7 +4571,7 @@ client.organization.get(
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -4657,7 +4693,7 @@ client.organization.update(
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -4731,7 +4767,7 @@ client.organization.remove(
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -4804,7 +4840,7 @@ client.users.list(
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -4894,7 +4930,7 @@ client.users.create(
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -4976,7 +5012,7 @@ client.users.get(
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -5075,7 +5111,7 @@ client.users.update(
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -5157,7 +5193,7 @@ client.users.remove(
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -5251,7 +5287,7 @@ Consult the [Events documentation](https://apidocs.polytomic.com/getting-started
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -5316,7 +5352,7 @@ Consult the [Events documentation](https://apidocs.polytomic.com/getting-started
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -5408,7 +5444,7 @@ Consult the [Events documentation](https://apidocs.polytomic.com/getting-started
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -5483,7 +5519,7 @@ Consult the [Events documentation](https://apidocs.polytomic.com/getting-started
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -5566,7 +5602,7 @@ client.webhooks.update(
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -5624,7 +5660,7 @@ client.webhooks.remove(
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -5698,7 +5734,7 @@ client.bulk_sync.executions.list_status(
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -5755,7 +5791,7 @@ client.bulk_sync.executions.list(
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -5821,7 +5857,7 @@ client.bulk_sync.executions.get(
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -5887,7 +5923,7 @@ client.bulk_sync.executions.get_logs(
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -5962,7 +5998,7 @@ client.bulk_sync.executions.export_logs(
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -6027,7 +6063,7 @@ client.bulk_sync.schemas.list(
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -6092,7 +6128,7 @@ client.bulk_sync.schemas.patch(
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -6158,7 +6194,7 @@ client.bulk_sync.schemas.get(
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -6273,7 +6309,7 @@ client.bulk_sync.schemas.update(
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -6330,7 +6366,7 @@ client.model_sync.executions.list(
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -6396,7 +6432,7 @@ client.model_sync.executions.get(
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -6471,7 +6507,7 @@ client.model_sync.executions.get_log_urls(
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -6556,7 +6592,7 @@ client.model_sync.executions.get_logs(
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -6603,7 +6639,7 @@ client.permissions.policies.list()
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -6676,7 +6712,7 @@ client.permissions.policies.create(
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -6733,7 +6769,7 @@ client.permissions.policies.get(
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -6815,7 +6851,7 @@ client.permissions.policies.update(
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -6873,7 +6909,7 @@ client.permissions.policies.remove(
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -6920,7 +6956,7 @@ client.permissions.roles.list()
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -6985,7 +7021,7 @@ client.permissions.roles.create(
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -7042,7 +7078,7 @@ client.permissions.roles.get(
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -7116,7 +7152,7 @@ client.permissions.roles.update(
```python -from polytomic.client import Polytomic +from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..f502f1b --- /dev/null +++ b/requirements.txt @@ -0,0 +1,4 @@ +httpx>=0.21.2 +pydantic>= 1.9.2 +pydantic-core==^2.18.2 +typing_extensions>= 4.0.0 diff --git a/src/polytomic/__init__.py b/src/polytomic/__init__.py index 66a8a70..5ca669e 100644 --- a/src/polytomic/__init__.py +++ b/src/polytomic/__init__.py @@ -204,6 +204,7 @@ webhooks, ) from .bulk_sync import V2CreateBulkSyncRequestSchemasItem, V2UpdateBulkSyncRequestSchemasItem +from .client import AsyncPolytomic, Polytomic from .environment import PolytomicEnvironment from .version import __version__ @@ -214,6 +215,7 @@ "ApiError", "ApiKeyResponse", "ApiKeyResponseEnvelope", + "AsyncPolytomic", "BadRequestError", "BulkDiscover", "BulkExecutionStatus", @@ -329,6 +331,7 @@ "PolicyAction", "PolicyResponse", "PolicyResponseEnvelope", + "Polytomic", "PolytomicEnvironment", "Relation", "RelationTo", diff --git a/src/polytomic/bulk_sync/client.py b/src/polytomic/bulk_sync/client.py index a9b452b..7163c90 100644 --- a/src/polytomic/bulk_sync/client.py +++ b/src/polytomic/bulk_sync/client.py @@ -1,38 +1,41 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt import typing +from ..core.client_wrapper import SyncClientWrapper +from .executions.client import ExecutionsClient +from .schemas.client import SchemasClient +from ..core.request_options import RequestOptions +from ..types.bulk_sync_list_envelope import BulkSyncListEnvelope +from ..core.pydantic_utilities import parse_obj_as +from ..errors.unauthorized_error import UnauthorizedError +from ..types.rest_err_response import RestErrResponse +from ..errors.internal_server_error import InternalServerError +from ..types.api_error import ApiError as types_api_error_ApiError from json.decoder import JSONDecodeError - from ..core.api_error import ApiError as core_api_error_ApiError -from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper -from ..core.jsonable_encoder import jsonable_encoder -from ..core.pydantic_utilities import pydantic_v1 -from ..core.request_options import RequestOptions +from ..types.bulk_schedule import BulkSchedule +from ..types.bulk_discover import BulkDiscover +import datetime as dt +from ..types.sync_mode import SyncMode +from .types.v_2_create_bulk_sync_request_schemas_item import V2CreateBulkSyncRequestSchemasItem +from ..types.bulk_sync_response_envelope import BulkSyncResponseEnvelope +from ..core.serialization import convert_and_respect_annotation_metadata from ..errors.bad_request_error import BadRequestError -from ..errors.conflict_error import ConflictError from ..errors.forbidden_error import ForbiddenError -from ..errors.internal_server_error import InternalServerError -from ..errors.not_found_error import NotFoundError -from ..errors.unauthorized_error import UnauthorizedError from ..errors.unprocessable_entity_error import UnprocessableEntityError +from ..core.jsonable_encoder import jsonable_encoder +from ..errors.not_found_error import NotFoundError +from .types.v_2_update_bulk_sync_request_schemas_item import V2UpdateBulkSyncRequestSchemasItem from ..types.activate_sync_envelope import ActivateSyncEnvelope -from ..types.api_error import ApiError as types_api_error_ApiError -from ..types.bulk_discover import BulkDiscover from ..types.bulk_fetch_mode import BulkFetchMode -from ..types.bulk_schedule import BulkSchedule -from ..types.bulk_sync_dest_envelope import BulkSyncDestEnvelope from ..types.bulk_sync_execution_envelope import BulkSyncExecutionEnvelope -from ..types.bulk_sync_list_envelope import BulkSyncListEnvelope -from ..types.bulk_sync_response_envelope import BulkSyncResponseEnvelope -from ..types.bulk_sync_source_envelope import BulkSyncSourceEnvelope +from ..errors.conflict_error import ConflictError from ..types.bulk_sync_status_envelope import BulkSyncStatusEnvelope -from ..types.rest_err_response import RestErrResponse -from ..types.sync_mode import SyncMode -from .executions.client import AsyncExecutionsClient, ExecutionsClient -from .schemas.client import AsyncSchemasClient, SchemasClient -from .types.v_2_create_bulk_sync_request_schemas_item import V2CreateBulkSyncRequestSchemasItem -from .types.v_2_update_bulk_sync_request_schemas_item import V2UpdateBulkSyncRequestSchemasItem +from ..types.bulk_sync_source_envelope import BulkSyncSourceEnvelope +from ..types.bulk_sync_dest_envelope import BulkSyncDestEnvelope +from ..core.client_wrapper import AsyncClientWrapper +from .executions.client import AsyncExecutionsClient +from .schemas.client import AsyncSchemasClient # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -62,7 +65,7 @@ def list( Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -73,16 +76,41 @@ def list( ) """ _response = self._client_wrapper.httpx_client.request( - "api/bulk/syncs", method="GET", params={"active": active}, request_options=request_options + "api/bulk/syncs", + method="GET", + params={ + "active": active, + }, + request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(BulkSyncListEnvelope, _response.json()) # type: ignore + return typing.cast( + BulkSyncListEnvelope, + parse_obj_as( + type_=BulkSyncListEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 500: raise InternalServerError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -100,14 +128,14 @@ def create( automatically_add_new_fields: typing.Optional[BulkDiscover] = OMIT, automatically_add_new_objects: typing.Optional[BulkDiscover] = OMIT, data_cutoff_timestamp: typing.Optional[dt.datetime] = OMIT, - destination_configuration: typing.Optional[typing.Dict[str, typing.Any]] = OMIT, + destination_configuration: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT, disable_record_timestamps: typing.Optional[bool] = OMIT, discover: typing.Optional[bool] = OMIT, mode: typing.Optional[SyncMode] = OMIT, organization_id: typing.Optional[str] = OMIT, policies: typing.Optional[typing.Sequence[str]] = OMIT, schemas: typing.Optional[typing.Sequence[V2CreateBulkSyncRequestSchemasItem]] = OMIT, - source_configuration: typing.Optional[typing.Dict[str, typing.Any]] = OMIT, + source_configuration: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> BulkSyncResponseEnvelope: """ @@ -129,7 +157,7 @@ def create( data_cutoff_timestamp : typing.Optional[dt.datetime] - destination_configuration : typing.Optional[typing.Dict[str, typing.Any]] + destination_configuration : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] disable_record_timestamps : typing.Optional[bool] @@ -145,7 +173,7 @@ def create( schemas : typing.Optional[typing.Sequence[V2CreateBulkSyncRequestSchemasItem]] List of schemas to sync; if omitted, all schemas will be selected for syncing. - source_configuration : typing.Optional[typing.Dict[str, typing.Any]] + source_configuration : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -157,8 +185,7 @@ def create( Examples -------- - from polytomic import BulkSchedule - from polytomic.client import Polytomic + from polytomic import BulkSchedule, Polytomic client = Polytomic( version="YOUR_VERSION", @@ -189,34 +216,79 @@ def create( "name": name, "organization_id": organization_id, "policies": policies, - "schedule": schedule, - "schemas": schemas, + "schedule": convert_and_respect_annotation_metadata( + object_=schedule, annotation=BulkSchedule, direction="write" + ), + "schemas": convert_and_respect_annotation_metadata( + object_=schemas, annotation=typing.Sequence[V2CreateBulkSyncRequestSchemasItem], direction="write" + ), "source_configuration": source_configuration, "source_connection_id": source_connection_id, }, + headers={ + "content-type": "application/json", + }, request_options=request_options, omit=OMIT, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(BulkSyncResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + BulkSyncResponseEnvelope, + parse_obj_as( + type_=BulkSyncResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 400: raise BadRequestError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 403: raise ForbiddenError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + typing.cast( + types_api_error_ApiError, + parse_obj_as( + type_=types_api_error_ApiError, # type: ignore + object_=_response.json(), + ), + ) ) if _response.status_code == 422: raise UnprocessableEntityError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -247,7 +319,7 @@ def get( Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -261,17 +333,39 @@ def get( _response = self._client_wrapper.httpx_client.request( f"api/bulk/syncs/{jsonable_encoder(id)}", method="GET", - params={"refresh_schemas": refresh_schemas}, + params={ + "refresh_schemas": refresh_schemas, + }, request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(BulkSyncResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + BulkSyncResponseEnvelope, + parse_obj_as( + type_=BulkSyncResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -290,14 +384,14 @@ def update( automatically_add_new_fields: typing.Optional[BulkDiscover] = OMIT, automatically_add_new_objects: typing.Optional[BulkDiscover] = OMIT, data_cutoff_timestamp: typing.Optional[dt.datetime] = OMIT, - destination_configuration: typing.Optional[typing.Dict[str, typing.Any]] = OMIT, + destination_configuration: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT, disable_record_timestamps: typing.Optional[bool] = OMIT, discover: typing.Optional[bool] = OMIT, mode: typing.Optional[SyncMode] = OMIT, organization_id: typing.Optional[str] = OMIT, policies: typing.Optional[typing.Sequence[str]] = OMIT, schemas: typing.Optional[typing.Sequence[V2UpdateBulkSyncRequestSchemasItem]] = OMIT, - source_configuration: typing.Optional[typing.Dict[str, typing.Any]] = OMIT, + source_configuration: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> BulkSyncResponseEnvelope: """ @@ -325,7 +419,7 @@ def update( data_cutoff_timestamp : typing.Optional[dt.datetime] - destination_configuration : typing.Optional[typing.Dict[str, typing.Any]] + destination_configuration : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] disable_record_timestamps : typing.Optional[bool] @@ -341,7 +435,7 @@ def update( schemas : typing.Optional[typing.Sequence[V2UpdateBulkSyncRequestSchemasItem]] List of schemas to sync; if omitted, all schemas will be selected for syncing. - source_configuration : typing.Optional[typing.Dict[str, typing.Any]] + source_configuration : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -353,8 +447,7 @@ def update( Examples -------- - from polytomic import BulkSchedule - from polytomic.client import Polytomic + from polytomic import BulkSchedule, Polytomic client = Polytomic( version="YOUR_VERSION", @@ -386,34 +479,79 @@ def update( "name": name, "organization_id": organization_id, "policies": policies, - "schedule": schedule, - "schemas": schemas, + "schedule": convert_and_respect_annotation_metadata( + object_=schedule, annotation=BulkSchedule, direction="write" + ), + "schemas": convert_and_respect_annotation_metadata( + object_=schemas, annotation=typing.Sequence[V2UpdateBulkSyncRequestSchemasItem], direction="write" + ), "source_configuration": source_configuration, "source_connection_id": source_connection_id, }, + headers={ + "content-type": "application/json", + }, request_options=request_options, omit=OMIT, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(BulkSyncResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + BulkSyncResponseEnvelope, + parse_obj_as( + type_=BulkSyncResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 400: raise BadRequestError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 403: raise ForbiddenError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -443,7 +581,7 @@ def remove( Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -457,25 +595,53 @@ def remove( _response = self._client_wrapper.httpx_client.request( f"api/bulk/syncs/{jsonable_encoder(id)}", method="DELETE", - params={"refresh_schemas": refresh_schemas}, + params={ + "refresh_schemas": refresh_schemas, + }, request_options=request_options, ) try: if 200 <= _response.status_code < 300: return if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 403: raise ForbiddenError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -502,7 +668,7 @@ def activate( Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -516,26 +682,60 @@ def activate( _response = self._client_wrapper.httpx_client.request( f"api/bulk/syncs/{jsonable_encoder(id)}/activate", method="POST", - json={"active": active}, + json={ + "active": active, + }, request_options=request_options, omit=OMIT, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(ActivateSyncEnvelope, _response.json()) # type: ignore + return typing.cast( + ActivateSyncEnvelope, + parse_obj_as( + type_=ActivateSyncEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 403: raise ForbiddenError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -575,7 +775,7 @@ def start( Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -588,22 +788,56 @@ def start( _response = self._client_wrapper.httpx_client.request( f"api/bulk/syncs/{jsonable_encoder(id)}/executions", method="POST", - json={"fetch_mode": fetch_mode, "resync": resync, "schemas": schemas, "test": test}, + json={ + "fetch_mode": fetch_mode, + "resync": resync, + "schemas": schemas, + "test": test, + }, + headers={ + "content-type": "application/json", + }, request_options=request_options, omit=OMIT, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(BulkSyncExecutionEnvelope, _response.json()) # type: ignore + return typing.cast( + BulkSyncExecutionEnvelope, + parse_obj_as( + type_=BulkSyncExecutionEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 400: raise BadRequestError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 409: raise ConflictError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -626,7 +860,7 @@ def get_status(self, id: str, *, request_options: typing.Optional[RequestOptions Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -637,20 +871,48 @@ def get_status(self, id: str, *, request_options: typing.Optional[RequestOptions ) """ _response = self._client_wrapper.httpx_client.request( - f"api/bulk/syncs/{jsonable_encoder(id)}/status", method="GET", request_options=request_options + f"api/bulk/syncs/{jsonable_encoder(id)}/status", + method="GET", + request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(BulkSyncStatusEnvelope, _response.json()) # type: ignore + return typing.cast( + BulkSyncStatusEnvelope, + parse_obj_as( + type_=BulkSyncStatusEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -681,7 +943,7 @@ def get_source( Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -695,25 +957,59 @@ def get_source( _response = self._client_wrapper.httpx_client.request( f"api/connections/{jsonable_encoder(id)}/bulksync/source", method="GET", - params={"include_fields": include_fields}, + params={ + "include_fields": include_fields, + }, request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(BulkSyncSourceEnvelope, _response.json()) # type: ignore + return typing.cast( + BulkSyncSourceEnvelope, + parse_obj_as( + type_=BulkSyncSourceEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 400: raise BadRequestError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -738,7 +1034,7 @@ def get_destination( Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -749,24 +1045,58 @@ def get_destination( ) """ _response = self._client_wrapper.httpx_client.request( - f"api/connections/{jsonable_encoder(id)}/bulksync/target", method="GET", request_options=request_options + f"api/connections/{jsonable_encoder(id)}/bulksync/target", + method="GET", + request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(BulkSyncDestEnvelope, _response.json()) # type: ignore + return typing.cast( + BulkSyncDestEnvelope, + parse_obj_as( + type_=BulkSyncDestEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 400: raise BadRequestError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 403: raise ForbiddenError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -800,7 +1130,7 @@ async def list( -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -817,16 +1147,41 @@ async def main() -> None: asyncio.run(main()) """ _response = await self._client_wrapper.httpx_client.request( - "api/bulk/syncs", method="GET", params={"active": active}, request_options=request_options + "api/bulk/syncs", + method="GET", + params={ + "active": active, + }, + request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(BulkSyncListEnvelope, _response.json()) # type: ignore + return typing.cast( + BulkSyncListEnvelope, + parse_obj_as( + type_=BulkSyncListEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 500: raise InternalServerError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -844,14 +1199,14 @@ async def create( automatically_add_new_fields: typing.Optional[BulkDiscover] = OMIT, automatically_add_new_objects: typing.Optional[BulkDiscover] = OMIT, data_cutoff_timestamp: typing.Optional[dt.datetime] = OMIT, - destination_configuration: typing.Optional[typing.Dict[str, typing.Any]] = OMIT, + destination_configuration: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT, disable_record_timestamps: typing.Optional[bool] = OMIT, discover: typing.Optional[bool] = OMIT, mode: typing.Optional[SyncMode] = OMIT, organization_id: typing.Optional[str] = OMIT, policies: typing.Optional[typing.Sequence[str]] = OMIT, schemas: typing.Optional[typing.Sequence[V2CreateBulkSyncRequestSchemasItem]] = OMIT, - source_configuration: typing.Optional[typing.Dict[str, typing.Any]] = OMIT, + source_configuration: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> BulkSyncResponseEnvelope: """ @@ -873,7 +1228,7 @@ async def create( data_cutoff_timestamp : typing.Optional[dt.datetime] - destination_configuration : typing.Optional[typing.Dict[str, typing.Any]] + destination_configuration : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] disable_record_timestamps : typing.Optional[bool] @@ -889,7 +1244,7 @@ async def create( schemas : typing.Optional[typing.Sequence[V2CreateBulkSyncRequestSchemasItem]] List of schemas to sync; if omitted, all schemas will be selected for syncing. - source_configuration : typing.Optional[typing.Dict[str, typing.Any]] + source_configuration : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -903,8 +1258,7 @@ async def create( -------- import asyncio - from polytomic import BulkSchedule - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic, BulkSchedule client = AsyncPolytomic( version="YOUR_VERSION", @@ -941,34 +1295,79 @@ async def main() -> None: "name": name, "organization_id": organization_id, "policies": policies, - "schedule": schedule, - "schemas": schemas, + "schedule": convert_and_respect_annotation_metadata( + object_=schedule, annotation=BulkSchedule, direction="write" + ), + "schemas": convert_and_respect_annotation_metadata( + object_=schemas, annotation=typing.Sequence[V2CreateBulkSyncRequestSchemasItem], direction="write" + ), "source_configuration": source_configuration, "source_connection_id": source_connection_id, }, + headers={ + "content-type": "application/json", + }, request_options=request_options, omit=OMIT, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(BulkSyncResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + BulkSyncResponseEnvelope, + parse_obj_as( + type_=BulkSyncResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 400: raise BadRequestError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 403: raise ForbiddenError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + typing.cast( + types_api_error_ApiError, + parse_obj_as( + type_=types_api_error_ApiError, # type: ignore + object_=_response.json(), + ), + ) ) if _response.status_code == 422: raise UnprocessableEntityError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -1001,7 +1400,7 @@ async def get( -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -1021,17 +1420,39 @@ async def main() -> None: _response = await self._client_wrapper.httpx_client.request( f"api/bulk/syncs/{jsonable_encoder(id)}", method="GET", - params={"refresh_schemas": refresh_schemas}, + params={ + "refresh_schemas": refresh_schemas, + }, request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(BulkSyncResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + BulkSyncResponseEnvelope, + parse_obj_as( + type_=BulkSyncResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -1050,14 +1471,14 @@ async def update( automatically_add_new_fields: typing.Optional[BulkDiscover] = OMIT, automatically_add_new_objects: typing.Optional[BulkDiscover] = OMIT, data_cutoff_timestamp: typing.Optional[dt.datetime] = OMIT, - destination_configuration: typing.Optional[typing.Dict[str, typing.Any]] = OMIT, + destination_configuration: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT, disable_record_timestamps: typing.Optional[bool] = OMIT, discover: typing.Optional[bool] = OMIT, mode: typing.Optional[SyncMode] = OMIT, organization_id: typing.Optional[str] = OMIT, policies: typing.Optional[typing.Sequence[str]] = OMIT, schemas: typing.Optional[typing.Sequence[V2UpdateBulkSyncRequestSchemasItem]] = OMIT, - source_configuration: typing.Optional[typing.Dict[str, typing.Any]] = OMIT, + source_configuration: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> BulkSyncResponseEnvelope: """ @@ -1085,7 +1506,7 @@ async def update( data_cutoff_timestamp : typing.Optional[dt.datetime] - destination_configuration : typing.Optional[typing.Dict[str, typing.Any]] + destination_configuration : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] disable_record_timestamps : typing.Optional[bool] @@ -1101,7 +1522,7 @@ async def update( schemas : typing.Optional[typing.Sequence[V2UpdateBulkSyncRequestSchemasItem]] List of schemas to sync; if omitted, all schemas will be selected for syncing. - source_configuration : typing.Optional[typing.Dict[str, typing.Any]] + source_configuration : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -1115,8 +1536,7 @@ async def update( -------- import asyncio - from polytomic import BulkSchedule - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic, BulkSchedule client = AsyncPolytomic( version="YOUR_VERSION", @@ -1154,34 +1574,79 @@ async def main() -> None: "name": name, "organization_id": organization_id, "policies": policies, - "schedule": schedule, - "schemas": schemas, + "schedule": convert_and_respect_annotation_metadata( + object_=schedule, annotation=BulkSchedule, direction="write" + ), + "schemas": convert_and_respect_annotation_metadata( + object_=schemas, annotation=typing.Sequence[V2UpdateBulkSyncRequestSchemasItem], direction="write" + ), "source_configuration": source_configuration, "source_connection_id": source_connection_id, }, + headers={ + "content-type": "application/json", + }, request_options=request_options, omit=OMIT, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(BulkSyncResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + BulkSyncResponseEnvelope, + parse_obj_as( + type_=BulkSyncResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 400: raise BadRequestError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 403: raise ForbiddenError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -1213,7 +1678,7 @@ async def remove( -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -1233,25 +1698,53 @@ async def main() -> None: _response = await self._client_wrapper.httpx_client.request( f"api/bulk/syncs/{jsonable_encoder(id)}", method="DELETE", - params={"refresh_schemas": refresh_schemas}, + params={ + "refresh_schemas": refresh_schemas, + }, request_options=request_options, ) try: if 200 <= _response.status_code < 300: return if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 403: raise ForbiddenError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -1280,7 +1773,7 @@ async def activate( -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -1300,26 +1793,60 @@ async def main() -> None: _response = await self._client_wrapper.httpx_client.request( f"api/bulk/syncs/{jsonable_encoder(id)}/activate", method="POST", - json={"active": active}, + json={ + "active": active, + }, request_options=request_options, omit=OMIT, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(ActivateSyncEnvelope, _response.json()) # type: ignore + return typing.cast( + ActivateSyncEnvelope, + parse_obj_as( + type_=ActivateSyncEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 403: raise ForbiddenError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -1361,7 +1888,7 @@ async def start( -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -1380,22 +1907,56 @@ async def main() -> None: _response = await self._client_wrapper.httpx_client.request( f"api/bulk/syncs/{jsonable_encoder(id)}/executions", method="POST", - json={"fetch_mode": fetch_mode, "resync": resync, "schemas": schemas, "test": test}, + json={ + "fetch_mode": fetch_mode, + "resync": resync, + "schemas": schemas, + "test": test, + }, + headers={ + "content-type": "application/json", + }, request_options=request_options, omit=OMIT, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(BulkSyncExecutionEnvelope, _response.json()) # type: ignore + return typing.cast( + BulkSyncExecutionEnvelope, + parse_obj_as( + type_=BulkSyncExecutionEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 400: raise BadRequestError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 409: raise ConflictError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -1422,7 +1983,7 @@ async def get_status( -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -1439,20 +2000,48 @@ async def main() -> None: asyncio.run(main()) """ _response = await self._client_wrapper.httpx_client.request( - f"api/bulk/syncs/{jsonable_encoder(id)}/status", method="GET", request_options=request_options + f"api/bulk/syncs/{jsonable_encoder(id)}/status", + method="GET", + request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(BulkSyncStatusEnvelope, _response.json()) # type: ignore + return typing.cast( + BulkSyncStatusEnvelope, + parse_obj_as( + type_=BulkSyncStatusEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -1485,7 +2074,7 @@ async def get_source( -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -1505,25 +2094,59 @@ async def main() -> None: _response = await self._client_wrapper.httpx_client.request( f"api/connections/{jsonable_encoder(id)}/bulksync/source", method="GET", - params={"include_fields": include_fields}, + params={ + "include_fields": include_fields, + }, request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(BulkSyncSourceEnvelope, _response.json()) # type: ignore + return typing.cast( + BulkSyncSourceEnvelope, + parse_obj_as( + type_=BulkSyncSourceEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 400: raise BadRequestError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -1550,7 +2173,7 @@ async def get_destination( -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -1567,24 +2190,58 @@ async def main() -> None: asyncio.run(main()) """ _response = await self._client_wrapper.httpx_client.request( - f"api/connections/{jsonable_encoder(id)}/bulksync/target", method="GET", request_options=request_options + f"api/connections/{jsonable_encoder(id)}/bulksync/target", + method="GET", + request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(BulkSyncDestEnvelope, _response.json()) # type: ignore + return typing.cast( + BulkSyncDestEnvelope, + parse_obj_as( + type_=BulkSyncDestEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 400: raise BadRequestError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 403: raise ForbiddenError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: diff --git a/src/polytomic/bulk_sync/executions/client.py b/src/polytomic/bulk_sync/executions/client.py index 594e4cd..89be86c 100644 --- a/src/polytomic/bulk_sync/executions/client.py +++ b/src/polytomic/bulk_sync/executions/client.py @@ -1,24 +1,24 @@ # This file was auto-generated by Fern from our API Definition. +from ...core.client_wrapper import SyncClientWrapper import typing -from json.decoder import JSONDecodeError - -from ...core.api_error import ApiError as core_api_error_ApiError -from ...core.client_wrapper import AsyncClientWrapper, SyncClientWrapper -from ...core.jsonable_encoder import jsonable_encoder -from ...core.pydantic_utilities import pydantic_v1 from ...core.request_options import RequestOptions -from ...errors.bad_request_error import BadRequestError -from ...errors.internal_server_error import InternalServerError -from ...errors.not_found_error import NotFoundError +from ...types.list_bulk_sync_execution_status_envelope import ListBulkSyncExecutionStatusEnvelope +from ...core.pydantic_utilities import parse_obj_as from ...errors.unauthorized_error import UnauthorizedError +from ...types.rest_err_response import RestErrResponse +from ...errors.not_found_error import NotFoundError from ...types.api_error import ApiError as types_api_error_ApiError -from ...types.bulk_sync_execution_envelope import BulkSyncExecutionEnvelope -from ...types.list_bulk_sync_execution_status_envelope import ListBulkSyncExecutionStatusEnvelope +from json.decoder import JSONDecodeError +from ...core.api_error import ApiError as core_api_error_ApiError from ...types.list_bulk_sync_executions_envelope import ListBulkSyncExecutionsEnvelope -from ...types.rest_err_response import RestErrResponse +from ...core.jsonable_encoder import jsonable_encoder +from ...types.bulk_sync_execution_envelope import BulkSyncExecutionEnvelope from ...types.v_4_bulk_sync_execution_logs_envelope import V4BulkSyncExecutionLogsEnvelope from ...types.v_4_export_sync_logs_envelope import V4ExportSyncLogsEnvelope +from ...errors.bad_request_error import BadRequestError +from ...errors.internal_server_error import InternalServerError +from ...core.client_wrapper import AsyncClientWrapper class ExecutionsClient: @@ -55,7 +55,7 @@ def list_status( Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -69,17 +69,41 @@ def list_status( _response = self._client_wrapper.httpx_client.request( "api/bulk/syncs/status", method="GET", - params={"all": all_, "active": active, "sync_id": sync_id}, + params={ + "all": all_, + "active": active, + "sync_id": sync_id, + }, request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(ListBulkSyncExecutionStatusEnvelope, _response.json()) # type: ignore + return typing.cast( + ListBulkSyncExecutionStatusEnvelope, + parse_obj_as( + type_=ListBulkSyncExecutionStatusEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -104,7 +128,7 @@ def list( Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -115,16 +139,38 @@ def list( ) """ _response = self._client_wrapper.httpx_client.request( - f"api/bulk/syncs/{jsonable_encoder(id)}/executions", method="GET", request_options=request_options + f"api/bulk/syncs/{jsonable_encoder(id)}/executions", + method="GET", + request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(ListBulkSyncExecutionsEnvelope, _response.json()) # type: ignore + return typing.cast( + ListBulkSyncExecutionsEnvelope, + parse_obj_as( + type_=ListBulkSyncExecutionsEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -151,7 +197,7 @@ def get( Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -169,12 +215,32 @@ def get( ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(BulkSyncExecutionEnvelope, _response.json()) # type: ignore + return typing.cast( + BulkSyncExecutionEnvelope, + parse_obj_as( + type_=BulkSyncExecutionEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -201,7 +267,7 @@ def get_logs( Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -219,12 +285,32 @@ def get_logs( ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(V4BulkSyncExecutionLogsEnvelope, _response.json()) # type: ignore + return typing.cast( + V4BulkSyncExecutionLogsEnvelope, + parse_obj_as( + type_=V4BulkSyncExecutionLogsEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -259,7 +345,7 @@ def export_logs( Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -273,25 +359,59 @@ def export_logs( _response = self._client_wrapper.httpx_client.request( f"api/bulk/syncs/{jsonable_encoder(sync_id)}/executions/{jsonable_encoder(execution_id)}/logs/export", method="POST", - params={"notify": notify}, + params={ + "notify": notify, + }, request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(V4ExportSyncLogsEnvelope, _response.json()) # type: ignore + return typing.cast( + V4ExportSyncLogsEnvelope, + parse_obj_as( + type_=V4ExportSyncLogsEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 400: raise BadRequestError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -335,7 +455,7 @@ async def list_status( -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -355,17 +475,41 @@ async def main() -> None: _response = await self._client_wrapper.httpx_client.request( "api/bulk/syncs/status", method="GET", - params={"all": all_, "active": active, "sync_id": sync_id}, + params={ + "all": all_, + "active": active, + "sync_id": sync_id, + }, request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(ListBulkSyncExecutionStatusEnvelope, _response.json()) # type: ignore + return typing.cast( + ListBulkSyncExecutionStatusEnvelope, + parse_obj_as( + type_=ListBulkSyncExecutionStatusEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -392,7 +536,7 @@ async def list( -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -409,16 +553,38 @@ async def main() -> None: asyncio.run(main()) """ _response = await self._client_wrapper.httpx_client.request( - f"api/bulk/syncs/{jsonable_encoder(id)}/executions", method="GET", request_options=request_options + f"api/bulk/syncs/{jsonable_encoder(id)}/executions", + method="GET", + request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(ListBulkSyncExecutionsEnvelope, _response.json()) # type: ignore + return typing.cast( + ListBulkSyncExecutionsEnvelope, + parse_obj_as( + type_=ListBulkSyncExecutionsEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -447,7 +613,7 @@ async def get( -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -471,12 +637,32 @@ async def main() -> None: ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(BulkSyncExecutionEnvelope, _response.json()) # type: ignore + return typing.cast( + BulkSyncExecutionEnvelope, + parse_obj_as( + type_=BulkSyncExecutionEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -505,7 +691,7 @@ async def get_logs( -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -529,12 +715,32 @@ async def main() -> None: ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(V4BulkSyncExecutionLogsEnvelope, _response.json()) # type: ignore + return typing.cast( + V4BulkSyncExecutionLogsEnvelope, + parse_obj_as( + type_=V4BulkSyncExecutionLogsEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -571,7 +777,7 @@ async def export_logs( -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -591,25 +797,59 @@ async def main() -> None: _response = await self._client_wrapper.httpx_client.request( f"api/bulk/syncs/{jsonable_encoder(sync_id)}/executions/{jsonable_encoder(execution_id)}/logs/export", method="POST", - params={"notify": notify}, + params={ + "notify": notify, + }, request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(V4ExportSyncLogsEnvelope, _response.json()) # type: ignore + return typing.cast( + V4ExportSyncLogsEnvelope, + parse_obj_as( + type_=V4ExportSyncLogsEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 400: raise BadRequestError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: diff --git a/src/polytomic/bulk_sync/schemas/client.py b/src/polytomic/bulk_sync/schemas/client.py index 25c958d..5829858 100644 --- a/src/polytomic/bulk_sync/schemas/client.py +++ b/src/polytomic/bulk_sync/schemas/client.py @@ -1,26 +1,27 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt import typing +from ...core.client_wrapper import SyncClientWrapper +from ...core.request_options import RequestOptions +from ...types.list_bulk_schema import ListBulkSchema +from ...core.jsonable_encoder import jsonable_encoder +from ...core.pydantic_utilities import parse_obj_as +from ...errors.unauthorized_error import UnauthorizedError +from ...types.rest_err_response import RestErrResponse +from ...errors.not_found_error import NotFoundError +from ...types.api_error import ApiError as types_api_error_ApiError from json.decoder import JSONDecodeError - from ...core.api_error import ApiError as core_api_error_ApiError -from ...core.client_wrapper import AsyncClientWrapper, SyncClientWrapper -from ...core.jsonable_encoder import jsonable_encoder -from ...core.pydantic_utilities import pydantic_v1 -from ...core.request_options import RequestOptions +from ...types.bulk_schema import BulkSchema +from ...core.serialization import convert_and_respect_annotation_metadata from ...errors.bad_request_error import BadRequestError from ...errors.forbidden_error import ForbiddenError from ...errors.internal_server_error import InternalServerError -from ...errors.not_found_error import NotFoundError -from ...errors.unauthorized_error import UnauthorizedError -from ...types.api_error import ApiError as types_api_error_ApiError +from ...types.bulk_schema_envelope import BulkSchemaEnvelope +import datetime as dt from ...types.bulk_field import BulkField from ...types.bulk_filter import BulkFilter -from ...types.bulk_schema import BulkSchema -from ...types.bulk_schema_envelope import BulkSchemaEnvelope -from ...types.list_bulk_schema import ListBulkSchema -from ...types.rest_err_response import RestErrResponse +from ...core.client_wrapper import AsyncClientWrapper # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -54,7 +55,7 @@ def list( Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -67,17 +68,39 @@ def list( _response = self._client_wrapper.httpx_client.request( f"api/bulk/syncs/{jsonable_encoder(id)}/schemas", method="GET", - params={"filters": jsonable_encoder(filters)}, + params={ + "filters": filters, + }, request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(ListBulkSchema, _response.json()) # type: ignore + return typing.cast( + ListBulkSchema, + parse_obj_as( + type_=ListBulkSchema, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -108,7 +131,7 @@ def patch( Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -121,30 +144,75 @@ def patch( _response = self._client_wrapper.httpx_client.request( f"api/bulk/syncs/{jsonable_encoder(id)}/schemas", method="PATCH", - json={"schemas": schemas}, + json={ + "schemas": convert_and_respect_annotation_metadata( + object_=schemas, annotation=typing.Sequence[BulkSchema], direction="write" + ), + }, + headers={ + "content-type": "application/json", + }, request_options=request_options, omit=OMIT, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(ListBulkSchema, _response.json()) # type: ignore + return typing.cast( + ListBulkSchema, + parse_obj_as( + type_=ListBulkSchema, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 400: raise BadRequestError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 403: raise ForbiddenError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -171,7 +239,7 @@ def get( Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -189,12 +257,32 @@ def get( ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(BulkSchemaEnvelope, _response.json()) # type: ignore + return typing.cast( + BulkSchemaEnvelope, + parse_obj_as( + type_=BulkSchemaEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -243,7 +331,7 @@ def update( Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -261,29 +349,68 @@ def update( "data_cutoff_timestamp": data_cutoff_timestamp, "disable_data_cutoff": disable_data_cutoff, "enabled": enabled, - "fields": fields, - "filters": filters, + "fields": convert_and_respect_annotation_metadata( + object_=fields, annotation=typing.Sequence[BulkField], direction="write" + ), + "filters": convert_and_respect_annotation_metadata( + object_=filters, annotation=typing.Sequence[BulkFilter], direction="write" + ), "partition_key": partition_key, }, + headers={ + "content-type": "application/json", + }, request_options=request_options, omit=OMIT, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(BulkSchemaEnvelope, _response.json()) # type: ignore + return typing.cast( + BulkSchemaEnvelope, + parse_obj_as( + type_=BulkSchemaEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 403: raise ForbiddenError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -321,7 +448,7 @@ async def list( -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -340,17 +467,39 @@ async def main() -> None: _response = await self._client_wrapper.httpx_client.request( f"api/bulk/syncs/{jsonable_encoder(id)}/schemas", method="GET", - params={"filters": jsonable_encoder(filters)}, + params={ + "filters": filters, + }, request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(ListBulkSchema, _response.json()) # type: ignore + return typing.cast( + ListBulkSchema, + parse_obj_as( + type_=ListBulkSchema, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -383,7 +532,7 @@ async def patch( -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -402,30 +551,75 @@ async def main() -> None: _response = await self._client_wrapper.httpx_client.request( f"api/bulk/syncs/{jsonable_encoder(id)}/schemas", method="PATCH", - json={"schemas": schemas}, + json={ + "schemas": convert_and_respect_annotation_metadata( + object_=schemas, annotation=typing.Sequence[BulkSchema], direction="write" + ), + }, + headers={ + "content-type": "application/json", + }, request_options=request_options, omit=OMIT, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(ListBulkSchema, _response.json()) # type: ignore + return typing.cast( + ListBulkSchema, + parse_obj_as( + type_=ListBulkSchema, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 400: raise BadRequestError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 403: raise ForbiddenError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -454,7 +648,7 @@ async def get( -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -478,12 +672,32 @@ async def main() -> None: ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(BulkSchemaEnvelope, _response.json()) # type: ignore + return typing.cast( + BulkSchemaEnvelope, + parse_obj_as( + type_=BulkSchemaEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -534,7 +748,7 @@ async def update( -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -558,29 +772,68 @@ async def main() -> None: "data_cutoff_timestamp": data_cutoff_timestamp, "disable_data_cutoff": disable_data_cutoff, "enabled": enabled, - "fields": fields, - "filters": filters, + "fields": convert_and_respect_annotation_metadata( + object_=fields, annotation=typing.Sequence[BulkField], direction="write" + ), + "filters": convert_and_respect_annotation_metadata( + object_=filters, annotation=typing.Sequence[BulkFilter], direction="write" + ), "partition_key": partition_key, }, + headers={ + "content-type": "application/json", + }, request_options=request_options, omit=OMIT, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(BulkSchemaEnvelope, _response.json()) # type: ignore + return typing.cast( + BulkSchemaEnvelope, + parse_obj_as( + type_=BulkSchemaEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 403: raise ForbiddenError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: diff --git a/src/polytomic/bulk_sync/types/v_2_create_bulk_sync_request_schemas_item.py b/src/polytomic/bulk_sync/types/v_2_create_bulk_sync_request_schemas_item.py index 0f598fd..5808811 100644 --- a/src/polytomic/bulk_sync/types/v_2_create_bulk_sync_request_schemas_item.py +++ b/src/polytomic/bulk_sync/types/v_2_create_bulk_sync_request_schemas_item.py @@ -1,7 +1,6 @@ # This file was auto-generated by Fern from our API Definition. import typing - from ...types.schema_configuration import SchemaConfiguration V2CreateBulkSyncRequestSchemasItem = typing.Union[str, SchemaConfiguration] diff --git a/src/polytomic/bulk_sync/types/v_2_update_bulk_sync_request_schemas_item.py b/src/polytomic/bulk_sync/types/v_2_update_bulk_sync_request_schemas_item.py index 8d56582..ea51f93 100644 --- a/src/polytomic/bulk_sync/types/v_2_update_bulk_sync_request_schemas_item.py +++ b/src/polytomic/bulk_sync/types/v_2_update_bulk_sync_request_schemas_item.py @@ -1,7 +1,6 @@ # This file was auto-generated by Fern from our API Definition. import typing - from ...types.schema_configuration import SchemaConfiguration V2UpdateBulkSyncRequestSchemasItem = typing.Union[str, SchemaConfiguration] diff --git a/src/polytomic/client.py b/src/polytomic/client.py index 426d867..8af37f6 100644 --- a/src/polytomic/client.py +++ b/src/polytomic/client.py @@ -1,24 +1,36 @@ # This file was auto-generated by Fern from our API Definition. import typing - -import httpx - -from .bulk_sync.client import AsyncBulkSyncClient, BulkSyncClient -from .connections.client import AsyncConnectionsClient, ConnectionsClient -from .core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .environment import PolytomicEnvironment -from .events.client import AsyncEventsClient, EventsClient -from .identity.client import AsyncIdentityClient, IdentityClient -from .jobs.client import AsyncJobsClient, JobsClient -from .model_sync.client import AsyncModelSyncClient, ModelSyncClient -from .models.client import AsyncModelsClient, ModelsClient -from .organization.client import AsyncOrganizationClient, OrganizationClient -from .permissions.client import AsyncPermissionsClient, PermissionsClient -from .query_runner.client import AsyncQueryRunnerClient, QueryRunnerClient -from .schemas.client import AsyncSchemasClient, SchemasClient -from .users.client import AsyncUsersClient, UsersClient -from .webhooks.client import AsyncWebhooksClient, WebhooksClient +import httpx +from .core.client_wrapper import SyncClientWrapper +from .bulk_sync.client import BulkSyncClient +from .connections.client import ConnectionsClient +from .query_runner.client import QueryRunnerClient +from .models.client import ModelsClient +from .model_sync.client import ModelSyncClient +from .schemas.client import SchemasClient +from .events.client import EventsClient +from .jobs.client import JobsClient +from .identity.client import IdentityClient +from .organization.client import OrganizationClient +from .users.client import UsersClient +from .webhooks.client import WebhooksClient +from .permissions.client import PermissionsClient +from .core.client_wrapper import AsyncClientWrapper +from .bulk_sync.client import AsyncBulkSyncClient +from .connections.client import AsyncConnectionsClient +from .query_runner.client import AsyncQueryRunnerClient +from .models.client import AsyncModelsClient +from .model_sync.client import AsyncModelSyncClient +from .schemas.client import AsyncSchemasClient +from .events.client import AsyncEventsClient +from .jobs.client import AsyncJobsClient +from .identity.client import AsyncIdentityClient +from .organization.client import AsyncOrganizationClient +from .users.client import AsyncUsersClient +from .webhooks.client import AsyncWebhooksClient +from .permissions.client import AsyncPermissionsClient class Polytomic: @@ -52,7 +64,7 @@ class Polytomic: Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -69,9 +81,11 @@ def __init__( token: typing.Union[str, typing.Callable[[], str]], timeout: typing.Optional[float] = None, follow_redirects: typing.Optional[bool] = True, - httpx_client: typing.Optional[httpx.Client] = None + httpx_client: typing.Optional[httpx.Client] = None, ): - _defaulted_timeout = timeout if timeout is not None else 60 if httpx_client is None else None + _defaulted_timeout = ( + timeout if timeout is not None else 60 if httpx_client is None else httpx_client.timeout.read + ) self._client_wrapper = SyncClientWrapper( base_url=_get_base_url(base_url=base_url, environment=environment), version=version, @@ -129,7 +143,7 @@ class AsyncPolytomic: Examples -------- - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -146,9 +160,11 @@ def __init__( token: typing.Union[str, typing.Callable[[], str]], timeout: typing.Optional[float] = None, follow_redirects: typing.Optional[bool] = True, - httpx_client: typing.Optional[httpx.AsyncClient] = None + httpx_client: typing.Optional[httpx.AsyncClient] = None, ): - _defaulted_timeout = timeout if timeout is not None else 60 if httpx_client is None else None + _defaulted_timeout = ( + timeout if timeout is not None else 60 if httpx_client is None else httpx_client.timeout.read + ) self._client_wrapper = AsyncClientWrapper( base_url=_get_base_url(base_url=base_url, environment=environment), version=version, diff --git a/src/polytomic/connections/client.py b/src/polytomic/connections/client.py index f9cbeeb..0fa44e9 100644 --- a/src/polytomic/connections/client.py +++ b/src/polytomic/connections/client.py @@ -1,28 +1,28 @@ # This file was auto-generated by Fern from our API Definition. import typing +from ..core.client_wrapper import SyncClientWrapper +from ..core.request_options import RequestOptions +from ..types.connection_type_response_envelope import ConnectionTypeResponseEnvelope +from ..core.pydantic_utilities import parse_obj_as +from ..errors.unauthorized_error import UnauthorizedError +from ..types.rest_err_response import RestErrResponse +from ..errors.internal_server_error import InternalServerError +from ..types.api_error import ApiError as types_api_error_ApiError from json.decoder import JSONDecodeError - from ..core.api_error import ApiError as core_api_error_ApiError -from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper +from ..types.jsonschema_schema import JsonschemaSchema from ..core.jsonable_encoder import jsonable_encoder -from ..core.pydantic_utilities import pydantic_v1 -from ..core.request_options import RequestOptions +from ..errors.not_found_error import NotFoundError +from ..types.connection_list_response_envelope import ConnectionListResponseEnvelope +from ..types.create_connection_response_envelope import CreateConnectionResponseEnvelope from ..errors.bad_request_error import BadRequestError from ..errors.forbidden_error import ForbiddenError -from ..errors.internal_server_error import InternalServerError -from ..errors.not_found_error import NotFoundError -from ..errors.unauthorized_error import UnauthorizedError from ..errors.unprocessable_entity_error import UnprocessableEntityError -from ..types.api_error import ApiError as types_api_error_ApiError from ..types.connect_card_response_envelope import ConnectCardResponseEnvelope -from ..types.connection_list_response_envelope import ConnectionListResponseEnvelope -from ..types.connection_parameter_values_response_envelope import ConnectionParameterValuesResponseEnvelope from ..types.connection_response_envelope import ConnectionResponseEnvelope -from ..types.connection_type_response_envelope import ConnectionTypeResponseEnvelope -from ..types.create_connection_response_envelope import CreateConnectionResponseEnvelope -from ..types.jsonschema_schema import JsonschemaSchema -from ..types.rest_err_response import RestErrResponse +from ..types.connection_parameter_values_response_envelope import ConnectionParameterValuesResponseEnvelope +from ..core.client_wrapper import AsyncClientWrapper # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -46,7 +46,7 @@ def get_types(self, *, request_options: typing.Optional[RequestOptions] = None) Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -55,16 +55,38 @@ def get_types(self, *, request_options: typing.Optional[RequestOptions] = None) client.connections.get_types() """ _response = self._client_wrapper.httpx_client.request( - "api/connection_types", method="GET", request_options=request_options + "api/connection_types", + method="GET", + request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(ConnectionTypeResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + ConnectionTypeResponseEnvelope, + parse_obj_as( + type_=ConnectionTypeResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 500: raise InternalServerError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -89,7 +111,7 @@ def get_connection_type_schema( Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -100,20 +122,48 @@ def get_connection_type_schema( ) """ _response = self._client_wrapper.httpx_client.request( - f"api/connection_types/{jsonable_encoder(id)}", method="GET", request_options=request_options + f"api/connection_types/{jsonable_encoder(id)}", + method="GET", + request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(JsonschemaSchema, _response.json()) # type: ignore + return typing.cast( + JsonschemaSchema, + parse_obj_as( + type_=JsonschemaSchema, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -134,7 +184,7 @@ def list(self, *, request_options: typing.Optional[RequestOptions] = None) -> Co Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -143,16 +193,38 @@ def list(self, *, request_options: typing.Optional[RequestOptions] = None) -> Co client.connections.list() """ _response = self._client_wrapper.httpx_client.request( - "api/connections", method="GET", request_options=request_options + "api/connections", + method="GET", + request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(ConnectionListResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + ConnectionListResponseEnvelope, + parse_obj_as( + type_=ConnectionListResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 500: raise InternalServerError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -162,7 +234,7 @@ def list(self, *, request_options: typing.Optional[RequestOptions] = None) -> Co def create( self, *, - configuration: typing.Dict[str, typing.Any], + configuration: typing.Dict[str, typing.Optional[typing.Any]], name: str, type: str, organization_id: typing.Optional[str] = OMIT, @@ -174,7 +246,7 @@ def create( """ Parameters ---------- - configuration : typing.Dict[str, typing.Any] + configuration : typing.Dict[str, typing.Optional[typing.Any]] name : str @@ -200,7 +272,7 @@ def create( Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -230,29 +302,70 @@ def create( "type": type, "validate": validate, }, + headers={ + "content-type": "application/json", + }, request_options=request_options, omit=OMIT, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(CreateConnectionResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + CreateConnectionResponseEnvelope, + parse_obj_as( + type_=CreateConnectionResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 400: raise BadRequestError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 403: raise ForbiddenError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + typing.cast( + types_api_error_ApiError, + parse_obj_as( + type_=types_api_error_ApiError, # type: ignore + object_=_response.json(), + ), + ) ) if _response.status_code == 422: raise UnprocessableEntityError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -265,6 +378,7 @@ def connect( name: str, redirect_url: str, connection: typing.Optional[str] = OMIT, + dark: typing.Optional[bool] = OMIT, organization_id: typing.Optional[str] = OMIT, type: typing.Optional[str] = OMIT, whitelist: typing.Optional[typing.Sequence[str]] = OMIT, @@ -274,16 +388,22 @@ def connect( Parameters ---------- name : str + Name of the new connection. redirect_url : str + URL to redirect to after connection is created. connection : typing.Optional[str] + dark : typing.Optional[bool] + organization_id : typing.Optional[str] type : typing.Optional[str] + Connection type to create. whitelist : typing.Optional[typing.Sequence[str]] + List of connection types which are allowed to be created. Ignored if type is set. request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -295,7 +415,7 @@ def connect( Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -311,31 +431,67 @@ def connect( method="POST", json={ "connection": connection, + "dark": dark, "name": name, "organization_id": organization_id, "redirect_url": redirect_url, "type": type, "whitelist": whitelist, }, + headers={ + "content-type": "application/json", + }, request_options=request_options, omit=OMIT, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(ConnectCardResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + ConnectCardResponseEnvelope, + parse_obj_as( + type_=ConnectCardResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 403: raise ForbiddenError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + typing.cast( + types_api_error_ApiError, + parse_obj_as( + type_=types_api_error_ApiError, # type: ignore + object_=_response.json(), + ), + ) ) if _response.status_code == 422: raise UnprocessableEntityError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -358,7 +514,7 @@ def get(self, id: str, *, request_options: typing.Optional[RequestOptions] = Non Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -369,20 +525,48 @@ def get(self, id: str, *, request_options: typing.Optional[RequestOptions] = Non ) """ _response = self._client_wrapper.httpx_client.request( - f"api/connections/{jsonable_encoder(id)}", method="GET", request_options=request_options + f"api/connections/{jsonable_encoder(id)}", + method="GET", + request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(ConnectionResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + ConnectionResponseEnvelope, + parse_obj_as( + type_=ConnectionResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -393,7 +577,7 @@ def update( self, id: str, *, - configuration: typing.Dict[str, typing.Any], + configuration: typing.Dict[str, typing.Optional[typing.Any]], name: str, organization_id: typing.Optional[str] = OMIT, policies: typing.Optional[typing.Sequence[str]] = OMIT, @@ -407,7 +591,7 @@ def update( ---------- id : str - configuration : typing.Dict[str, typing.Any] + configuration : typing.Dict[str, typing.Optional[typing.Any]] name : str @@ -432,7 +616,7 @@ def update( Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -462,33 +646,80 @@ def update( "type": type, "validate": validate, }, + headers={ + "content-type": "application/json", + }, request_options=request_options, omit=OMIT, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(CreateConnectionResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + CreateConnectionResponseEnvelope, + parse_obj_as( + type_=CreateConnectionResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 400: raise BadRequestError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 403: raise ForbiddenError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + typing.cast( + types_api_error_ApiError, + parse_obj_as( + type_=types_api_error_ApiError, # type: ignore + object_=_response.json(), + ), + ) ) if _response.status_code == 422: raise UnprocessableEntityError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -514,7 +745,7 @@ def remove( Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -528,29 +759,63 @@ def remove( _response = self._client_wrapper.httpx_client.request( f"api/connections/{jsonable_encoder(id)}", method="DELETE", - params={"force": force}, + params={ + "force": force, + }, request_options=request_options, ) try: if 200 <= _response.status_code < 300: return if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 403: raise ForbiddenError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + typing.cast( + types_api_error_ApiError, + parse_obj_as( + type_=types_api_error_ApiError, # type: ignore + object_=_response.json(), + ), + ) ) if _response.status_code == 422: raise UnprocessableEntityError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -575,7 +840,7 @@ def get_parameter_values( Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -586,20 +851,48 @@ def get_parameter_values( ) """ _response = self._client_wrapper.httpx_client.request( - f"api/connections/{jsonable_encoder(id)}/parameter_values", method="GET", request_options=request_options + f"api/connections/{jsonable_encoder(id)}/parameter_values", + method="GET", + request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(ConnectionParameterValuesResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + ConnectionParameterValuesResponseEnvelope, + parse_obj_as( + type_=ConnectionParameterValuesResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -629,7 +922,7 @@ async def get_types( -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -644,16 +937,38 @@ async def main() -> None: asyncio.run(main()) """ _response = await self._client_wrapper.httpx_client.request( - "api/connection_types", method="GET", request_options=request_options + "api/connection_types", + method="GET", + request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(ConnectionTypeResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + ConnectionTypeResponseEnvelope, + parse_obj_as( + type_=ConnectionTypeResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 500: raise InternalServerError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -680,7 +995,7 @@ async def get_connection_type_schema( -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -697,20 +1012,48 @@ async def main() -> None: asyncio.run(main()) """ _response = await self._client_wrapper.httpx_client.request( - f"api/connection_types/{jsonable_encoder(id)}", method="GET", request_options=request_options + f"api/connection_types/{jsonable_encoder(id)}", + method="GET", + request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(JsonschemaSchema, _response.json()) # type: ignore + return typing.cast( + JsonschemaSchema, + parse_obj_as( + type_=JsonschemaSchema, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -733,7 +1076,7 @@ async def list(self, *, request_options: typing.Optional[RequestOptions] = None) -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -748,16 +1091,38 @@ async def main() -> None: asyncio.run(main()) """ _response = await self._client_wrapper.httpx_client.request( - "api/connections", method="GET", request_options=request_options + "api/connections", + method="GET", + request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(ConnectionListResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + ConnectionListResponseEnvelope, + parse_obj_as( + type_=ConnectionListResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 500: raise InternalServerError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -767,7 +1132,7 @@ async def main() -> None: async def create( self, *, - configuration: typing.Dict[str, typing.Any], + configuration: typing.Dict[str, typing.Optional[typing.Any]], name: str, type: str, organization_id: typing.Optional[str] = OMIT, @@ -779,7 +1144,7 @@ async def create( """ Parameters ---------- - configuration : typing.Dict[str, typing.Any] + configuration : typing.Dict[str, typing.Optional[typing.Any]] name : str @@ -807,7 +1172,7 @@ async def create( -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -843,29 +1208,70 @@ async def main() -> None: "type": type, "validate": validate, }, + headers={ + "content-type": "application/json", + }, request_options=request_options, omit=OMIT, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(CreateConnectionResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + CreateConnectionResponseEnvelope, + parse_obj_as( + type_=CreateConnectionResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 400: raise BadRequestError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 403: raise ForbiddenError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + typing.cast( + types_api_error_ApiError, + parse_obj_as( + type_=types_api_error_ApiError, # type: ignore + object_=_response.json(), + ), + ) ) if _response.status_code == 422: raise UnprocessableEntityError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -878,6 +1284,7 @@ async def connect( name: str, redirect_url: str, connection: typing.Optional[str] = OMIT, + dark: typing.Optional[bool] = OMIT, organization_id: typing.Optional[str] = OMIT, type: typing.Optional[str] = OMIT, whitelist: typing.Optional[typing.Sequence[str]] = OMIT, @@ -887,16 +1294,22 @@ async def connect( Parameters ---------- name : str + Name of the new connection. redirect_url : str + URL to redirect to after connection is created. connection : typing.Optional[str] + dark : typing.Optional[bool] + organization_id : typing.Optional[str] type : typing.Optional[str] + Connection type to create. whitelist : typing.Optional[typing.Sequence[str]] + List of connection types which are allowed to be created. Ignored if type is set. request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -910,7 +1323,7 @@ async def connect( -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -932,31 +1345,67 @@ async def main() -> None: method="POST", json={ "connection": connection, + "dark": dark, "name": name, "organization_id": organization_id, "redirect_url": redirect_url, "type": type, "whitelist": whitelist, }, + headers={ + "content-type": "application/json", + }, request_options=request_options, omit=OMIT, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(ConnectCardResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + ConnectCardResponseEnvelope, + parse_obj_as( + type_=ConnectCardResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 403: raise ForbiddenError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + typing.cast( + types_api_error_ApiError, + parse_obj_as( + type_=types_api_error_ApiError, # type: ignore + object_=_response.json(), + ), + ) ) if _response.status_code == 422: raise UnprocessableEntityError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -983,7 +1432,7 @@ async def get( -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -1000,20 +1449,48 @@ async def main() -> None: asyncio.run(main()) """ _response = await self._client_wrapper.httpx_client.request( - f"api/connections/{jsonable_encoder(id)}", method="GET", request_options=request_options + f"api/connections/{jsonable_encoder(id)}", + method="GET", + request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(ConnectionResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + ConnectionResponseEnvelope, + parse_obj_as( + type_=ConnectionResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -1024,7 +1501,7 @@ async def update( self, id: str, *, - configuration: typing.Dict[str, typing.Any], + configuration: typing.Dict[str, typing.Optional[typing.Any]], name: str, organization_id: typing.Optional[str] = OMIT, policies: typing.Optional[typing.Sequence[str]] = OMIT, @@ -1038,7 +1515,7 @@ async def update( ---------- id : str - configuration : typing.Dict[str, typing.Any] + configuration : typing.Dict[str, typing.Optional[typing.Any]] name : str @@ -1065,7 +1542,7 @@ async def update( -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -1101,33 +1578,80 @@ async def main() -> None: "type": type, "validate": validate, }, + headers={ + "content-type": "application/json", + }, request_options=request_options, omit=OMIT, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(CreateConnectionResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + CreateConnectionResponseEnvelope, + parse_obj_as( + type_=CreateConnectionResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 400: raise BadRequestError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 403: raise ForbiddenError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + typing.cast( + types_api_error_ApiError, + parse_obj_as( + type_=types_api_error_ApiError, # type: ignore + object_=_response.json(), + ), + ) ) if _response.status_code == 422: raise UnprocessableEntityError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -1155,7 +1679,7 @@ async def remove( -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -1175,29 +1699,63 @@ async def main() -> None: _response = await self._client_wrapper.httpx_client.request( f"api/connections/{jsonable_encoder(id)}", method="DELETE", - params={"force": force}, + params={ + "force": force, + }, request_options=request_options, ) try: if 200 <= _response.status_code < 300: return if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 403: raise ForbiddenError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + typing.cast( + types_api_error_ApiError, + parse_obj_as( + type_=types_api_error_ApiError, # type: ignore + object_=_response.json(), + ), + ) ) if _response.status_code == 422: raise UnprocessableEntityError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -1224,7 +1782,7 @@ async def get_parameter_values( -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -1241,20 +1799,48 @@ async def main() -> None: asyncio.run(main()) """ _response = await self._client_wrapper.httpx_client.request( - f"api/connections/{jsonable_encoder(id)}/parameter_values", method="GET", request_options=request_options + f"api/connections/{jsonable_encoder(id)}/parameter_values", + method="GET", + request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(ConnectionParameterValuesResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + ConnectionParameterValuesResponseEnvelope, + parse_obj_as( + type_=ConnectionParameterValuesResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: diff --git a/src/polytomic/core/__init__.py b/src/polytomic/core/__init__.py index 58ad52a..f03aecb 100644 --- a/src/polytomic/core/__init__.py +++ b/src/polytomic/core/__init__.py @@ -3,28 +3,45 @@ from .api_error import ApiError from .client_wrapper import AsyncClientWrapper, BaseClientWrapper, SyncClientWrapper from .datetime_utils import serialize_datetime -from .file import File, convert_file_dict_to_httpx_tuples +from .file import File, convert_file_dict_to_httpx_tuples, with_content_type from .http_client import AsyncHttpClient, HttpClient from .jsonable_encoder import jsonable_encoder -from .pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 +from .pydantic_utilities import ( + IS_PYDANTIC_V2, + UniversalBaseModel, + UniversalRootModel, + parse_obj_as, + universal_field_validator, + universal_root_validator, + update_forward_refs, +) from .query_encoder import encode_query from .remove_none_from_dict import remove_none_from_dict from .request_options import RequestOptions +from .serialization import FieldMetadata, convert_and_respect_annotation_metadata __all__ = [ "ApiError", "AsyncClientWrapper", "AsyncHttpClient", "BaseClientWrapper", + "FieldMetadata", "File", "HttpClient", + "IS_PYDANTIC_V2", "RequestOptions", "SyncClientWrapper", + "UniversalBaseModel", + "UniversalRootModel", + "convert_and_respect_annotation_metadata", "convert_file_dict_to_httpx_tuples", - "deep_union_pydantic_dicts", "encode_query", "jsonable_encoder", - "pydantic_v1", + "parse_obj_as", "remove_none_from_dict", "serialize_datetime", + "universal_field_validator", + "universal_root_validator", + "update_forward_refs", + "with_content_type", ] diff --git a/src/polytomic/core/client_wrapper.py b/src/polytomic/core/client_wrapper.py index bd7faef..310eb76 100644 --- a/src/polytomic/core/client_wrapper.py +++ b/src/polytomic/core/client_wrapper.py @@ -1,10 +1,9 @@ # This file was auto-generated by Fern from our API Definition. import typing - import httpx - -from .http_client import AsyncHttpClient, HttpClient +from .http_client import HttpClient +from .http_client import AsyncHttpClient class BaseClientWrapper: @@ -23,9 +22,10 @@ def __init__( def get_headers(self) -> typing.Dict[str, str]: headers: typing.Dict[str, str] = { + "User-Agent": "polytomic/1.11.3", "X-Fern-Language": "Python", "X-Fern-SDK-Name": "polytomic", - "X-Fern-SDK-Version": "1.11.2", + "X-Fern-SDK-Version": "1.11.3", } if self._version is not None: headers["X-Polytomic-Version"] = self._version @@ -58,9 +58,9 @@ def __init__( super().__init__(version=version, token=token, base_url=base_url, timeout=timeout) self.httpx_client = HttpClient( httpx_client=httpx_client, - base_headers=self.get_headers(), - base_timeout=self.get_timeout(), - base_url=self.get_base_url(), + base_headers=self.get_headers, + base_timeout=self.get_timeout, + base_url=self.get_base_url, ) @@ -77,7 +77,7 @@ def __init__( super().__init__(version=version, token=token, base_url=base_url, timeout=timeout) self.httpx_client = AsyncHttpClient( httpx_client=httpx_client, - base_headers=self.get_headers(), - base_timeout=self.get_timeout(), - base_url=self.get_base_url(), + base_headers=self.get_headers, + base_timeout=self.get_timeout, + base_url=self.get_base_url, ) diff --git a/src/polytomic/core/file.py b/src/polytomic/core/file.py index cb0d40b..44b0d27 100644 --- a/src/polytomic/core/file.py +++ b/src/polytomic/core/file.py @@ -1,25 +1,30 @@ # This file was auto-generated by Fern from our API Definition. -import typing +from typing import IO, Dict, List, Mapping, Optional, Tuple, Union, cast # File typing inspired by the flexibility of types within the httpx library # https://github.com/encode/httpx/blob/master/httpx/_types.py -FileContent = typing.Union[typing.IO[bytes], bytes, str] -File = typing.Union[ +FileContent = Union[IO[bytes], bytes, str] +File = Union[ # file (or bytes) FileContent, # (filename, file (or bytes)) - typing.Tuple[typing.Optional[str], FileContent], + Tuple[Optional[str], FileContent], # (filename, file (or bytes), content_type) - typing.Tuple[typing.Optional[str], FileContent, typing.Optional[str]], + Tuple[Optional[str], FileContent, Optional[str]], # (filename, file (or bytes), content_type, headers) - typing.Tuple[typing.Optional[str], FileContent, typing.Optional[str], typing.Mapping[str, str]], + Tuple[ + Optional[str], + FileContent, + Optional[str], + Mapping[str, str], + ], ] def convert_file_dict_to_httpx_tuples( - d: typing.Dict[str, typing.Union[File, typing.List[File]]] -) -> typing.List[typing.Tuple[str, File]]: + d: Dict[str, Union[File, List[File]]], +) -> List[Tuple[str, File]]: """ The format we use is a list of tuples, where the first element is the name of the file and the second is the file object. Typically HTTPX wants @@ -36,3 +41,27 @@ def convert_file_dict_to_httpx_tuples( else: httpx_tuples.append((key, file_like)) return httpx_tuples + + +def with_content_type(*, file: File, default_content_type: str) -> File: + """ + This function resolves to the file's content type, if provided, and defaults + to the default_content_type value if not. + """ + if isinstance(file, tuple): + if len(file) == 2: + filename, content = cast(Tuple[Optional[str], FileContent], file) # type: ignore + return (filename, content, default_content_type) + elif len(file) == 3: + filename, content, file_content_type = cast(Tuple[Optional[str], FileContent, Optional[str]], file) # type: ignore + out_content_type = file_content_type or default_content_type + return (filename, content, out_content_type) + elif len(file) == 4: + filename, content, file_content_type, headers = cast( # type: ignore + Tuple[Optional[str], FileContent, Optional[str], Mapping[str, str]], file + ) + out_content_type = file_content_type or default_content_type + return (filename, content, out_content_type, headers) + else: + raise ValueError(f"Unexpected tuple length: {len(file)}") + return (None, file, default_content_type) diff --git a/src/polytomic/core/http_client.py b/src/polytomic/core/http_client.py index 09c6836..e7bd4f7 100644 --- a/src/polytomic/core/http_client.py +++ b/src/polytomic/core/http_client.py @@ -2,7 +2,6 @@ import asyncio import email.utils -import json import re import time import typing @@ -11,7 +10,6 @@ from random import random import httpx - from .file import File, convert_file_dict_to_httpx_tuples from .jsonable_encoder import jsonable_encoder from .query_encoder import encode_query @@ -85,12 +83,13 @@ def _retry_timeout(response: httpx.Response, retries: int) -> float: def _should_retry(response: httpx.Response) -> bool: - retriable_400s = [429, 408, 409] - return response.status_code >= 500 or response.status_code in retriable_400s + retryable_400s = [429, 408, 409] + return response.status_code >= 500 or response.status_code in retryable_400s def remove_omit_from_dict( - original: typing.Dict[str, typing.Optional[typing.Any]], omit: typing.Optional[typing.Any] + original: typing.Dict[str, typing.Optional[typing.Any]], + omit: typing.Optional[typing.Any], ) -> typing.Dict[str, typing.Any]: if omit is None: return original @@ -108,7 +107,7 @@ def maybe_filter_request_body( ) -> typing.Optional[typing.Any]: if data is None: return ( - jsonable_encoder(request_options.get("additional_body_parameters", {})) + jsonable_encoder(request_options.get("additional_body_parameters", {})) or {} if request_options is not None else None ) @@ -118,7 +117,7 @@ def maybe_filter_request_body( data_content = { **(jsonable_encoder(remove_omit_from_dict(data, omit))), # type: ignore **( - jsonable_encoder(request_options.get("additional_body_parameters", {})) + jsonable_encoder(request_options.get("additional_body_parameters", {})) or {} if request_options is not None else {} ), @@ -142,7 +141,8 @@ def get_request_body( # If both data and json are None, we send json data in the event extra properties are specified json_body = maybe_filter_request_body(json, request_options, omit) - return json_body, data_body + # If you have an empty JSON body, you should just send None + return (json_body if json_body != {} else None), data_body if data_body != {} else None class HttpClient: @@ -150,9 +150,9 @@ def __init__( self, *, httpx_client: httpx.Client, - base_timeout: typing.Optional[float], - base_headers: typing.Dict[str, str], - base_url: typing.Optional[str] = None, + base_timeout: typing.Callable[[], typing.Optional[float]], + base_headers: typing.Callable[[], typing.Dict[str, str]], + base_url: typing.Optional[typing.Callable[[], str]] = None, ): self.base_url = base_url self.base_timeout = base_timeout @@ -160,7 +160,10 @@ def __init__( self.httpx_client = httpx_client def get_base_url(self, maybe_base_url: typing.Optional[str]) -> str: - base_url = self.base_url if maybe_base_url is None else maybe_base_url + base_url = maybe_base_url + if self.base_url is not None and base_url is None: + base_url = self.base_url() + if base_url is None: raise ValueError("A base_url is required to make this request, please provide one and try again.") return base_url @@ -178,14 +181,14 @@ def request( files: typing.Optional[typing.Dict[str, typing.Optional[typing.Union[File, typing.List[File]]]]] = None, headers: typing.Optional[typing.Dict[str, typing.Any]] = None, request_options: typing.Optional[RequestOptions] = None, - retries: int = 0, + retries: int = 2, omit: typing.Optional[typing.Any] = None, ) -> httpx.Response: base_url = self.get_base_url(base_url) timeout = ( request_options.get("timeout_in_seconds") if request_options is not None and request_options.get("timeout_in_seconds") is not None - else self.base_timeout + else self.base_timeout() ) json_body, data_body = get_request_body(json=json, data=data, request_options=request_options, omit=omit) @@ -196,9 +199,9 @@ def request( headers=jsonable_encoder( remove_none_from_dict( { - **self.base_headers, + **self.base_headers(), **(headers if headers is not None else {}), - **(request_options.get("additional_headers", {}) if request_options is not None else {}), + **(request_options.get("additional_headers", {}) or {} if request_options is not None else {}), } ) ), @@ -209,7 +212,7 @@ def request( { **(params if params is not None else {}), **( - request_options.get("additional_query_parameters", {}) + request_options.get("additional_query_parameters", {}) or {} if request_options is not None else {} ), @@ -222,7 +225,11 @@ def request( json=json_body, data=data_body, content=content, - files=convert_file_dict_to_httpx_tuples(remove_none_from_dict(files)) if files is not None else None, + files=( + convert_file_dict_to_httpx_tuples(remove_omit_from_dict(remove_none_from_dict(files), omit)) + if (files is not None and files is not omit) + else None + ), timeout=timeout, ) @@ -260,14 +267,14 @@ def stream( files: typing.Optional[typing.Dict[str, typing.Optional[typing.Union[File, typing.List[File]]]]] = None, headers: typing.Optional[typing.Dict[str, typing.Any]] = None, request_options: typing.Optional[RequestOptions] = None, - retries: int = 0, + retries: int = 2, omit: typing.Optional[typing.Any] = None, ) -> typing.Iterator[httpx.Response]: base_url = self.get_base_url(base_url) timeout = ( request_options.get("timeout_in_seconds") if request_options is not None and request_options.get("timeout_in_seconds") is not None - else self.base_timeout + else self.base_timeout() ) json_body, data_body = get_request_body(json=json, data=data, request_options=request_options, omit=omit) @@ -278,7 +285,7 @@ def stream( headers=jsonable_encoder( remove_none_from_dict( { - **self.base_headers, + **self.base_headers(), **(headers if headers is not None else {}), **(request_options.get("additional_headers", {}) if request_options is not None else {}), } @@ -304,7 +311,11 @@ def stream( json=json_body, data=data_body, content=content, - files=convert_file_dict_to_httpx_tuples(remove_none_from_dict(files)) if files is not None else None, + files=( + convert_file_dict_to_httpx_tuples(remove_omit_from_dict(remove_none_from_dict(files), omit)) + if (files is not None and files is not omit) + else None + ), timeout=timeout, ) as stream: yield stream @@ -315,9 +326,9 @@ def __init__( self, *, httpx_client: httpx.AsyncClient, - base_timeout: typing.Optional[float], - base_headers: typing.Dict[str, str], - base_url: typing.Optional[str] = None, + base_timeout: typing.Callable[[], typing.Optional[float]], + base_headers: typing.Callable[[], typing.Dict[str, str]], + base_url: typing.Optional[typing.Callable[[], str]] = None, ): self.base_url = base_url self.base_timeout = base_timeout @@ -325,7 +336,10 @@ def __init__( self.httpx_client = httpx_client def get_base_url(self, maybe_base_url: typing.Optional[str]) -> str: - base_url = self.base_url if maybe_base_url is None else maybe_base_url + base_url = maybe_base_url + if self.base_url is not None and base_url is None: + base_url = self.base_url() + if base_url is None: raise ValueError("A base_url is required to make this request, please provide one and try again.") return base_url @@ -343,14 +357,14 @@ async def request( files: typing.Optional[typing.Dict[str, typing.Optional[typing.Union[File, typing.List[File]]]]] = None, headers: typing.Optional[typing.Dict[str, typing.Any]] = None, request_options: typing.Optional[RequestOptions] = None, - retries: int = 0, + retries: int = 2, omit: typing.Optional[typing.Any] = None, ) -> httpx.Response: base_url = self.get_base_url(base_url) timeout = ( request_options.get("timeout_in_seconds") if request_options is not None and request_options.get("timeout_in_seconds") is not None - else self.base_timeout + else self.base_timeout() ) json_body, data_body = get_request_body(json=json, data=data, request_options=request_options, omit=omit) @@ -362,9 +376,9 @@ async def request( headers=jsonable_encoder( remove_none_from_dict( { - **self.base_headers, + **self.base_headers(), **(headers if headers is not None else {}), - **(request_options.get("additional_headers", {}) if request_options is not None else {}), + **(request_options.get("additional_headers", {}) or {} if request_options is not None else {}), } ) ), @@ -375,7 +389,7 @@ async def request( { **(params if params is not None else {}), **( - request_options.get("additional_query_parameters", {}) + request_options.get("additional_query_parameters", {}) or {} if request_options is not None else {} ), @@ -388,7 +402,11 @@ async def request( json=json_body, data=data_body, content=content, - files=convert_file_dict_to_httpx_tuples(remove_none_from_dict(files)) if files is not None else None, + files=( + convert_file_dict_to_httpx_tuples(remove_omit_from_dict(remove_none_from_dict(files), omit)) + if files is not None + else None + ), timeout=timeout, ) @@ -425,14 +443,14 @@ async def stream( files: typing.Optional[typing.Dict[str, typing.Optional[typing.Union[File, typing.List[File]]]]] = None, headers: typing.Optional[typing.Dict[str, typing.Any]] = None, request_options: typing.Optional[RequestOptions] = None, - retries: int = 0, + retries: int = 2, omit: typing.Optional[typing.Any] = None, ) -> typing.AsyncIterator[httpx.Response]: base_url = self.get_base_url(base_url) timeout = ( request_options.get("timeout_in_seconds") if request_options is not None and request_options.get("timeout_in_seconds") is not None - else self.base_timeout + else self.base_timeout() ) json_body, data_body = get_request_body(json=json, data=data, request_options=request_options, omit=omit) @@ -443,7 +461,7 @@ async def stream( headers=jsonable_encoder( remove_none_from_dict( { - **self.base_headers, + **self.base_headers(), **(headers if headers is not None else {}), **(request_options.get("additional_headers", {}) if request_options is not None else {}), } @@ -469,7 +487,11 @@ async def stream( json=json_body, data=data_body, content=content, - files=convert_file_dict_to_httpx_tuples(remove_none_from_dict(files)) if files is not None else None, + files=( + convert_file_dict_to_httpx_tuples(remove_omit_from_dict(remove_none_from_dict(files), omit)) + if files is not None + else None + ), timeout=timeout, ) as stream: yield stream diff --git a/src/polytomic/core/jsonable_encoder.py b/src/polytomic/core/jsonable_encoder.py index 7f48273..afee366 100644 --- a/src/polytomic/core/jsonable_encoder.py +++ b/src/polytomic/core/jsonable_encoder.py @@ -8,33 +8,26 @@ https://github.com/tiangolo/fastapi/blob/master/fastapi/encoders.py """ +import base64 import dataclasses import datetime as dt -from collections import defaultdict from enum import Enum from pathlib import PurePath from types import GeneratorType -from typing import Any, Callable, Dict, List, Optional, Set, Tuple, Union +from typing import Any, Callable, Dict, List, Optional, Set, Union +import pydantic from .datetime_utils import serialize_datetime -from .pydantic_utilities import pydantic_v1 +from .pydantic_utilities import ( + IS_PYDANTIC_V2, + encode_by_type, + to_jsonable_with_fallback, +) SetIntStr = Set[Union[int, str]] DictIntStrAny = Dict[Union[int, str], Any] -def generate_encoders_by_class_tuples( - type_encoder_map: Dict[Any, Callable[[Any], Any]] -) -> Dict[Callable[[Any], Any], Tuple[Any, ...]]: - encoders_by_class_tuples: Dict[Callable[[Any], Any], Tuple[Any, ...]] = defaultdict(tuple) - for type_, encoder in type_encoder_map.items(): - encoders_by_class_tuples[encoder] += (type_,) - return encoders_by_class_tuples - - -encoders_by_class_tuples = generate_encoders_by_class_tuples(pydantic_v1.json.ENCODERS_BY_TYPE) - - def jsonable_encoder(obj: Any, custom_encoder: Optional[Dict[Any, Callable[[Any], Any]]] = None) -> Any: custom_encoder = custom_encoder or {} if custom_encoder: @@ -44,17 +37,24 @@ def jsonable_encoder(obj: Any, custom_encoder: Optional[Dict[Any, Callable[[Any] for encoder_type, encoder_instance in custom_encoder.items(): if isinstance(obj, encoder_type): return encoder_instance(obj) - if isinstance(obj, pydantic_v1.BaseModel): - encoder = getattr(obj.__config__, "json_encoders", {}) + if isinstance(obj, pydantic.BaseModel): + if IS_PYDANTIC_V2: + encoder = getattr(obj.model_config, "json_encoders", {}) # type: ignore # Pydantic v2 + else: + encoder = getattr(obj.__config__, "json_encoders", {}) # type: ignore # Pydantic v1 if custom_encoder: encoder.update(custom_encoder) obj_dict = obj.dict(by_alias=True) if "__root__" in obj_dict: obj_dict = obj_dict["__root__"] + if "root" in obj_dict: + obj_dict = obj_dict["root"] return jsonable_encoder(obj_dict, custom_encoder=encoder) if dataclasses.is_dataclass(obj): - obj_dict = dataclasses.asdict(obj) + obj_dict = dataclasses.asdict(obj) # type: ignore return jsonable_encoder(obj_dict, custom_encoder=custom_encoder) + if isinstance(obj, bytes): + return base64.b64encode(obj).decode("utf-8") if isinstance(obj, Enum): return obj.value if isinstance(obj, PurePath): @@ -80,20 +80,21 @@ def jsonable_encoder(obj: Any, custom_encoder: Optional[Dict[Any, Callable[[Any] encoded_list.append(jsonable_encoder(item, custom_encoder=custom_encoder)) return encoded_list - if type(obj) in pydantic_v1.json.ENCODERS_BY_TYPE: - return pydantic_v1.json.ENCODERS_BY_TYPE[type(obj)](obj) - for encoder, classes_tuple in encoders_by_class_tuples.items(): - if isinstance(obj, classes_tuple): - return encoder(obj) + def fallback_serializer(o: Any) -> Any: + attempt_encode = encode_by_type(o) + if attempt_encode is not None: + return attempt_encode - try: - data = dict(obj) - except Exception as e: - errors: List[Exception] = [] - errors.append(e) try: - data = vars(obj) + data = dict(o) except Exception as e: + errors: List[Exception] = [] errors.append(e) - raise ValueError(errors) from e - return jsonable_encoder(data, custom_encoder=custom_encoder) + try: + data = vars(o) + except Exception as e: + errors.append(e) + raise ValueError(errors) from e + return jsonable_encoder(data, custom_encoder=custom_encoder) + + return to_jsonable_with_fallback(obj, fallback_serializer) diff --git a/src/polytomic/core/pydantic_utilities.py b/src/polytomic/core/pydantic_utilities.py index a72c1a5..f7467bc 100644 --- a/src/polytomic/core/pydantic_utilities.py +++ b/src/polytomic/core/pydantic_utilities.py @@ -1,28 +1,294 @@ # This file was auto-generated by Fern from our API Definition. +# nopycln: file +import datetime as dt import typing +from collections import defaultdict import pydantic +import typing_extensions +from .datetime_utils import serialize_datetime +from .serialization import convert_and_respect_annotation_metadata IS_PYDANTIC_V2 = pydantic.VERSION.startswith("2.") if IS_PYDANTIC_V2: - import pydantic.v1 as pydantic_v1 # type: ignore # nopycln: import + # isort will try to reformat the comments on these imports, which breaks mypy + # isort: off + from pydantic.v1.datetime_parse import ( # type: ignore # pyright: ignore[reportMissingImports] # Pydantic v2 + parse_date as parse_date, + ) + from pydantic.v1.datetime_parse import ( # pyright: ignore[reportMissingImports] # Pydantic v2 + parse_datetime as parse_datetime, + ) + from pydantic.v1.json import ( # type: ignore # pyright: ignore[reportMissingImports] # Pydantic v2 + ENCODERS_BY_TYPE as encoders_by_type, + ) + from pydantic.v1.typing import ( # type: ignore # pyright: ignore[reportMissingImports] # Pydantic v2 + get_args as get_args, + ) + from pydantic.v1.typing import ( # pyright: ignore[reportMissingImports] # Pydantic v2 + get_origin as get_origin, + ) + from pydantic.v1.typing import ( # pyright: ignore[reportMissingImports] # Pydantic v2 + is_literal_type as is_literal_type, + ) + from pydantic.v1.typing import ( # pyright: ignore[reportMissingImports] # Pydantic v2 + is_union as is_union, + ) + from pydantic.v1.fields import ModelField as ModelField # type: ignore # pyright: ignore[reportMissingImports] # Pydantic v2 else: - import pydantic as pydantic_v1 # type: ignore # nopycln: import + from pydantic.datetime_parse import parse_date as parse_date # type: ignore # Pydantic v1 + from pydantic.datetime_parse import parse_datetime as parse_datetime # type: ignore # Pydantic v1 + from pydantic.fields import ModelField as ModelField # type: ignore # Pydantic v1 + from pydantic.json import ENCODERS_BY_TYPE as encoders_by_type # type: ignore # Pydantic v1 + from pydantic.typing import get_args as get_args # type: ignore # Pydantic v1 + from pydantic.typing import get_origin as get_origin # type: ignore # Pydantic v1 + from pydantic.typing import is_literal_type as is_literal_type # type: ignore # Pydantic v1 + from pydantic.typing import is_union as is_union # type: ignore # Pydantic v1 + + # isort: on + + +T = typing.TypeVar("T") +Model = typing.TypeVar("Model", bound=pydantic.BaseModel) + + +def parse_obj_as(type_: typing.Type[T], object_: typing.Any) -> T: + dealiased_object = convert_and_respect_annotation_metadata(object_=object_, annotation=type_, direction="read") + if IS_PYDANTIC_V2: + adapter = pydantic.TypeAdapter(type_) # type: ignore # Pydantic v2 + return adapter.validate_python(dealiased_object) + else: + return pydantic.parse_obj_as(type_, dealiased_object) + + +def to_jsonable_with_fallback( + obj: typing.Any, fallback_serializer: typing.Callable[[typing.Any], typing.Any] +) -> typing.Any: + if IS_PYDANTIC_V2: + from pydantic_core import to_jsonable_python + + return to_jsonable_python(obj, fallback=fallback_serializer) + else: + return fallback_serializer(obj) + + +class UniversalBaseModel(pydantic.BaseModel): + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict( + # Allow fields beginning with `model_` to be used in the model + protected_namespaces=(), + ) # type: ignore # Pydantic v2 + + @pydantic.model_serializer(mode="wrap", when_used="json") # type: ignore # Pydantic v2 + def serialize_model(self, handler: pydantic.SerializerFunctionWrapHandler) -> typing.Any: # type: ignore # Pydantic v2 + serialized = handler(self) + data = {k: serialize_datetime(v) if isinstance(v, dt.datetime) else v for k, v in serialized.items()} + return data + + else: + + class Config: + smart_union = True + json_encoders = {dt.datetime: serialize_datetime} + + @classmethod + def model_construct( + cls: typing.Type["Model"], _fields_set: typing.Optional[typing.Set[str]] = None, **values: typing.Any + ) -> "Model": + dealiased_object = convert_and_respect_annotation_metadata(object_=values, annotation=cls, direction="read") + return cls.construct(_fields_set, **dealiased_object) + + @classmethod + def construct( + cls: typing.Type["Model"], _fields_set: typing.Optional[typing.Set[str]] = None, **values: typing.Any + ) -> "Model": + dealiased_object = convert_and_respect_annotation_metadata(object_=values, annotation=cls, direction="read") + if IS_PYDANTIC_V2: + return super().model_construct(_fields_set, **dealiased_object) # type: ignore # Pydantic v2 + else: + return super().construct(_fields_set, **dealiased_object) + + def json(self, **kwargs: typing.Any) -> str: + kwargs_with_defaults: typing.Any = { + "by_alias": True, + "exclude_unset": True, + **kwargs, + } + if IS_PYDANTIC_V2: + return super().model_dump_json(**kwargs_with_defaults) # type: ignore # Pydantic v2 + else: + return super().json(**kwargs_with_defaults) + + def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: + """ + Override the default dict method to `exclude_unset` by default. This function patches + `exclude_unset` to work include fields within non-None default values. + """ + # Note: the logic here is multiplexed given the levers exposed in Pydantic V1 vs V2 + # Pydantic V1's .dict can be extremely slow, so we do not want to call it twice. + # + # We'd ideally do the same for Pydantic V2, but it shells out to a library to serialize models + # that we have less control over, and this is less intrusive than custom serializers for now. + if IS_PYDANTIC_V2: + kwargs_with_defaults_exclude_unset: typing.Any = { + **kwargs, + "by_alias": True, + "exclude_unset": True, + "exclude_none": False, + } + kwargs_with_defaults_exclude_none: typing.Any = { + **kwargs, + "by_alias": True, + "exclude_none": True, + "exclude_unset": False, + } + dict_dump = deep_union_pydantic_dicts( + super().model_dump(**kwargs_with_defaults_exclude_unset), # type: ignore # Pydantic v2 + super().model_dump(**kwargs_with_defaults_exclude_none), # type: ignore # Pydantic v2 + ) + + else: + _fields_set = self.__fields_set__.copy() + + fields = _get_model_fields(self.__class__) + for name, field in fields.items(): + if name not in _fields_set: + default = _get_field_default(field) + + # If the default values are non-null act like they've been set + # This effectively allows exclude_unset to work like exclude_none where + # the latter passes through intentionally set none values. + if default is not None or ("exclude_unset" in kwargs and not kwargs["exclude_unset"]): + _fields_set.add(name) + + if default is not None: + self.__fields_set__.add(name) + + kwargs_with_defaults_exclude_unset_include_fields: typing.Any = { + "by_alias": True, + "exclude_unset": True, + "include": _fields_set, + **kwargs, + } + + dict_dump = super().dict(**kwargs_with_defaults_exclude_unset_include_fields) + + return convert_and_respect_annotation_metadata(object_=dict_dump, annotation=self.__class__, direction="write") + + +def _union_list_of_pydantic_dicts( + source: typing.List[typing.Any], destination: typing.List[typing.Any] +) -> typing.List[typing.Any]: + converted_list: typing.List[typing.Any] = [] + for i, item in enumerate(source): + destination_value = destination[i] # type: ignore + if isinstance(item, dict): + converted_list.append(deep_union_pydantic_dicts(item, destination_value)) + elif isinstance(item, list): + converted_list.append(_union_list_of_pydantic_dicts(item, destination_value)) + else: + converted_list.append(item) + return converted_list def deep_union_pydantic_dicts( source: typing.Dict[str, typing.Any], destination: typing.Dict[str, typing.Any] ) -> typing.Dict[str, typing.Any]: for key, value in source.items(): + node = destination.setdefault(key, {}) if isinstance(value, dict): - node = destination.setdefault(key, {}) deep_union_pydantic_dicts(value, node) + # Note: we do not do this same processing for sets given we do not have sets of models + # and given the sets are unordered, the processing of the set and matching objects would + # be non-trivial. + elif isinstance(value, list): + destination[key] = _union_list_of_pydantic_dicts(value, node) else: destination[key] = value return destination -__all__ = ["pydantic_v1"] +if IS_PYDANTIC_V2: + + class V2RootModel(UniversalBaseModel, pydantic.RootModel): # type: ignore # Pydantic v2 + pass + + UniversalRootModel: typing_extensions.TypeAlias = V2RootModel # type: ignore +else: + UniversalRootModel: typing_extensions.TypeAlias = UniversalBaseModel # type: ignore + + +def encode_by_type(o: typing.Any) -> typing.Any: + encoders_by_class_tuples: typing.Dict[typing.Callable[[typing.Any], typing.Any], typing.Tuple[typing.Any, ...]] = ( + defaultdict(tuple) + ) + for type_, encoder in encoders_by_type.items(): + encoders_by_class_tuples[encoder] += (type_,) + + if type(o) in encoders_by_type: + return encoders_by_type[type(o)](o) + for encoder, classes_tuple in encoders_by_class_tuples.items(): + if isinstance(o, classes_tuple): + return encoder(o) + + +def update_forward_refs(model: typing.Type["Model"], **localns: typing.Any) -> None: + if IS_PYDANTIC_V2: + model.model_rebuild(raise_errors=False) # type: ignore # Pydantic v2 + else: + model.update_forward_refs(**localns) + + +# Mirrors Pydantic's internal typing +AnyCallable = typing.Callable[..., typing.Any] + + +def universal_root_validator( + pre: bool = False, +) -> typing.Callable[[AnyCallable], AnyCallable]: + def decorator(func: AnyCallable) -> AnyCallable: + if IS_PYDANTIC_V2: + return pydantic.model_validator(mode="before" if pre else "after")(func) # type: ignore # Pydantic v2 + else: + return pydantic.root_validator(pre=pre)(func) # type: ignore # Pydantic v1 + + return decorator + + +def universal_field_validator(field_name: str, pre: bool = False) -> typing.Callable[[AnyCallable], AnyCallable]: + def decorator(func: AnyCallable) -> AnyCallable: + if IS_PYDANTIC_V2: + return pydantic.field_validator(field_name, mode="before" if pre else "after")(func) # type: ignore # Pydantic v2 + else: + return pydantic.validator(field_name, pre=pre)(func) # type: ignore # Pydantic v1 + + return decorator + + +PydanticField = typing.Union[ModelField, pydantic.fields.FieldInfo] + + +def _get_model_fields( + model: typing.Type["Model"], +) -> typing.Mapping[str, PydanticField]: + if IS_PYDANTIC_V2: + return model.model_fields # type: ignore # Pydantic v2 + else: + return model.__fields__ # type: ignore # Pydantic v1 + + +def _get_field_default(field: PydanticField) -> typing.Any: + try: + value = field.get_default() # type: ignore # Pydantic < v1.10.15 + except: + value = field.default + if IS_PYDANTIC_V2: + from pydantic_core import PydanticUndefined + + if value == PydanticUndefined: + return None + return value + return value diff --git a/src/polytomic/core/query_encoder.py b/src/polytomic/core/query_encoder.py index 1f5f766..3183001 100644 --- a/src/polytomic/core/query_encoder.py +++ b/src/polytomic/core/query_encoder.py @@ -1,33 +1,58 @@ # This file was auto-generated by Fern from our API Definition. -from collections import ChainMap -from typing import Any, Dict, Optional +from typing import Any, Dict, List, Optional, Tuple -from .pydantic_utilities import pydantic_v1 +import pydantic # Flattens dicts to be of the form {"key[subkey][subkey2]": value} where value is not a dict -def traverse_query_dict(dict_flat: Dict[str, Any], key_prefix: Optional[str] = None) -> Dict[str, Any]: - result = {} +def traverse_query_dict(dict_flat: Dict[str, Any], key_prefix: Optional[str] = None) -> List[Tuple[str, Any]]: + result = [] for k, v in dict_flat.items(): key = f"{key_prefix}[{k}]" if key_prefix is not None else k if isinstance(v, dict): - result.update(traverse_query_dict(v, key)) + result.extend(traverse_query_dict(v, key)) + elif isinstance(v, list): + for arr_v in v: + if isinstance(arr_v, dict): + result.extend(traverse_query_dict(arr_v, key)) + else: + result.append((key, arr_v)) else: - result[key] = v + result.append((key, v)) return result -def single_query_encoder(query_key: str, query_value: Any) -> Dict[str, Any]: - if isinstance(query_value, pydantic_v1.BaseModel) or isinstance(query_value, dict): - if isinstance(query_value, pydantic_v1.BaseModel): +def single_query_encoder(query_key: str, query_value: Any) -> List[Tuple[str, Any]]: + if isinstance(query_value, pydantic.BaseModel) or isinstance(query_value, dict): + if isinstance(query_value, pydantic.BaseModel): obj_dict = query_value.dict(by_alias=True) else: obj_dict = query_value return traverse_query_dict(obj_dict, query_key) + elif isinstance(query_value, list): + encoded_values: List[Tuple[str, Any]] = [] + for value in query_value: + if isinstance(value, pydantic.BaseModel) or isinstance(value, dict): + if isinstance(value, pydantic.BaseModel): + obj_dict = value.dict(by_alias=True) + elif isinstance(value, dict): + obj_dict = value - return {query_key: query_value} + encoded_values.extend(single_query_encoder(query_key, obj_dict)) + else: + encoded_values.append((query_key, value)) + return encoded_values -def encode_query(query: Optional[Dict[str, Any]]) -> Optional[Dict[str, Any]]: - return dict(ChainMap(*[single_query_encoder(k, v) for k, v in query.items()])) if query is not None else None + return [(query_key, query_value)] + + +def encode_query(query: Optional[Dict[str, Any]]) -> Optional[List[Tuple[str, Any]]]: + if query is None: + return None + + encoded_query = [] + for k, v in query.items(): + encoded_query.extend(single_query_encoder(k, v)) + return encoded_query diff --git a/src/polytomic/core/request_options.py b/src/polytomic/core/request_options.py index d0bf0db..1b38804 100644 --- a/src/polytomic/core/request_options.py +++ b/src/polytomic/core/request_options.py @@ -23,6 +23,8 @@ class RequestOptions(typing.TypedDict, total=False): - additional_query_parameters: typing.Dict[str, typing.Any]. A dictionary containing additional parameters to spread into the request's query parameters dict - additional_body_parameters: typing.Dict[str, typing.Any]. A dictionary containing additional parameters to spread into the request's body parameters dict + + - chunk_size: int. The size, in bytes, to process each chunk of data being streamed back within the response. This equates to leveraging `chunk_size` within `requests` or `httpx`, and is only leveraged for file downloads. """ timeout_in_seconds: NotRequired[int] @@ -30,3 +32,4 @@ class RequestOptions(typing.TypedDict, total=False): additional_headers: NotRequired[typing.Dict[str, typing.Any]] additional_query_parameters: NotRequired[typing.Dict[str, typing.Any]] additional_body_parameters: NotRequired[typing.Dict[str, typing.Any]] + chunk_size: NotRequired[int] diff --git a/src/polytomic/core/serialization.py b/src/polytomic/core/serialization.py new file mode 100644 index 0000000..e3d17f0 --- /dev/null +++ b/src/polytomic/core/serialization.py @@ -0,0 +1,271 @@ +# This file was auto-generated by Fern from our API Definition. + +import collections +import inspect +import typing + +import pydantic +import typing_extensions + + +class FieldMetadata: + """ + Metadata class used to annotate fields to provide additional information. + + Example: + class MyDict(TypedDict): + field: typing.Annotated[str, FieldMetadata(alias="field_name")] + + Will serialize: `{"field": "value"}` + To: `{"field_name": "value"}` + """ + + alias: str + + def __init__(self, *, alias: str) -> None: + self.alias = alias + + +def convert_and_respect_annotation_metadata( + *, + object_: typing.Any, + annotation: typing.Any, + inner_type: typing.Optional[typing.Any] = None, + direction: typing.Literal["read", "write"], +) -> typing.Any: + """ + Respect the metadata annotations on a field, such as aliasing. This function effectively + manipulates the dict-form of an object to respect the metadata annotations. This is primarily used for + TypedDicts, which cannot support aliasing out of the box, and can be extended for additional + utilities, such as defaults. + + Parameters + ---------- + object_ : typing.Any + + annotation : type + The type we're looking to apply typing annotations from + + inner_type : typing.Optional[type] + + Returns + ------- + typing.Any + """ + + if object_ is None: + return None + if inner_type is None: + inner_type = annotation + + clean_type = _remove_annotations(inner_type) + # Pydantic models + if ( + inspect.isclass(clean_type) + and issubclass(clean_type, pydantic.BaseModel) + and isinstance(object_, typing.Mapping) + ): + return _convert_mapping(object_, clean_type, direction) + # TypedDicts + if typing_extensions.is_typeddict(clean_type) and isinstance(object_, typing.Mapping): + return _convert_mapping(object_, clean_type, direction) + + if ( + typing_extensions.get_origin(clean_type) == typing.Dict + or typing_extensions.get_origin(clean_type) == dict + or clean_type == typing.Dict + ) and isinstance(object_, typing.Dict): + key_type = typing_extensions.get_args(clean_type)[0] + value_type = typing_extensions.get_args(clean_type)[1] + + return { + key: convert_and_respect_annotation_metadata( + object_=value, + annotation=annotation, + inner_type=value_type, + direction=direction, + ) + for key, value in object_.items() + } + + # If you're iterating on a string, do not bother to coerce it to a sequence. + if not isinstance(object_, str): + if ( + typing_extensions.get_origin(clean_type) == typing.Set + or typing_extensions.get_origin(clean_type) == set + or clean_type == typing.Set + ) and isinstance(object_, typing.Set): + inner_type = typing_extensions.get_args(clean_type)[0] + return { + convert_and_respect_annotation_metadata( + object_=item, + annotation=annotation, + inner_type=inner_type, + direction=direction, + ) + for item in object_ + } + elif ( + ( + typing_extensions.get_origin(clean_type) == typing.List + or typing_extensions.get_origin(clean_type) == list + or clean_type == typing.List + ) + and isinstance(object_, typing.List) + ) or ( + ( + typing_extensions.get_origin(clean_type) == typing.Sequence + or typing_extensions.get_origin(clean_type) == collections.abc.Sequence + or clean_type == typing.Sequence + ) + and isinstance(object_, typing.Sequence) + ): + inner_type = typing_extensions.get_args(clean_type)[0] + return [ + convert_and_respect_annotation_metadata( + object_=item, + annotation=annotation, + inner_type=inner_type, + direction=direction, + ) + for item in object_ + ] + + if typing_extensions.get_origin(clean_type) == typing.Union: + # We should be able to ~relatively~ safely try to convert keys against all + # member types in the union, the edge case here is if one member aliases a field + # of the same name to a different name from another member + # Or if another member aliases a field of the same name that another member does not. + for member in typing_extensions.get_args(clean_type): + object_ = convert_and_respect_annotation_metadata( + object_=object_, + annotation=annotation, + inner_type=member, + direction=direction, + ) + return object_ + + annotated_type = _get_annotation(annotation) + if annotated_type is None: + return object_ + + # If the object is not a TypedDict, a Union, or other container (list, set, sequence, etc.) + # Then we can safely call it on the recursive conversion. + return object_ + + +def _convert_mapping( + object_: typing.Mapping[str, object], + expected_type: typing.Any, + direction: typing.Literal["read", "write"], +) -> typing.Mapping[str, object]: + converted_object: typing.Dict[str, object] = {} + annotations = typing_extensions.get_type_hints(expected_type, include_extras=True) + aliases_to_field_names = _get_alias_to_field_name(annotations) + for key, value in object_.items(): + if direction == "read" and key in aliases_to_field_names: + dealiased_key = aliases_to_field_names.get(key) + if dealiased_key is not None: + type_ = annotations.get(dealiased_key) + else: + type_ = annotations.get(key) + # Note you can't get the annotation by the field name if you're in read mode, so you must check the aliases map + # + # So this is effectively saying if we're in write mode, and we don't have a type, or if we're in read mode and we don't have an alias + # then we can just pass the value through as is + if type_ is None: + converted_object[key] = value + elif direction == "read" and key not in aliases_to_field_names: + converted_object[key] = convert_and_respect_annotation_metadata( + object_=value, annotation=type_, direction=direction + ) + else: + converted_object[_alias_key(key, type_, direction, aliases_to_field_names)] = ( + convert_and_respect_annotation_metadata(object_=value, annotation=type_, direction=direction) + ) + return converted_object + + +def _get_annotation(type_: typing.Any) -> typing.Optional[typing.Any]: + maybe_annotated_type = typing_extensions.get_origin(type_) + if maybe_annotated_type is None: + return None + + if maybe_annotated_type == typing_extensions.NotRequired: + type_ = typing_extensions.get_args(type_)[0] + maybe_annotated_type = typing_extensions.get_origin(type_) + + if maybe_annotated_type == typing_extensions.Annotated: + return type_ + + return None + + +def _remove_annotations(type_: typing.Any) -> typing.Any: + maybe_annotated_type = typing_extensions.get_origin(type_) + if maybe_annotated_type is None: + return type_ + + if maybe_annotated_type == typing_extensions.NotRequired: + return _remove_annotations(typing_extensions.get_args(type_)[0]) + + if maybe_annotated_type == typing_extensions.Annotated: + return _remove_annotations(typing_extensions.get_args(type_)[0]) + + return type_ + + +def get_alias_to_field_mapping(type_: typing.Any) -> typing.Dict[str, str]: + annotations = typing_extensions.get_type_hints(type_, include_extras=True) + return _get_alias_to_field_name(annotations) + + +def get_field_to_alias_mapping(type_: typing.Any) -> typing.Dict[str, str]: + annotations = typing_extensions.get_type_hints(type_, include_extras=True) + return _get_field_to_alias_name(annotations) + + +def _get_alias_to_field_name( + field_to_hint: typing.Dict[str, typing.Any], +) -> typing.Dict[str, str]: + aliases = {} + for field, hint in field_to_hint.items(): + maybe_alias = _get_alias_from_type(hint) + if maybe_alias is not None: + aliases[maybe_alias] = field + return aliases + + +def _get_field_to_alias_name( + field_to_hint: typing.Dict[str, typing.Any], +) -> typing.Dict[str, str]: + aliases = {} + for field, hint in field_to_hint.items(): + maybe_alias = _get_alias_from_type(hint) + if maybe_alias is not None: + aliases[field] = maybe_alias + return aliases + + +def _get_alias_from_type(type_: typing.Any) -> typing.Optional[str]: + maybe_annotated_type = _get_annotation(type_) + + if maybe_annotated_type is not None: + # The actual annotations are 1 onward, the first is the annotated type + annotations = typing_extensions.get_args(maybe_annotated_type)[1:] + + for annotation in annotations: + if isinstance(annotation, FieldMetadata) and annotation.alias is not None: + return annotation.alias + return None + + +def _alias_key( + key: str, + type_: typing.Any, + direction: typing.Literal["read", "write"], + aliases_to_field_names: typing.Dict[str, str], +) -> str: + if direction == "read": + return aliases_to_field_names.get(key, key) + return _get_alias_from_type(type_=type_) or key diff --git a/src/polytomic/events/client.py b/src/polytomic/events/client.py index 7eeac64..01d4d77 100644 --- a/src/polytomic/events/client.py +++ b/src/polytomic/events/client.py @@ -1,21 +1,21 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.client_wrapper import SyncClientWrapper import typing -from json.decoder import JSONDecodeError - -from ..core.api_error import ApiError as core_api_error_ApiError -from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import pydantic_v1 +import datetime as dt from ..core.request_options import RequestOptions -from ..errors.internal_server_error import InternalServerError +from ..types.events_envelope import EventsEnvelope +from ..core.datetime_utils import serialize_datetime +from ..core.pydantic_utilities import parse_obj_as from ..errors.unauthorized_error import UnauthorizedError +from ..types.rest_err_response import RestErrResponse from ..errors.unprocessable_entity_error import UnprocessableEntityError from ..types.api_error import ApiError as types_api_error_ApiError +from ..errors.internal_server_error import InternalServerError +from json.decoder import JSONDecodeError +from ..core.api_error import ApiError as core_api_error_ApiError from ..types.event_types_envelope import EventTypesEnvelope -from ..types.events_envelope import EventsEnvelope -from ..types.rest_err_response import RestErrResponse +from ..core.client_wrapper import AsyncClientWrapper class EventsClient: @@ -30,7 +30,7 @@ def list( starting_after: typing.Optional[dt.datetime] = None, ending_before: typing.Optional[dt.datetime] = None, limit: typing.Optional[int] = None, - request_options: typing.Optional[RequestOptions] = None + request_options: typing.Optional[RequestOptions] = None, ) -> EventsEnvelope: """ Parameters @@ -57,7 +57,7 @@ def list( -------- import datetime - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -87,16 +87,42 @@ def list( ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(EventsEnvelope, _response.json()) # type: ignore + return typing.cast( + EventsEnvelope, + parse_obj_as( + type_=EventsEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 422: raise UnprocessableEntityError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -117,7 +143,7 @@ def get_types(self, *, request_options: typing.Optional[RequestOptions] = None) Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -126,13 +152,29 @@ def get_types(self, *, request_options: typing.Optional[RequestOptions] = None) client.events.get_types() """ _response = self._client_wrapper.httpx_client.request( - "api/events_types", method="GET", request_options=request_options + "api/events_types", + method="GET", + request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(EventTypesEnvelope, _response.json()) # type: ignore + return typing.cast( + EventTypesEnvelope, + parse_obj_as( + type_=EventTypesEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) _response_json = _response.json() except JSONDecodeError: raise core_api_error_ApiError(status_code=_response.status_code, body=_response.text) @@ -151,7 +193,7 @@ async def list( starting_after: typing.Optional[dt.datetime] = None, ending_before: typing.Optional[dt.datetime] = None, limit: typing.Optional[int] = None, - request_options: typing.Optional[RequestOptions] = None + request_options: typing.Optional[RequestOptions] = None, ) -> EventsEnvelope: """ Parameters @@ -179,7 +221,7 @@ async def list( import asyncio import datetime - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -215,16 +257,42 @@ async def main() -> None: ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(EventsEnvelope, _response.json()) # type: ignore + return typing.cast( + EventsEnvelope, + parse_obj_as( + type_=EventsEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 422: raise UnprocessableEntityError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -247,7 +315,7 @@ async def get_types(self, *, request_options: typing.Optional[RequestOptions] = -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -262,13 +330,29 @@ async def main() -> None: asyncio.run(main()) """ _response = await self._client_wrapper.httpx_client.request( - "api/events_types", method="GET", request_options=request_options + "api/events_types", + method="GET", + request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(EventTypesEnvelope, _response.json()) # type: ignore + return typing.cast( + EventTypesEnvelope, + parse_obj_as( + type_=EventTypesEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) _response_json = _response.json() except JSONDecodeError: raise core_api_error_ApiError(status_code=_response.status_code, body=_response.text) diff --git a/src/polytomic/identity/client.py b/src/polytomic/identity/client.py index 401f235..daf2a20 100644 --- a/src/polytomic/identity/client.py +++ b/src/polytomic/identity/client.py @@ -1,17 +1,17 @@ # This file was auto-generated by Fern from our API Definition. +from ..core.client_wrapper import SyncClientWrapper import typing -from json.decoder import JSONDecodeError - -from ..core.api_error import ApiError as core_api_error_ApiError -from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper -from ..core.pydantic_utilities import pydantic_v1 from ..core.request_options import RequestOptions -from ..errors.internal_server_error import InternalServerError -from ..errors.unauthorized_error import UnauthorizedError -from ..types.api_error import ApiError as types_api_error_ApiError from ..types.get_identity_response_envelope import GetIdentityResponseEnvelope +from ..core.pydantic_utilities import parse_obj_as +from ..errors.unauthorized_error import UnauthorizedError from ..types.rest_err_response import RestErrResponse +from ..errors.internal_server_error import InternalServerError +from ..types.api_error import ApiError as types_api_error_ApiError +from json.decoder import JSONDecodeError +from ..core.api_error import ApiError as core_api_error_ApiError +from ..core.client_wrapper import AsyncClientWrapper class IdentityClient: @@ -32,7 +32,7 @@ def get(self, *, request_options: typing.Optional[RequestOptions] = None) -> Get Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -40,15 +40,39 @@ def get(self, *, request_options: typing.Optional[RequestOptions] = None) -> Get ) client.identity.get() """ - _response = self._client_wrapper.httpx_client.request("api/me", method="GET", request_options=request_options) + _response = self._client_wrapper.httpx_client.request( + "api/me", + method="GET", + request_options=request_options, + ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(GetIdentityResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + GetIdentityResponseEnvelope, + parse_obj_as( + type_=GetIdentityResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 500: raise InternalServerError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -76,7 +100,7 @@ async def get(self, *, request_options: typing.Optional[RequestOptions] = None) -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -91,16 +115,38 @@ async def main() -> None: asyncio.run(main()) """ _response = await self._client_wrapper.httpx_client.request( - "api/me", method="GET", request_options=request_options + "api/me", + method="GET", + request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(GetIdentityResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + GetIdentityResponseEnvelope, + parse_obj_as( + type_=GetIdentityResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 500: raise InternalServerError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: diff --git a/src/polytomic/jobs/client.py b/src/polytomic/jobs/client.py index 89c461e..32ba6b8 100644 --- a/src/polytomic/jobs/client.py +++ b/src/polytomic/jobs/client.py @@ -1,20 +1,20 @@ # This file was auto-generated by Fern from our API Definition. +from ..core.client_wrapper import SyncClientWrapper import typing -from json.decoder import JSONDecodeError - -from ..core.api_error import ApiError as core_api_error_ApiError -from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper -from ..core.jsonable_encoder import jsonable_encoder -from ..core.pydantic_utilities import pydantic_v1 from ..core.request_options import RequestOptions +from ..types.job_response_envelope import JobResponseEnvelope +from ..core.jsonable_encoder import jsonable_encoder +from ..core.pydantic_utilities import parse_obj_as from ..errors.bad_request_error import BadRequestError -from ..errors.internal_server_error import InternalServerError -from ..errors.not_found_error import NotFoundError -from ..errors.unauthorized_error import UnauthorizedError from ..types.api_error import ApiError as types_api_error_ApiError -from ..types.job_response_envelope import JobResponseEnvelope +from ..errors.unauthorized_error import UnauthorizedError from ..types.rest_err_response import RestErrResponse +from ..errors.not_found_error import NotFoundError +from ..errors.internal_server_error import InternalServerError +from json.decoder import JSONDecodeError +from ..core.api_error import ApiError as core_api_error_ApiError +from ..core.client_wrapper import AsyncClientWrapper class JobsClient: @@ -41,7 +41,7 @@ def get( Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -53,24 +53,58 @@ def get( ) """ _response = self._client_wrapper.httpx_client.request( - f"api/jobs/{jsonable_encoder(type)}/{jsonable_encoder(id)}", method="GET", request_options=request_options + f"api/jobs/{jsonable_encoder(type)}/{jsonable_encoder(id)}", + method="GET", + request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(JobResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + JobResponseEnvelope, + parse_obj_as( + type_=JobResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 400: raise BadRequestError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -104,7 +138,7 @@ async def get( -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -122,24 +156,58 @@ async def main() -> None: asyncio.run(main()) """ _response = await self._client_wrapper.httpx_client.request( - f"api/jobs/{jsonable_encoder(type)}/{jsonable_encoder(id)}", method="GET", request_options=request_options + f"api/jobs/{jsonable_encoder(type)}/{jsonable_encoder(id)}", + method="GET", + request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(JobResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + JobResponseEnvelope, + parse_obj_as( + type_=JobResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 400: raise BadRequestError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: diff --git a/src/polytomic/model_sync/client.py b/src/polytomic/model_sync/client.py index 6e094f3..395f1f3 100644 --- a/src/polytomic/model_sync/client.py +++ b/src/polytomic/model_sync/client.py @@ -1,42 +1,44 @@ # This file was auto-generated by Fern from our API Definition. import typing -from json.decoder import JSONDecodeError - -from ..core.api_error import ApiError as core_api_error_ApiError -from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper -from ..core.jsonable_encoder import jsonable_encoder -from ..core.pydantic_utilities import pydantic_v1 +from ..core.client_wrapper import SyncClientWrapper +from .executions.client import ExecutionsClient from ..core.request_options import RequestOptions +from ..types.get_model_sync_source_meta_envelope import GetModelSyncSourceMetaEnvelope +from ..core.jsonable_encoder import jsonable_encoder +from ..core.pydantic_utilities import parse_obj_as from ..errors.bad_request_error import BadRequestError -from ..errors.conflict_error import ConflictError +from ..types.api_error import ApiError as types_api_error_ApiError +from ..errors.unauthorized_error import UnauthorizedError +from ..types.rest_err_response import RestErrResponse from ..errors.forbidden_error import ForbiddenError -from ..errors.internal_server_error import InternalServerError from ..errors.not_found_error import NotFoundError -from ..errors.unauthorized_error import UnauthorizedError -from ..errors.unprocessable_entity_error import UnprocessableEntityError -from ..types.activate_sync_envelope import ActivateSyncEnvelope -from ..types.api_error import ApiError as types_api_error_ApiError -from ..types.enrichment import Enrichment -from ..types.filter import Filter +from ..errors.internal_server_error import InternalServerError +from json.decoder import JSONDecodeError +from ..core.api_error import ApiError as core_api_error_ApiError +from ..types.model_field_response import ModelFieldResponse from ..types.get_connection_meta_envelope import GetConnectionMetaEnvelope -from ..types.get_model_sync_source_meta_envelope import GetModelSyncSourceMetaEnvelope -from ..types.identity import Identity +from ..types.target_response_envelope import TargetResponseEnvelope +from ..types.v_4_target_objects_response_envelope import V4TargetObjectsResponseEnvelope +from ..types.sync_mode import SyncMode from ..types.list_model_sync_response_envelope import ListModelSyncResponseEnvelope -from ..types.model_field_response import ModelFieldResponse from ..types.model_sync_field import ModelSyncField -from ..types.model_sync_response_envelope import ModelSyncResponseEnvelope -from ..types.override import Override -from ..types.rest_err_response import RestErrResponse from ..types.schedule import Schedule +from ..types.target import Target +from ..types.enrichment import Enrichment +from ..types.filter import Filter +from ..types.identity import Identity +from ..types.override import Override +from ..types.model_sync_response_envelope import ModelSyncResponseEnvelope +from ..core.serialization import convert_and_respect_annotation_metadata +from ..errors.unprocessable_entity_error import UnprocessableEntityError from ..types.schedule_option_response_envelope import ScheduleOptionResponseEnvelope +from ..types.activate_sync_envelope import ActivateSyncEnvelope from ..types.start_model_sync_response_envelope import StartModelSyncResponseEnvelope -from ..types.sync_mode import SyncMode +from ..errors.conflict_error import ConflictError from ..types.sync_status_envelope import SyncStatusEnvelope -from ..types.target import Target -from ..types.target_response_envelope import TargetResponseEnvelope -from ..types.v_4_target_objects_response_envelope import V4TargetObjectsResponseEnvelope -from .executions.client import AsyncExecutionsClient, ExecutionsClient +from ..core.client_wrapper import AsyncClientWrapper +from .executions.client import AsyncExecutionsClient # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -71,7 +73,7 @@ def get_source( Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -84,29 +86,69 @@ def get_source( _response = self._client_wrapper.httpx_client.request( f"api/connections/{jsonable_encoder(id)}/modelsync/source", method="GET", - params={"params": jsonable_encoder(params)}, + params={ + "params": params, + }, request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(GetModelSyncSourceMetaEnvelope, _response.json()) # type: ignore + return typing.cast( + GetModelSyncSourceMetaEnvelope, + parse_obj_as( + type_=GetModelSyncSourceMetaEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 400: raise BadRequestError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 403: raise ForbiddenError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -137,7 +179,7 @@ def get_source_fields( Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -150,29 +192,69 @@ def get_source_fields( _response = self._client_wrapper.httpx_client.request( f"api/connections/{jsonable_encoder(id)}/modelsync/source/fields", method="GET", - params={"params": jsonable_encoder(params)}, + params={ + "params": params, + }, request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(ModelFieldResponse, _response.json()) # type: ignore + return typing.cast( + ModelFieldResponse, + parse_obj_as( + type_=ModelFieldResponse, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 400: raise BadRequestError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 403: raise ForbiddenError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -206,7 +288,7 @@ def get_target( Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -219,29 +301,70 @@ def get_target( _response = self._client_wrapper.httpx_client.request( f"api/connections/{jsonable_encoder(id)}/modelsync/target", method="GET", - params={"type": type, "search": search}, + params={ + "type": type, + "search": search, + }, request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(GetConnectionMetaEnvelope, _response.json()) # type: ignore + return typing.cast( + GetConnectionMetaEnvelope, + parse_obj_as( + type_=GetConnectionMetaEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 400: raise BadRequestError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 403: raise ForbiddenError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -275,7 +398,7 @@ def get_target_fields( Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -290,25 +413,60 @@ def get_target_fields( _response = self._client_wrapper.httpx_client.request( f"api/connections/{jsonable_encoder(id)}/modelsync/target/fields", method="GET", - params={"target": target, "refresh": refresh}, + params={ + "target": target, + "refresh": refresh, + }, request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(TargetResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + TargetResponseEnvelope, + parse_obj_as( + type_=TargetResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 403: raise ForbiddenError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -333,7 +491,7 @@ def get_target_objects( Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -350,24 +508,62 @@ def get_target_objects( ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(V4TargetObjectsResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + V4TargetObjectsResponseEnvelope, + parse_obj_as( + type_=V4TargetObjectsResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 400: raise BadRequestError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 403: raise ForbiddenError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -401,7 +597,7 @@ def list( Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -415,25 +611,61 @@ def list( _response = self._client_wrapper.httpx_client.request( "api/syncs", method="GET", - params={"active": active, "mode": mode, "target_connection_id": target_connection_id}, + params={ + "active": active, + "mode": mode, + "target_connection_id": target_connection_id, + }, request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(ListModelSyncResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + ListModelSyncResponseEnvelope, + parse_obj_as( + type_=ListModelSyncResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 400: raise BadRequestError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -453,10 +685,12 @@ def create( filter_logic: typing.Optional[str] = OMIT, filters: typing.Optional[typing.Sequence[Filter]] = OMIT, identity: typing.Optional[Identity] = OMIT, + only_enrich_updates: typing.Optional[bool] = OMIT, organization_id: typing.Optional[str] = OMIT, override_fields: typing.Optional[typing.Sequence[ModelSyncField]] = OMIT, overrides: typing.Optional[typing.Sequence[Override]] = OMIT, policies: typing.Optional[typing.Sequence[str]] = OMIT, + skip_initial_backfill: typing.Optional[bool] = OMIT, sync_all_records: typing.Optional[bool] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> ModelSyncResponseEnvelope: @@ -484,6 +718,8 @@ def create( identity : typing.Optional[Identity] + only_enrich_updates : typing.Optional[bool] + organization_id : typing.Optional[str] override_fields : typing.Optional[typing.Sequence[ModelSyncField]] @@ -494,6 +730,8 @@ def create( policies : typing.Optional[typing.Sequence[str]] + skip_initial_backfill : typing.Optional[bool] + sync_all_records : typing.Optional[bool] request_options : typing.Optional[RequestOptions] @@ -506,8 +744,7 @@ def create( Examples -------- - from polytomic import ModelSyncField, Schedule, Target - from polytomic.client import Polytomic + from polytomic import ModelSyncField, Polytomic, Schedule, Target client = Polytomic( version="YOUR_VERSION", @@ -533,44 +770,101 @@ def create( method="POST", json={ "active": active, - "enricher": enricher, - "fields": fields, + "enricher": convert_and_respect_annotation_metadata( + object_=enricher, annotation=Enrichment, direction="write" + ), + "fields": convert_and_respect_annotation_metadata( + object_=fields, annotation=typing.Sequence[ModelSyncField], direction="write" + ), "filter_logic": filter_logic, - "filters": filters, - "identity": identity, + "filters": convert_and_respect_annotation_metadata( + object_=filters, annotation=typing.Sequence[Filter], direction="write" + ), + "identity": convert_and_respect_annotation_metadata( + object_=identity, annotation=Identity, direction="write" + ), "mode": mode, "name": name, + "only_enrich_updates": only_enrich_updates, "organization_id": organization_id, - "override_fields": override_fields, - "overrides": overrides, + "override_fields": convert_and_respect_annotation_metadata( + object_=override_fields, annotation=typing.Sequence[ModelSyncField], direction="write" + ), + "overrides": convert_and_respect_annotation_metadata( + object_=overrides, annotation=typing.Sequence[Override], direction="write" + ), "policies": policies, - "schedule": schedule, + "schedule": convert_and_respect_annotation_metadata( + object_=schedule, annotation=Schedule, direction="write" + ), + "skip_initial_backfill": skip_initial_backfill, "sync_all_records": sync_all_records, - "target": target, + "target": convert_and_respect_annotation_metadata(object_=target, annotation=Target, direction="write"), + }, + headers={ + "content-type": "application/json", }, request_options=request_options, omit=OMIT, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(ModelSyncResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + ModelSyncResponseEnvelope, + parse_obj_as( + type_=ModelSyncResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 400: raise BadRequestError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 403: raise ForbiddenError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + typing.cast( + types_api_error_ApiError, + parse_obj_as( + type_=types_api_error_ApiError, # type: ignore + object_=_response.json(), + ), + ) ) if _response.status_code == 422: raise UnprocessableEntityError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -593,7 +887,7 @@ def get_schedule_options( Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -602,16 +896,38 @@ def get_schedule_options( client.model_sync.get_schedule_options() """ _response = self._client_wrapper.httpx_client.request( - "api/syncs/schedules", method="GET", request_options=request_options + "api/syncs/schedules", + method="GET", + request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(ScheduleOptionResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + ScheduleOptionResponseEnvelope, + parse_obj_as( + type_=ScheduleOptionResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 500: raise InternalServerError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -634,7 +950,7 @@ def get(self, id: str, *, request_options: typing.Optional[RequestOptions] = Non Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -645,20 +961,48 @@ def get(self, id: str, *, request_options: typing.Optional[RequestOptions] = Non ) """ _response = self._client_wrapper.httpx_client.request( - f"api/syncs/{jsonable_encoder(id)}", method="GET", request_options=request_options + f"api/syncs/{jsonable_encoder(id)}", + method="GET", + request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(ModelSyncResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + ModelSyncResponseEnvelope, + parse_obj_as( + type_=ModelSyncResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -679,10 +1023,12 @@ def update( filter_logic: typing.Optional[str] = OMIT, filters: typing.Optional[typing.Sequence[Filter]] = OMIT, identity: typing.Optional[Identity] = OMIT, + only_enrich_updates: typing.Optional[bool] = OMIT, organization_id: typing.Optional[str] = OMIT, override_fields: typing.Optional[typing.Sequence[ModelSyncField]] = OMIT, overrides: typing.Optional[typing.Sequence[Override]] = OMIT, policies: typing.Optional[typing.Sequence[str]] = OMIT, + skip_initial_backfill: typing.Optional[bool] = OMIT, sync_all_records: typing.Optional[bool] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> ModelSyncResponseEnvelope: @@ -712,6 +1058,8 @@ def update( identity : typing.Optional[Identity] + only_enrich_updates : typing.Optional[bool] + organization_id : typing.Optional[str] override_fields : typing.Optional[typing.Sequence[ModelSyncField]] @@ -722,6 +1070,8 @@ def update( policies : typing.Optional[typing.Sequence[str]] + skip_initial_backfill : typing.Optional[bool] + sync_all_records : typing.Optional[bool] request_options : typing.Optional[RequestOptions] @@ -734,8 +1084,7 @@ def update( Examples -------- - from polytomic import ModelSyncField, Schedule, Target - from polytomic.client import Polytomic + from polytomic import ModelSyncField, Polytomic, Schedule, Target client = Polytomic( version="YOUR_VERSION", @@ -762,48 +1111,111 @@ def update( method="PUT", json={ "active": active, - "enricher": enricher, - "fields": fields, + "enricher": convert_and_respect_annotation_metadata( + object_=enricher, annotation=Enrichment, direction="write" + ), + "fields": convert_and_respect_annotation_metadata( + object_=fields, annotation=typing.Sequence[ModelSyncField], direction="write" + ), "filter_logic": filter_logic, - "filters": filters, - "identity": identity, + "filters": convert_and_respect_annotation_metadata( + object_=filters, annotation=typing.Sequence[Filter], direction="write" + ), + "identity": convert_and_respect_annotation_metadata( + object_=identity, annotation=Identity, direction="write" + ), "mode": mode, "name": name, + "only_enrich_updates": only_enrich_updates, "organization_id": organization_id, - "override_fields": override_fields, - "overrides": overrides, + "override_fields": convert_and_respect_annotation_metadata( + object_=override_fields, annotation=typing.Sequence[ModelSyncField], direction="write" + ), + "overrides": convert_and_respect_annotation_metadata( + object_=overrides, annotation=typing.Sequence[Override], direction="write" + ), "policies": policies, - "schedule": schedule, + "schedule": convert_and_respect_annotation_metadata( + object_=schedule, annotation=Schedule, direction="write" + ), + "skip_initial_backfill": skip_initial_backfill, "sync_all_records": sync_all_records, - "target": target, + "target": convert_and_respect_annotation_metadata(object_=target, annotation=Target, direction="write"), + }, + headers={ + "content-type": "application/json", }, request_options=request_options, omit=OMIT, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(ModelSyncResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + ModelSyncResponseEnvelope, + parse_obj_as( + type_=ModelSyncResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 400: raise BadRequestError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 403: raise ForbiddenError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + typing.cast( + types_api_error_ApiError, + parse_obj_as( + type_=types_api_error_ApiError, # type: ignore + object_=_response.json(), + ), + ) ) if _response.status_code == 422: raise UnprocessableEntityError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -825,7 +1237,7 @@ def remove(self, id: str, *, request_options: typing.Optional[RequestOptions] = Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -836,24 +1248,52 @@ def remove(self, id: str, *, request_options: typing.Optional[RequestOptions] = ) """ _response = self._client_wrapper.httpx_client.request( - f"api/syncs/{jsonable_encoder(id)}", method="DELETE", request_options=request_options + f"api/syncs/{jsonable_encoder(id)}", + method="DELETE", + request_options=request_options, ) try: if 200 <= _response.status_code < 300: return if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 403: raise ForbiddenError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -880,7 +1320,7 @@ def activate( Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -894,26 +1334,60 @@ def activate( _response = self._client_wrapper.httpx_client.request( f"api/syncs/{jsonable_encoder(id)}/activate", method="POST", - json={"active": active}, + json={ + "active": active, + }, request_options=request_options, omit=OMIT, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(ActivateSyncEnvelope, _response.json()) # type: ignore + return typing.cast( + ActivateSyncEnvelope, + parse_obj_as( + type_=ActivateSyncEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 403: raise ForbiddenError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -951,7 +1425,7 @@ def start( Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -964,34 +1438,84 @@ def start( _response = self._client_wrapper.httpx_client.request( f"api/syncs/{jsonable_encoder(id)}/executions", method="POST", - json={"identities": identities, "resync": resync}, + json={ + "identities": identities, + "resync": resync, + }, + headers={ + "content-type": "application/json", + }, request_options=request_options, omit=OMIT, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(StartModelSyncResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + StartModelSyncResponseEnvelope, + parse_obj_as( + type_=StartModelSyncResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 400: raise BadRequestError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 403: raise ForbiddenError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + typing.cast( + types_api_error_ApiError, + parse_obj_as( + type_=types_api_error_ApiError, # type: ignore + object_=_response.json(), + ), + ) ) if _response.status_code == 409: raise ConflictError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -1014,7 +1538,7 @@ def get_status(self, id: str, *, request_options: typing.Optional[RequestOptions Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -1025,20 +1549,48 @@ def get_status(self, id: str, *, request_options: typing.Optional[RequestOptions ) """ _response = self._client_wrapper.httpx_client.request( - f"api/syncs/{jsonable_encoder(id)}/status", method="GET", request_options=request_options + f"api/syncs/{jsonable_encoder(id)}/status", + method="GET", + request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(SyncStatusEnvelope, _response.json()) # type: ignore + return typing.cast( + SyncStatusEnvelope, + parse_obj_as( + type_=SyncStatusEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -1077,7 +1629,7 @@ async def get_source( -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -1096,29 +1648,69 @@ async def main() -> None: _response = await self._client_wrapper.httpx_client.request( f"api/connections/{jsonable_encoder(id)}/modelsync/source", method="GET", - params={"params": jsonable_encoder(params)}, + params={ + "params": params, + }, request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(GetModelSyncSourceMetaEnvelope, _response.json()) # type: ignore + return typing.cast( + GetModelSyncSourceMetaEnvelope, + parse_obj_as( + type_=GetModelSyncSourceMetaEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 400: raise BadRequestError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 403: raise ForbiddenError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -1151,7 +1743,7 @@ async def get_source_fields( -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -1170,29 +1762,69 @@ async def main() -> None: _response = await self._client_wrapper.httpx_client.request( f"api/connections/{jsonable_encoder(id)}/modelsync/source/fields", method="GET", - params={"params": jsonable_encoder(params)}, + params={ + "params": params, + }, request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(ModelFieldResponse, _response.json()) # type: ignore + return typing.cast( + ModelFieldResponse, + parse_obj_as( + type_=ModelFieldResponse, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 400: raise BadRequestError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 403: raise ForbiddenError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -1228,7 +1860,7 @@ async def get_target( -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -1247,29 +1879,70 @@ async def main() -> None: _response = await self._client_wrapper.httpx_client.request( f"api/connections/{jsonable_encoder(id)}/modelsync/target", method="GET", - params={"type": type, "search": search}, + params={ + "type": type, + "search": search, + }, request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(GetConnectionMetaEnvelope, _response.json()) # type: ignore + return typing.cast( + GetConnectionMetaEnvelope, + parse_obj_as( + type_=GetConnectionMetaEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 400: raise BadRequestError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 403: raise ForbiddenError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -1305,7 +1978,7 @@ async def get_target_fields( -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -1326,25 +1999,60 @@ async def main() -> None: _response = await self._client_wrapper.httpx_client.request( f"api/connections/{jsonable_encoder(id)}/modelsync/target/fields", method="GET", - params={"target": target, "refresh": refresh}, + params={ + "target": target, + "refresh": refresh, + }, request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(TargetResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + TargetResponseEnvelope, + parse_obj_as( + type_=TargetResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 403: raise ForbiddenError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -1371,7 +2079,7 @@ async def get_target_objects( -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -1394,24 +2102,62 @@ async def main() -> None: ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(V4TargetObjectsResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + V4TargetObjectsResponseEnvelope, + parse_obj_as( + type_=V4TargetObjectsResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 400: raise BadRequestError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 403: raise ForbiddenError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -1447,7 +2193,7 @@ async def list( -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -1467,25 +2213,61 @@ async def main() -> None: _response = await self._client_wrapper.httpx_client.request( "api/syncs", method="GET", - params={"active": active, "mode": mode, "target_connection_id": target_connection_id}, + params={ + "active": active, + "mode": mode, + "target_connection_id": target_connection_id, + }, request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(ListModelSyncResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + ListModelSyncResponseEnvelope, + parse_obj_as( + type_=ListModelSyncResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 400: raise BadRequestError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -1505,10 +2287,12 @@ async def create( filter_logic: typing.Optional[str] = OMIT, filters: typing.Optional[typing.Sequence[Filter]] = OMIT, identity: typing.Optional[Identity] = OMIT, + only_enrich_updates: typing.Optional[bool] = OMIT, organization_id: typing.Optional[str] = OMIT, override_fields: typing.Optional[typing.Sequence[ModelSyncField]] = OMIT, overrides: typing.Optional[typing.Sequence[Override]] = OMIT, policies: typing.Optional[typing.Sequence[str]] = OMIT, + skip_initial_backfill: typing.Optional[bool] = OMIT, sync_all_records: typing.Optional[bool] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> ModelSyncResponseEnvelope: @@ -1536,6 +2320,8 @@ async def create( identity : typing.Optional[Identity] + only_enrich_updates : typing.Optional[bool] + organization_id : typing.Optional[str] override_fields : typing.Optional[typing.Sequence[ModelSyncField]] @@ -1546,6 +2332,8 @@ async def create( policies : typing.Optional[typing.Sequence[str]] + skip_initial_backfill : typing.Optional[bool] + sync_all_records : typing.Optional[bool] request_options : typing.Optional[RequestOptions] @@ -1560,8 +2348,7 @@ async def create( -------- import asyncio - from polytomic import ModelSyncField, Schedule, Target - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic, ModelSyncField, Schedule, Target client = AsyncPolytomic( version="YOUR_VERSION", @@ -1593,44 +2380,101 @@ async def main() -> None: method="POST", json={ "active": active, - "enricher": enricher, - "fields": fields, + "enricher": convert_and_respect_annotation_metadata( + object_=enricher, annotation=Enrichment, direction="write" + ), + "fields": convert_and_respect_annotation_metadata( + object_=fields, annotation=typing.Sequence[ModelSyncField], direction="write" + ), "filter_logic": filter_logic, - "filters": filters, - "identity": identity, + "filters": convert_and_respect_annotation_metadata( + object_=filters, annotation=typing.Sequence[Filter], direction="write" + ), + "identity": convert_and_respect_annotation_metadata( + object_=identity, annotation=Identity, direction="write" + ), "mode": mode, "name": name, + "only_enrich_updates": only_enrich_updates, "organization_id": organization_id, - "override_fields": override_fields, - "overrides": overrides, + "override_fields": convert_and_respect_annotation_metadata( + object_=override_fields, annotation=typing.Sequence[ModelSyncField], direction="write" + ), + "overrides": convert_and_respect_annotation_metadata( + object_=overrides, annotation=typing.Sequence[Override], direction="write" + ), "policies": policies, - "schedule": schedule, + "schedule": convert_and_respect_annotation_metadata( + object_=schedule, annotation=Schedule, direction="write" + ), + "skip_initial_backfill": skip_initial_backfill, "sync_all_records": sync_all_records, - "target": target, + "target": convert_and_respect_annotation_metadata(object_=target, annotation=Target, direction="write"), + }, + headers={ + "content-type": "application/json", }, request_options=request_options, omit=OMIT, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(ModelSyncResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + ModelSyncResponseEnvelope, + parse_obj_as( + type_=ModelSyncResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 400: raise BadRequestError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 403: raise ForbiddenError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + typing.cast( + types_api_error_ApiError, + parse_obj_as( + type_=types_api_error_ApiError, # type: ignore + object_=_response.json(), + ), + ) ) if _response.status_code == 422: raise UnprocessableEntityError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -1655,7 +2499,7 @@ async def get_schedule_options( -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -1670,16 +2514,38 @@ async def main() -> None: asyncio.run(main()) """ _response = await self._client_wrapper.httpx_client.request( - "api/syncs/schedules", method="GET", request_options=request_options + "api/syncs/schedules", + method="GET", + request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(ScheduleOptionResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + ScheduleOptionResponseEnvelope, + parse_obj_as( + type_=ScheduleOptionResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 500: raise InternalServerError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -1706,7 +2572,7 @@ async def get( -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -1723,20 +2589,48 @@ async def main() -> None: asyncio.run(main()) """ _response = await self._client_wrapper.httpx_client.request( - f"api/syncs/{jsonable_encoder(id)}", method="GET", request_options=request_options + f"api/syncs/{jsonable_encoder(id)}", + method="GET", + request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(ModelSyncResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + ModelSyncResponseEnvelope, + parse_obj_as( + type_=ModelSyncResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -1757,10 +2651,12 @@ async def update( filter_logic: typing.Optional[str] = OMIT, filters: typing.Optional[typing.Sequence[Filter]] = OMIT, identity: typing.Optional[Identity] = OMIT, + only_enrich_updates: typing.Optional[bool] = OMIT, organization_id: typing.Optional[str] = OMIT, override_fields: typing.Optional[typing.Sequence[ModelSyncField]] = OMIT, overrides: typing.Optional[typing.Sequence[Override]] = OMIT, policies: typing.Optional[typing.Sequence[str]] = OMIT, + skip_initial_backfill: typing.Optional[bool] = OMIT, sync_all_records: typing.Optional[bool] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> ModelSyncResponseEnvelope: @@ -1790,6 +2686,8 @@ async def update( identity : typing.Optional[Identity] + only_enrich_updates : typing.Optional[bool] + organization_id : typing.Optional[str] override_fields : typing.Optional[typing.Sequence[ModelSyncField]] @@ -1800,6 +2698,8 @@ async def update( policies : typing.Optional[typing.Sequence[str]] + skip_initial_backfill : typing.Optional[bool] + sync_all_records : typing.Optional[bool] request_options : typing.Optional[RequestOptions] @@ -1814,8 +2714,7 @@ async def update( -------- import asyncio - from polytomic import ModelSyncField, Schedule, Target - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic, ModelSyncField, Schedule, Target client = AsyncPolytomic( version="YOUR_VERSION", @@ -1848,48 +2747,111 @@ async def main() -> None: method="PUT", json={ "active": active, - "enricher": enricher, - "fields": fields, + "enricher": convert_and_respect_annotation_metadata( + object_=enricher, annotation=Enrichment, direction="write" + ), + "fields": convert_and_respect_annotation_metadata( + object_=fields, annotation=typing.Sequence[ModelSyncField], direction="write" + ), "filter_logic": filter_logic, - "filters": filters, - "identity": identity, + "filters": convert_and_respect_annotation_metadata( + object_=filters, annotation=typing.Sequence[Filter], direction="write" + ), + "identity": convert_and_respect_annotation_metadata( + object_=identity, annotation=Identity, direction="write" + ), "mode": mode, "name": name, + "only_enrich_updates": only_enrich_updates, "organization_id": organization_id, - "override_fields": override_fields, - "overrides": overrides, + "override_fields": convert_and_respect_annotation_metadata( + object_=override_fields, annotation=typing.Sequence[ModelSyncField], direction="write" + ), + "overrides": convert_and_respect_annotation_metadata( + object_=overrides, annotation=typing.Sequence[Override], direction="write" + ), "policies": policies, - "schedule": schedule, + "schedule": convert_and_respect_annotation_metadata( + object_=schedule, annotation=Schedule, direction="write" + ), + "skip_initial_backfill": skip_initial_backfill, "sync_all_records": sync_all_records, - "target": target, + "target": convert_and_respect_annotation_metadata(object_=target, annotation=Target, direction="write"), + }, + headers={ + "content-type": "application/json", }, request_options=request_options, omit=OMIT, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(ModelSyncResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + ModelSyncResponseEnvelope, + parse_obj_as( + type_=ModelSyncResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 400: raise BadRequestError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 403: raise ForbiddenError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + typing.cast( + types_api_error_ApiError, + parse_obj_as( + type_=types_api_error_ApiError, # type: ignore + object_=_response.json(), + ), + ) ) if _response.status_code == 422: raise UnprocessableEntityError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -1913,7 +2875,7 @@ async def remove(self, id: str, *, request_options: typing.Optional[RequestOptio -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -1930,24 +2892,52 @@ async def main() -> None: asyncio.run(main()) """ _response = await self._client_wrapper.httpx_client.request( - f"api/syncs/{jsonable_encoder(id)}", method="DELETE", request_options=request_options + f"api/syncs/{jsonable_encoder(id)}", + method="DELETE", + request_options=request_options, ) try: if 200 <= _response.status_code < 300: return if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 403: raise ForbiddenError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -1976,7 +2966,7 @@ async def activate( -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -1996,26 +2986,60 @@ async def main() -> None: _response = await self._client_wrapper.httpx_client.request( f"api/syncs/{jsonable_encoder(id)}/activate", method="POST", - json={"active": active}, + json={ + "active": active, + }, request_options=request_options, omit=OMIT, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(ActivateSyncEnvelope, _response.json()) # type: ignore + return typing.cast( + ActivateSyncEnvelope, + parse_obj_as( + type_=ActivateSyncEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 403: raise ForbiddenError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -2055,7 +3079,7 @@ async def start( -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -2074,34 +3098,84 @@ async def main() -> None: _response = await self._client_wrapper.httpx_client.request( f"api/syncs/{jsonable_encoder(id)}/executions", method="POST", - json={"identities": identities, "resync": resync}, + json={ + "identities": identities, + "resync": resync, + }, + headers={ + "content-type": "application/json", + }, request_options=request_options, omit=OMIT, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(StartModelSyncResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + StartModelSyncResponseEnvelope, + parse_obj_as( + type_=StartModelSyncResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 400: raise BadRequestError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 403: raise ForbiddenError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + typing.cast( + types_api_error_ApiError, + parse_obj_as( + type_=types_api_error_ApiError, # type: ignore + object_=_response.json(), + ), + ) ) if _response.status_code == 409: raise ConflictError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -2128,7 +3202,7 @@ async def get_status( -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -2145,20 +3219,48 @@ async def main() -> None: asyncio.run(main()) """ _response = await self._client_wrapper.httpx_client.request( - f"api/syncs/{jsonable_encoder(id)}/status", method="GET", request_options=request_options + f"api/syncs/{jsonable_encoder(id)}/status", + method="GET", + request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(SyncStatusEnvelope, _response.json()) # type: ignore + return typing.cast( + SyncStatusEnvelope, + parse_obj_as( + type_=SyncStatusEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: diff --git a/src/polytomic/model_sync/executions/client.py b/src/polytomic/model_sync/executions/client.py index 943ddd2..e11a347 100644 --- a/src/polytomic/model_sync/executions/client.py +++ b/src/polytomic/model_sync/executions/client.py @@ -1,23 +1,23 @@ # This file was auto-generated by Fern from our API Definition. +from ...core.client_wrapper import SyncClientWrapper import typing -from json.decoder import JSONDecodeError - -from ...core.api_error import ApiError as core_api_error_ApiError -from ...core.client_wrapper import AsyncClientWrapper, SyncClientWrapper -from ...core.jsonable_encoder import jsonable_encoder -from ...core.pydantic_utilities import pydantic_v1 from ...core.request_options import RequestOptions -from ...errors.bad_request_error import BadRequestError -from ...errors.internal_server_error import InternalServerError -from ...errors.not_found_error import NotFoundError +from ...types.list_execution_response_envelope import ListExecutionResponseEnvelope +from ...core.jsonable_encoder import jsonable_encoder +from ...core.pydantic_utilities import parse_obj_as from ...errors.unauthorized_error import UnauthorizedError +from ...types.rest_err_response import RestErrResponse +from ...errors.not_found_error import NotFoundError from ...types.api_error import ApiError as types_api_error_ApiError -from ...types.execution_logs_response_envelope import ExecutionLogsResponseEnvelope +from json.decoder import JSONDecodeError +from ...core.api_error import ApiError as core_api_error_ApiError from ...types.get_execution_response_envelope import GetExecutionResponseEnvelope -from ...types.list_execution_response_envelope import ListExecutionResponseEnvelope -from ...types.rest_err_response import RestErrResponse +from ...errors.internal_server_error import InternalServerError from ...types.v_2_execution_log_type import V2ExecutionLogType +from ...types.execution_logs_response_envelope import ExecutionLogsResponseEnvelope +from ...errors.bad_request_error import BadRequestError +from ...core.client_wrapper import AsyncClientWrapper class ExecutionsClient: @@ -42,7 +42,7 @@ def list( Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -53,16 +53,38 @@ def list( ) """ _response = self._client_wrapper.httpx_client.request( - f"api/syncs/{jsonable_encoder(sync_id)}/executions", method="GET", request_options=request_options + f"api/syncs/{jsonable_encoder(sync_id)}/executions", + method="GET", + request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(ListExecutionResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + ListExecutionResponseEnvelope, + parse_obj_as( + type_=ListExecutionResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -89,7 +111,7 @@ def get( Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -107,16 +129,42 @@ def get( ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(GetExecutionResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + GetExecutionResponseEnvelope, + parse_obj_as( + type_=GetExecutionResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -150,7 +198,7 @@ def get_log_urls( Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -169,20 +217,52 @@ def get_log_urls( ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(ExecutionLogsResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + ExecutionLogsResponseEnvelope, + parse_obj_as( + type_=ExecutionLogsResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 400: raise BadRequestError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -218,7 +298,7 @@ def get_logs( Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -241,17 +321,43 @@ def get_logs( return if _response.status_code == 400: raise BadRequestError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -283,7 +389,7 @@ async def list( -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -300,16 +406,38 @@ async def main() -> None: asyncio.run(main()) """ _response = await self._client_wrapper.httpx_client.request( - f"api/syncs/{jsonable_encoder(sync_id)}/executions", method="GET", request_options=request_options + f"api/syncs/{jsonable_encoder(sync_id)}/executions", + method="GET", + request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(ListExecutionResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + ListExecutionResponseEnvelope, + parse_obj_as( + type_=ListExecutionResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -338,7 +466,7 @@ async def get( -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -362,16 +490,42 @@ async def main() -> None: ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(GetExecutionResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + GetExecutionResponseEnvelope, + parse_obj_as( + type_=GetExecutionResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -407,7 +561,7 @@ async def get_log_urls( -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -432,20 +586,52 @@ async def main() -> None: ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(ExecutionLogsResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + ExecutionLogsResponseEnvelope, + parse_obj_as( + type_=ExecutionLogsResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 400: raise BadRequestError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -483,7 +669,7 @@ async def get_logs( -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -512,17 +698,43 @@ async def main() -> None: return if _response.status_code == 400: raise BadRequestError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: diff --git a/src/polytomic/models/client.py b/src/polytomic/models/client.py index ff7b7f9..45efe7f 100644 --- a/src/polytomic/models/client.py +++ b/src/polytomic/models/client.py @@ -1,29 +1,30 @@ # This file was auto-generated by Fern from our API Definition. import typing -from json.decoder import JSONDecodeError - -from ..core.api_error import ApiError as core_api_error_ApiError -from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper -from ..core.jsonable_encoder import jsonable_encoder -from ..core.pydantic_utilities import pydantic_v1 +from ..core.client_wrapper import SyncClientWrapper from ..core.request_options import RequestOptions +from ..types.get_model_sync_source_meta_envelope import GetModelSyncSourceMetaEnvelope +from ..core.jsonable_encoder import jsonable_encoder +from ..core.pydantic_utilities import parse_obj_as from ..errors.bad_request_error import BadRequestError +from ..types.api_error import ApiError as types_api_error_ApiError +from ..errors.unauthorized_error import UnauthorizedError +from ..types.rest_err_response import RestErrResponse from ..errors.forbidden_error import ForbiddenError -from ..errors.internal_server_error import InternalServerError from ..errors.not_found_error import NotFoundError -from ..errors.unauthorized_error import UnauthorizedError -from ..types.api_error import ApiError as types_api_error_ApiError -from ..types.enrichment import Enrichment -from ..types.get_model_sync_source_meta_envelope import GetModelSyncSourceMetaEnvelope -from ..types.model_list_response_envelope import ModelListResponseEnvelope +from ..errors.internal_server_error import InternalServerError +from json.decoder import JSONDecodeError +from ..core.api_error import ApiError as core_api_error_ApiError +from ..types.v_2_enricher_configuration import V2EnricherConfiguration +from ..types.v_2_get_enrichment_input_fields_response_envelope import V2GetEnrichmentInputFieldsResponseEnvelope from ..types.model_model_field_request import ModelModelFieldRequest +from ..types.enrichment import Enrichment from ..types.model_relation import ModelRelation from ..types.model_response_envelope import ModelResponseEnvelope +from ..core.serialization import convert_and_respect_annotation_metadata +from ..types.model_list_response_envelope import ModelListResponseEnvelope from ..types.model_sample_response_envelope import ModelSampleResponseEnvelope -from ..types.rest_err_response import RestErrResponse -from ..types.v_2_enricher_configuration import V2EnricherConfiguration -from ..types.v_2_get_enrichment_input_fields_response_envelope import V2GetEnrichmentInputFieldsResponseEnvelope +from ..core.client_wrapper import AsyncClientWrapper # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -57,7 +58,7 @@ def get_enrichment_source( Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -70,29 +71,69 @@ def get_enrichment_source( _response = self._client_wrapper.httpx_client.request( f"api/connections/{jsonable_encoder(id)}/modelsync/enrichment-source", method="GET", - params={"params": jsonable_encoder(params)}, + params={ + "params": params, + }, request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(GetModelSyncSourceMetaEnvelope, _response.json()) # type: ignore + return typing.cast( + GetModelSyncSourceMetaEnvelope, + parse_obj_as( + type_=GetModelSyncSourceMetaEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 400: raise BadRequestError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 403: raise ForbiddenError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -125,7 +166,7 @@ def post( Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -138,26 +179,63 @@ def post( _response = self._client_wrapper.httpx_client.request( f"api/enrichment/{jsonable_encoder(connection_id)}/inputfields", method="POST", - json={"configuration": configuration}, + json={ + "configuration": configuration, + }, + headers={ + "content-type": "application/json", + }, request_options=request_options, omit=OMIT, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(V2GetEnrichmentInputFieldsResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + V2GetEnrichmentInputFieldsResponseEnvelope, + parse_obj_as( + type_=V2GetEnrichmentInputFieldsResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 403: raise ForbiddenError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -167,7 +245,7 @@ def post( def preview( self, *, - configuration: typing.Dict[str, typing.Any], + configuration: typing.Dict[str, typing.Optional[typing.Any]], connection_id: str, name: str, async_: typing.Optional[bool] = None, @@ -185,7 +263,7 @@ def preview( """ Parameters ---------- - configuration : typing.Dict[str, typing.Any] + configuration : typing.Dict[str, typing.Optional[typing.Any]] connection_id : str @@ -221,7 +299,7 @@ def preview( Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -236,19 +314,27 @@ def preview( _response = self._client_wrapper.httpx_client.request( "api/model-preview", method="POST", - params={"async": async_}, + params={ + "async": async_, + }, json={ - "additional_fields": additional_fields, + "additional_fields": convert_and_respect_annotation_metadata( + object_=additional_fields, annotation=typing.Sequence[ModelModelFieldRequest], direction="write" + ), "configuration": configuration, "connection_id": connection_id, - "enricher": enricher, + "enricher": convert_and_respect_annotation_metadata( + object_=enricher, annotation=Enrichment, direction="write" + ), "fields": fields, "identifier": identifier, "labels": labels, "name": name, "organization_id": organization_id, "policies": policies, - "relations": relations, + "relations": convert_and_respect_annotation_metadata( + object_=relations, annotation=typing.Sequence[ModelRelation], direction="write" + ), "tracking_columns": tracking_columns, }, request_options=request_options, @@ -256,20 +342,52 @@ def preview( ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(ModelResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + ModelResponseEnvelope, + parse_obj_as( + type_=ModelResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 400: raise BadRequestError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -290,7 +408,7 @@ def list(self, *, request_options: typing.Optional[RequestOptions] = None) -> Mo Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -299,16 +417,38 @@ def list(self, *, request_options: typing.Optional[RequestOptions] = None) -> Mo client.models.list() """ _response = self._client_wrapper.httpx_client.request( - "api/models", method="GET", request_options=request_options + "api/models", + method="GET", + request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(ModelListResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + ModelListResponseEnvelope, + parse_obj_as( + type_=ModelListResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -318,7 +458,7 @@ def list(self, *, request_options: typing.Optional[RequestOptions] = None) -> Mo def create( self, *, - configuration: typing.Dict[str, typing.Any], + configuration: typing.Dict[str, typing.Optional[typing.Any]], connection_id: str, name: str, async_: typing.Optional[bool] = None, @@ -336,7 +476,7 @@ def create( """ Parameters ---------- - configuration : typing.Dict[str, typing.Any] + configuration : typing.Dict[str, typing.Optional[typing.Any]] connection_id : str @@ -372,7 +512,7 @@ def create( Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -387,19 +527,27 @@ def create( _response = self._client_wrapper.httpx_client.request( "api/models", method="POST", - params={"async": async_}, + params={ + "async": async_, + }, json={ - "additional_fields": additional_fields, + "additional_fields": convert_and_respect_annotation_metadata( + object_=additional_fields, annotation=typing.Sequence[ModelModelFieldRequest], direction="write" + ), "configuration": configuration, "connection_id": connection_id, - "enricher": enricher, + "enricher": convert_and_respect_annotation_metadata( + object_=enricher, annotation=Enrichment, direction="write" + ), "fields": fields, "identifier": identifier, "labels": labels, "name": name, "organization_id": organization_id, "policies": policies, - "relations": relations, + "relations": convert_and_respect_annotation_metadata( + object_=relations, annotation=typing.Sequence[ModelRelation], direction="write" + ), "tracking_columns": tracking_columns, }, request_options=request_options, @@ -407,20 +555,52 @@ def create( ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(ModelResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + ModelResponseEnvelope, + parse_obj_as( + type_=ModelResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 400: raise BadRequestError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 403: raise ForbiddenError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -447,7 +627,7 @@ def get( Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -460,21 +640,49 @@ def get( _response = self._client_wrapper.httpx_client.request( f"api/models/{jsonable_encoder(id)}", method="GET", - params={"async": async_}, + params={ + "async": async_, + }, request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(ModelResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + ModelResponseEnvelope, + parse_obj_as( + type_=ModelResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -485,7 +693,7 @@ def update( self, id: str, *, - configuration: typing.Dict[str, typing.Any], + configuration: typing.Dict[str, typing.Optional[typing.Any]], connection_id: str, name: str, async_: typing.Optional[bool] = None, @@ -506,7 +714,7 @@ def update( ---------- id : str - configuration : typing.Dict[str, typing.Any] + configuration : typing.Dict[str, typing.Optional[typing.Any]] connection_id : str @@ -544,7 +752,7 @@ def update( Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -561,12 +769,18 @@ def update( _response = self._client_wrapper.httpx_client.request( f"api/models/{jsonable_encoder(id)}", method="PUT", - params={"async": async_}, + params={ + "async": async_, + }, json={ - "additional_fields": additional_fields, + "additional_fields": convert_and_respect_annotation_metadata( + object_=additional_fields, annotation=typing.Sequence[ModelModelFieldRequest], direction="write" + ), "configuration": configuration, "connection_id": connection_id, - "enricher": enricher, + "enricher": convert_and_respect_annotation_metadata( + object_=enricher, annotation=Enrichment, direction="write" + ), "fields": fields, "identifier": identifier, "labels": labels, @@ -574,28 +788,65 @@ def update( "organization_id": organization_id, "policies": policies, "refresh": refresh, - "relations": relations, + "relations": convert_and_respect_annotation_metadata( + object_=relations, annotation=typing.Sequence[ModelRelation], direction="write" + ), "tracking_columns": tracking_columns, }, + headers={ + "content-type": "application/json", + }, request_options=request_options, omit=OMIT, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(ModelResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + ModelResponseEnvelope, + parse_obj_as( + type_=ModelResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 400: raise BadRequestError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -621,7 +872,7 @@ def remove( Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -634,25 +885,53 @@ def remove( _response = self._client_wrapper.httpx_client.request( f"api/models/{jsonable_encoder(id)}", method="DELETE", - params={"async": async_}, + params={ + "async": async_, + }, request_options=request_options, ) try: if 200 <= _response.status_code < 300: return if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 403: raise ForbiddenError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -681,7 +960,7 @@ def sample( Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -694,25 +973,59 @@ def sample( _response = self._client_wrapper.httpx_client.request( f"api/models/{jsonable_encoder(id)}/sample", method="GET", - params={"async": async_}, + params={ + "async": async_, + }, request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(ModelSampleResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + ModelSampleResponseEnvelope, + parse_obj_as( + type_=ModelSampleResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 400: raise BadRequestError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -750,7 +1063,7 @@ async def get_enrichment_source( -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -769,29 +1082,69 @@ async def main() -> None: _response = await self._client_wrapper.httpx_client.request( f"api/connections/{jsonable_encoder(id)}/modelsync/enrichment-source", method="GET", - params={"params": jsonable_encoder(params)}, + params={ + "params": params, + }, request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(GetModelSyncSourceMetaEnvelope, _response.json()) # type: ignore + return typing.cast( + GetModelSyncSourceMetaEnvelope, + parse_obj_as( + type_=GetModelSyncSourceMetaEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 400: raise BadRequestError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 403: raise ForbiddenError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -826,7 +1179,7 @@ async def post( -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -845,26 +1198,63 @@ async def main() -> None: _response = await self._client_wrapper.httpx_client.request( f"api/enrichment/{jsonable_encoder(connection_id)}/inputfields", method="POST", - json={"configuration": configuration}, + json={ + "configuration": configuration, + }, + headers={ + "content-type": "application/json", + }, request_options=request_options, omit=OMIT, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(V2GetEnrichmentInputFieldsResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + V2GetEnrichmentInputFieldsResponseEnvelope, + parse_obj_as( + type_=V2GetEnrichmentInputFieldsResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 403: raise ForbiddenError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -874,7 +1264,7 @@ async def main() -> None: async def preview( self, *, - configuration: typing.Dict[str, typing.Any], + configuration: typing.Dict[str, typing.Optional[typing.Any]], connection_id: str, name: str, async_: typing.Optional[bool] = None, @@ -892,7 +1282,7 @@ async def preview( """ Parameters ---------- - configuration : typing.Dict[str, typing.Any] + configuration : typing.Dict[str, typing.Optional[typing.Any]] connection_id : str @@ -930,7 +1320,7 @@ async def preview( -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -951,19 +1341,27 @@ async def main() -> None: _response = await self._client_wrapper.httpx_client.request( "api/model-preview", method="POST", - params={"async": async_}, + params={ + "async": async_, + }, json={ - "additional_fields": additional_fields, + "additional_fields": convert_and_respect_annotation_metadata( + object_=additional_fields, annotation=typing.Sequence[ModelModelFieldRequest], direction="write" + ), "configuration": configuration, "connection_id": connection_id, - "enricher": enricher, + "enricher": convert_and_respect_annotation_metadata( + object_=enricher, annotation=Enrichment, direction="write" + ), "fields": fields, "identifier": identifier, "labels": labels, "name": name, "organization_id": organization_id, "policies": policies, - "relations": relations, + "relations": convert_and_respect_annotation_metadata( + object_=relations, annotation=typing.Sequence[ModelRelation], direction="write" + ), "tracking_columns": tracking_columns, }, request_options=request_options, @@ -971,20 +1369,52 @@ async def main() -> None: ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(ModelResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + ModelResponseEnvelope, + parse_obj_as( + type_=ModelResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 400: raise BadRequestError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -1007,7 +1437,7 @@ async def list(self, *, request_options: typing.Optional[RequestOptions] = None) -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -1022,16 +1452,38 @@ async def main() -> None: asyncio.run(main()) """ _response = await self._client_wrapper.httpx_client.request( - "api/models", method="GET", request_options=request_options + "api/models", + method="GET", + request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(ModelListResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + ModelListResponseEnvelope, + parse_obj_as( + type_=ModelListResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -1041,7 +1493,7 @@ async def main() -> None: async def create( self, *, - configuration: typing.Dict[str, typing.Any], + configuration: typing.Dict[str, typing.Optional[typing.Any]], connection_id: str, name: str, async_: typing.Optional[bool] = None, @@ -1059,7 +1511,7 @@ async def create( """ Parameters ---------- - configuration : typing.Dict[str, typing.Any] + configuration : typing.Dict[str, typing.Optional[typing.Any]] connection_id : str @@ -1097,7 +1549,7 @@ async def create( -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -1118,19 +1570,27 @@ async def main() -> None: _response = await self._client_wrapper.httpx_client.request( "api/models", method="POST", - params={"async": async_}, + params={ + "async": async_, + }, json={ - "additional_fields": additional_fields, + "additional_fields": convert_and_respect_annotation_metadata( + object_=additional_fields, annotation=typing.Sequence[ModelModelFieldRequest], direction="write" + ), "configuration": configuration, "connection_id": connection_id, - "enricher": enricher, + "enricher": convert_and_respect_annotation_metadata( + object_=enricher, annotation=Enrichment, direction="write" + ), "fields": fields, "identifier": identifier, "labels": labels, "name": name, "organization_id": organization_id, "policies": policies, - "relations": relations, + "relations": convert_and_respect_annotation_metadata( + object_=relations, annotation=typing.Sequence[ModelRelation], direction="write" + ), "tracking_columns": tracking_columns, }, request_options=request_options, @@ -1138,20 +1598,52 @@ async def main() -> None: ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(ModelResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + ModelResponseEnvelope, + parse_obj_as( + type_=ModelResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 400: raise BadRequestError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 403: raise ForbiddenError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -1180,7 +1672,7 @@ async def get( -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -1199,21 +1691,49 @@ async def main() -> None: _response = await self._client_wrapper.httpx_client.request( f"api/models/{jsonable_encoder(id)}", method="GET", - params={"async": async_}, + params={ + "async": async_, + }, request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(ModelResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + ModelResponseEnvelope, + parse_obj_as( + type_=ModelResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -1224,7 +1744,7 @@ async def update( self, id: str, *, - configuration: typing.Dict[str, typing.Any], + configuration: typing.Dict[str, typing.Optional[typing.Any]], connection_id: str, name: str, async_: typing.Optional[bool] = None, @@ -1245,7 +1765,7 @@ async def update( ---------- id : str - configuration : typing.Dict[str, typing.Any] + configuration : typing.Dict[str, typing.Optional[typing.Any]] connection_id : str @@ -1285,7 +1805,7 @@ async def update( -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -1308,12 +1828,18 @@ async def main() -> None: _response = await self._client_wrapper.httpx_client.request( f"api/models/{jsonable_encoder(id)}", method="PUT", - params={"async": async_}, + params={ + "async": async_, + }, json={ - "additional_fields": additional_fields, + "additional_fields": convert_and_respect_annotation_metadata( + object_=additional_fields, annotation=typing.Sequence[ModelModelFieldRequest], direction="write" + ), "configuration": configuration, "connection_id": connection_id, - "enricher": enricher, + "enricher": convert_and_respect_annotation_metadata( + object_=enricher, annotation=Enrichment, direction="write" + ), "fields": fields, "identifier": identifier, "labels": labels, @@ -1321,28 +1847,65 @@ async def main() -> None: "organization_id": organization_id, "policies": policies, "refresh": refresh, - "relations": relations, + "relations": convert_and_respect_annotation_metadata( + object_=relations, annotation=typing.Sequence[ModelRelation], direction="write" + ), "tracking_columns": tracking_columns, }, + headers={ + "content-type": "application/json", + }, request_options=request_options, omit=OMIT, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(ModelResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + ModelResponseEnvelope, + parse_obj_as( + type_=ModelResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 400: raise BadRequestError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -1370,7 +1933,7 @@ async def remove( -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -1389,25 +1952,53 @@ async def main() -> None: _response = await self._client_wrapper.httpx_client.request( f"api/models/{jsonable_encoder(id)}", method="DELETE", - params={"async": async_}, + params={ + "async": async_, + }, request_options=request_options, ) try: if 200 <= _response.status_code < 300: return if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 403: raise ForbiddenError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -1438,7 +2029,7 @@ async def sample( -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -1457,25 +2048,59 @@ async def main() -> None: _response = await self._client_wrapper.httpx_client.request( f"api/models/{jsonable_encoder(id)}/sample", method="GET", - params={"async": async_}, + params={ + "async": async_, + }, request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(ModelSampleResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + ModelSampleResponseEnvelope, + parse_obj_as( + type_=ModelSampleResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 400: raise BadRequestError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: diff --git a/src/polytomic/organization/client.py b/src/polytomic/organization/client.py index 64da3b9..5826ec6 100644 --- a/src/polytomic/organization/client.py +++ b/src/polytomic/organization/client.py @@ -1,21 +1,21 @@ # This file was auto-generated by Fern from our API Definition. import typing -from json.decoder import JSONDecodeError - -from ..core.api_error import ApiError as core_api_error_ApiError -from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper -from ..core.jsonable_encoder import jsonable_encoder -from ..core.pydantic_utilities import pydantic_v1 +from ..core.client_wrapper import SyncClientWrapper from ..core.request_options import RequestOptions -from ..errors.internal_server_error import InternalServerError -from ..errors.not_found_error import NotFoundError +from ..types.organizations_envelope import OrganizationsEnvelope +from ..core.pydantic_utilities import parse_obj_as from ..errors.unauthorized_error import UnauthorizedError -from ..errors.unprocessable_entity_error import UnprocessableEntityError +from ..types.rest_err_response import RestErrResponse +from ..errors.internal_server_error import InternalServerError from ..types.api_error import ApiError as types_api_error_ApiError +from json.decoder import JSONDecodeError +from ..core.api_error import ApiError as core_api_error_ApiError from ..types.organization_envelope import OrganizationEnvelope -from ..types.organizations_envelope import OrganizationsEnvelope -from ..types.rest_err_response import RestErrResponse +from ..errors.unprocessable_entity_error import UnprocessableEntityError +from ..core.jsonable_encoder import jsonable_encoder +from ..errors.not_found_error import NotFoundError +from ..core.client_wrapper import AsyncClientWrapper # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -43,7 +43,7 @@ def list(self, *, request_options: typing.Optional[RequestOptions] = None) -> Or Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -52,16 +52,38 @@ def list(self, *, request_options: typing.Optional[RequestOptions] = None) -> Or client.organization.list() """ _response = self._client_wrapper.httpx_client.request( - "api/organizations", method="GET", request_options=request_options + "api/organizations", + method="GET", + request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(OrganizationsEnvelope, _response.json()) # type: ignore + return typing.cast( + OrganizationsEnvelope, + parse_obj_as( + type_=OrganizationsEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 500: raise InternalServerError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -108,7 +130,7 @@ def create( Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -129,21 +151,50 @@ def create( "sso_domain": sso_domain, "sso_org_id": sso_org_id, }, + headers={ + "content-type": "application/json", + }, request_options=request_options, omit=OMIT, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(OrganizationEnvelope, _response.json()) # type: ignore + return typing.cast( + OrganizationEnvelope, + parse_obj_as( + type_=OrganizationEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 422: raise UnprocessableEntityError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -170,7 +221,7 @@ def get(self, id: str, *, request_options: typing.Optional[RequestOptions] = Non Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -181,16 +232,38 @@ def get(self, id: str, *, request_options: typing.Optional[RequestOptions] = Non ) """ _response = self._client_wrapper.httpx_client.request( - f"api/organizations/{jsonable_encoder(id)}", method="GET", request_options=request_options + f"api/organizations/{jsonable_encoder(id)}", + method="GET", + request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(OrganizationEnvelope, _response.json()) # type: ignore + return typing.cast( + OrganizationEnvelope, + parse_obj_as( + type_=OrganizationEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -240,7 +313,7 @@ def update( Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -262,21 +335,50 @@ def update( "sso_domain": sso_domain, "sso_org_id": sso_org_id, }, + headers={ + "content-type": "application/json", + }, request_options=request_options, omit=OMIT, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(OrganizationEnvelope, _response.json()) # type: ignore + return typing.cast( + OrganizationEnvelope, + parse_obj_as( + type_=OrganizationEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 422: raise UnprocessableEntityError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -302,7 +404,7 @@ def remove(self, id: str, *, request_options: typing.Optional[RequestOptions] = Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -313,20 +415,42 @@ def remove(self, id: str, *, request_options: typing.Optional[RequestOptions] = ) """ _response = self._client_wrapper.httpx_client.request( - f"api/organizations/{jsonable_encoder(id)}", method="DELETE", request_options=request_options + f"api/organizations/{jsonable_encoder(id)}", + method="DELETE", + request_options=request_options, ) try: if 200 <= _response.status_code < 300: return if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -358,7 +482,7 @@ async def list(self, *, request_options: typing.Optional[RequestOptions] = None) -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -373,16 +497,38 @@ async def main() -> None: asyncio.run(main()) """ _response = await self._client_wrapper.httpx_client.request( - "api/organizations", method="GET", request_options=request_options + "api/organizations", + method="GET", + request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(OrganizationsEnvelope, _response.json()) # type: ignore + return typing.cast( + OrganizationsEnvelope, + parse_obj_as( + type_=OrganizationsEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 500: raise InternalServerError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -431,7 +577,7 @@ async def create( -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -458,21 +604,50 @@ async def main() -> None: "sso_domain": sso_domain, "sso_org_id": sso_org_id, }, + headers={ + "content-type": "application/json", + }, request_options=request_options, omit=OMIT, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(OrganizationEnvelope, _response.json()) # type: ignore + return typing.cast( + OrganizationEnvelope, + parse_obj_as( + type_=OrganizationEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 422: raise UnprocessableEntityError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -501,7 +676,7 @@ async def get(self, id: str, *, request_options: typing.Optional[RequestOptions] -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -518,16 +693,38 @@ async def main() -> None: asyncio.run(main()) """ _response = await self._client_wrapper.httpx_client.request( - f"api/organizations/{jsonable_encoder(id)}", method="GET", request_options=request_options + f"api/organizations/{jsonable_encoder(id)}", + method="GET", + request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(OrganizationEnvelope, _response.json()) # type: ignore + return typing.cast( + OrganizationEnvelope, + parse_obj_as( + type_=OrganizationEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -579,7 +776,7 @@ async def update( -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -607,21 +804,50 @@ async def main() -> None: "sso_domain": sso_domain, "sso_org_id": sso_org_id, }, + headers={ + "content-type": "application/json", + }, request_options=request_options, omit=OMIT, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(OrganizationEnvelope, _response.json()) # type: ignore + return typing.cast( + OrganizationEnvelope, + parse_obj_as( + type_=OrganizationEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 422: raise UnprocessableEntityError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -649,7 +875,7 @@ async def remove(self, id: str, *, request_options: typing.Optional[RequestOptio -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -666,20 +892,42 @@ async def main() -> None: asyncio.run(main()) """ _response = await self._client_wrapper.httpx_client.request( - f"api/organizations/{jsonable_encoder(id)}", method="DELETE", request_options=request_options + f"api/organizations/{jsonable_encoder(id)}", + method="DELETE", + request_options=request_options, ) try: if 200 <= _response.status_code < 300: return if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: diff --git a/src/polytomic/permissions/client.py b/src/polytomic/permissions/client.py index 309626c..ba89074 100644 --- a/src/polytomic/permissions/client.py +++ b/src/polytomic/permissions/client.py @@ -1,8 +1,11 @@ # This file was auto-generated by Fern from our API Definition. -from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper -from .policies.client import AsyncPoliciesClient, PoliciesClient -from .roles.client import AsyncRolesClient, RolesClient +from ..core.client_wrapper import SyncClientWrapper +from .policies.client import PoliciesClient +from .roles.client import RolesClient +from ..core.client_wrapper import AsyncClientWrapper +from .policies.client import AsyncPoliciesClient +from .roles.client import AsyncRolesClient class PermissionsClient: diff --git a/src/polytomic/permissions/policies/client.py b/src/polytomic/permissions/policies/client.py index 834051a..a0fc74a 100644 --- a/src/polytomic/permissions/policies/client.py +++ b/src/polytomic/permissions/policies/client.py @@ -1,23 +1,24 @@ # This file was auto-generated by Fern from our API Definition. import typing -from json.decoder import JSONDecodeError - -from ...core.api_error import ApiError as core_api_error_ApiError -from ...core.client_wrapper import AsyncClientWrapper, SyncClientWrapper -from ...core.jsonable_encoder import jsonable_encoder -from ...core.pydantic_utilities import pydantic_v1 +from ...core.client_wrapper import SyncClientWrapper from ...core.request_options import RequestOptions -from ...errors.bad_request_error import BadRequestError -from ...errors.forbidden_error import ForbiddenError -from ...errors.internal_server_error import InternalServerError -from ...errors.not_found_error import NotFoundError +from ...types.list_policies_response_envelope import ListPoliciesResponseEnvelope +from ...core.pydantic_utilities import parse_obj_as from ...errors.unauthorized_error import UnauthorizedError +from ...types.rest_err_response import RestErrResponse +from ...errors.internal_server_error import InternalServerError from ...types.api_error import ApiError as types_api_error_ApiError -from ...types.list_policies_response_envelope import ListPoliciesResponseEnvelope +from json.decoder import JSONDecodeError +from ...core.api_error import ApiError as core_api_error_ApiError from ...types.policy_action import PolicyAction from ...types.policy_response_envelope import PolicyResponseEnvelope -from ...types.rest_err_response import RestErrResponse +from ...core.serialization import convert_and_respect_annotation_metadata +from ...errors.bad_request_error import BadRequestError +from ...errors.forbidden_error import ForbiddenError +from ...errors.not_found_error import NotFoundError +from ...core.jsonable_encoder import jsonable_encoder +from ...core.client_wrapper import AsyncClientWrapper # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -41,7 +42,7 @@ def list(self, *, request_options: typing.Optional[RequestOptions] = None) -> Li Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -50,16 +51,38 @@ def list(self, *, request_options: typing.Optional[RequestOptions] = None) -> Li client.permissions.policies.list() """ _response = self._client_wrapper.httpx_client.request( - "api/permissions/policies", method="GET", request_options=request_options + "api/permissions/policies", + method="GET", + request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(ListPoliciesResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + ListPoliciesResponseEnvelope, + parse_obj_as( + type_=ListPoliciesResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 500: raise InternalServerError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -93,7 +116,7 @@ def create( Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -106,30 +129,77 @@ def create( _response = self._client_wrapper.httpx_client.request( "api/permissions/policies", method="POST", - json={"name": name, "organization_id": organization_id, "policy_actions": policy_actions}, + json={ + "name": name, + "organization_id": organization_id, + "policy_actions": convert_and_respect_annotation_metadata( + object_=policy_actions, annotation=typing.Sequence[PolicyAction], direction="write" + ), + }, + headers={ + "content-type": "application/json", + }, request_options=request_options, omit=OMIT, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(PolicyResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + PolicyResponseEnvelope, + parse_obj_as( + type_=PolicyResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 400: raise BadRequestError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 403: raise ForbiddenError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -152,7 +222,7 @@ def get(self, id: str, *, request_options: typing.Optional[RequestOptions] = Non Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -163,20 +233,48 @@ def get(self, id: str, *, request_options: typing.Optional[RequestOptions] = Non ) """ _response = self._client_wrapper.httpx_client.request( - f"api/permissions/policies/{jsonable_encoder(id)}", method="GET", request_options=request_options + f"api/permissions/policies/{jsonable_encoder(id)}", + method="GET", + request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(PolicyResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + PolicyResponseEnvelope, + parse_obj_as( + type_=PolicyResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -213,7 +311,7 @@ def update( Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -227,30 +325,77 @@ def update( _response = self._client_wrapper.httpx_client.request( f"api/permissions/policies/{jsonable_encoder(id)}", method="PUT", - json={"name": name, "organization_id": organization_id, "policy_actions": policy_actions}, + json={ + "name": name, + "organization_id": organization_id, + "policy_actions": convert_and_respect_annotation_metadata( + object_=policy_actions, annotation=typing.Sequence[PolicyAction], direction="write" + ), + }, + headers={ + "content-type": "application/json", + }, request_options=request_options, omit=OMIT, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(PolicyResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + PolicyResponseEnvelope, + parse_obj_as( + type_=PolicyResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 400: raise BadRequestError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 403: raise ForbiddenError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -272,7 +417,7 @@ def remove(self, id: str, *, request_options: typing.Optional[RequestOptions] = Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -283,24 +428,52 @@ def remove(self, id: str, *, request_options: typing.Optional[RequestOptions] = ) """ _response = self._client_wrapper.httpx_client.request( - f"api/permissions/policies/{jsonable_encoder(id)}", method="DELETE", request_options=request_options + f"api/permissions/policies/{jsonable_encoder(id)}", + method="DELETE", + request_options=request_options, ) try: if 200 <= _response.status_code < 300: return if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 403: raise ForbiddenError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -328,7 +501,7 @@ async def list(self, *, request_options: typing.Optional[RequestOptions] = None) -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -343,16 +516,38 @@ async def main() -> None: asyncio.run(main()) """ _response = await self._client_wrapper.httpx_client.request( - "api/permissions/policies", method="GET", request_options=request_options + "api/permissions/policies", + method="GET", + request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(ListPoliciesResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + ListPoliciesResponseEnvelope, + parse_obj_as( + type_=ListPoliciesResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 500: raise InternalServerError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -388,7 +583,7 @@ async def create( -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -407,30 +602,77 @@ async def main() -> None: _response = await self._client_wrapper.httpx_client.request( "api/permissions/policies", method="POST", - json={"name": name, "organization_id": organization_id, "policy_actions": policy_actions}, + json={ + "name": name, + "organization_id": organization_id, + "policy_actions": convert_and_respect_annotation_metadata( + object_=policy_actions, annotation=typing.Sequence[PolicyAction], direction="write" + ), + }, + headers={ + "content-type": "application/json", + }, request_options=request_options, omit=OMIT, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(PolicyResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + PolicyResponseEnvelope, + parse_obj_as( + type_=PolicyResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 400: raise BadRequestError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 403: raise ForbiddenError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -455,7 +697,7 @@ async def get(self, id: str, *, request_options: typing.Optional[RequestOptions] -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -472,20 +714,48 @@ async def main() -> None: asyncio.run(main()) """ _response = await self._client_wrapper.httpx_client.request( - f"api/permissions/policies/{jsonable_encoder(id)}", method="GET", request_options=request_options + f"api/permissions/policies/{jsonable_encoder(id)}", + method="GET", + request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(PolicyResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + PolicyResponseEnvelope, + parse_obj_as( + type_=PolicyResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -524,7 +794,7 @@ async def update( -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -544,30 +814,77 @@ async def main() -> None: _response = await self._client_wrapper.httpx_client.request( f"api/permissions/policies/{jsonable_encoder(id)}", method="PUT", - json={"name": name, "organization_id": organization_id, "policy_actions": policy_actions}, + json={ + "name": name, + "organization_id": organization_id, + "policy_actions": convert_and_respect_annotation_metadata( + object_=policy_actions, annotation=typing.Sequence[PolicyAction], direction="write" + ), + }, + headers={ + "content-type": "application/json", + }, request_options=request_options, omit=OMIT, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(PolicyResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + PolicyResponseEnvelope, + parse_obj_as( + type_=PolicyResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 400: raise BadRequestError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 403: raise ForbiddenError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -591,7 +908,7 @@ async def remove(self, id: str, *, request_options: typing.Optional[RequestOptio -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -608,24 +925,52 @@ async def main() -> None: asyncio.run(main()) """ _response = await self._client_wrapper.httpx_client.request( - f"api/permissions/policies/{jsonable_encoder(id)}", method="DELETE", request_options=request_options + f"api/permissions/policies/{jsonable_encoder(id)}", + method="DELETE", + request_options=request_options, ) try: if 200 <= _response.status_code < 300: return if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 403: raise ForbiddenError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: diff --git a/src/polytomic/permissions/roles/client.py b/src/polytomic/permissions/roles/client.py index 61ae86e..b7a80bc 100644 --- a/src/polytomic/permissions/roles/client.py +++ b/src/polytomic/permissions/roles/client.py @@ -1,22 +1,22 @@ # This file was auto-generated by Fern from our API Definition. import typing +from ...core.client_wrapper import SyncClientWrapper +from ...core.request_options import RequestOptions +from ...types.role_list_response_envelope import RoleListResponseEnvelope +from ...core.pydantic_utilities import parse_obj_as +from ...errors.unauthorized_error import UnauthorizedError +from ...types.rest_err_response import RestErrResponse +from ...errors.internal_server_error import InternalServerError +from ...types.api_error import ApiError as types_api_error_ApiError from json.decoder import JSONDecodeError - from ...core.api_error import ApiError as core_api_error_ApiError -from ...core.client_wrapper import AsyncClientWrapper, SyncClientWrapper -from ...core.jsonable_encoder import jsonable_encoder -from ...core.pydantic_utilities import pydantic_v1 -from ...core.request_options import RequestOptions +from ...types.role_response_envelope import RoleResponseEnvelope from ...errors.bad_request_error import BadRequestError from ...errors.forbidden_error import ForbiddenError -from ...errors.internal_server_error import InternalServerError from ...errors.not_found_error import NotFoundError -from ...errors.unauthorized_error import UnauthorizedError -from ...types.api_error import ApiError as types_api_error_ApiError -from ...types.rest_err_response import RestErrResponse -from ...types.role_list_response_envelope import RoleListResponseEnvelope -from ...types.role_response_envelope import RoleResponseEnvelope +from ...core.jsonable_encoder import jsonable_encoder +from ...core.client_wrapper import AsyncClientWrapper # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -40,7 +40,7 @@ def list(self, *, request_options: typing.Optional[RequestOptions] = None) -> Ro Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -49,16 +49,38 @@ def list(self, *, request_options: typing.Optional[RequestOptions] = None) -> Ro client.permissions.roles.list() """ _response = self._client_wrapper.httpx_client.request( - "api/permissions/roles", method="GET", request_options=request_options + "api/permissions/roles", + method="GET", + request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(RoleListResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + RoleListResponseEnvelope, + parse_obj_as( + type_=RoleListResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 500: raise InternalServerError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -89,7 +111,7 @@ def create( Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -102,30 +124,74 @@ def create( _response = self._client_wrapper.httpx_client.request( "api/permissions/roles", method="POST", - json={"name": name, "organization_id": organization_id}, + json={ + "name": name, + "organization_id": organization_id, + }, + headers={ + "content-type": "application/json", + }, request_options=request_options, omit=OMIT, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(RoleResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + RoleResponseEnvelope, + parse_obj_as( + type_=RoleResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 400: raise BadRequestError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 403: raise ForbiddenError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -148,7 +214,7 @@ def get(self, id: str, *, request_options: typing.Optional[RequestOptions] = Non Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -159,16 +225,38 @@ def get(self, id: str, *, request_options: typing.Optional[RequestOptions] = Non ) """ _response = self._client_wrapper.httpx_client.request( - f"api/permissions/roles/{jsonable_encoder(id)}", method="GET", request_options=request_options + f"api/permissions/roles/{jsonable_encoder(id)}", + method="GET", + request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(RoleResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + RoleResponseEnvelope, + parse_obj_as( + type_=RoleResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -202,7 +290,7 @@ def update( Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -216,30 +304,74 @@ def update( _response = self._client_wrapper.httpx_client.request( f"api/permissions/roles/{jsonable_encoder(id)}", method="PUT", - json={"name": name, "organization_id": organization_id}, + json={ + "name": name, + "organization_id": organization_id, + }, + headers={ + "content-type": "application/json", + }, request_options=request_options, omit=OMIT, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(RoleResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + RoleResponseEnvelope, + parse_obj_as( + type_=RoleResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 400: raise BadRequestError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 403: raise ForbiddenError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -261,7 +393,7 @@ def remove(self, id: str, *, request_options: typing.Optional[RequestOptions] = Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -272,24 +404,52 @@ def remove(self, id: str, *, request_options: typing.Optional[RequestOptions] = ) """ _response = self._client_wrapper.httpx_client.request( - f"api/permissions/roles/{jsonable_encoder(id)}", method="DELETE", request_options=request_options + f"api/permissions/roles/{jsonable_encoder(id)}", + method="DELETE", + request_options=request_options, ) try: if 200 <= _response.status_code < 300: return if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 403: raise ForbiddenError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -317,7 +477,7 @@ async def list(self, *, request_options: typing.Optional[RequestOptions] = None) -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -332,16 +492,38 @@ async def main() -> None: asyncio.run(main()) """ _response = await self._client_wrapper.httpx_client.request( - "api/permissions/roles", method="GET", request_options=request_options + "api/permissions/roles", + method="GET", + request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(RoleListResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + RoleListResponseEnvelope, + parse_obj_as( + type_=RoleListResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 500: raise InternalServerError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -374,7 +556,7 @@ async def create( -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -393,30 +575,74 @@ async def main() -> None: _response = await self._client_wrapper.httpx_client.request( "api/permissions/roles", method="POST", - json={"name": name, "organization_id": organization_id}, + json={ + "name": name, + "organization_id": organization_id, + }, + headers={ + "content-type": "application/json", + }, request_options=request_options, omit=OMIT, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(RoleResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + RoleResponseEnvelope, + parse_obj_as( + type_=RoleResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 400: raise BadRequestError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 403: raise ForbiddenError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -441,7 +667,7 @@ async def get(self, id: str, *, request_options: typing.Optional[RequestOptions] -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -458,16 +684,38 @@ async def main() -> None: asyncio.run(main()) """ _response = await self._client_wrapper.httpx_client.request( - f"api/permissions/roles/{jsonable_encoder(id)}", method="GET", request_options=request_options + f"api/permissions/roles/{jsonable_encoder(id)}", + method="GET", + request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(RoleResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + RoleResponseEnvelope, + parse_obj_as( + type_=RoleResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -503,7 +751,7 @@ async def update( -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -523,30 +771,74 @@ async def main() -> None: _response = await self._client_wrapper.httpx_client.request( f"api/permissions/roles/{jsonable_encoder(id)}", method="PUT", - json={"name": name, "organization_id": organization_id}, + json={ + "name": name, + "organization_id": organization_id, + }, + headers={ + "content-type": "application/json", + }, request_options=request_options, omit=OMIT, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(RoleResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + RoleResponseEnvelope, + parse_obj_as( + type_=RoleResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 400: raise BadRequestError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 403: raise ForbiddenError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -570,7 +862,7 @@ async def remove(self, id: str, *, request_options: typing.Optional[RequestOptio -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -587,24 +879,52 @@ async def main() -> None: asyncio.run(main()) """ _response = await self._client_wrapper.httpx_client.request( - f"api/permissions/roles/{jsonable_encoder(id)}", method="DELETE", request_options=request_options + f"api/permissions/roles/{jsonable_encoder(id)}", + method="DELETE", + request_options=request_options, ) try: if 200 <= _response.status_code < 300: return if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 403: raise ForbiddenError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: diff --git a/src/polytomic/query_runner/client.py b/src/polytomic/query_runner/client.py index c1a321a..cd5fc5b 100644 --- a/src/polytomic/query_runner/client.py +++ b/src/polytomic/query_runner/client.py @@ -1,21 +1,21 @@ # This file was auto-generated by Fern from our API Definition. import typing -from json.decoder import JSONDecodeError - -from ..core.api_error import ApiError as core_api_error_ApiError -from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper -from ..core.jsonable_encoder import jsonable_encoder -from ..core.pydantic_utilities import pydantic_v1 +from ..core.client_wrapper import SyncClientWrapper from ..core.request_options import RequestOptions +from ..types.v_4_run_query_envelope import V4RunQueryEnvelope +from ..core.jsonable_encoder import jsonable_encoder +from ..core.pydantic_utilities import parse_obj_as from ..errors.bad_request_error import BadRequestError -from ..errors.internal_server_error import InternalServerError -from ..errors.not_found_error import NotFoundError -from ..errors.unauthorized_error import UnauthorizedError from ..types.api_error import ApiError as types_api_error_ApiError +from ..errors.unauthorized_error import UnauthorizedError from ..types.rest_err_response import RestErrResponse +from ..errors.not_found_error import NotFoundError +from ..errors.internal_server_error import InternalServerError +from json.decoder import JSONDecodeError +from ..core.api_error import ApiError as core_api_error_ApiError from ..types.v_4_query_results_envelope import V4QueryResultsEnvelope -from ..types.v_4_run_query_envelope import V4RunQueryEnvelope +from ..core.client_wrapper import AsyncClientWrapper # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -50,7 +50,7 @@ def run_query( Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -64,27 +64,64 @@ def run_query( _response = self._client_wrapper.httpx_client.request( f"api/connections/{jsonable_encoder(connection_id)}/query", method="POST", - params={"query": query}, + params={ + "query": query, + }, json={}, + headers={ + "content-type": "application/json", + }, request_options=request_options, omit=OMIT, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(V4RunQueryEnvelope, _response.json()) # type: ignore + return typing.cast( + V4RunQueryEnvelope, + parse_obj_as( + type_=V4RunQueryEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 400: raise BadRequestError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -111,7 +148,7 @@ def get_query( Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -122,24 +159,61 @@ def get_query( ) """ _response = self._client_wrapper.httpx_client.request( - f"api/queries/{jsonable_encoder(id)}", method="GET", params={"page": page}, request_options=request_options + f"api/queries/{jsonable_encoder(id)}", + method="GET", + params={ + "page": page, + }, + request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(V4QueryResultsEnvelope, _response.json()) # type: ignore + return typing.cast( + V4QueryResultsEnvelope, + parse_obj_as( + type_=V4QueryResultsEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 400: raise BadRequestError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -178,7 +252,7 @@ async def run_query( -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -198,27 +272,64 @@ async def main() -> None: _response = await self._client_wrapper.httpx_client.request( f"api/connections/{jsonable_encoder(connection_id)}/query", method="POST", - params={"query": query}, + params={ + "query": query, + }, json={}, + headers={ + "content-type": "application/json", + }, request_options=request_options, omit=OMIT, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(V4RunQueryEnvelope, _response.json()) # type: ignore + return typing.cast( + V4RunQueryEnvelope, + parse_obj_as( + type_=V4RunQueryEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 400: raise BadRequestError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -247,7 +358,7 @@ async def get_query( -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -264,24 +375,61 @@ async def main() -> None: asyncio.run(main()) """ _response = await self._client_wrapper.httpx_client.request( - f"api/queries/{jsonable_encoder(id)}", method="GET", params={"page": page}, request_options=request_options + f"api/queries/{jsonable_encoder(id)}", + method="GET", + params={ + "page": page, + }, + request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(V4QueryResultsEnvelope, _response.json()) # type: ignore + return typing.cast( + V4QueryResultsEnvelope, + parse_obj_as( + type_=V4QueryResultsEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 400: raise BadRequestError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: diff --git a/src/polytomic/schemas/client.py b/src/polytomic/schemas/client.py index 83d3e2c..9792ffc 100644 --- a/src/polytomic/schemas/client.py +++ b/src/polytomic/schemas/client.py @@ -1,23 +1,23 @@ # This file was auto-generated by Fern from our API Definition. +from ..core.client_wrapper import SyncClientWrapper import typing -from json.decoder import JSONDecodeError - -from ..core.api_error import ApiError as core_api_error_ApiError -from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper -from ..core.jsonable_encoder import jsonable_encoder -from ..core.pydantic_utilities import pydantic_v1 from ..core.request_options import RequestOptions +from ..core.jsonable_encoder import jsonable_encoder from ..errors.bad_request_error import BadRequestError -from ..errors.forbidden_error import ForbiddenError -from ..errors.internal_server_error import InternalServerError -from ..errors.not_found_error import NotFoundError -from ..errors.unauthorized_error import UnauthorizedError from ..types.api_error import ApiError as types_api_error_ApiError -from ..types.bulk_sync_source_schema_envelope import BulkSyncSourceSchemaEnvelope -from ..types.bulk_sync_source_status_envelope import BulkSyncSourceStatusEnvelope +from ..core.pydantic_utilities import parse_obj_as +from ..errors.unauthorized_error import UnauthorizedError from ..types.rest_err_response import RestErrResponse +from ..errors.not_found_error import NotFoundError +from ..errors.internal_server_error import InternalServerError +from json.decoder import JSONDecodeError +from ..core.api_error import ApiError as core_api_error_ApiError +from ..types.bulk_sync_source_status_envelope import BulkSyncSourceStatusEnvelope +from ..types.bulk_sync_source_schema_envelope import BulkSyncSourceSchemaEnvelope from ..types.schema_records_response_envelope import SchemaRecordsResponseEnvelope +from ..errors.forbidden_error import ForbiddenError +from ..core.client_wrapper import AsyncClientWrapper class SchemasClient: @@ -39,7 +39,7 @@ def refresh(self, id: str, *, request_options: typing.Optional[RequestOptions] = Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -50,24 +50,52 @@ def refresh(self, id: str, *, request_options: typing.Optional[RequestOptions] = ) """ _response = self._client_wrapper.httpx_client.request( - f"api/connections/{jsonable_encoder(id)}/schemas/refresh", method="POST", request_options=request_options + f"api/connections/{jsonable_encoder(id)}/schemas/refresh", + method="POST", + request_options=request_options, ) try: if 200 <= _response.status_code < 300: return if _response.status_code == 400: raise BadRequestError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -92,7 +120,7 @@ def get_status( Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -103,24 +131,58 @@ def get_status( ) """ _response = self._client_wrapper.httpx_client.request( - f"api/connections/{jsonable_encoder(id)}/schemas/status", method="GET", request_options=request_options + f"api/connections/{jsonable_encoder(id)}/schemas/status", + method="GET", + request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(BulkSyncSourceStatusEnvelope, _response.json()) # type: ignore + return typing.cast( + BulkSyncSourceStatusEnvelope, + parse_obj_as( + type_=BulkSyncSourceStatusEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 400: raise BadRequestError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -147,7 +209,7 @@ def get( Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -165,20 +227,52 @@ def get( ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(BulkSyncSourceSchemaEnvelope, _response.json()) # type: ignore + return typing.cast( + BulkSyncSourceSchemaEnvelope, + parse_obj_as( + type_=BulkSyncSourceSchemaEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 400: raise BadRequestError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -205,7 +299,7 @@ def get_records( Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -223,24 +317,62 @@ def get_records( ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(SchemaRecordsResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + SchemaRecordsResponseEnvelope, + parse_obj_as( + type_=SchemaRecordsResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 400: raise BadRequestError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 403: raise ForbiddenError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -269,7 +401,7 @@ async def refresh(self, id: str, *, request_options: typing.Optional[RequestOpti -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -286,24 +418,52 @@ async def main() -> None: asyncio.run(main()) """ _response = await self._client_wrapper.httpx_client.request( - f"api/connections/{jsonable_encoder(id)}/schemas/refresh", method="POST", request_options=request_options + f"api/connections/{jsonable_encoder(id)}/schemas/refresh", + method="POST", + request_options=request_options, ) try: if 200 <= _response.status_code < 300: return if _response.status_code == 400: raise BadRequestError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -330,7 +490,7 @@ async def get_status( -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -347,24 +507,58 @@ async def main() -> None: asyncio.run(main()) """ _response = await self._client_wrapper.httpx_client.request( - f"api/connections/{jsonable_encoder(id)}/schemas/status", method="GET", request_options=request_options + f"api/connections/{jsonable_encoder(id)}/schemas/status", + method="GET", + request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(BulkSyncSourceStatusEnvelope, _response.json()) # type: ignore + return typing.cast( + BulkSyncSourceStatusEnvelope, + parse_obj_as( + type_=BulkSyncSourceStatusEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 400: raise BadRequestError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -393,7 +587,7 @@ async def get( -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -417,20 +611,52 @@ async def main() -> None: ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(BulkSyncSourceSchemaEnvelope, _response.json()) # type: ignore + return typing.cast( + BulkSyncSourceSchemaEnvelope, + parse_obj_as( + type_=BulkSyncSourceSchemaEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 400: raise BadRequestError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -459,7 +685,7 @@ async def get_records( -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -483,24 +709,62 @@ async def main() -> None: ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(SchemaRecordsResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + SchemaRecordsResponseEnvelope, + parse_obj_as( + type_=SchemaRecordsResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 400: raise BadRequestError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 403: raise ForbiddenError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: diff --git a/src/polytomic/types/activate_sync_envelope.py b/src/polytomic/types/activate_sync_envelope.py index 9e068c9..3c5646c 100644 --- a/src/polytomic/types/activate_sync_envelope.py +++ b/src/polytomic/types/activate_sync_envelope.py @@ -1,30 +1,20 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 from .activate_sync_output import ActivateSyncOutput +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class ActivateSyncEnvelope(pydantic_v1.BaseModel): +class ActivateSyncEnvelope(UniversalBaseModel): data: typing.Optional[ActivateSyncOutput] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/activate_sync_input.py b/src/polytomic/types/activate_sync_input.py index c4d78aa..3508640 100644 --- a/src/polytomic/types/activate_sync_input.py +++ b/src/polytomic/types/activate_sync_input.py @@ -1,29 +1,19 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel +from ..core.pydantic_utilities import IS_PYDANTIC_V2 import typing +import pydantic -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 - -class ActivateSyncInput(pydantic_v1.BaseModel): +class ActivateSyncInput(UniversalBaseModel): active: bool - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/activate_sync_output.py b/src/polytomic/types/activate_sync_output.py index 7968393..bceaf9d 100644 --- a/src/polytomic/types/activate_sync_output.py +++ b/src/polytomic/types/activate_sync_output.py @@ -1,30 +1,20 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 - -class ActivateSyncOutput(pydantic_v1.BaseModel): +class ActivateSyncOutput(UniversalBaseModel): active: typing.Optional[bool] = None id: typing.Optional[str] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/api_error.py b/src/polytomic/types/api_error.py index 484d43b..0767356 100644 --- a/src/polytomic/types/api_error.py +++ b/src/polytomic/types/api_error.py @@ -1,32 +1,22 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 - -class ApiError(pydantic_v1.BaseModel): +class ApiError(UniversalBaseModel): key: typing.Optional[str] = None message: typing.Optional[str] = None - metadata: typing.Optional[typing.Dict[str, typing.Any]] = None + metadata: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None status: typing.Optional[int] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/api_key_response.py b/src/polytomic/types/api_key_response.py index 38bb349..a8c634e 100644 --- a/src/polytomic/types/api_key_response.py +++ b/src/polytomic/types/api_key_response.py @@ -1,29 +1,19 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 - -class ApiKeyResponse(pydantic_v1.BaseModel): +class ApiKeyResponse(UniversalBaseModel): value: typing.Optional[str] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/api_key_response_envelope.py b/src/polytomic/types/api_key_response_envelope.py index d6f2258..e4c0d18 100644 --- a/src/polytomic/types/api_key_response_envelope.py +++ b/src/polytomic/types/api_key_response_envelope.py @@ -1,30 +1,20 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 from .api_key_response import ApiKeyResponse +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class ApiKeyResponseEnvelope(pydantic_v1.BaseModel): +class ApiKeyResponseEnvelope(UniversalBaseModel): data: typing.Optional[ApiKeyResponse] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/bulk_field.py b/src/polytomic/types/bulk_field.py index 7899860..4bfef76 100644 --- a/src/polytomic/types/bulk_field.py +++ b/src/polytomic/types/bulk_field.py @@ -1,31 +1,21 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 - -class BulkField(pydantic_v1.BaseModel): +class BulkField(UniversalBaseModel): enabled: typing.Optional[bool] = None id: typing.Optional[str] = None obfuscated: typing.Optional[bool] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/bulk_filter.py b/src/polytomic/types/bulk_filter.py index 35bdee5..7651644 100644 --- a/src/polytomic/types/bulk_filter.py +++ b/src/polytomic/types/bulk_filter.py @@ -1,36 +1,26 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 +import pydantic from .filter_function import FilterFunction +from ..core.pydantic_utilities import IS_PYDANTIC_V2 -class BulkFilter(pydantic_v1.BaseModel): - field_id: typing.Optional[str] = pydantic_v1.Field(default=None) +class BulkFilter(UniversalBaseModel): + field_id: typing.Optional[str] = pydantic.Field(default=None) """ Schema field ID to filter on. """ function: FilterFunction - value: typing.Optional[typing.Any] = None - - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} + value: typing.Optional[typing.Optional[typing.Any]] = None - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/bulk_itemized_schedule.py b/src/polytomic/types/bulk_itemized_schedule.py index 0ff3803..7454bec 100644 --- a/src/polytomic/types/bulk_itemized_schedule.py +++ b/src/polytomic/types/bulk_itemized_schedule.py @@ -1,38 +1,29 @@ # This file was auto-generated by Fern from our API Definition. from __future__ import annotations - -import datetime as dt -import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 +from ..core.pydantic_utilities import UniversalBaseModel from .bulk_selective_mode import BulkSelectiveMode +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import typing +import pydantic +from ..core.pydantic_utilities import update_forward_refs -class BulkItemizedSchedule(pydantic_v1.BaseModel): +class BulkItemizedSchedule(UniversalBaseModel): item: BulkSelectiveMode - schedule: BulkSchedule - - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} + schedule: "BulkSchedule" - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow +from .bulk_multi_schedule_configuration import BulkMultiScheduleConfiguration # noqa: E402 from .bulk_schedule import BulkSchedule # noqa: E402 -BulkItemizedSchedule.update_forward_refs() +update_forward_refs(BulkItemizedSchedule) diff --git a/src/polytomic/types/bulk_multi_schedule_configuration.py b/src/polytomic/types/bulk_multi_schedule_configuration.py index e544fbe..7ec091b 100644 --- a/src/polytomic/types/bulk_multi_schedule_configuration.py +++ b/src/polytomic/types/bulk_multi_schedule_configuration.py @@ -1,37 +1,28 @@ # This file was auto-generated by Fern from our API Definition. from __future__ import annotations - -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic +from ..core.pydantic_utilities import update_forward_refs -class BulkMultiScheduleConfiguration(pydantic_v1.BaseModel): - schedules: typing.Optional[typing.List[BulkItemizedSchedule]] = None +class BulkMultiScheduleConfiguration(UniversalBaseModel): + schedules: typing.Optional[typing.List["BulkItemizedSchedule"]] = None type: typing.Optional[str] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow from .bulk_itemized_schedule import BulkItemizedSchedule # noqa: E402 +from .bulk_schedule import BulkSchedule # noqa: E402 -BulkMultiScheduleConfiguration.update_forward_refs() +update_forward_refs(BulkMultiScheduleConfiguration) diff --git a/src/polytomic/types/bulk_schedule.py b/src/polytomic/types/bulk_schedule.py index 78c3743..19dee15 100644 --- a/src/polytomic/types/bulk_schedule.py +++ b/src/polytomic/types/bulk_schedule.py @@ -1,43 +1,34 @@ # This file was auto-generated by Fern from our API Definition. from __future__ import annotations - -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 from .schedule_frequency import ScheduleFrequency +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic +from ..core.pydantic_utilities import update_forward_refs -class BulkSchedule(pydantic_v1.BaseModel): +class BulkSchedule(UniversalBaseModel): day_of_month: typing.Optional[str] = None day_of_week: typing.Optional[str] = None frequency: ScheduleFrequency hour: typing.Optional[str] = None minute: typing.Optional[str] = None month: typing.Optional[str] = None - multi: typing.Optional[BulkMultiScheduleConfiguration] = None - - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} + multi: typing.Optional["BulkMultiScheduleConfiguration"] = None - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow +from .bulk_itemized_schedule import BulkItemizedSchedule # noqa: E402 from .bulk_multi_schedule_configuration import BulkMultiScheduleConfiguration # noqa: E402 -BulkSchedule.update_forward_refs() +update_forward_refs(BulkSchedule) diff --git a/src/polytomic/types/bulk_schema.py b/src/polytomic/types/bulk_schema.py index 243b449..2bfea13 100644 --- a/src/polytomic/types/bulk_schema.py +++ b/src/polytomic/types/bulk_schema.py @@ -1,15 +1,15 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 +import datetime as dt from .bulk_field import BulkField from .bulk_filter import BulkFilter +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class BulkSchema(pydantic_v1.BaseModel): +class BulkSchema(UniversalBaseModel): data_cutoff_timestamp: typing.Optional[dt.datetime] = None disable_data_cutoff: typing.Optional[bool] = None enabled: typing.Optional[bool] = None @@ -20,20 +20,11 @@ class BulkSchema(pydantic_v1.BaseModel): partition_key: typing.Optional[str] = None tracking_field: typing.Optional[str] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/bulk_schema_envelope.py b/src/polytomic/types/bulk_schema_envelope.py index cc1e764..7c42446 100644 --- a/src/polytomic/types/bulk_schema_envelope.py +++ b/src/polytomic/types/bulk_schema_envelope.py @@ -1,30 +1,20 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 from .bulk_schema import BulkSchema +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class BulkSchemaEnvelope(pydantic_v1.BaseModel): +class BulkSchemaEnvelope(UniversalBaseModel): data: typing.Optional[BulkSchema] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/bulk_sync_canceled_event.py b/src/polytomic/types/bulk_sync_canceled_event.py index bb8900c..e6e4e69 100644 --- a/src/polytomic/types/bulk_sync_canceled_event.py +++ b/src/polytomic/types/bulk_sync_canceled_event.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 - -class BulkSyncCanceledEvent(pydantic_v1.BaseModel): +class BulkSyncCanceledEvent(UniversalBaseModel): destination_connection_id: typing.Optional[str] = None execution_id: typing.Optional[str] = None organization_id: typing.Optional[str] = None @@ -15,20 +14,11 @@ class BulkSyncCanceledEvent(pydantic_v1.BaseModel): sync_id: typing.Optional[str] = None sync_name: typing.Optional[str] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/bulk_sync_completed_event.py b/src/polytomic/types/bulk_sync_completed_event.py index 603cdc8..904f8df 100644 --- a/src/polytomic/types/bulk_sync_completed_event.py +++ b/src/polytomic/types/bulk_sync_completed_event.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 - -class BulkSyncCompletedEvent(pydantic_v1.BaseModel): +class BulkSyncCompletedEvent(UniversalBaseModel): destination_connection_id: typing.Optional[str] = None execution_id: typing.Optional[str] = None organization_id: typing.Optional[str] = None @@ -16,20 +15,11 @@ class BulkSyncCompletedEvent(pydantic_v1.BaseModel): sync_name: typing.Optional[str] = None trigger_source: typing.Optional[str] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/bulk_sync_completed_with_error_event.py b/src/polytomic/types/bulk_sync_completed_with_error_event.py index bd7c0e4..7b892a4 100644 --- a/src/polytomic/types/bulk_sync_completed_with_error_event.py +++ b/src/polytomic/types/bulk_sync_completed_with_error_event.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 - -class BulkSyncCompletedWithErrorEvent(pydantic_v1.BaseModel): +class BulkSyncCompletedWithErrorEvent(UniversalBaseModel): destination_connection_id: typing.Optional[str] = None execution_id: typing.Optional[str] = None organization_id: typing.Optional[str] = None @@ -16,20 +15,11 @@ class BulkSyncCompletedWithErrorEvent(pydantic_v1.BaseModel): sync_name: typing.Optional[str] = None trigger_source: typing.Optional[str] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/bulk_sync_dest.py b/src/polytomic/types/bulk_sync_dest.py index 7e1d965..2a9540e 100644 --- a/src/polytomic/types/bulk_sync_dest.py +++ b/src/polytomic/types/bulk_sync_dest.py @@ -1,31 +1,21 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 from .supported_bulk_mode import SupportedBulkMode +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class BulkSyncDest(pydantic_v1.BaseModel): - configuration: typing.Optional[typing.Dict[str, typing.Any]] = None +class BulkSyncDest(UniversalBaseModel): + configuration: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None modes: typing.Optional[typing.List[SupportedBulkMode]] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/bulk_sync_dest_envelope.py b/src/polytomic/types/bulk_sync_dest_envelope.py index 382352c..1c193f4 100644 --- a/src/polytomic/types/bulk_sync_dest_envelope.py +++ b/src/polytomic/types/bulk_sync_dest_envelope.py @@ -1,30 +1,20 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 from .bulk_sync_dest import BulkSyncDest +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class BulkSyncDestEnvelope(pydantic_v1.BaseModel): +class BulkSyncDestEnvelope(UniversalBaseModel): data: typing.Optional[BulkSyncDest] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/bulk_sync_execution.py b/src/polytomic/types/bulk_sync_execution.py index 6b2470a..4d9bf6e 100644 --- a/src/polytomic/types/bulk_sync_execution.py +++ b/src/polytomic/types/bulk_sync_execution.py @@ -1,16 +1,16 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 -from .bulk_execution_status import BulkExecutionStatus +import datetime as dt from .bulk_fetch_mode import BulkFetchMode from .bulk_sync_schema_execution import BulkSyncSchemaExecution +from .bulk_execution_status import BulkExecutionStatus +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class BulkSyncExecution(pydantic_v1.BaseModel): +class BulkSyncExecution(UniversalBaseModel): completed_at: typing.Optional[dt.datetime] = None created_at: typing.Optional[dt.datetime] = None fetch_mode: typing.Optional[BulkFetchMode] = None @@ -22,20 +22,11 @@ class BulkSyncExecution(pydantic_v1.BaseModel): status: typing.Optional[BulkExecutionStatus] = None type: typing.Optional[str] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/bulk_sync_execution_envelope.py b/src/polytomic/types/bulk_sync_execution_envelope.py index e3a0923..65464e0 100644 --- a/src/polytomic/types/bulk_sync_execution_envelope.py +++ b/src/polytomic/types/bulk_sync_execution_envelope.py @@ -1,30 +1,20 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 from .bulk_sync_execution import BulkSyncExecution +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class BulkSyncExecutionEnvelope(pydantic_v1.BaseModel): +class BulkSyncExecutionEnvelope(UniversalBaseModel): data: typing.Optional[BulkSyncExecution] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/bulk_sync_execution_status.py b/src/polytomic/types/bulk_sync_execution_status.py index c8d4f24..08b1d4c 100644 --- a/src/polytomic/types/bulk_sync_execution_status.py +++ b/src/polytomic/types/bulk_sync_execution_status.py @@ -1,36 +1,29 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel +import typing_extensions import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 -from .bulk_execution_status import BulkExecutionStatus +import datetime as dt +from ..core.serialization import FieldMetadata from .bulk_sync_schema_execution_status import BulkSyncSchemaExecutionStatus +from .bulk_execution_status import BulkExecutionStatus +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class BulkSyncExecutionStatus(pydantic_v1.BaseModel): - next_execution_time: typing.Optional[dt.datetime] = pydantic_v1.Field(alias="nextExecutionTime", default=None) +class BulkSyncExecutionStatus(UniversalBaseModel): + next_execution_time: typing_extensions.Annotated[ + typing.Optional[dt.datetime], FieldMetadata(alias="nextExecutionTime") + ] = None schemas: typing.Optional[typing.List[BulkSyncSchemaExecutionStatus]] = None status: typing.Optional[BulkExecutionStatus] = None sync_id: typing.Optional[str] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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 - allow_population_by_field_name = True - populate_by_name = True - extra = pydantic_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/bulk_sync_failed_event.py b/src/polytomic/types/bulk_sync_failed_event.py index 47bf977..ae66b76 100644 --- a/src/polytomic/types/bulk_sync_failed_event.py +++ b/src/polytomic/types/bulk_sync_failed_event.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 - -class BulkSyncFailedEvent(pydantic_v1.BaseModel): +class BulkSyncFailedEvent(UniversalBaseModel): destination_connection_id: typing.Optional[str] = None error: typing.Optional[str] = None execution_id: typing.Optional[str] = None @@ -17,20 +16,11 @@ class BulkSyncFailedEvent(pydantic_v1.BaseModel): sync_name: typing.Optional[str] = None trigger_source: typing.Optional[str] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/bulk_sync_list_envelope.py b/src/polytomic/types/bulk_sync_list_envelope.py index b0cce59..4fb285b 100644 --- a/src/polytomic/types/bulk_sync_list_envelope.py +++ b/src/polytomic/types/bulk_sync_list_envelope.py @@ -1,30 +1,23 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel +from .bulk_itemized_schedule import BulkItemizedSchedule +from .bulk_multi_schedule_configuration import BulkMultiScheduleConfiguration +from .bulk_schedule import BulkSchedule import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 from .bulk_sync_response import BulkSyncResponse +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class BulkSyncListEnvelope(pydantic_v1.BaseModel): +class BulkSyncListEnvelope(UniversalBaseModel): data: typing.Optional[typing.List[BulkSyncResponse]] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/bulk_sync_response.py b/src/polytomic/types/bulk_sync_response.py index ebfd61b..bc0c103 100644 --- a/src/polytomic/types/bulk_sync_response.py +++ b/src/polytomic/types/bulk_sync_response.py @@ -1,66 +1,61 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel +from .bulk_itemized_schedule import BulkItemizedSchedule +from .bulk_multi_schedule_configuration import BulkMultiScheduleConfiguration +from .bulk_schedule import BulkSchedule import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 from .bulk_discover import BulkDiscover -from .bulk_schedule import BulkSchedule +import datetime as dt +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2 -class BulkSyncResponse(pydantic_v1.BaseModel): +class BulkSyncResponse(UniversalBaseModel): active: typing.Optional[bool] = None automatically_add_new_fields: typing.Optional[BulkDiscover] = None automatically_add_new_objects: typing.Optional[BulkDiscover] = None data_cutoff_timestamp: typing.Optional[dt.datetime] = None - destination_configuration: typing.Optional[typing.Dict[str, typing.Any]] = pydantic_v1.Field(default=None) + destination_configuration: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = pydantic.Field( + default=None + ) """ Destination-specific bulk sync configuration. e.g. output schema name, s3 file format, etc. """ destination_connection_id: typing.Optional[str] = None disable_record_timestamps: typing.Optional[bool] = None - discover: typing.Optional[bool] = pydantic_v1.Field(default=None) + discover: typing.Optional[bool] = pydantic.Field(default=None) """ DEPRECATED: Use automatically_add_new_objects/automatically_add_new_fields instead """ id: typing.Optional[str] = None mode: typing.Optional[str] = None - name: typing.Optional[str] = pydantic_v1.Field(default=None) + name: typing.Optional[str] = pydantic.Field(default=None) """ Name of the bulk sync """ organization_id: typing.Optional[str] = None - policies: typing.Optional[typing.List[str]] = pydantic_v1.Field(default=None) + policies: typing.Optional[typing.List[str]] = pydantic.Field(default=None) """ List of permissions policies applied to the bulk sync. """ schedule: typing.Optional[BulkSchedule] = None - source_configuration: typing.Optional[typing.Dict[str, typing.Any]] = pydantic_v1.Field(default=None) + source_configuration: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = pydantic.Field(default=None) """ Source-specific bulk sync configuration. e.g. replication slot name, sync lookback, etc. """ source_connection_id: typing.Optional[str] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/bulk_sync_response_envelope.py b/src/polytomic/types/bulk_sync_response_envelope.py index 191e155..5a9db4c 100644 --- a/src/polytomic/types/bulk_sync_response_envelope.py +++ b/src/polytomic/types/bulk_sync_response_envelope.py @@ -1,30 +1,23 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel +from .bulk_itemized_schedule import BulkItemizedSchedule +from .bulk_multi_schedule_configuration import BulkMultiScheduleConfiguration +from .bulk_schedule import BulkSchedule import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 from .bulk_sync_response import BulkSyncResponse +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class BulkSyncResponseEnvelope(pydantic_v1.BaseModel): +class BulkSyncResponseEnvelope(UniversalBaseModel): data: typing.Optional[BulkSyncResponse] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/bulk_sync_running_event.py b/src/polytomic/types/bulk_sync_running_event.py index 78a4d92..adda8d7 100644 --- a/src/polytomic/types/bulk_sync_running_event.py +++ b/src/polytomic/types/bulk_sync_running_event.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 - -class BulkSyncRunningEvent(pydantic_v1.BaseModel): +class BulkSyncRunningEvent(UniversalBaseModel): destination_connection_id: typing.Optional[str] = None execution_id: typing.Optional[str] = None organization_id: typing.Optional[str] = None @@ -15,20 +14,11 @@ class BulkSyncRunningEvent(pydantic_v1.BaseModel): sync_id: typing.Optional[str] = None sync_name: typing.Optional[str] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/bulk_sync_schema_execution.py b/src/polytomic/types/bulk_sync_schema_execution.py index 65f1538..990706b 100644 --- a/src/polytomic/types/bulk_sync_schema_execution.py +++ b/src/polytomic/types/bulk_sync_schema_execution.py @@ -1,39 +1,30 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 +import datetime as dt +import typing_extensions +from ..core.serialization import FieldMetadata from .bulk_schema_execution_status import BulkSchemaExecutionStatus +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class BulkSyncSchemaExecution(pydantic_v1.BaseModel): +class BulkSyncSchemaExecution(UniversalBaseModel): completed_at: typing.Optional[dt.datetime] = None error_count: typing.Optional[int] = None record_count: typing.Optional[int] = None - schema_: typing.Optional[str] = pydantic_v1.Field(alias="schema", default=None) + schema_: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="schema")] = None started_at: typing.Optional[dt.datetime] = None status: typing.Optional[BulkSchemaExecutionStatus] = None status_message: typing.Optional[str] = None warning_count: typing.Optional[int] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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 - allow_population_by_field_name = True - populate_by_name = True - extra = pydantic_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/bulk_sync_schema_execution_status.py b/src/polytomic/types/bulk_sync_schema_execution_status.py index d918b36..338eea0 100644 --- a/src/polytomic/types/bulk_sync_schema_execution_status.py +++ b/src/polytomic/types/bulk_sync_schema_execution_status.py @@ -1,44 +1,35 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 +import datetime as dt +import pydantic +import typing_extensions +from ..core.serialization import FieldMetadata from .bulk_schema_execution_status import BulkSchemaExecutionStatus +from ..core.pydantic_utilities import IS_PYDANTIC_V2 -class BulkSyncSchemaExecutionStatus(pydantic_v1.BaseModel): +class BulkSyncSchemaExecutionStatus(UniversalBaseModel): completed_at: typing.Optional[dt.datetime] = None error_count: typing.Optional[int] = None - execution_id: typing.Optional[str] = pydantic_v1.Field(default=None) + execution_id: typing.Optional[str] = pydantic.Field(default=None) """ ID of the most recent execution for the schema. """ record_count: typing.Optional[int] = None - schema_: typing.Optional[str] = pydantic_v1.Field(alias="schema", default=None) + schema_: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="schema")] = None started_at: typing.Optional[dt.datetime] = None status: typing.Optional[BulkSchemaExecutionStatus] = None status_message: typing.Optional[str] = None warning_count: typing.Optional[int] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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 - allow_population_by_field_name = True - populate_by_name = True - extra = pydantic_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/bulk_sync_source.py b/src/polytomic/types/bulk_sync_source.py index 031ecb4..969fc68 100644 --- a/src/polytomic/types/bulk_sync_source.py +++ b/src/polytomic/types/bulk_sync_source.py @@ -1,31 +1,21 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 from .schema import Schema +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class BulkSyncSource(pydantic_v1.BaseModel): - configuration: typing.Optional[typing.Any] = None +class BulkSyncSource(UniversalBaseModel): + configuration: typing.Optional[typing.Optional[typing.Any]] = None schemas: typing.Optional[typing.List[Schema]] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/bulk_sync_source_envelope.py b/src/polytomic/types/bulk_sync_source_envelope.py index bf69ec7..9401ad8 100644 --- a/src/polytomic/types/bulk_sync_source_envelope.py +++ b/src/polytomic/types/bulk_sync_source_envelope.py @@ -1,30 +1,20 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 from .bulk_sync_source import BulkSyncSource +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class BulkSyncSourceEnvelope(pydantic_v1.BaseModel): +class BulkSyncSourceEnvelope(UniversalBaseModel): data: typing.Optional[BulkSyncSource] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/bulk_sync_source_schema_envelope.py b/src/polytomic/types/bulk_sync_source_schema_envelope.py index 8b39700..941b8a9 100644 --- a/src/polytomic/types/bulk_sync_source_schema_envelope.py +++ b/src/polytomic/types/bulk_sync_source_schema_envelope.py @@ -1,30 +1,20 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 from .schema import Schema +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class BulkSyncSourceSchemaEnvelope(pydantic_v1.BaseModel): +class BulkSyncSourceSchemaEnvelope(UniversalBaseModel): data: typing.Optional[Schema] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/bulk_sync_source_status.py b/src/polytomic/types/bulk_sync_source_status.py index 5b8ccc0..21e437a 100644 --- a/src/polytomic/types/bulk_sync_source_status.py +++ b/src/polytomic/types/bulk_sync_source_status.py @@ -1,31 +1,22 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 +import datetime as dt +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class BulkSyncSourceStatus(pydantic_v1.BaseModel): +class BulkSyncSourceStatus(UniversalBaseModel): cache_status: typing.Optional[str] = None last_refresh_finished: typing.Optional[dt.datetime] = None last_refresh_started: typing.Optional[dt.datetime] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/bulk_sync_source_status_envelope.py b/src/polytomic/types/bulk_sync_source_status_envelope.py index 858b02d..cfbf051 100644 --- a/src/polytomic/types/bulk_sync_source_status_envelope.py +++ b/src/polytomic/types/bulk_sync_source_status_envelope.py @@ -1,30 +1,20 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 from .bulk_sync_source_status import BulkSyncSourceStatus +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class BulkSyncSourceStatusEnvelope(pydantic_v1.BaseModel): +class BulkSyncSourceStatusEnvelope(UniversalBaseModel): data: typing.Optional[BulkSyncSourceStatus] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/bulk_sync_status_envelope.py b/src/polytomic/types/bulk_sync_status_envelope.py index 827a370..8f08427 100644 --- a/src/polytomic/types/bulk_sync_status_envelope.py +++ b/src/polytomic/types/bulk_sync_status_envelope.py @@ -1,30 +1,20 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 from .bulk_sync_status_response import BulkSyncStatusResponse +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class BulkSyncStatusEnvelope(pydantic_v1.BaseModel): +class BulkSyncStatusEnvelope(UniversalBaseModel): data: typing.Optional[BulkSyncStatusResponse] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/bulk_sync_status_response.py b/src/polytomic/types/bulk_sync_status_response.py index cbe4854..680022f 100644 --- a/src/polytomic/types/bulk_sync_status_response.py +++ b/src/polytomic/types/bulk_sync_status_response.py @@ -1,32 +1,23 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 from .bulk_sync_execution import BulkSyncExecution +import datetime as dt +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class BulkSyncStatusResponse(pydantic_v1.BaseModel): +class BulkSyncStatusResponse(UniversalBaseModel): current_execution: typing.Optional[BulkSyncExecution] = None last_execution: typing.Optional[BulkSyncExecution] = None next_execution_time: typing.Optional[dt.datetime] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/common_output_actor.py b/src/polytomic/types/common_output_actor.py index e4c1317..fc1b01c 100644 --- a/src/polytomic/types/common_output_actor.py +++ b/src/polytomic/types/common_output_actor.py @@ -1,31 +1,21 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 - -class CommonOutputActor(pydantic_v1.BaseModel): +class CommonOutputActor(UniversalBaseModel): id: typing.Optional[str] = None name: typing.Optional[str] = None type: typing.Optional[str] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/configuration_value.py b/src/polytomic/types/configuration_value.py index a19876a..02e7209 100644 --- a/src/polytomic/types/configuration_value.py +++ b/src/polytomic/types/configuration_value.py @@ -1,30 +1,20 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 - -class ConfigurationValue(pydantic_v1.BaseModel): - items: typing.Optional[typing.List[typing.Any]] = None +class ConfigurationValue(UniversalBaseModel): + items: typing.Optional[typing.List[typing.Optional[typing.Any]]] = None type: typing.Optional[str] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/connect_card_response.py b/src/polytomic/types/connect_card_response.py index 71a1d1f..bc4963d 100644 --- a/src/polytomic/types/connect_card_response.py +++ b/src/polytomic/types/connect_card_response.py @@ -1,30 +1,24 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2 -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 +class ConnectCardResponse(UniversalBaseModel): + redirect_url: typing.Optional[str] = pydantic.Field(default=None) + """ + URL to redirect the user to in order to create the new connection. + """ -class ConnectCardResponse(pydantic_v1.BaseModel): - redirect_url: typing.Optional[str] = None token: typing.Optional[str] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) - - class Config: - frozen = True - smart_union = True - extra = pydantic_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/connect_card_response_envelope.py b/src/polytomic/types/connect_card_response_envelope.py index 27104b5..15129ac 100644 --- a/src/polytomic/types/connect_card_response_envelope.py +++ b/src/polytomic/types/connect_card_response_envelope.py @@ -1,30 +1,20 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 from .connect_card_response import ConnectCardResponse +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class ConnectCardResponseEnvelope(pydantic_v1.BaseModel): +class ConnectCardResponseEnvelope(UniversalBaseModel): data: typing.Optional[ConnectCardResponse] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/connection_list_response_envelope.py b/src/polytomic/types/connection_list_response_envelope.py index 0c513cb..756361c 100644 --- a/src/polytomic/types/connection_list_response_envelope.py +++ b/src/polytomic/types/connection_list_response_envelope.py @@ -1,30 +1,20 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 from .connection_response_schema import ConnectionResponseSchema +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class ConnectionListResponseEnvelope(pydantic_v1.BaseModel): +class ConnectionListResponseEnvelope(UniversalBaseModel): data: typing.Optional[typing.List[ConnectionResponseSchema]] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/connection_meta.py b/src/polytomic/types/connection_meta.py index 17fb568..67f1eca 100644 --- a/src/polytomic/types/connection_meta.py +++ b/src/polytomic/types/connection_meta.py @@ -1,31 +1,21 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 - -class ConnectionMeta(pydantic_v1.BaseModel): +class ConnectionMeta(UniversalBaseModel): has_items: typing.Optional[bool] = None - items: typing.Optional[typing.List[typing.Any]] = None + items: typing.Optional[typing.List[typing.Optional[typing.Any]]] = None requires_one_of: typing.Optional[typing.List[str]] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/connection_meta_response.py b/src/polytomic/types/connection_meta_response.py index fbcd0b6..6811a25 100644 --- a/src/polytomic/types/connection_meta_response.py +++ b/src/polytomic/types/connection_meta_response.py @@ -1,33 +1,23 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 from .configuration_value import ConfigurationValue from .connection_meta import ConnectionMeta +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class ConnectionMetaResponse(pydantic_v1.BaseModel): +class ConnectionMetaResponse(UniversalBaseModel): configuration: typing.Optional[typing.Dict[str, ConfigurationValue]] = None items: typing.Optional[typing.Dict[str, typing.Optional[ConnectionMeta]]] = None requires_one_of: typing.Optional[typing.List[str]] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/connection_parameter_value.py b/src/polytomic/types/connection_parameter_value.py index dc60ada..c93bcc0 100644 --- a/src/polytomic/types/connection_parameter_value.py +++ b/src/polytomic/types/connection_parameter_value.py @@ -1,30 +1,20 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 - -class ConnectionParameterValue(pydantic_v1.BaseModel): +class ConnectionParameterValue(UniversalBaseModel): label: typing.Optional[str] = None - value: typing.Optional[typing.Any] = None - - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} + value: typing.Optional[typing.Optional[typing.Any]] = None - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/connection_parameter_values_resp.py b/src/polytomic/types/connection_parameter_values_resp.py index bfd325f..a400205 100644 --- a/src/polytomic/types/connection_parameter_values_resp.py +++ b/src/polytomic/types/connection_parameter_values_resp.py @@ -1,31 +1,21 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 from .connection_parameter_value import ConnectionParameterValue +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class ConnectionParameterValuesResp(pydantic_v1.BaseModel): +class ConnectionParameterValuesResp(UniversalBaseModel): allows_creation: typing.Optional[bool] = None values: typing.Optional[typing.List[ConnectionParameterValue]] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/connection_parameter_values_response_envelope.py b/src/polytomic/types/connection_parameter_values_response_envelope.py index 68c17d9..2668ab3 100644 --- a/src/polytomic/types/connection_parameter_values_response_envelope.py +++ b/src/polytomic/types/connection_parameter_values_response_envelope.py @@ -1,30 +1,20 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 from .connection_parameter_values_resp import ConnectionParameterValuesResp +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class ConnectionParameterValuesResponseEnvelope(pydantic_v1.BaseModel): +class ConnectionParameterValuesResponseEnvelope(UniversalBaseModel): data: typing.Optional[typing.Dict[str, typing.Optional[ConnectionParameterValuesResp]]] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/connection_response_envelope.py b/src/polytomic/types/connection_response_envelope.py index 9220ded..8fde2d5 100644 --- a/src/polytomic/types/connection_response_envelope.py +++ b/src/polytomic/types/connection_response_envelope.py @@ -1,30 +1,20 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 from .connection_response_schema import ConnectionResponseSchema +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class ConnectionResponseEnvelope(pydantic_v1.BaseModel): +class ConnectionResponseEnvelope(UniversalBaseModel): data: typing.Optional[ConnectionResponseSchema] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/connection_response_schema.py b/src/polytomic/types/connection_response_schema.py index 4d911f5..c8b2429 100644 --- a/src/polytomic/types/connection_response_schema.py +++ b/src/polytomic/types/connection_response_schema.py @@ -1,20 +1,19 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 +import pydantic from .connection_type_schema import ConnectionTypeSchema +from ..core.pydantic_utilities import IS_PYDANTIC_V2 -class ConnectionResponseSchema(pydantic_v1.BaseModel): - api_calls_last_24_hours: typing.Optional[int] = pydantic_v1.Field(default=None) +class ConnectionResponseSchema(UniversalBaseModel): + api_calls_last_24_hours: typing.Optional[int] = pydantic.Field(default=None) """ API calls made to service in the last 24h (supported integrations only). """ - configuration: typing.Optional[typing.Dict[str, typing.Any]] = None + configuration: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None id: typing.Optional[str] = None name: typing.Optional[str] = None organization_id: typing.Optional[str] = None @@ -23,20 +22,11 @@ class ConnectionResponseSchema(pydantic_v1.BaseModel): status_error: typing.Optional[str] = None type: typing.Optional[ConnectionTypeSchema] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/connection_type.py b/src/polytomic/types/connection_type.py index 1c19c66..43328e8 100644 --- a/src/polytomic/types/connection_type.py +++ b/src/polytomic/types/connection_type.py @@ -1,34 +1,26 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel +import typing_extensions import typing +from ..core.serialization import FieldMetadata +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 - -class ConnectionType(pydantic_v1.BaseModel): - env_config: typing.Optional[typing.Dict[str, typing.Any]] = pydantic_v1.Field(alias="envConfig", default=None) +class ConnectionType(UniversalBaseModel): + env_config: typing_extensions.Annotated[ + typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]], FieldMetadata(alias="envConfig") + ] = None id: typing.Optional[str] = None name: typing.Optional[str] = None use_oauth: typing.Optional[bool] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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 - allow_population_by_field_name = True - populate_by_name = True - extra = pydantic_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/connection_type_response_envelope.py b/src/polytomic/types/connection_type_response_envelope.py index 71f22ea..2f17156 100644 --- a/src/polytomic/types/connection_type_response_envelope.py +++ b/src/polytomic/types/connection_type_response_envelope.py @@ -1,30 +1,20 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 from .connection_type import ConnectionType +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class ConnectionTypeResponseEnvelope(pydantic_v1.BaseModel): +class ConnectionTypeResponseEnvelope(UniversalBaseModel): data: typing.Optional[typing.List[ConnectionType]] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/connection_type_schema.py b/src/polytomic/types/connection_type_schema.py index a0c6da4..243e431 100644 --- a/src/polytomic/types/connection_type_schema.py +++ b/src/polytomic/types/connection_type_schema.py @@ -1,31 +1,21 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 - -class ConnectionTypeSchema(pydantic_v1.BaseModel): +class ConnectionTypeSchema(UniversalBaseModel): id: typing.Optional[str] = None name: typing.Optional[str] = None operations: typing.Optional[typing.List[str]] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/create_connection_response_envelope.py b/src/polytomic/types/create_connection_response_envelope.py index 6895ab8..0e944b6 100644 --- a/src/polytomic/types/create_connection_response_envelope.py +++ b/src/polytomic/types/create_connection_response_envelope.py @@ -1,30 +1,20 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 from .create_connection_response_schema import CreateConnectionResponseSchema +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class CreateConnectionResponseEnvelope(pydantic_v1.BaseModel): +class CreateConnectionResponseEnvelope(UniversalBaseModel): data: typing.Optional[CreateConnectionResponseSchema] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/create_connection_response_schema.py b/src/polytomic/types/create_connection_response_schema.py index ea4dbff..20effd6 100644 --- a/src/polytomic/types/create_connection_response_schema.py +++ b/src/polytomic/types/create_connection_response_schema.py @@ -1,25 +1,24 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 +import pydantic from .connection_type_schema import ConnectionTypeSchema +from ..core.pydantic_utilities import IS_PYDANTIC_V2 -class CreateConnectionResponseSchema(pydantic_v1.BaseModel): - auth_code: typing.Optional[str] = pydantic_v1.Field(default=None) +class CreateConnectionResponseSchema(UniversalBaseModel): + auth_code: typing.Optional[str] = pydantic.Field(default=None) """ Code to enter in order to complete connection authentication. """ - auth_url: typing.Optional[str] = pydantic_v1.Field(default=None) + auth_url: typing.Optional[str] = pydantic.Field(default=None) """ URL to visit to complete connection authentication. """ - configuration: typing.Optional[typing.Dict[str, typing.Any]] = None + configuration: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None id: typing.Optional[str] = None name: typing.Optional[str] = None organization_id: typing.Optional[str] = None @@ -28,20 +27,11 @@ class CreateConnectionResponseSchema(pydantic_v1.BaseModel): status_error: typing.Optional[str] = None type: typing.Optional[ConnectionTypeSchema] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/create_model_request.py b/src/polytomic/types/create_model_request.py index ef2674d..6c50475 100644 --- a/src/polytomic/types/create_model_request.py +++ b/src/polytomic/types/create_model_request.py @@ -1,18 +1,17 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 -from .enrichment import Enrichment from .model_model_field_request import ModelModelFieldRequest +from .enrichment import Enrichment from .model_relation import ModelRelation +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class CreateModelRequest(pydantic_v1.BaseModel): +class CreateModelRequest(UniversalBaseModel): additional_fields: typing.Optional[typing.List[ModelModelFieldRequest]] = None - configuration: typing.Dict[str, typing.Any] + configuration: typing.Dict[str, typing.Optional[typing.Any]] connection_id: str enricher: typing.Optional[Enrichment] = None fields: typing.Optional[typing.List[str]] = None @@ -24,20 +23,11 @@ class CreateModelRequest(pydantic_v1.BaseModel): relations: typing.Optional[typing.List[ModelRelation]] = None tracking_columns: typing.Optional[typing.List[str]] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/enrichment.py b/src/polytomic/types/enrichment.py index ec56e30..7def672 100644 --- a/src/polytomic/types/enrichment.py +++ b/src/polytomic/types/enrichment.py @@ -1,44 +1,34 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 -from .model_field import ModelField from .v_2_enricher_configuration import V2EnricherConfiguration +import pydantic +from .model_field import ModelField from .v_2_enricher_mapping import V2EnricherMapping +from ..core.pydantic_utilities import IS_PYDANTIC_V2 -class Enrichment(pydantic_v1.BaseModel): +class Enrichment(UniversalBaseModel): configuration: typing.Optional[V2EnricherConfiguration] = None connection_id: typing.Optional[str] = None - enricher_id: typing.Optional[str] = pydantic_v1.Field(default=None) + enricher_id: typing.Optional[str] = pydantic.Field(default=None) """ Must be provided to update an existing enrichment """ - fields: typing.Optional[typing.List[ModelField]] = pydantic_v1.Field(default=None) + fields: typing.Optional[typing.List[ModelField]] = pydantic.Field(default=None) """ If not provided, all fields will be enabled. """ mappings: typing.Optional[V2EnricherMapping] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/event.py b/src/polytomic/types/event.py index c519e7b..963d107 100644 --- a/src/polytomic/types/event.py +++ b/src/polytomic/types/event.py @@ -1,34 +1,25 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 +import datetime as dt from .event_body import EventBody +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class Event(pydantic_v1.BaseModel): +class Event(UniversalBaseModel): created_at: typing.Optional[dt.datetime] = None event: typing.Optional[EventBody] = None id: typing.Optional[str] = None organization_id: typing.Optional[str] = None type: typing.Optional[str] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/event_body.py b/src/polytomic/types/event_body.py index 2d86f70..6ea03e1 100644 --- a/src/polytomic/types/event_body.py +++ b/src/polytomic/types/event_body.py @@ -1,17 +1,16 @@ # This file was auto-generated by Fern from our API Definition. import typing - -from .bulk_sync_canceled_event import BulkSyncCanceledEvent +from .sync_running_event import SyncRunningEvent +from .sync_completed_event import SyncCompletedEvent +from .sync_failed_event import SyncFailedEvent +from .sync_canceled_event import SyncCanceledEvent +from .sync_completed_with_errors_event import SyncCompletedWithErrorsEvent +from .bulk_sync_running_event import BulkSyncRunningEvent from .bulk_sync_completed_event import BulkSyncCompletedEvent +from .bulk_sync_canceled_event import BulkSyncCanceledEvent from .bulk_sync_completed_with_error_event import BulkSyncCompletedWithErrorEvent from .bulk_sync_failed_event import BulkSyncFailedEvent -from .bulk_sync_running_event import BulkSyncRunningEvent -from .sync_canceled_event import SyncCanceledEvent -from .sync_completed_event import SyncCompletedEvent -from .sync_completed_with_errors_event import SyncCompletedWithErrorsEvent -from .sync_failed_event import SyncFailedEvent -from .sync_running_event import SyncRunningEvent EventBody = typing.Union[ SyncRunningEvent, diff --git a/src/polytomic/types/event_types_envelope.py b/src/polytomic/types/event_types_envelope.py index dc33581..57c5088 100644 --- a/src/polytomic/types/event_types_envelope.py +++ b/src/polytomic/types/event_types_envelope.py @@ -1,29 +1,19 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 - -class EventTypesEnvelope(pydantic_v1.BaseModel): +class EventTypesEnvelope(UniversalBaseModel): data: typing.Optional[typing.List[str]] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/events_envelope.py b/src/polytomic/types/events_envelope.py index 5ad67ac..b540371 100644 --- a/src/polytomic/types/events_envelope.py +++ b/src/polytomic/types/events_envelope.py @@ -1,30 +1,20 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 from .event import Event +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class EventsEnvelope(pydantic_v1.BaseModel): +class EventsEnvelope(UniversalBaseModel): data: typing.Optional[typing.List[Event]] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/execution_counts.py b/src/polytomic/types/execution_counts.py index b8010c8..a14c06d 100644 --- a/src/polytomic/types/execution_counts.py +++ b/src/polytomic/types/execution_counts.py @@ -1,33 +1,23 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 - -class ExecutionCounts(pydantic_v1.BaseModel): +class ExecutionCounts(UniversalBaseModel): delete: typing.Optional[int] = None error: typing.Optional[int] = None insert: typing.Optional[int] = None total: typing.Optional[int] = None update: typing.Optional[int] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/execution_log_response.py b/src/polytomic/types/execution_log_response.py index f7498e0..bcef29e 100644 --- a/src/polytomic/types/execution_log_response.py +++ b/src/polytomic/types/execution_log_response.py @@ -1,30 +1,21 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 +import datetime as dt +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class ExecutionLogResponse(pydantic_v1.BaseModel): +class ExecutionLogResponse(UniversalBaseModel): expires: typing.Optional[dt.datetime] = None urls: typing.Optional[typing.List[str]] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/execution_logs_response_envelope.py b/src/polytomic/types/execution_logs_response_envelope.py index 12d6176..63cbcd2 100644 --- a/src/polytomic/types/execution_logs_response_envelope.py +++ b/src/polytomic/types/execution_logs_response_envelope.py @@ -1,30 +1,20 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 from .execution_log_response import ExecutionLogResponse +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class ExecutionLogsResponseEnvelope(pydantic_v1.BaseModel): +class ExecutionLogsResponseEnvelope(UniversalBaseModel): data: typing.Optional[ExecutionLogResponse] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/field_configuration.py b/src/polytomic/types/field_configuration.py index 8cedef4..07057de 100644 --- a/src/polytomic/types/field_configuration.py +++ b/src/polytomic/types/field_configuration.py @@ -1,38 +1,28 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2 -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 - -class FieldConfiguration(pydantic_v1.BaseModel): - enabled: typing.Optional[bool] = pydantic_v1.Field(default=None) +class FieldConfiguration(UniversalBaseModel): + enabled: typing.Optional[bool] = pydantic.Field(default=None) """ Whether the field is enabled for syncing. """ id: typing.Optional[str] = None - obfuscate: typing.Optional[bool] = pydantic_v1.Field(default=None) + obfuscate: typing.Optional[bool] = pydantic.Field(default=None) """ Whether the field should be obfuscated. """ - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/filter.py b/src/polytomic/types/filter.py index b4008c9..b95dbc9 100644 --- a/src/polytomic/types/filter.py +++ b/src/polytomic/types/filter.py @@ -1,22 +1,21 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 +from .source import Source +import pydantic from .filter_field_reference_type import FilterFieldReferenceType from .filter_function import FilterFunction -from .source import Source +from ..core.pydantic_utilities import IS_PYDANTIC_V2 -class Filter(pydantic_v1.BaseModel): +class Filter(UniversalBaseModel): """ Either `field` or `field_id` must be provided. If `field` is provided, `field_id` is ignored. """ field: typing.Optional[Source] = None - field_id: typing.Optional[str] = pydantic_v1.Field(default=None) + field_id: typing.Optional[str] = pydantic.Field(default=None) """ Model or Target field name to filter on. """ @@ -24,22 +23,13 @@ class Filter(pydantic_v1.BaseModel): field_type: typing.Optional[FilterFieldReferenceType] = None function: FilterFunction label: typing.Optional[str] = None - value: typing.Optional[typing.Any] = None - - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} + value: typing.Optional[typing.Optional[typing.Any]] = None - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/get_connection_meta_envelope.py b/src/polytomic/types/get_connection_meta_envelope.py index 0abfd70..e387173 100644 --- a/src/polytomic/types/get_connection_meta_envelope.py +++ b/src/polytomic/types/get_connection_meta_envelope.py @@ -1,30 +1,20 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 from .connection_meta_response import ConnectionMetaResponse +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class GetConnectionMetaEnvelope(pydantic_v1.BaseModel): +class GetConnectionMetaEnvelope(UniversalBaseModel): data: typing.Optional[ConnectionMetaResponse] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/get_execution_response_envelope.py b/src/polytomic/types/get_execution_response_envelope.py index a536b9d..4edb7db 100644 --- a/src/polytomic/types/get_execution_response_envelope.py +++ b/src/polytomic/types/get_execution_response_envelope.py @@ -1,30 +1,20 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 from .get_execution_response_schema import GetExecutionResponseSchema +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class GetExecutionResponseEnvelope(pydantic_v1.BaseModel): +class GetExecutionResponseEnvelope(UniversalBaseModel): data: typing.Optional[GetExecutionResponseSchema] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/get_execution_response_schema.py b/src/polytomic/types/get_execution_response_schema.py index 6185e80..543548a 100644 --- a/src/polytomic/types/get_execution_response_schema.py +++ b/src/polytomic/types/get_execution_response_schema.py @@ -1,15 +1,15 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 +import datetime as dt from .execution_counts import ExecutionCounts from .execution_status import ExecutionStatus +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class GetExecutionResponseSchema(pydantic_v1.BaseModel): +class GetExecutionResponseSchema(UniversalBaseModel): completed_at: typing.Optional[dt.datetime] = None counts: typing.Optional[ExecutionCounts] = None created_at: typing.Optional[dt.datetime] = None @@ -19,20 +19,11 @@ class GetExecutionResponseSchema(pydantic_v1.BaseModel): status: typing.Optional[ExecutionStatus] = None type: typing.Optional[str] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/get_identity_response_envelope.py b/src/polytomic/types/get_identity_response_envelope.py index 0598c67..306c001 100644 --- a/src/polytomic/types/get_identity_response_envelope.py +++ b/src/polytomic/types/get_identity_response_envelope.py @@ -1,30 +1,20 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 from .get_identity_response_schema import GetIdentityResponseSchema +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class GetIdentityResponseEnvelope(pydantic_v1.BaseModel): +class GetIdentityResponseEnvelope(UniversalBaseModel): data: typing.Optional[GetIdentityResponseSchema] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/get_identity_response_schema.py b/src/polytomic/types/get_identity_response_schema.py index ea768fc..41759ec 100644 --- a/src/polytomic/types/get_identity_response_schema.py +++ b/src/polytomic/types/get_identity_response_schema.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 - -class GetIdentityResponseSchema(pydantic_v1.BaseModel): +class GetIdentityResponseSchema(UniversalBaseModel): email: typing.Optional[str] = None id: typing.Optional[str] = None is_organization: typing.Optional[bool] = None @@ -18,20 +17,11 @@ class GetIdentityResponseSchema(pydantic_v1.BaseModel): organization_name: typing.Optional[str] = None role: typing.Optional[str] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/get_model_sync_source_meta_envelope.py b/src/polytomic/types/get_model_sync_source_meta_envelope.py index c688e77..731c14a 100644 --- a/src/polytomic/types/get_model_sync_source_meta_envelope.py +++ b/src/polytomic/types/get_model_sync_source_meta_envelope.py @@ -1,30 +1,20 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 from .model_sync_source_meta_response import ModelSyncSourceMetaResponse +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class GetModelSyncSourceMetaEnvelope(pydantic_v1.BaseModel): +class GetModelSyncSourceMetaEnvelope(UniversalBaseModel): data: typing.Optional[ModelSyncSourceMetaResponse] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/identity.py b/src/polytomic/types/identity.py index 7e1a457..e34b270 100644 --- a/src/polytomic/types/identity.py +++ b/src/polytomic/types/identity.py @@ -1,35 +1,25 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt -import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 +from ..core.pydantic_utilities import UniversalBaseModel from .schema_identity_function import SchemaIdentityFunction +import typing from .source import Source +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class Identity(pydantic_v1.BaseModel): +class Identity(UniversalBaseModel): function: SchemaIdentityFunction new_field: typing.Optional[bool] = None remote_field_type_id: typing.Optional[str] = None source: Source target: str - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/identity_function.py b/src/polytomic/types/identity_function.py index 4165475..429e1ae 100644 --- a/src/polytomic/types/identity_function.py +++ b/src/polytomic/types/identity_function.py @@ -1,30 +1,20 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 - -class IdentityFunction(pydantic_v1.BaseModel): +class IdentityFunction(UniversalBaseModel): id: typing.Optional[str] = None label: typing.Optional[str] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/job_response.py b/src/polytomic/types/job_response.py index e0b3440..7d601ad 100644 --- a/src/polytomic/types/job_response.py +++ b/src/polytomic/types/job_response.py @@ -1,34 +1,24 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 from .work_task_status import WorkTaskStatus +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class JobResponse(pydantic_v1.BaseModel): +class JobResponse(UniversalBaseModel): error: typing.Optional[str] = None job_id: typing.Optional[str] = None - result: typing.Optional[typing.Any] = None + result: typing.Optional[typing.Optional[typing.Any]] = None status: typing.Optional[WorkTaskStatus] = None type: typing.Optional[str] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/job_response_envelope.py b/src/polytomic/types/job_response_envelope.py index 381433e..8097319 100644 --- a/src/polytomic/types/job_response_envelope.py +++ b/src/polytomic/types/job_response_envelope.py @@ -1,30 +1,20 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 from .job_response import JobResponse +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class JobResponseEnvelope(pydantic_v1.BaseModel): +class JobResponseEnvelope(UniversalBaseModel): data: typing.Optional[JobResponse] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/jsonschema_definitions.py b/src/polytomic/types/jsonschema_definitions.py index ad4baed..4146852 100644 --- a/src/polytomic/types/jsonschema_definitions.py +++ b/src/polytomic/types/jsonschema_definitions.py @@ -1,7 +1,6 @@ # This file was auto-generated by Fern from our API Definition. import typing - from .jsonschema_schema import JsonschemaSchema JsonschemaDefinitions = typing.Dict[str, JsonschemaSchema] diff --git a/src/polytomic/types/jsonschema_form.py b/src/polytomic/types/jsonschema_form.py index 3481808..379bb56 100644 --- a/src/polytomic/types/jsonschema_form.py +++ b/src/polytomic/types/jsonschema_form.py @@ -2,4 +2,4 @@ import typing -JsonschemaForm = typing.Dict[str, typing.Any] +JsonschemaForm = typing.Dict[str, typing.Optional[typing.Any]] diff --git a/src/polytomic/types/jsonschema_schema.py b/src/polytomic/types/jsonschema_schema.py index 4319cc0..cc657fb 100644 --- a/src/polytomic/types/jsonschema_schema.py +++ b/src/polytomic/types/jsonschema_schema.py @@ -1,101 +1,105 @@ # This file was auto-generated by Fern from our API Definition. from __future__ import annotations - -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel +import typing_extensions import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 +from ..core.serialization import FieldMetadata from .v_2_ordered_map_string_github_com_invopop_jsonschema_schema import ( V2OrderedMapStringGithubComInvopopJsonschemaSchema, ) +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic +from ..core.pydantic_utilities import update_forward_refs -class JsonschemaSchema(pydantic_v1.BaseModel): - anchor: typing.Optional[str] = pydantic_v1.Field(alias="$anchor", default=None) - comment: typing.Optional[str] = pydantic_v1.Field(alias="$comment", default=None) - defs: typing.Optional[JsonschemaDefinitions] = pydantic_v1.Field(alias="$defs", default=None) - dynamic_ref: typing.Optional[str] = pydantic_v1.Field(alias="$dynamicRef", default=None) - id: typing.Optional[str] = pydantic_v1.Field(alias="$id", default=None) - ref: typing.Optional[str] = pydantic_v1.Field(alias="$ref", default=None) - schema_: typing.Optional[str] = pydantic_v1.Field(alias="$schema", default=None) - additional_properties: typing.Optional[JsonschemaSchema] = pydantic_v1.Field( - alias="additionalProperties", default=None - ) - all_of: typing.Optional[typing.List[JsonschemaSchema]] = pydantic_v1.Field(alias="allOf", default=None) - any_of: typing.Optional[typing.List[JsonschemaSchema]] = pydantic_v1.Field(alias="anyOf", default=None) - const: typing.Optional[typing.Any] = None - contains: typing.Optional[JsonschemaSchema] = None - content_encoding: typing.Optional[str] = pydantic_v1.Field(alias="contentEncoding", default=None) - content_media_type: typing.Optional[str] = pydantic_v1.Field(alias="contentMediaType", default=None) - content_schema: typing.Optional[JsonschemaSchema] = pydantic_v1.Field(alias="contentSchema", default=None) - default: typing.Optional[typing.Any] = None - dependent_required: typing.Optional[typing.Dict[str, typing.List[str]]] = pydantic_v1.Field( - alias="dependentRequired", default=None - ) - dependent_schemas: typing.Optional[typing.Dict[str, JsonschemaSchema]] = pydantic_v1.Field( - alias="dependentSchemas", default=None +class JsonschemaSchema(UniversalBaseModel): + anchor: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="$anchor")] = None + comment: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="$comment")] = None + defs: typing_extensions.Annotated[typing.Optional["JsonschemaDefinitions"], FieldMetadata(alias="$defs")] = None + dynamic_ref: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="$dynamicRef")] = None + id: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="$id")] = None + ref: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="$ref")] = None + schema_: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="$schema")] = None + additional_properties: typing_extensions.Annotated[ + typing.Optional["JsonschemaSchema"], FieldMetadata(alias="additionalProperties") + ] = None + all_of: typing_extensions.Annotated[ + typing.Optional[typing.List["JsonschemaSchema"]], FieldMetadata(alias="allOf") + ] = None + any_of: typing_extensions.Annotated[ + typing.Optional[typing.List["JsonschemaSchema"]], FieldMetadata(alias="anyOf") + ] = None + const: typing.Optional[typing.Optional[typing.Any]] = None + contains: typing.Optional["JsonschemaSchema"] = None + content_encoding: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="contentEncoding")] = None + content_media_type: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="contentMediaType")] = ( + None ) + content_schema: typing_extensions.Annotated[ + typing.Optional["JsonschemaSchema"], FieldMetadata(alias="contentSchema") + ] = None + default: typing.Optional[typing.Optional[typing.Any]] = None + dependent_required: typing_extensions.Annotated[ + typing.Optional[typing.Dict[str, typing.List[str]]], FieldMetadata(alias="dependentRequired") + ] = None + dependent_schemas: typing_extensions.Annotated[ + typing.Optional[typing.Dict[str, "JsonschemaSchema"]], FieldMetadata(alias="dependentSchemas") + ] = None deprecated: typing.Optional[bool] = None description: typing.Optional[str] = None - else_: typing.Optional[JsonschemaSchema] = pydantic_v1.Field(alias="else", default=None) - enum: typing.Optional[typing.List[typing.Any]] = None - examples: typing.Optional[typing.List[typing.Any]] = None - exclusive_maximum: typing.Optional[str] = pydantic_v1.Field(alias="exclusiveMaximum", default=None) - exclusive_minimum: typing.Optional[str] = pydantic_v1.Field(alias="exclusiveMinimum", default=None) + else_: typing_extensions.Annotated[typing.Optional["JsonschemaSchema"], FieldMetadata(alias="else")] = None + enum: typing.Optional[typing.List[typing.Optional[typing.Any]]] = None + examples: typing.Optional[typing.List[typing.Optional[typing.Any]]] = None + exclusive_maximum: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="exclusiveMaximum")] = None + exclusive_minimum: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="exclusiveMinimum")] = None format: typing.Optional[str] = None - if_: typing.Optional[JsonschemaSchema] = pydantic_v1.Field(alias="if", default=None) - items: typing.Optional[JsonschemaSchema] = None - max_contains: typing.Optional[int] = pydantic_v1.Field(alias="maxContains", default=None) - max_items: typing.Optional[int] = pydantic_v1.Field(alias="maxItems", default=None) - max_length: typing.Optional[int] = pydantic_v1.Field(alias="maxLength", default=None) - max_properties: typing.Optional[int] = pydantic_v1.Field(alias="maxProperties", default=None) + if_: typing_extensions.Annotated[typing.Optional["JsonschemaSchema"], FieldMetadata(alias="if")] = None + items: typing.Optional["JsonschemaSchema"] = None + max_contains: typing_extensions.Annotated[typing.Optional[int], FieldMetadata(alias="maxContains")] = None + max_items: typing_extensions.Annotated[typing.Optional[int], FieldMetadata(alias="maxItems")] = None + max_length: typing_extensions.Annotated[typing.Optional[int], FieldMetadata(alias="maxLength")] = None + max_properties: typing_extensions.Annotated[typing.Optional[int], FieldMetadata(alias="maxProperties")] = None maximum: typing.Optional[str] = None - min_contains: typing.Optional[int] = pydantic_v1.Field(alias="minContains", default=None) - min_items: typing.Optional[int] = pydantic_v1.Field(alias="minItems", default=None) - min_length: typing.Optional[int] = pydantic_v1.Field(alias="minLength", default=None) - min_properties: typing.Optional[int] = pydantic_v1.Field(alias="minProperties", default=None) + min_contains: typing_extensions.Annotated[typing.Optional[int], FieldMetadata(alias="minContains")] = None + min_items: typing_extensions.Annotated[typing.Optional[int], FieldMetadata(alias="minItems")] = None + min_length: typing_extensions.Annotated[typing.Optional[int], FieldMetadata(alias="minLength")] = None + min_properties: typing_extensions.Annotated[typing.Optional[int], FieldMetadata(alias="minProperties")] = None minimum: typing.Optional[str] = None - multiple_of: typing.Optional[str] = pydantic_v1.Field(alias="multipleOf", default=None) - not_: typing.Optional[JsonschemaSchema] = pydantic_v1.Field(alias="not", default=None) - one_of: typing.Optional[typing.List[JsonschemaSchema]] = pydantic_v1.Field(alias="oneOf", default=None) + multiple_of: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="multipleOf")] = None + not_: typing_extensions.Annotated[typing.Optional["JsonschemaSchema"], FieldMetadata(alias="not")] = None + one_of: typing_extensions.Annotated[ + typing.Optional[typing.List["JsonschemaSchema"]], FieldMetadata(alias="oneOf") + ] = None pattern: typing.Optional[str] = None - pattern_properties: typing.Optional[typing.Dict[str, JsonschemaSchema]] = pydantic_v1.Field( - alias="patternProperties", default=None - ) - prefix_items: typing.Optional[typing.List[JsonschemaSchema]] = pydantic_v1.Field(alias="prefixItems", default=None) + pattern_properties: typing_extensions.Annotated[ + typing.Optional[typing.Dict[str, "JsonschemaSchema"]], FieldMetadata(alias="patternProperties") + ] = None + prefix_items: typing_extensions.Annotated[ + typing.Optional[typing.List["JsonschemaSchema"]], FieldMetadata(alias="prefixItems") + ] = None properties: typing.Optional[V2OrderedMapStringGithubComInvopopJsonschemaSchema] = None - property_names: typing.Optional[JsonschemaSchema] = pydantic_v1.Field(alias="propertyNames", default=None) - read_only: typing.Optional[bool] = pydantic_v1.Field(alias="readOnly", default=None) + property_names: typing_extensions.Annotated[ + typing.Optional["JsonschemaSchema"], FieldMetadata(alias="propertyNames") + ] = None + read_only: typing_extensions.Annotated[typing.Optional[bool], FieldMetadata(alias="readOnly")] = None required: typing.Optional[typing.List[str]] = None - then: typing.Optional[JsonschemaSchema] = None + then: typing.Optional["JsonschemaSchema"] = None title: typing.Optional[str] = None type: typing.Optional[str] = None - unique_items: typing.Optional[bool] = pydantic_v1.Field(alias="uniqueItems", default=None) - write_only: typing.Optional[bool] = pydantic_v1.Field(alias="writeOnly", default=None) - - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} + unique_items: typing_extensions.Annotated[typing.Optional[bool], FieldMetadata(alias="uniqueItems")] = None + write_only: typing_extensions.Annotated[typing.Optional[bool], FieldMetadata(alias="writeOnly")] = None - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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 - allow_population_by_field_name = True - populate_by_name = True - extra = pydantic_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow from .jsonschema_definitions import JsonschemaDefinitions # noqa: E402 -JsonschemaSchema.update_forward_refs() +update_forward_refs(JsonschemaSchema) diff --git a/src/polytomic/types/label_label.py b/src/polytomic/types/label_label.py index 9a15ec0..2a919ae 100644 --- a/src/polytomic/types/label_label.py +++ b/src/polytomic/types/label_label.py @@ -2,4 +2,4 @@ import typing -LabelLabel = typing.Dict[str, typing.Any] +LabelLabel = typing.Dict[str, typing.Optional[typing.Any]] diff --git a/src/polytomic/types/list_bulk_schema.py b/src/polytomic/types/list_bulk_schema.py index a8aa333..6a6640b 100644 --- a/src/polytomic/types/list_bulk_schema.py +++ b/src/polytomic/types/list_bulk_schema.py @@ -1,30 +1,20 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 from .bulk_schema import BulkSchema +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class ListBulkSchema(pydantic_v1.BaseModel): +class ListBulkSchema(UniversalBaseModel): data: typing.Optional[typing.List[BulkSchema]] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/list_bulk_sync_execution_status_envelope.py b/src/polytomic/types/list_bulk_sync_execution_status_envelope.py index c6b7c66..92d9d14 100644 --- a/src/polytomic/types/list_bulk_sync_execution_status_envelope.py +++ b/src/polytomic/types/list_bulk_sync_execution_status_envelope.py @@ -1,30 +1,20 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 from .bulk_sync_execution_status import BulkSyncExecutionStatus +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class ListBulkSyncExecutionStatusEnvelope(pydantic_v1.BaseModel): +class ListBulkSyncExecutionStatusEnvelope(UniversalBaseModel): data: typing.Optional[typing.List[BulkSyncExecutionStatus]] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/list_bulk_sync_executions_envelope.py b/src/polytomic/types/list_bulk_sync_executions_envelope.py index 4921bd5..0d09a7a 100644 --- a/src/polytomic/types/list_bulk_sync_executions_envelope.py +++ b/src/polytomic/types/list_bulk_sync_executions_envelope.py @@ -1,30 +1,20 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 from .bulk_sync_execution import BulkSyncExecution +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class ListBulkSyncExecutionsEnvelope(pydantic_v1.BaseModel): +class ListBulkSyncExecutionsEnvelope(UniversalBaseModel): data: typing.Optional[typing.List[BulkSyncExecution]] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/list_execution_response_envelope.py b/src/polytomic/types/list_execution_response_envelope.py index efaf8d6..ae3d2fb 100644 --- a/src/polytomic/types/list_execution_response_envelope.py +++ b/src/polytomic/types/list_execution_response_envelope.py @@ -1,30 +1,20 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 from .get_execution_response_schema import GetExecutionResponseSchema +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class ListExecutionResponseEnvelope(pydantic_v1.BaseModel): +class ListExecutionResponseEnvelope(UniversalBaseModel): data: typing.Optional[typing.List[GetExecutionResponseSchema]] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/list_model_sync_response_envelope.py b/src/polytomic/types/list_model_sync_response_envelope.py index f278169..f4d9ade 100644 --- a/src/polytomic/types/list_model_sync_response_envelope.py +++ b/src/polytomic/types/list_model_sync_response_envelope.py @@ -1,30 +1,20 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 from .model_sync_response import ModelSyncResponse +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class ListModelSyncResponseEnvelope(pydantic_v1.BaseModel): +class ListModelSyncResponseEnvelope(UniversalBaseModel): data: typing.Optional[typing.List[ModelSyncResponse]] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/list_policies_response_envelope.py b/src/polytomic/types/list_policies_response_envelope.py index 0bda3ca..06b5313 100644 --- a/src/polytomic/types/list_policies_response_envelope.py +++ b/src/polytomic/types/list_policies_response_envelope.py @@ -1,30 +1,20 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 from .policy_response import PolicyResponse +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class ListPoliciesResponseEnvelope(pydantic_v1.BaseModel): +class ListPoliciesResponseEnvelope(UniversalBaseModel): data: typing.Optional[typing.List[PolicyResponse]] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/list_users_envelope.py b/src/polytomic/types/list_users_envelope.py index 2aea8ae..3f0e8e7 100644 --- a/src/polytomic/types/list_users_envelope.py +++ b/src/polytomic/types/list_users_envelope.py @@ -1,30 +1,20 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 from .user import User +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class ListUsersEnvelope(pydantic_v1.BaseModel): +class ListUsersEnvelope(UniversalBaseModel): data: typing.Optional[typing.List[User]] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/mode.py b/src/polytomic/types/mode.py index f9d817e..3792f02 100644 --- a/src/polytomic/types/mode.py +++ b/src/polytomic/types/mode.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 - -class Mode(pydantic_v1.BaseModel): +class Mode(UniversalBaseModel): description: typing.Optional[str] = None label: typing.Optional[str] = None mode: typing.Optional[str] = None @@ -15,20 +14,11 @@ class Mode(pydantic_v1.BaseModel): supports_field_sync_mode: typing.Optional[bool] = None supports_target_filters: typing.Optional[bool] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/model_field.py b/src/polytomic/types/model_field.py index f5f8bd5..a04c845 100644 --- a/src/polytomic/types/model_field.py +++ b/src/polytomic/types/model_field.py @@ -1,15 +1,14 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 - -class ModelField(pydantic_v1.BaseModel): +class ModelField(UniversalBaseModel): description: typing.Optional[str] = None - example: typing.Optional[typing.Any] = None + example: typing.Optional[typing.Optional[typing.Any]] = None id: typing.Optional[str] = None label: typing.Optional[str] = None name: typing.Optional[str] = None @@ -18,20 +17,11 @@ class ModelField(pydantic_v1.BaseModel): unique: typing.Optional[bool] = None user_added: typing.Optional[bool] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/model_field_response.py b/src/polytomic/types/model_field_response.py index 1df84ed..1fd1092 100644 --- a/src/polytomic/types/model_field_response.py +++ b/src/polytomic/types/model_field_response.py @@ -1,30 +1,20 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 from .model_field import ModelField +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class ModelFieldResponse(pydantic_v1.BaseModel): +class ModelFieldResponse(UniversalBaseModel): data: typing.Optional[typing.List[ModelField]] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/model_list_response_envelope.py b/src/polytomic/types/model_list_response_envelope.py index 7f783e3..67be25f 100644 --- a/src/polytomic/types/model_list_response_envelope.py +++ b/src/polytomic/types/model_list_response_envelope.py @@ -1,30 +1,20 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 from .model_response import ModelResponse +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class ModelListResponseEnvelope(pydantic_v1.BaseModel): +class ModelListResponseEnvelope(UniversalBaseModel): data: typing.Optional[typing.List[ModelResponse]] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/model_model_field_request.py b/src/polytomic/types/model_model_field_request.py index 4966b9d..c8aee31 100644 --- a/src/polytomic/types/model_model_field_request.py +++ b/src/polytomic/types/model_model_field_request.py @@ -1,32 +1,22 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 - -class ModelModelFieldRequest(pydantic_v1.BaseModel): +class ModelModelFieldRequest(UniversalBaseModel): example: typing.Optional[str] = None label: str name: str type: str - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/model_relation.py b/src/polytomic/types/model_relation.py index d1eb93c..65c67ab 100644 --- a/src/polytomic/types/model_relation.py +++ b/src/polytomic/types/model_relation.py @@ -1,33 +1,23 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel +import typing_extensions import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 +from ..core.serialization import FieldMetadata from .model_relation_to import ModelRelationTo +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class ModelRelation(pydantic_v1.BaseModel): - from_: typing.Optional[str] = pydantic_v1.Field(alias="from", default=None) +class ModelRelation(UniversalBaseModel): + from_: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="from")] = None to: typing.Optional[ModelRelationTo] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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 - allow_population_by_field_name = True - populate_by_name = True - extra = pydantic_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/model_relation_to.py b/src/polytomic/types/model_relation_to.py index 5e17ff1..fec6974 100644 --- a/src/polytomic/types/model_relation_to.py +++ b/src/polytomic/types/model_relation_to.py @@ -1,30 +1,20 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 - -class ModelRelationTo(pydantic_v1.BaseModel): +class ModelRelationTo(UniversalBaseModel): field: typing.Optional[str] = None model_id: typing.Optional[str] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/model_response.py b/src/polytomic/types/model_response.py index 5f7172a..d4e1f71 100644 --- a/src/polytomic/types/model_response.py +++ b/src/polytomic/types/model_response.py @@ -1,19 +1,19 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 +import datetime as dt from .common_output_actor import CommonOutputActor from .enrichment import Enrichment -from .label_label import LabelLabel from .model_field import ModelField +from .label_label import LabelLabel from .relation import Relation +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class ModelResponse(pydantic_v1.BaseModel): - configuration: typing.Optional[typing.Dict[str, typing.Any]] = None +class ModelResponse(UniversalBaseModel): + configuration: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None connection_id: typing.Optional[str] = None created_at: typing.Optional[dt.datetime] = None created_by: typing.Optional[CommonOutputActor] = None @@ -32,20 +32,11 @@ class ModelResponse(pydantic_v1.BaseModel): updated_by: typing.Optional[CommonOutputActor] = None version: typing.Optional[int] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/model_response_envelope.py b/src/polytomic/types/model_response_envelope.py index 7697eaf..61df370 100644 --- a/src/polytomic/types/model_response_envelope.py +++ b/src/polytomic/types/model_response_envelope.py @@ -1,32 +1,22 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 -from .job_response import JobResponse from .model_response import ModelResponse +from .job_response import JobResponse +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class ModelResponseEnvelope(pydantic_v1.BaseModel): +class ModelResponseEnvelope(UniversalBaseModel): data: typing.Optional[ModelResponse] = None job: typing.Optional[JobResponse] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/model_sample.py b/src/polytomic/types/model_sample.py index 9453557..10ce391 100644 --- a/src/polytomic/types/model_sample.py +++ b/src/polytomic/types/model_sample.py @@ -1,31 +1,21 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 from .v_2_sample_record import V2SampleRecord +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class ModelSample(pydantic_v1.BaseModel): +class ModelSample(UniversalBaseModel): records: typing.Optional[typing.List[V2SampleRecord]] = None warnings: typing.Optional[typing.List[str]] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/model_sample_response_envelope.py b/src/polytomic/types/model_sample_response_envelope.py index 2e6bd61..1889c54 100644 --- a/src/polytomic/types/model_sample_response_envelope.py +++ b/src/polytomic/types/model_sample_response_envelope.py @@ -1,32 +1,22 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 -from .job_response import JobResponse from .model_sample import ModelSample +from .job_response import JobResponse +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class ModelSampleResponseEnvelope(pydantic_v1.BaseModel): +class ModelSampleResponseEnvelope(UniversalBaseModel): data: typing.Optional[ModelSample] = None job: typing.Optional[JobResponse] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/model_sync_field.py b/src/polytomic/types/model_sync_field.py index 2a9ecfd..8447658 100644 --- a/src/polytomic/types/model_sync_field.py +++ b/src/polytomic/types/model_sync_field.py @@ -1,49 +1,39 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 +import pydantic from .source import Source +from ..core.pydantic_utilities import IS_PYDANTIC_V2 -class ModelSyncField(pydantic_v1.BaseModel): - new: typing.Optional[bool] = pydantic_v1.Field(default=None) +class ModelSyncField(UniversalBaseModel): + new: typing.Optional[bool] = pydantic.Field(default=None) """ New is set to true if the target field should be created by Polytomic. This is not supported by all backends. """ - override_value: typing.Optional[str] = pydantic_v1.Field(default=None) + override_value: typing.Optional[str] = pydantic.Field(default=None) """ Value to set in the target field; if provided, 'source' is ignored. """ source: typing.Optional[Source] = None - sync_mode: typing.Optional[str] = pydantic_v1.Field(default=None) + sync_mode: typing.Optional[str] = pydantic.Field(default=None) """ Sync mode for the field; defaults to 'updateOrCreate'. If set to 'create', the field will not be synced if it already has a value. This is not supported by all backends. """ - target: str = pydantic_v1.Field() + target: str = pydantic.Field() """ Target field ID the source field value will be written to. """ - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/model_sync_response.py b/src/polytomic/types/model_sync_response.py index a36f4ca..9fc9537 100644 --- a/src/polytomic/types/model_sync_response.py +++ b/src/polytomic/types/model_sync_response.py @@ -1,20 +1,20 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 +import datetime as dt from .common_output_actor import CommonOutputActor +from .model_sync_field import ModelSyncField from .filter import Filter from .identity import Identity -from .model_sync_field import ModelSyncField from .override import Override from .schedule import Schedule from .target import Target +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class ModelSyncResponse(pydantic_v1.BaseModel): +class ModelSyncResponse(UniversalBaseModel): active: typing.Optional[bool] = None created_at: typing.Optional[dt.datetime] = None created_by: typing.Optional[CommonOutputActor] = None @@ -25,30 +25,23 @@ class ModelSyncResponse(pydantic_v1.BaseModel): identity: typing.Optional[Identity] = None mode: typing.Optional[str] = None name: typing.Optional[str] = None + only_enrich_updates: typing.Optional[bool] = None organization_id: typing.Optional[str] = None override_fields: typing.Optional[typing.List[ModelSyncField]] = None overrides: typing.Optional[typing.List[Override]] = None policies: typing.Optional[typing.List[str]] = None schedule: typing.Optional[Schedule] = None + skip_initial_backfill: typing.Optional[bool] = None sync_all_records: typing.Optional[bool] = None target: typing.Optional[Target] = None updated_at: typing.Optional[dt.datetime] = None updated_by: typing.Optional[CommonOutputActor] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/model_sync_response_envelope.py b/src/polytomic/types/model_sync_response_envelope.py index e15fefa..7b4afe2 100644 --- a/src/polytomic/types/model_sync_response_envelope.py +++ b/src/polytomic/types/model_sync_response_envelope.py @@ -1,30 +1,20 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 from .model_sync_response import ModelSyncResponse +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class ModelSyncResponseEnvelope(pydantic_v1.BaseModel): +class ModelSyncResponseEnvelope(UniversalBaseModel): data: typing.Optional[ModelSyncResponse] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/model_sync_source_meta_response.py b/src/polytomic/types/model_sync_source_meta_response.py index 70f5a39..552befd 100644 --- a/src/polytomic/types/model_sync_source_meta_response.py +++ b/src/polytomic/types/model_sync_source_meta_response.py @@ -1,33 +1,23 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 from .configuration_value import ConfigurationValue from .source_meta import SourceMeta +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class ModelSyncSourceMetaResponse(pydantic_v1.BaseModel): +class ModelSyncSourceMetaResponse(UniversalBaseModel): configuration: typing.Optional[typing.Dict[str, ConfigurationValue]] = None items: typing.Optional[typing.Dict[str, typing.Optional[SourceMeta]]] = None requires_one_of: typing.Optional[typing.List[str]] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/organization.py b/src/polytomic/types/organization.py index b4bb459..18977d0 100644 --- a/src/polytomic/types/organization.py +++ b/src/polytomic/types/organization.py @@ -1,33 +1,23 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 - -class Organization(pydantic_v1.BaseModel): +class Organization(UniversalBaseModel): id: typing.Optional[str] = None issuer: typing.Optional[str] = None name: typing.Optional[str] = None sso_domain: typing.Optional[str] = None sso_org_id: typing.Optional[str] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/organization_envelope.py b/src/polytomic/types/organization_envelope.py index f1e82d7..11b776a 100644 --- a/src/polytomic/types/organization_envelope.py +++ b/src/polytomic/types/organization_envelope.py @@ -1,30 +1,20 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 from .organization import Organization +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class OrganizationEnvelope(pydantic_v1.BaseModel): +class OrganizationEnvelope(UniversalBaseModel): data: typing.Optional[Organization] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/organizations_envelope.py b/src/polytomic/types/organizations_envelope.py index 3332826..693c6e2 100644 --- a/src/polytomic/types/organizations_envelope.py +++ b/src/polytomic/types/organizations_envelope.py @@ -1,30 +1,20 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 from .organization import Organization +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class OrganizationsEnvelope(pydantic_v1.BaseModel): +class OrganizationsEnvelope(UniversalBaseModel): data: typing.Optional[typing.List[Organization]] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/override.py b/src/polytomic/types/override.py index b39e4ab..b44a322 100644 --- a/src/polytomic/types/override.py +++ b/src/polytomic/types/override.py @@ -1,43 +1,33 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 -from .filter_function import FilterFunction from .source import Source +import pydantic +from .filter_function import FilterFunction +from ..core.pydantic_utilities import IS_PYDANTIC_V2 -class Override(pydantic_v1.BaseModel): +class Override(UniversalBaseModel): """ Either `field` or `field_id` must be provided. If `field_id` is provided, `field` is ignored. """ field: typing.Optional[Source] = None - field_id: typing.Optional[str] = pydantic_v1.Field(default=None) + field_id: typing.Optional[str] = pydantic.Field(default=None) """ Field ID of the model field to override. """ function: typing.Optional[FilterFunction] = None - override: typing.Optional[typing.Any] = None - value: typing.Optional[typing.Any] = None - - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} + override: typing.Optional[typing.Optional[typing.Any]] = None + value: typing.Optional[typing.Optional[typing.Any]] = None - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/pagination.py b/src/polytomic/types/pagination.py index 355252c..518a988 100644 --- a/src/polytomic/types/pagination.py +++ b/src/polytomic/types/pagination.py @@ -1,37 +1,27 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2 -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 - -class Pagination(pydantic_v1.BaseModel): - next: typing.Optional[str] = pydantic_v1.Field(default=None) +class Pagination(UniversalBaseModel): + next: typing.Optional[str] = pydantic.Field(default=None) """ URL to the next page of results, if available. This may be returned as a host relative path. """ - previous: typing.Optional[str] = pydantic_v1.Field(default=None) + previous: typing.Optional[str] = pydantic.Field(default=None) """ URL to the previous page of results, if available. This may be returned as a host relative path. """ - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/pick_value.py b/src/polytomic/types/pick_value.py index 590f8a9..46e6fce 100644 --- a/src/polytomic/types/pick_value.py +++ b/src/polytomic/types/pick_value.py @@ -1,30 +1,20 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 - -class PickValue(pydantic_v1.BaseModel): +class PickValue(UniversalBaseModel): label: typing.Optional[str] = None value: typing.Optional[str] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/policy_action.py b/src/polytomic/types/policy_action.py index 2c6e960..b7a5614 100644 --- a/src/polytomic/types/policy_action.py +++ b/src/polytomic/types/policy_action.py @@ -1,30 +1,20 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 - -class PolicyAction(pydantic_v1.BaseModel): +class PolicyAction(UniversalBaseModel): action: str role_ids: typing.Optional[typing.List[str]] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/policy_response.py b/src/polytomic/types/policy_response.py index a1e31d6..91d3259 100644 --- a/src/polytomic/types/policy_response.py +++ b/src/polytomic/types/policy_response.py @@ -1,34 +1,24 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 from .policy_action import PolicyAction +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class PolicyResponse(pydantic_v1.BaseModel): +class PolicyResponse(UniversalBaseModel): id: typing.Optional[str] = None name: typing.Optional[str] = None organization_id: typing.Optional[str] = None policy_actions: typing.Optional[typing.List[PolicyAction]] = None system: typing.Optional[bool] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/policy_response_envelope.py b/src/polytomic/types/policy_response_envelope.py index 954b7e9..a41c20c 100644 --- a/src/polytomic/types/policy_response_envelope.py +++ b/src/polytomic/types/policy_response_envelope.py @@ -1,30 +1,20 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 from .policy_response import PolicyResponse +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class PolicyResponseEnvelope(pydantic_v1.BaseModel): +class PolicyResponseEnvelope(UniversalBaseModel): data: typing.Optional[PolicyResponse] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/relation.py b/src/polytomic/types/relation.py index f36b4f9..2813968 100644 --- a/src/polytomic/types/relation.py +++ b/src/polytomic/types/relation.py @@ -1,33 +1,23 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel +import typing_extensions import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 +from ..core.serialization import FieldMetadata from .relation_to import RelationTo +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class Relation(pydantic_v1.BaseModel): - from_: typing.Optional[str] = pydantic_v1.Field(alias="from", default=None) +class Relation(UniversalBaseModel): + from_: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="from")] = None to: typing.Optional[RelationTo] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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 - allow_population_by_field_name = True - populate_by_name = True - extra = pydantic_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/relation_to.py b/src/polytomic/types/relation_to.py index 3343854..4139bf1 100644 --- a/src/polytomic/types/relation_to.py +++ b/src/polytomic/types/relation_to.py @@ -1,30 +1,20 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 - -class RelationTo(pydantic_v1.BaseModel): +class RelationTo(UniversalBaseModel): field: typing.Optional[str] = None model_id: typing.Optional[str] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/rest_err_response.py b/src/polytomic/types/rest_err_response.py index d06254e..6cbc66f 100644 --- a/src/polytomic/types/rest_err_response.py +++ b/src/polytomic/types/rest_err_response.py @@ -1,47 +1,37 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2 -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 - -class RestErrResponse(pydantic_v1.BaseModel): - code: typing.Optional[int] = pydantic_v1.Field(default=None) +class RestErrResponse(UniversalBaseModel): + code: typing.Optional[int] = pydantic.Field(default=None) """ Application-specific error code. """ - context: typing.Optional[typing.Dict[str, typing.Any]] = pydantic_v1.Field(default=None) + context: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = pydantic.Field(default=None) """ Application context. """ - error: typing.Optional[str] = pydantic_v1.Field(default=None) + error: typing.Optional[str] = pydantic.Field(default=None) """ Error message. """ - status: typing.Optional[str] = pydantic_v1.Field(default=None) + status: typing.Optional[str] = pydantic.Field(default=None) """ Status text. """ - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/role_list_response_envelope.py b/src/polytomic/types/role_list_response_envelope.py index 7bea82c..39f5468 100644 --- a/src/polytomic/types/role_list_response_envelope.py +++ b/src/polytomic/types/role_list_response_envelope.py @@ -1,30 +1,20 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 from .role_response import RoleResponse +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class RoleListResponseEnvelope(pydantic_v1.BaseModel): +class RoleListResponseEnvelope(UniversalBaseModel): data: typing.Optional[typing.List[RoleResponse]] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/role_response.py b/src/polytomic/types/role_response.py index f9ce7f3..efd272c 100644 --- a/src/polytomic/types/role_response.py +++ b/src/polytomic/types/role_response.py @@ -1,32 +1,22 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 - -class RoleResponse(pydantic_v1.BaseModel): +class RoleResponse(UniversalBaseModel): id: typing.Optional[str] = None name: typing.Optional[str] = None organization_id: typing.Optional[str] = None system: typing.Optional[bool] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/role_response_envelope.py b/src/polytomic/types/role_response_envelope.py index 924dc6d..fee70d7 100644 --- a/src/polytomic/types/role_response_envelope.py +++ b/src/polytomic/types/role_response_envelope.py @@ -1,30 +1,20 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 from .role_response import RoleResponse +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class RoleResponseEnvelope(pydantic_v1.BaseModel): +class RoleResponseEnvelope(UniversalBaseModel): data: typing.Optional[RoleResponse] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/run_after.py b/src/polytomic/types/run_after.py index 32dd33e..d3e5ea5 100644 --- a/src/polytomic/types/run_after.py +++ b/src/polytomic/types/run_after.py @@ -1,30 +1,20 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 - -class RunAfter(pydantic_v1.BaseModel): +class RunAfter(UniversalBaseModel): bulk_sync_ids: typing.Optional[typing.List[str]] = None sync_ids: typing.Optional[typing.List[str]] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/schedule.py b/src/polytomic/types/schedule.py index 49201d9..c3525a2 100644 --- a/src/polytomic/types/schedule.py +++ b/src/polytomic/types/schedule.py @@ -1,15 +1,14 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 -from .run_after import RunAfter from .schedule_frequency import ScheduleFrequency +from .run_after import RunAfter +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2 -class Schedule(pydantic_v1.BaseModel): +class Schedule(UniversalBaseModel): connection_id: typing.Optional[str] = None day_of_month: typing.Optional[str] = None day_of_week: typing.Optional[str] = None @@ -19,25 +18,16 @@ class Schedule(pydantic_v1.BaseModel): minute: typing.Optional[str] = None month: typing.Optional[str] = None run_after: typing.Optional[RunAfter] = None - run_after_success_only: typing.Optional[bool] = pydantic_v1.Field(default=None) + run_after_success_only: typing.Optional[bool] = pydantic.Field(default=None) """ If true, the sync will only run if the dependent syncs completed successfully. """ - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/schedule_option_response.py b/src/polytomic/types/schedule_option_response.py index dfeed16..1c7a29d 100644 --- a/src/polytomic/types/schedule_option_response.py +++ b/src/polytomic/types/schedule_option_response.py @@ -1,30 +1,20 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 from .schedule_schedule_option import ScheduleScheduleOption +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class ScheduleOptionResponse(pydantic_v1.BaseModel): +class ScheduleOptionResponse(UniversalBaseModel): schedule_options: typing.Optional[typing.List[ScheduleScheduleOption]] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/schedule_option_response_envelope.py b/src/polytomic/types/schedule_option_response_envelope.py index 3944f21..93f4e55 100644 --- a/src/polytomic/types/schedule_option_response_envelope.py +++ b/src/polytomic/types/schedule_option_response_envelope.py @@ -1,30 +1,20 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 from .schedule_option_response import ScheduleOptionResponse +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class ScheduleOptionResponseEnvelope(pydantic_v1.BaseModel): +class ScheduleOptionResponseEnvelope(UniversalBaseModel): data: typing.Optional[ScheduleOptionResponse] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/schedule_schedule_option.py b/src/polytomic/types/schedule_schedule_option.py index 45f7e56..cb8e768 100644 --- a/src/polytomic/types/schedule_schedule_option.py +++ b/src/polytomic/types/schedule_schedule_option.py @@ -1,34 +1,24 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 from .jsonschema_form import JsonschemaForm from .schedule_frequency import ScheduleFrequency +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class ScheduleScheduleOption(pydantic_v1.BaseModel): +class ScheduleScheduleOption(UniversalBaseModel): configuration: typing.Optional[JsonschemaForm] = None description: typing.Optional[str] = None frequency: typing.Optional[ScheduleFrequency] = None label: typing.Optional[str] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/schema.py b/src/polytomic/types/schema.py index d3ab158..ee95d24 100644 --- a/src/polytomic/types/schema.py +++ b/src/polytomic/types/schema.py @@ -1,32 +1,22 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 from .schema_field import SchemaField +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class Schema(pydantic_v1.BaseModel): +class Schema(UniversalBaseModel): fields: typing.Optional[typing.List[SchemaField]] = None id: typing.Optional[str] = None name: typing.Optional[str] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/schema_association.py b/src/polytomic/types/schema_association.py index baa6fb8..e87ed04 100644 --- a/src/polytomic/types/schema_association.py +++ b/src/polytomic/types/schema_association.py @@ -1,32 +1,22 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 - -class SchemaAssociation(pydantic_v1.BaseModel): +class SchemaAssociation(UniversalBaseModel): id: typing.Optional[str] = None name: typing.Optional[str] = None reference_to: typing.Optional[typing.List[str]] = None referenced_field: typing.Optional[str] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/schema_configuration.py b/src/polytomic/types/schema_configuration.py index 2d9c42a..530c3f4 100644 --- a/src/polytomic/types/schema_configuration.py +++ b/src/polytomic/types/schema_configuration.py @@ -1,22 +1,22 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 -from .bulk_filter import BulkFilter +import datetime as dt +import pydantic from .v_2_schema_configuration_fields_item import V2SchemaConfigurationFieldsItem +from .bulk_filter import BulkFilter +from ..core.pydantic_utilities import IS_PYDANTIC_V2 -class SchemaConfiguration(pydantic_v1.BaseModel): +class SchemaConfiguration(UniversalBaseModel): data_cutoff_timestamp: typing.Optional[dt.datetime] = None - disable_data_cutoff: typing.Optional[bool] = pydantic_v1.Field(default=None) + disable_data_cutoff: typing.Optional[bool] = pydantic.Field(default=None) """ Whether data cutoff is disabled for this schema. """ - enabled: typing.Optional[bool] = pydantic_v1.Field(default=None) + enabled: typing.Optional[bool] = pydantic.Field(default=None) """ Whether the schema is enabled for syncing. """ @@ -27,20 +27,11 @@ class SchemaConfiguration(pydantic_v1.BaseModel): partition_key: typing.Optional[str] = None tracking_field: typing.Optional[str] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/schema_field.py b/src/polytomic/types/schema_field.py index 62fcf05..6dafe7b 100644 --- a/src/polytomic/types/schema_field.py +++ b/src/polytomic/types/schema_field.py @@ -1,21 +1,20 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 -from .pick_value import PickValue from .schema_association import SchemaAssociation -from .types_type import TypesType +import pydantic from .util_field_type import UtilFieldType +from .types_type import TypesType +from .pick_value import PickValue +from ..core.pydantic_utilities import IS_PYDANTIC_V2 -class SchemaField(pydantic_v1.BaseModel): +class SchemaField(UniversalBaseModel): association: typing.Optional[SchemaAssociation] = None id: typing.Optional[str] = None name: typing.Optional[str] = None - remote_type: typing.Optional[str] = pydantic_v1.Field(default=None) + remote_type: typing.Optional[str] = pydantic.Field(default=None) """ The type of the field from the remote system. """ @@ -24,20 +23,11 @@ class SchemaField(pydantic_v1.BaseModel): type_spec: typing.Optional[TypesType] = None values: typing.Optional[typing.List[PickValue]] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/schema_records_response_envelope.py b/src/polytomic/types/schema_records_response_envelope.py index 929b765..5131def 100644 --- a/src/polytomic/types/schema_records_response_envelope.py +++ b/src/polytomic/types/schema_records_response_envelope.py @@ -1,29 +1,19 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 +class SchemaRecordsResponseEnvelope(UniversalBaseModel): + data: typing.Optional[typing.List[typing.Dict[str, typing.Optional[typing.Any]]]] = None -class SchemaRecordsResponseEnvelope(pydantic_v1.BaseModel): - data: typing.Optional[typing.List[typing.Dict[str, typing.Any]]] = None + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) - - class Config: - frozen = True - smart_union = True - extra = pydantic_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/source.py b/src/polytomic/types/source.py index 1e1eb5f..f5e6def 100644 --- a/src/polytomic/types/source.py +++ b/src/polytomic/types/source.py @@ -1,30 +1,20 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel +from ..core.pydantic_utilities import IS_PYDANTIC_V2 import typing +import pydantic -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 - -class Source(pydantic_v1.BaseModel): +class Source(UniversalBaseModel): field: str model_id: str - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/source_meta.py b/src/polytomic/types/source_meta.py index 73824af..a447157 100644 --- a/src/polytomic/types/source_meta.py +++ b/src/polytomic/types/source_meta.py @@ -1,31 +1,21 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 - -class SourceMeta(pydantic_v1.BaseModel): +class SourceMeta(UniversalBaseModel): has_items: typing.Optional[bool] = None - items: typing.Optional[typing.List[typing.Any]] = None + items: typing.Optional[typing.List[typing.Optional[typing.Any]]] = None requires_one_of: typing.Optional[typing.List[str]] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/start_model_sync_response_envelope.py b/src/polytomic/types/start_model_sync_response_envelope.py index 18fd47c..f6b46c2 100644 --- a/src/polytomic/types/start_model_sync_response_envelope.py +++ b/src/polytomic/types/start_model_sync_response_envelope.py @@ -1,30 +1,20 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 from .start_model_sync_response_schema import StartModelSyncResponseSchema +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class StartModelSyncResponseEnvelope(pydantic_v1.BaseModel): +class StartModelSyncResponseEnvelope(UniversalBaseModel): data: typing.Optional[StartModelSyncResponseSchema] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/start_model_sync_response_schema.py b/src/polytomic/types/start_model_sync_response_schema.py index a206f9d..889b90e 100644 --- a/src/polytomic/types/start_model_sync_response_schema.py +++ b/src/polytomic/types/start_model_sync_response_schema.py @@ -1,32 +1,23 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 +import datetime as dt from .execution_status import ExecutionStatus +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class StartModelSyncResponseSchema(pydantic_v1.BaseModel): +class StartModelSyncResponseSchema(UniversalBaseModel): created_at: typing.Optional[dt.datetime] = None id: typing.Optional[str] = None status: typing.Optional[ExecutionStatus] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/supported_bulk_mode.py b/src/polytomic/types/supported_bulk_mode.py index 486d2da..4b64c17 100644 --- a/src/polytomic/types/supported_bulk_mode.py +++ b/src/polytomic/types/supported_bulk_mode.py @@ -1,14 +1,13 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 from .sync_mode import SyncMode +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class SupportedBulkMode(pydantic_v1.BaseModel): +class SupportedBulkMode(UniversalBaseModel): description: typing.Optional[str] = None id: typing.Optional[SyncMode] = None label: typing.Optional[str] = None @@ -16,20 +15,11 @@ class SupportedBulkMode(pydantic_v1.BaseModel): supports_field_sync_mode: typing.Optional[bool] = None supports_target_filters: typing.Optional[bool] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/supported_mode.py b/src/polytomic/types/supported_mode.py index 22a3fbe..f63940f 100644 --- a/src/polytomic/types/supported_mode.py +++ b/src/polytomic/types/supported_mode.py @@ -1,44 +1,34 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 from .sync_mode import SyncMode +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2 -class SupportedMode(pydantic_v1.BaseModel): +class SupportedMode(UniversalBaseModel): id: typing.Optional[SyncMode] = None - requires_identity: typing.Optional[bool] = pydantic_v1.Field(default=None) + requires_identity: typing.Optional[bool] = pydantic.Field(default=None) """ True if the sync mode requires an identity field mapping. """ - supports_per_field_mode: typing.Optional[bool] = pydantic_v1.Field(default=None) + supports_per_field_mode: typing.Optional[bool] = pydantic.Field(default=None) """ True if the target supports per-field sync modes. """ - supports_target_filters: typing.Optional[bool] = pydantic_v1.Field(default=None) + supports_target_filters: typing.Optional[bool] = pydantic.Field(default=None) """ True if the sync mode supports target filters. """ - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/sync_canceled_event.py b/src/polytomic/types/sync_canceled_event.py index e14c5ca..caf552e 100644 --- a/src/polytomic/types/sync_canceled_event.py +++ b/src/polytomic/types/sync_canceled_event.py @@ -1,14 +1,13 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 from .execution_status import ExecutionStatus +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class SyncCanceledEvent(pydantic_v1.BaseModel): +class SyncCanceledEvent(UniversalBaseModel): execution_id: typing.Optional[str] = None organization_id: typing.Optional[str] = None status: typing.Optional[ExecutionStatus] = None @@ -16,20 +15,11 @@ class SyncCanceledEvent(pydantic_v1.BaseModel): sync_name: typing.Optional[str] = None target_connection_id: typing.Optional[str] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/sync_completed_event.py b/src/polytomic/types/sync_completed_event.py index b3bcc97..64e935c 100644 --- a/src/polytomic/types/sync_completed_event.py +++ b/src/polytomic/types/sync_completed_event.py @@ -1,14 +1,13 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 from .execution_status import ExecutionStatus +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class SyncCompletedEvent(pydantic_v1.BaseModel): +class SyncCompletedEvent(UniversalBaseModel): deleted_records: typing.Optional[typing.List[str]] = None error_count: typing.Optional[int] = None errored_records: typing.Optional[typing.List[str]] = None @@ -29,20 +28,11 @@ class SyncCompletedEvent(pydantic_v1.BaseModel): warning_count: typing.Optional[int] = None warnings: typing.Optional[typing.List[str]] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/sync_completed_with_errors_event.py b/src/polytomic/types/sync_completed_with_errors_event.py index 2e4d7c0..ad86808 100644 --- a/src/polytomic/types/sync_completed_with_errors_event.py +++ b/src/polytomic/types/sync_completed_with_errors_event.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 - -class SyncCompletedWithErrorsEvent(pydantic_v1.BaseModel): +class SyncCompletedWithErrorsEvent(UniversalBaseModel): error: typing.Optional[str] = None execution_id: typing.Optional[str] = None number_of_errors: typing.Optional[int] = None @@ -17,20 +16,11 @@ class SyncCompletedWithErrorsEvent(pydantic_v1.BaseModel): sync_name: typing.Optional[str] = None target_connection_id: typing.Optional[str] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/sync_destination_properties.py b/src/polytomic/types/sync_destination_properties.py index 8b62d04..a9b3843 100644 --- a/src/polytomic/types/sync_destination_properties.py +++ b/src/polytomic/types/sync_destination_properties.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 - -class SyncDestinationProperties(pydantic_v1.BaseModel): +class SyncDestinationProperties(UniversalBaseModel): does_not_report_operation_counts: typing.Optional[bool] = None mappings_not_required: typing.Optional[bool] = None new_target_label: typing.Optional[str] = None @@ -21,20 +20,11 @@ class SyncDestinationProperties(pydantic_v1.BaseModel): target_creator: typing.Optional[bool] = None use_field_names_as_labels: typing.Optional[bool] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/sync_failed_event.py b/src/polytomic/types/sync_failed_event.py index 14ef5fa..c345f09 100644 --- a/src/polytomic/types/sync_failed_event.py +++ b/src/polytomic/types/sync_failed_event.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 - -class SyncFailedEvent(pydantic_v1.BaseModel): +class SyncFailedEvent(UniversalBaseModel): error: typing.Optional[str] = None execution_id: typing.Optional[str] = None organization_id: typing.Optional[str] = None @@ -15,20 +14,11 @@ class SyncFailedEvent(pydantic_v1.BaseModel): sync_name: typing.Optional[str] = None target_connection_id: typing.Optional[str] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/sync_running_event.py b/src/polytomic/types/sync_running_event.py index 482b6ab..a79fc2b 100644 --- a/src/polytomic/types/sync_running_event.py +++ b/src/polytomic/types/sync_running_event.py @@ -1,33 +1,23 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 - -class SyncRunningEvent(pydantic_v1.BaseModel): +class SyncRunningEvent(UniversalBaseModel): execution_id: typing.Optional[str] = None organization_id: typing.Optional[str] = None sync_id: typing.Optional[str] = None sync_name: typing.Optional[str] = None target_connection_id: typing.Optional[str] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/sync_status_envelope.py b/src/polytomic/types/sync_status_envelope.py index e968cb8..2e6ca0a 100644 --- a/src/polytomic/types/sync_status_envelope.py +++ b/src/polytomic/types/sync_status_envelope.py @@ -1,30 +1,20 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 from .sync_status_response import SyncStatusResponse +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class SyncStatusEnvelope(pydantic_v1.BaseModel): +class SyncStatusEnvelope(UniversalBaseModel): data: typing.Optional[SyncStatusResponse] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/sync_status_response.py b/src/polytomic/types/sync_status_response.py index 4120091..0b48c5d 100644 --- a/src/polytomic/types/sync_status_response.py +++ b/src/polytomic/types/sync_status_response.py @@ -1,32 +1,23 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 from .get_execution_response_schema import GetExecutionResponseSchema +import datetime as dt +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class SyncStatusResponse(pydantic_v1.BaseModel): +class SyncStatusResponse(UniversalBaseModel): current_execution: typing.Optional[GetExecutionResponseSchema] = None last_execution: typing.Optional[GetExecutionResponseSchema] = None next_execution_time: typing.Optional[dt.datetime] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/target.py b/src/polytomic/types/target.py index c64b867..d63d08c 100644 --- a/src/polytomic/types/target.py +++ b/src/polytomic/types/target.py @@ -1,34 +1,24 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 - -class Target(pydantic_v1.BaseModel): - configuration: typing.Optional[typing.Dict[str, typing.Any]] = None +class Target(UniversalBaseModel): + configuration: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None connection_id: str filter_logic: typing.Optional[str] = None new_name: typing.Optional[str] = None object: str - search_values: typing.Optional[typing.Dict[str, typing.Any]] = None - - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} + search_values: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/target_field.py b/src/polytomic/types/target_field.py index 6fb9cdf..37f9cf1 100644 --- a/src/polytomic/types/target_field.py +++ b/src/polytomic/types/target_field.py @@ -1,14 +1,13 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 from .identity_function import IdentityFunction +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class TargetField(pydantic_v1.BaseModel): +class TargetField(UniversalBaseModel): association: typing.Optional[bool] = None createable: typing.Optional[bool] = None description: typing.Optional[str] = None @@ -22,20 +21,11 @@ class TargetField(pydantic_v1.BaseModel): type: typing.Optional[str] = None updateable: typing.Optional[bool] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/target_object.py b/src/polytomic/types/target_object.py index 7984fea..c0f677e 100644 --- a/src/polytomic/types/target_object.py +++ b/src/polytomic/types/target_object.py @@ -1,43 +1,33 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 +import pydantic from .supported_mode import SupportedMode +from ..core.pydantic_utilities import IS_PYDANTIC_V2 -class TargetObject(pydantic_v1.BaseModel): - id: typing.Optional[str] = pydantic_v1.Field(default=None) +class TargetObject(UniversalBaseModel): + id: typing.Optional[str] = pydantic.Field(default=None) """ The identifier of the target object. """ - modes: typing.Optional[typing.List[SupportedMode]] = pydantic_v1.Field(default=None) + modes: typing.Optional[typing.List[SupportedMode]] = pydantic.Field(default=None) """ The supported sync modes and their properties for the target object. """ - name: typing.Optional[str] = pydantic_v1.Field(default=None) + name: typing.Optional[str] = pydantic.Field(default=None) """ The name of the target object. """ - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/target_response.py b/src/polytomic/types/target_response.py index e671171..476b504 100644 --- a/src/polytomic/types/target_response.py +++ b/src/polytomic/types/target_response.py @@ -1,16 +1,16 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 +from .target_field import TargetField from .mode import Mode from .sync_destination_properties import SyncDestinationProperties -from .target_field import TargetField +import datetime as dt +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class TargetResponse(pydantic_v1.BaseModel): +class TargetResponse(UniversalBaseModel): fields: typing.Optional[typing.List[TargetField]] = None id: typing.Optional[str] = None modes: typing.Optional[typing.List[Mode]] = None @@ -18,20 +18,11 @@ class TargetResponse(pydantic_v1.BaseModel): properties: typing.Optional[SyncDestinationProperties] = None refreshed_at: typing.Optional[dt.datetime] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/target_response_envelope.py b/src/polytomic/types/target_response_envelope.py index 5ac5004..c5659f6 100644 --- a/src/polytomic/types/target_response_envelope.py +++ b/src/polytomic/types/target_response_envelope.py @@ -1,30 +1,20 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 from .target_response import TargetResponse +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class TargetResponseEnvelope(pydantic_v1.BaseModel): +class TargetResponseEnvelope(UniversalBaseModel): data: typing.Optional[TargetResponse] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/types_type.py b/src/polytomic/types/types_type.py index 80cee50..f6a5e97 100644 --- a/src/polytomic/types/types_type.py +++ b/src/polytomic/types/types_type.py @@ -2,4 +2,4 @@ import typing -TypesType = typing.Any +TypesType = typing.Optional[typing.Any] diff --git a/src/polytomic/types/user.py b/src/polytomic/types/user.py index cdca945..85f2544 100644 --- a/src/polytomic/types/user.py +++ b/src/polytomic/types/user.py @@ -1,32 +1,22 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 - -class User(pydantic_v1.BaseModel): +class User(UniversalBaseModel): email: typing.Optional[str] = None id: typing.Optional[str] = None organization_id: typing.Optional[str] = None role: typing.Optional[str] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/user_envelope.py b/src/polytomic/types/user_envelope.py index fd03ee5..ace238e 100644 --- a/src/polytomic/types/user_envelope.py +++ b/src/polytomic/types/user_envelope.py @@ -1,30 +1,20 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 from .user import User +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class UserEnvelope(pydantic_v1.BaseModel): +class UserEnvelope(UniversalBaseModel): data: typing.Optional[User] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/v_2_enricher_configuration.py b/src/polytomic/types/v_2_enricher_configuration.py index cfa4286..1214385 100644 --- a/src/polytomic/types/v_2_enricher_configuration.py +++ b/src/polytomic/types/v_2_enricher_configuration.py @@ -2,4 +2,4 @@ import typing -V2EnricherConfiguration = typing.Dict[str, typing.Any] +V2EnricherConfiguration = typing.Dict[str, typing.Optional[typing.Any]] diff --git a/src/polytomic/types/v_2_get_enrichment_input_fields_response_envelope.py b/src/polytomic/types/v_2_get_enrichment_input_fields_response_envelope.py index 820ac8d..dc92c55 100644 --- a/src/polytomic/types/v_2_get_enrichment_input_fields_response_envelope.py +++ b/src/polytomic/types/v_2_get_enrichment_input_fields_response_envelope.py @@ -1,29 +1,19 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 - -class V2GetEnrichmentInputFieldsResponseEnvelope(pydantic_v1.BaseModel): +class V2GetEnrichmentInputFieldsResponseEnvelope(UniversalBaseModel): data: typing.Optional[typing.List[typing.List[str]]] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/v_2_ordered_map_string_github_com_invopop_jsonschema_schema.py b/src/polytomic/types/v_2_ordered_map_string_github_com_invopop_jsonschema_schema.py index 5858b2f..89313f5 100644 --- a/src/polytomic/types/v_2_ordered_map_string_github_com_invopop_jsonschema_schema.py +++ b/src/polytomic/types/v_2_ordered_map_string_github_com_invopop_jsonschema_schema.py @@ -2,4 +2,4 @@ import typing -V2OrderedMapStringGithubComInvopopJsonschemaSchema = typing.Dict[str, typing.Any] +V2OrderedMapStringGithubComInvopopJsonschemaSchema = typing.Dict[str, typing.Optional[typing.Any]] diff --git a/src/polytomic/types/v_2_sample_record.py b/src/polytomic/types/v_2_sample_record.py index 15fcf2b..adffdae 100644 --- a/src/polytomic/types/v_2_sample_record.py +++ b/src/polytomic/types/v_2_sample_record.py @@ -2,4 +2,4 @@ import typing -V2SampleRecord = typing.Dict[str, typing.Dict[str, typing.Any]] +V2SampleRecord = typing.Dict[str, typing.Dict[str, typing.Optional[typing.Any]]] diff --git a/src/polytomic/types/v_2_schema_configuration_fields_item.py b/src/polytomic/types/v_2_schema_configuration_fields_item.py index c678f3f..6dd310f 100644 --- a/src/polytomic/types/v_2_schema_configuration_fields_item.py +++ b/src/polytomic/types/v_2_schema_configuration_fields_item.py @@ -1,7 +1,6 @@ # This file was auto-generated by Fern from our API Definition. import typing - from .field_configuration import FieldConfiguration V2SchemaConfigurationFieldsItem = typing.Union[str, FieldConfiguration] diff --git a/src/polytomic/types/v_4_bulk_sync_execution_logs.py b/src/polytomic/types/v_4_bulk_sync_execution_logs.py index 1a498cf..1823436 100644 --- a/src/polytomic/types/v_4_bulk_sync_execution_logs.py +++ b/src/polytomic/types/v_4_bulk_sync_execution_logs.py @@ -2,4 +2,4 @@ import typing -V4BulkSyncExecutionLogs = typing.Dict[str, typing.Any] +V4BulkSyncExecutionLogs = typing.Dict[str, typing.Optional[typing.Any]] diff --git a/src/polytomic/types/v_4_bulk_sync_execution_logs_envelope.py b/src/polytomic/types/v_4_bulk_sync_execution_logs_envelope.py index 697ad9b..dc1a325 100644 --- a/src/polytomic/types/v_4_bulk_sync_execution_logs_envelope.py +++ b/src/polytomic/types/v_4_bulk_sync_execution_logs_envelope.py @@ -1,30 +1,20 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 from .v_4_bulk_sync_execution_logs import V4BulkSyncExecutionLogs +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class V4BulkSyncExecutionLogsEnvelope(pydantic_v1.BaseModel): +class V4BulkSyncExecutionLogsEnvelope(UniversalBaseModel): data: typing.Optional[V4BulkSyncExecutionLogs] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/v_4_export_sync_logs_envelope.py b/src/polytomic/types/v_4_export_sync_logs_envelope.py index 58d0a18..c4d35c0 100644 --- a/src/polytomic/types/v_4_export_sync_logs_envelope.py +++ b/src/polytomic/types/v_4_export_sync_logs_envelope.py @@ -1,32 +1,22 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 -from .job_response import JobResponse from .v_4_export_sync_logs_response import V4ExportSyncLogsResponse +from .job_response import JobResponse +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class V4ExportSyncLogsEnvelope(pydantic_v1.BaseModel): +class V4ExportSyncLogsEnvelope(UniversalBaseModel): data: typing.Optional[V4ExportSyncLogsResponse] = None job: typing.Optional[JobResponse] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/v_4_export_sync_logs_response.py b/src/polytomic/types/v_4_export_sync_logs_response.py index 707f2c0..340ce7c 100644 --- a/src/polytomic/types/v_4_export_sync_logs_response.py +++ b/src/polytomic/types/v_4_export_sync_logs_response.py @@ -1,29 +1,19 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 - -class V4ExportSyncLogsResponse(pydantic_v1.BaseModel): +class V4ExportSyncLogsResponse(UniversalBaseModel): url: typing.Optional[str] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/v_4_query_results_envelope.py b/src/polytomic/types/v_4_query_results_envelope.py index 58f852d..ddadfc2 100644 --- a/src/polytomic/types/v_4_query_results_envelope.py +++ b/src/polytomic/types/v_4_query_results_envelope.py @@ -1,32 +1,22 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 -from .pagination import Pagination from .v_4_run_query_result import V4RunQueryResult +from .pagination import Pagination +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class V4QueryResultsEnvelope(pydantic_v1.BaseModel): +class V4QueryResultsEnvelope(UniversalBaseModel): data: typing.Optional[V4RunQueryResult] = None links: typing.Optional[Pagination] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/v_4_run_query_envelope.py b/src/polytomic/types/v_4_run_query_envelope.py index f9fdf56..9e16f20 100644 --- a/src/polytomic/types/v_4_run_query_envelope.py +++ b/src/polytomic/types/v_4_run_query_envelope.py @@ -1,30 +1,20 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 from .v_4_run_query_result import V4RunQueryResult +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class V4RunQueryEnvelope(pydantic_v1.BaseModel): +class V4RunQueryEnvelope(UniversalBaseModel): data: typing.Optional[V4RunQueryResult] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/v_4_run_query_result.py b/src/polytomic/types/v_4_run_query_result.py index 4ef2025..f33eaae 100644 --- a/src/polytomic/types/v_4_run_query_result.py +++ b/src/polytomic/types/v_4_run_query_result.py @@ -1,56 +1,46 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 +import pydantic from .work_task_status import WorkTaskStatus +from ..core.pydantic_utilities import IS_PYDANTIC_V2 -class V4RunQueryResult(pydantic_v1.BaseModel): - count: typing.Optional[int] = pydantic_v1.Field(default=None) +class V4RunQueryResult(UniversalBaseModel): + count: typing.Optional[int] = pydantic.Field(default=None) """ The number of rows returned by the query. This will not be returned until the query completes. """ error: typing.Optional[str] = None - expires: typing.Optional[str] = pydantic_v1.Field(default=None) + expires: typing.Optional[str] = pydantic.Field(default=None) """ The time at which the query will expire and be deleted. This will not be returned until the query completes. """ - fields: typing.Optional[typing.List[str]] = pydantic_v1.Field(default=None) + fields: typing.Optional[typing.List[str]] = pydantic.Field(default=None) """ The names of the fields returned by the query. This will not be returned until the query completes. """ - id: typing.Optional[str] = pydantic_v1.Field(default=None) + id: typing.Optional[str] = pydantic.Field(default=None) """ The ID of the query task. """ - results: typing.Optional[typing.List[typing.Dict[str, typing.Any]]] = pydantic_v1.Field(default=None) + results: typing.Optional[typing.List[typing.Dict[str, typing.Optional[typing.Any]]]] = pydantic.Field(default=None) """ The query results, returned as an array of objects. """ status: typing.Optional[WorkTaskStatus] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/v_4_target_objects_response_envelope.py b/src/polytomic/types/v_4_target_objects_response_envelope.py index 75e7846..872f744 100644 --- a/src/polytomic/types/v_4_target_objects_response_envelope.py +++ b/src/polytomic/types/v_4_target_objects_response_envelope.py @@ -1,30 +1,20 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 from .target_object import TargetObject +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class V4TargetObjectsResponseEnvelope(pydantic_v1.BaseModel): +class V4TargetObjectsResponseEnvelope(UniversalBaseModel): data: typing.Optional[typing.List[TargetObject]] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/webhook.py b/src/polytomic/types/webhook.py index 1b09a6c..2157a08 100644 --- a/src/polytomic/types/webhook.py +++ b/src/polytomic/types/webhook.py @@ -1,33 +1,24 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 +import datetime as dt +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class Webhook(pydantic_v1.BaseModel): +class Webhook(UniversalBaseModel): created_at: typing.Optional[dt.datetime] = None endpoint: typing.Optional[str] = None id: typing.Optional[str] = None organization_id: typing.Optional[str] = None secret: typing.Optional[str] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/webhook_envelope.py b/src/polytomic/types/webhook_envelope.py index 2b7458b..442d571 100644 --- a/src/polytomic/types/webhook_envelope.py +++ b/src/polytomic/types/webhook_envelope.py @@ -1,30 +1,20 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 from .webhook import Webhook +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class WebhookEnvelope(pydantic_v1.BaseModel): +class WebhookEnvelope(UniversalBaseModel): data: typing.Optional[Webhook] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/types/webhook_list_envelope.py b/src/polytomic/types/webhook_list_envelope.py index d442fbd..8e6c30d 100644 --- a/src/polytomic/types/webhook_list_envelope.py +++ b/src/polytomic/types/webhook_list_envelope.py @@ -1,30 +1,20 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt +from ..core.pydantic_utilities import UniversalBaseModel import typing - -from ..core.datetime_utils import serialize_datetime -from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1 from .webhook import Webhook +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic -class WebhookListEnvelope(pydantic_v1.BaseModel): +class WebhookListEnvelope(UniversalBaseModel): data: typing.Optional[typing.List[Webhook]] = None - def json(self, **kwargs: typing.Any) -> str: - kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - return super().json(**kwargs_with_defaults) - - def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: - kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} - kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs} - - return deep_union_pydantic_dicts( - super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none) - ) + 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_v1.Extra.allow - json_encoders = {dt.datetime: serialize_datetime} + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/polytomic/users/client.py b/src/polytomic/users/client.py index 96c5c4b..aa0148e 100644 --- a/src/polytomic/users/client.py +++ b/src/polytomic/users/client.py @@ -1,22 +1,22 @@ # This file was auto-generated by Fern from our API Definition. import typing -from json.decoder import JSONDecodeError - -from ..core.api_error import ApiError as core_api_error_ApiError -from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper -from ..core.jsonable_encoder import jsonable_encoder -from ..core.pydantic_utilities import pydantic_v1 +from ..core.client_wrapper import SyncClientWrapper from ..core.request_options import RequestOptions -from ..errors.internal_server_error import InternalServerError -from ..errors.not_found_error import NotFoundError -from ..errors.unauthorized_error import UnauthorizedError -from ..errors.unprocessable_entity_error import UnprocessableEntityError -from ..types.api_error import ApiError as types_api_error_ApiError -from ..types.api_key_response_envelope import ApiKeyResponseEnvelope from ..types.list_users_envelope import ListUsersEnvelope +from ..core.jsonable_encoder import jsonable_encoder +from ..core.pydantic_utilities import parse_obj_as +from ..errors.unauthorized_error import UnauthorizedError from ..types.rest_err_response import RestErrResponse +from ..errors.not_found_error import NotFoundError +from ..types.api_error import ApiError as types_api_error_ApiError +from json.decoder import JSONDecodeError +from ..core.api_error import ApiError as core_api_error_ApiError from ..types.user_envelope import UserEnvelope +from ..errors.unprocessable_entity_error import UnprocessableEntityError +from ..errors.internal_server_error import InternalServerError +from ..types.api_key_response_envelope import ApiKeyResponseEnvelope +from ..core.client_wrapper import AsyncClientWrapper # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -46,7 +46,7 @@ def list(self, org_id: str, *, request_options: typing.Optional[RequestOptions] Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -57,16 +57,38 @@ def list(self, org_id: str, *, request_options: typing.Optional[RequestOptions] ) """ _response = self._client_wrapper.httpx_client.request( - f"api/organizations/{jsonable_encoder(org_id)}/users", method="GET", request_options=request_options + f"api/organizations/{jsonable_encoder(org_id)}/users", + method="GET", + request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(ListUsersEnvelope, _response.json()) # type: ignore + return typing.cast( + ListUsersEnvelope, + parse_obj_as( + type_=ListUsersEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -104,7 +126,7 @@ def create( Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -118,22 +140,54 @@ def create( _response = self._client_wrapper.httpx_client.request( f"api/organizations/{jsonable_encoder(org_id)}/users", method="POST", - json={"email": email, "role": role}, + json={ + "email": email, + "role": role, + }, + headers={ + "content-type": "application/json", + }, request_options=request_options, omit=OMIT, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(UserEnvelope, _response.json()) # type: ignore + return typing.cast( + UserEnvelope, + parse_obj_as( + type_=UserEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 422: raise UnprocessableEntityError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -162,7 +216,7 @@ def get(self, id: str, org_id: str, *, request_options: typing.Optional[RequestO Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -180,16 +234,42 @@ def get(self, id: str, org_id: str, *, request_options: typing.Optional[RequestO ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(UserEnvelope, _response.json()) # type: ignore + return typing.cast( + UserEnvelope, + parse_obj_as( + type_=UserEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -230,7 +310,7 @@ def update( Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -245,22 +325,54 @@ def update( _response = self._client_wrapper.httpx_client.request( f"api/organizations/{jsonable_encoder(org_id)}/users/{jsonable_encoder(id)}", method="PUT", - json={"email": email, "role": role}, + json={ + "email": email, + "role": role, + }, + headers={ + "content-type": "application/json", + }, request_options=request_options, omit=OMIT, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(UserEnvelope, _response.json()) # type: ignore + return typing.cast( + UserEnvelope, + parse_obj_as( + type_=UserEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 422: raise UnprocessableEntityError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -289,7 +401,7 @@ def remove(self, id: str, org_id: str, *, request_options: typing.Optional[Reque Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -307,16 +419,42 @@ def remove(self, id: str, org_id: str, *, request_options: typing.Optional[Reque ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(UserEnvelope, _response.json()) # type: ignore + return typing.cast( + UserEnvelope, + parse_obj_as( + type_=UserEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -354,7 +492,7 @@ def create_api_key( Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -369,21 +507,49 @@ def create_api_key( _response = self._client_wrapper.httpx_client.request( f"api/organizations/{jsonable_encoder(org_id)}/users/{jsonable_encoder(id)}/keys", method="POST", - params={"force": force}, + params={ + "force": force, + }, request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(ApiKeyResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + ApiKeyResponseEnvelope, + parse_obj_as( + type_=ApiKeyResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -417,7 +583,7 @@ async def list(self, org_id: str, *, request_options: typing.Optional[RequestOpt -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -434,16 +600,38 @@ async def main() -> None: asyncio.run(main()) """ _response = await self._client_wrapper.httpx_client.request( - f"api/organizations/{jsonable_encoder(org_id)}/users", method="GET", request_options=request_options + f"api/organizations/{jsonable_encoder(org_id)}/users", + method="GET", + request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(ListUsersEnvelope, _response.json()) # type: ignore + return typing.cast( + ListUsersEnvelope, + parse_obj_as( + type_=ListUsersEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -483,7 +671,7 @@ async def create( -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -503,22 +691,54 @@ async def main() -> None: _response = await self._client_wrapper.httpx_client.request( f"api/organizations/{jsonable_encoder(org_id)}/users", method="POST", - json={"email": email, "role": role}, + json={ + "email": email, + "role": role, + }, + headers={ + "content-type": "application/json", + }, request_options=request_options, omit=OMIT, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(UserEnvelope, _response.json()) # type: ignore + return typing.cast( + UserEnvelope, + parse_obj_as( + type_=UserEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 422: raise UnprocessableEntityError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -551,7 +771,7 @@ async def get( -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -575,16 +795,42 @@ async def main() -> None: ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(UserEnvelope, _response.json()) # type: ignore + return typing.cast( + UserEnvelope, + parse_obj_as( + type_=UserEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -627,7 +873,7 @@ async def update( -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -648,22 +894,54 @@ async def main() -> None: _response = await self._client_wrapper.httpx_client.request( f"api/organizations/{jsonable_encoder(org_id)}/users/{jsonable_encoder(id)}", method="PUT", - json={"email": email, "role": role}, + json={ + "email": email, + "role": role, + }, + headers={ + "content-type": "application/json", + }, request_options=request_options, omit=OMIT, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(UserEnvelope, _response.json()) # type: ignore + return typing.cast( + UserEnvelope, + parse_obj_as( + type_=UserEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 422: raise UnprocessableEntityError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -696,7 +974,7 @@ async def remove( -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -720,16 +998,42 @@ async def main() -> None: ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(UserEnvelope, _response.json()) # type: ignore + return typing.cast( + UserEnvelope, + parse_obj_as( + type_=UserEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -769,7 +1073,7 @@ async def create_api_key( -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -790,21 +1094,49 @@ async def main() -> None: _response = await self._client_wrapper.httpx_client.request( f"api/organizations/{jsonable_encoder(org_id)}/users/{jsonable_encoder(id)}/keys", method="POST", - params={"force": force}, + params={ + "force": force, + }, request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(ApiKeyResponseEnvelope, _response.json()) # type: ignore + return typing.cast( + ApiKeyResponseEnvelope, + parse_obj_as( + type_=ApiKeyResponseEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: diff --git a/src/polytomic/version.py b/src/polytomic/version.py index 97055ea..4028827 100644 --- a/src/polytomic/version.py +++ b/src/polytomic/version.py @@ -1,4 +1,3 @@ - from importlib import metadata __version__ = metadata.version("polytomic") diff --git a/src/polytomic/webhooks/client.py b/src/polytomic/webhooks/client.py index 3b30622..9bc9c73 100644 --- a/src/polytomic/webhooks/client.py +++ b/src/polytomic/webhooks/client.py @@ -1,21 +1,21 @@ # This file was auto-generated by Fern from our API Definition. import typing -from json.decoder import JSONDecodeError - -from ..core.api_error import ApiError as core_api_error_ApiError -from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper -from ..core.jsonable_encoder import jsonable_encoder -from ..core.pydantic_utilities import pydantic_v1 +from ..core.client_wrapper import SyncClientWrapper from ..core.request_options import RequestOptions -from ..errors.internal_server_error import InternalServerError -from ..errors.not_found_error import NotFoundError +from ..types.webhook_list_envelope import WebhookListEnvelope +from ..core.pydantic_utilities import parse_obj_as from ..errors.unauthorized_error import UnauthorizedError -from ..errors.unprocessable_entity_error import UnprocessableEntityError -from ..types.api_error import ApiError as types_api_error_ApiError from ..types.rest_err_response import RestErrResponse +from ..errors.internal_server_error import InternalServerError +from ..types.api_error import ApiError as types_api_error_ApiError +from json.decoder import JSONDecodeError +from ..core.api_error import ApiError as core_api_error_ApiError from ..types.webhook_envelope import WebhookEnvelope -from ..types.webhook_list_envelope import WebhookListEnvelope +from ..errors.unprocessable_entity_error import UnprocessableEntityError +from ..core.jsonable_encoder import jsonable_encoder +from ..errors.not_found_error import NotFoundError +from ..core.client_wrapper import AsyncClientWrapper # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -45,7 +45,7 @@ def list(self, *, request_options: typing.Optional[RequestOptions] = None) -> We Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -54,16 +54,38 @@ def list(self, *, request_options: typing.Optional[RequestOptions] = None) -> We client.webhooks.list() """ _response = self._client_wrapper.httpx_client.request( - "api/webhooks", method="GET", request_options=request_options + "api/webhooks", + method="GET", + request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(WebhookListEnvelope, _response.json()) # type: ignore + return typing.cast( + WebhookListEnvelope, + parse_obj_as( + type_=WebhookListEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 500: raise InternalServerError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -103,7 +125,7 @@ def create( Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -117,22 +139,55 @@ def create( _response = self._client_wrapper.httpx_client.request( "api/webhooks", method="POST", - json={"endpoint": endpoint, "organization_id": organization_id, "secret": secret}, + json={ + "endpoint": endpoint, + "organization_id": organization_id, + "secret": secret, + }, + headers={ + "content-type": "application/json", + }, request_options=request_options, omit=OMIT, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(WebhookEnvelope, _response.json()) # type: ignore + return typing.cast( + WebhookEnvelope, + parse_obj_as( + type_=WebhookEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 422: raise UnprocessableEntityError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -161,7 +216,7 @@ def get(self, id: str, *, request_options: typing.Optional[RequestOptions] = Non Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -172,16 +227,38 @@ def get(self, id: str, *, request_options: typing.Optional[RequestOptions] = Non ) """ _response = self._client_wrapper.httpx_client.request( - f"api/webhooks/{jsonable_encoder(id)}", method="GET", request_options=request_options + f"api/webhooks/{jsonable_encoder(id)}", + method="GET", + request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(WebhookEnvelope, _response.json()) # type: ignore + return typing.cast( + WebhookEnvelope, + parse_obj_as( + type_=WebhookEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -224,7 +301,7 @@ def update( Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -239,22 +316,55 @@ def update( _response = self._client_wrapper.httpx_client.request( f"api/webhooks/{jsonable_encoder(id)}", method="PUT", - json={"endpoint": endpoint, "organization_id": organization_id, "secret": secret}, + json={ + "endpoint": endpoint, + "organization_id": organization_id, + "secret": secret, + }, + headers={ + "content-type": "application/json", + }, request_options=request_options, omit=OMIT, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(WebhookEnvelope, _response.json()) # type: ignore + return typing.cast( + WebhookEnvelope, + parse_obj_as( + type_=WebhookEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 422: raise UnprocessableEntityError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -276,7 +386,7 @@ def remove(self, id: str, *, request_options: typing.Optional[RequestOptions] = Examples -------- - from polytomic.client import Polytomic + from polytomic import Polytomic client = Polytomic( version="YOUR_VERSION", @@ -287,20 +397,42 @@ def remove(self, id: str, *, request_options: typing.Optional[RequestOptions] = ) """ _response = self._client_wrapper.httpx_client.request( - f"api/webhooks/{jsonable_encoder(id)}", method="DELETE", request_options=request_options + f"api/webhooks/{jsonable_encoder(id)}", + method="DELETE", + request_options=request_options, ) try: if 200 <= _response.status_code < 300: return if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -334,7 +466,7 @@ async def list(self, *, request_options: typing.Optional[RequestOptions] = None) -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -349,16 +481,38 @@ async def main() -> None: asyncio.run(main()) """ _response = await self._client_wrapper.httpx_client.request( - "api/webhooks", method="GET", request_options=request_options + "api/webhooks", + method="GET", + request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(WebhookListEnvelope, _response.json()) # type: ignore + return typing.cast( + WebhookListEnvelope, + parse_obj_as( + type_=WebhookListEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 500: raise InternalServerError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -400,7 +554,7 @@ async def create( -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -420,22 +574,55 @@ async def main() -> None: _response = await self._client_wrapper.httpx_client.request( "api/webhooks", method="POST", - json={"endpoint": endpoint, "organization_id": organization_id, "secret": secret}, + json={ + "endpoint": endpoint, + "organization_id": organization_id, + "secret": secret, + }, + headers={ + "content-type": "application/json", + }, request_options=request_options, omit=OMIT, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(WebhookEnvelope, _response.json()) # type: ignore + return typing.cast( + WebhookEnvelope, + parse_obj_as( + type_=WebhookEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 422: raise UnprocessableEntityError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -466,7 +653,7 @@ async def get(self, id: str, *, request_options: typing.Optional[RequestOptions] -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -483,16 +670,38 @@ async def main() -> None: asyncio.run(main()) """ _response = await self._client_wrapper.httpx_client.request( - f"api/webhooks/{jsonable_encoder(id)}", method="GET", request_options=request_options + f"api/webhooks/{jsonable_encoder(id)}", + method="GET", + request_options=request_options, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(WebhookEnvelope, _response.json()) # type: ignore + return typing.cast( + WebhookEnvelope, + parse_obj_as( + type_=WebhookEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -537,7 +746,7 @@ async def update( -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -558,22 +767,55 @@ async def main() -> None: _response = await self._client_wrapper.httpx_client.request( f"api/webhooks/{jsonable_encoder(id)}", method="PUT", - json={"endpoint": endpoint, "organization_id": organization_id, "secret": secret}, + json={ + "endpoint": endpoint, + "organization_id": organization_id, + "secret": secret, + }, + headers={ + "content-type": "application/json", + }, request_options=request_options, omit=OMIT, ) try: if 200 <= _response.status_code < 300: - return pydantic_v1.parse_obj_as(WebhookEnvelope, _response.json()) # type: ignore + return typing.cast( + WebhookEnvelope, + parse_obj_as( + type_=WebhookEnvelope, # type: ignore + object_=_response.json(), + ), + ) if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 422: raise UnprocessableEntityError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: @@ -597,7 +839,7 @@ async def remove(self, id: str, *, request_options: typing.Optional[RequestOptio -------- import asyncio - from polytomic.client import AsyncPolytomic + from polytomic import AsyncPolytomic client = AsyncPolytomic( version="YOUR_VERSION", @@ -614,20 +856,42 @@ async def main() -> None: asyncio.run(main()) """ _response = await self._client_wrapper.httpx_client.request( - f"api/webhooks/{jsonable_encoder(id)}", method="DELETE", request_options=request_options + f"api/webhooks/{jsonable_encoder(id)}", + method="DELETE", + request_options=request_options, ) try: if 200 <= _response.status_code < 300: return if _response.status_code == 401: - raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore + raise UnauthorizedError( + typing.cast( + RestErrResponse, + parse_obj_as( + type_=RestErrResponse, # type: ignore + object_=_response.json(), + ), + ) + ) if _response.status_code == 404: raise NotFoundError( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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( - pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore + 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: diff --git a/tests/custom/test_client.py b/tests/custom/test_client.py index 60a58e6..73f811f 100644 --- a/tests/custom/test_client.py +++ b/tests/custom/test_client.py @@ -1,5 +1,6 @@ import pytest + # Get started with writing tests with pytest at https://docs.pytest.org @pytest.mark.skip(reason="Unimplemented") def test_client() -> None: diff --git a/tests/utils/__init__.py b/tests/utils/__init__.py new file mode 100644 index 0000000..f3ea265 --- /dev/null +++ b/tests/utils/__init__.py @@ -0,0 +1,2 @@ +# This file was auto-generated by Fern from our API Definition. + diff --git a/tests/utils/assets/models/__init__.py b/tests/utils/assets/models/__init__.py new file mode 100644 index 0000000..3a1c852 --- /dev/null +++ b/tests/utils/assets/models/__init__.py @@ -0,0 +1,21 @@ +# This file was auto-generated by Fern from our API Definition. + +# This file was auto-generated by Fern from our API Definition. + +from .circle import CircleParams +from .object_with_defaults import ObjectWithDefaultsParams +from .object_with_optional_field import ObjectWithOptionalFieldParams +from .shape import ShapeParams, Shape_CircleParams, Shape_SquareParams +from .square import SquareParams +from .undiscriminated_shape import UndiscriminatedShapeParams + +__all__ = [ + "CircleParams", + "ObjectWithDefaultsParams", + "ObjectWithOptionalFieldParams", + "ShapeParams", + "Shape_CircleParams", + "Shape_SquareParams", + "SquareParams", + "UndiscriminatedShapeParams", +] diff --git a/tests/utils/assets/models/circle.py b/tests/utils/assets/models/circle.py new file mode 100644 index 0000000..201874e --- /dev/null +++ b/tests/utils/assets/models/circle.py @@ -0,0 +1,11 @@ +# This file was auto-generated by Fern from our API Definition. + +# This file was auto-generated by Fern from our API Definition. + +import typing_extensions +import typing_extensions +from polytomic.core.serialization import FieldMetadata + + +class CircleParams(typing_extensions.TypedDict): + radius_measurement: typing_extensions.Annotated[float, FieldMetadata(alias="radiusMeasurement")] diff --git a/tests/utils/assets/models/color.py b/tests/utils/assets/models/color.py new file mode 100644 index 0000000..2aa2c4c --- /dev/null +++ b/tests/utils/assets/models/color.py @@ -0,0 +1,7 @@ +# This file was auto-generated by Fern from our API Definition. + +# This file was auto-generated by Fern from our API Definition. + +import typing + +Color = typing.Union[typing.Literal["red", "blue"], typing.Any] diff --git a/tests/utils/assets/models/object_with_defaults.py b/tests/utils/assets/models/object_with_defaults.py new file mode 100644 index 0000000..ef14f7b --- /dev/null +++ b/tests/utils/assets/models/object_with_defaults.py @@ -0,0 +1,16 @@ +# This file was auto-generated by Fern from our API Definition. + +# This file was auto-generated by Fern from our API Definition. + +import typing_extensions +import typing_extensions + + +class ObjectWithDefaultsParams(typing_extensions.TypedDict): + """ + Defines properties with default values and validation rules. + """ + + decimal: typing_extensions.NotRequired[float] + string: typing_extensions.NotRequired[str] + required_string: str diff --git a/tests/utils/assets/models/object_with_optional_field.py b/tests/utils/assets/models/object_with_optional_field.py new file mode 100644 index 0000000..c683f20 --- /dev/null +++ b/tests/utils/assets/models/object_with_optional_field.py @@ -0,0 +1,34 @@ +# This file was auto-generated by Fern from our API Definition. + +# This file was auto-generated by Fern from our API Definition. + +import typing_extensions +import typing +import typing_extensions +from polytomic.core.serialization import FieldMetadata +import datetime as dt +import uuid +from .color import Color +from .shape import ShapeParams +from .undiscriminated_shape import UndiscriminatedShapeParams + + +class ObjectWithOptionalFieldParams(typing_extensions.TypedDict): + literal: typing.Literal["lit_one"] + string: typing_extensions.NotRequired[str] + integer: typing_extensions.NotRequired[int] + long_: typing_extensions.NotRequired[typing_extensions.Annotated[int, FieldMetadata(alias="long")]] + double: typing_extensions.NotRequired[float] + bool_: typing_extensions.NotRequired[typing_extensions.Annotated[bool, FieldMetadata(alias="bool")]] + datetime: typing_extensions.NotRequired[dt.datetime] + date: typing_extensions.NotRequired[dt.date] + uuid_: typing_extensions.NotRequired[typing_extensions.Annotated[uuid.UUID, FieldMetadata(alias="uuid")]] + base_64: typing_extensions.NotRequired[typing_extensions.Annotated[str, FieldMetadata(alias="base64")]] + list_: typing_extensions.NotRequired[typing_extensions.Annotated[typing.Sequence[str], FieldMetadata(alias="list")]] + set_: typing_extensions.NotRequired[typing_extensions.Annotated[typing.Set[str], FieldMetadata(alias="set")]] + map_: typing_extensions.NotRequired[typing_extensions.Annotated[typing.Dict[int, str], FieldMetadata(alias="map")]] + enum: typing_extensions.NotRequired[Color] + union: typing_extensions.NotRequired[ShapeParams] + second_union: typing_extensions.NotRequired[ShapeParams] + undiscriminated_union: typing_extensions.NotRequired[UndiscriminatedShapeParams] + any: typing.Optional[typing.Any] diff --git a/tests/utils/assets/models/shape.py b/tests/utils/assets/models/shape.py new file mode 100644 index 0000000..cae0a16 --- /dev/null +++ b/tests/utils/assets/models/shape.py @@ -0,0 +1,26 @@ +# This file was auto-generated by Fern from our API Definition. + +# This file was auto-generated by Fern from our API Definition. + +from __future__ import annotations +import typing_extensions +import typing_extensions +import typing +from polytomic.core.serialization import FieldMetadata + + +class Base(typing_extensions.TypedDict): + id: str + + +class Shape_CircleParams(Base): + shape_type: typing_extensions.Annotated[typing.Literal["circle"], FieldMetadata(alias="shapeType")] + radius_measurement: typing_extensions.Annotated[float, FieldMetadata(alias="radiusMeasurement")] + + +class Shape_SquareParams(Base): + shape_type: typing_extensions.Annotated[typing.Literal["square"], FieldMetadata(alias="shapeType")] + length_measurement: typing_extensions.Annotated[float, FieldMetadata(alias="lengthMeasurement")] + + +ShapeParams = typing.Union[Shape_CircleParams, Shape_SquareParams] diff --git a/tests/utils/assets/models/square.py b/tests/utils/assets/models/square.py new file mode 100644 index 0000000..6f4ce73 --- /dev/null +++ b/tests/utils/assets/models/square.py @@ -0,0 +1,11 @@ +# This file was auto-generated by Fern from our API Definition. + +# This file was auto-generated by Fern from our API Definition. + +import typing_extensions +import typing_extensions +from polytomic.core.serialization import FieldMetadata + + +class SquareParams(typing_extensions.TypedDict): + length_measurement: typing_extensions.Annotated[float, FieldMetadata(alias="lengthMeasurement")] diff --git a/tests/utils/assets/models/undiscriminated_shape.py b/tests/utils/assets/models/undiscriminated_shape.py new file mode 100644 index 0000000..68876a2 --- /dev/null +++ b/tests/utils/assets/models/undiscriminated_shape.py @@ -0,0 +1,9 @@ +# This file was auto-generated by Fern from our API Definition. + +# This file was auto-generated by Fern from our API Definition. + +import typing +from .circle import CircleParams +from .square import SquareParams + +UndiscriminatedShapeParams = typing.Union[CircleParams, SquareParams] diff --git a/tests/utils/test_http_client.py b/tests/utils/test_http_client.py index 5391bc8..5726bfa 100644 --- a/tests/utils/test_http_client.py +++ b/tests/utils/test_http_client.py @@ -45,3 +45,17 @@ def test_get_none_request_body() -> None: assert json_body_extras == {"see you": "later"} assert data_body_extras is None + + +def test_get_empty_json_request_body() -> None: + unrelated_request_options: RequestOptions = {"max_retries": 3} + json_body, data_body = get_request_body(json=None, data=None, request_options=unrelated_request_options, omit=None) + assert json_body is None + assert data_body is None + + json_body_extras, data_body_extras = get_request_body( + json={}, data=None, request_options=unrelated_request_options, omit=None + ) + + assert json_body_extras is None + assert data_body_extras is None diff --git a/tests/utils/test_query_encoding.py b/tests/utils/test_query_encoding.py index de42a0b..29e922f 100644 --- a/tests/utils/test_query_encoding.py +++ b/tests/utils/test_query_encoding.py @@ -1,13 +1,37 @@ # This file was auto-generated by Fern from our API Definition. + from polytomic.core.query_encoder import encode_query -def test_query_encoding() -> None: - assert encode_query({"hello world": "hello world"}) == {"hello world": "hello world"} - assert encode_query({"hello_world": {"hello": "world"}}) == {"hello_world[hello]": "world"} - assert encode_query({"hello_world": {"hello": {"world": "today"}, "test": "this"}, "hi": "there"}) == { - "hello_world[hello][world]": "today", - "hello_world[test]": "this", - "hi": "there", - } +def test_query_encoding_deep_objects() -> None: + assert encode_query({"hello world": "hello world"}) == [("hello world", "hello world")] + assert encode_query({"hello_world": {"hello": "world"}}) == [("hello_world[hello]", "world")] + assert encode_query({"hello_world": {"hello": {"world": "today"}, "test": "this"}, "hi": "there"}) == [ + ("hello_world[hello][world]", "today"), + ("hello_world[test]", "this"), + ("hi", "there"), + ] + + +def test_query_encoding_deep_object_arrays() -> None: + assert encode_query({"objects": [{"key": "hello", "value": "world"}, {"key": "foo", "value": "bar"}]}) == [ + ("objects[key]", "hello"), + ("objects[value]", "world"), + ("objects[key]", "foo"), + ("objects[value]", "bar"), + ] + assert encode_query( + {"users": [{"name": "string", "tags": ["string"]}, {"name": "string2", "tags": ["string2", "string3"]}]} + ) == [ + ("users[name]", "string"), + ("users[tags]", "string"), + ("users[name]", "string2"), + ("users[tags]", "string2"), + ("users[tags]", "string3"), + ] + + +def test_encode_query_with_none() -> None: + encoded = encode_query(None) + assert encoded == None diff --git a/tests/utils/test_serialization.py b/tests/utils/test_serialization.py new file mode 100644 index 0000000..8432841 --- /dev/null +++ b/tests/utils/test_serialization.py @@ -0,0 +1,72 @@ +# This file was auto-generated by Fern from our API Definition. + +from typing import List, Any + +from polytomic.core.serialization import convert_and_respect_annotation_metadata +from .assets.models import ShapeParams, ObjectWithOptionalFieldParams + + +UNION_TEST: ShapeParams = {"radius_measurement": 1.0, "shape_type": "circle", "id": "1"} +UNION_TEST_CONVERTED = {"shapeType": "circle", "radiusMeasurement": 1.0, "id": "1"} + + +def test_convert_and_respect_annotation_metadata() -> None: + data: ObjectWithOptionalFieldParams = { + "string": "string", + "long_": 12345, + "bool_": True, + "literal": "lit_one", + "any": "any", + } + converted = convert_and_respect_annotation_metadata( + object_=data, annotation=ObjectWithOptionalFieldParams, direction="write" + ) + assert converted == {"string": "string", "long": 12345, "bool": True, "literal": "lit_one", "any": "any"} + + +def test_convert_and_respect_annotation_metadata_in_list() -> None: + data: List[ObjectWithOptionalFieldParams] = [ + {"string": "string", "long_": 12345, "bool_": True, "literal": "lit_one", "any": "any"}, + {"string": "another string", "long_": 67890, "list_": [], "literal": "lit_one", "any": "any"}, + ] + converted = convert_and_respect_annotation_metadata( + object_=data, annotation=List[ObjectWithOptionalFieldParams], direction="write" + ) + + assert converted == [ + {"string": "string", "long": 12345, "bool": True, "literal": "lit_one", "any": "any"}, + {"string": "another string", "long": 67890, "list": [], "literal": "lit_one", "any": "any"}, + ] + + +def test_convert_and_respect_annotation_metadata_in_nested_object() -> None: + data: ObjectWithOptionalFieldParams = { + "string": "string", + "long_": 12345, + "union": UNION_TEST, + "literal": "lit_one", + "any": "any", + } + converted = convert_and_respect_annotation_metadata( + object_=data, annotation=ObjectWithOptionalFieldParams, direction="write" + ) + + assert converted == { + "string": "string", + "long": 12345, + "union": UNION_TEST_CONVERTED, + "literal": "lit_one", + "any": "any", + } + + +def test_convert_and_respect_annotation_metadata_in_union() -> None: + converted = convert_and_respect_annotation_metadata(object_=UNION_TEST, annotation=ShapeParams, direction="write") + + assert converted == UNION_TEST_CONVERTED + + +def test_convert_and_respect_annotation_metadata_with_empty_object() -> None: + data: Any = {} + converted = convert_and_respect_annotation_metadata(object_=data, annotation=ShapeParams, direction="write") + assert converted == data From 51a39654061ed92a9ac620b21667772623a06f5f Mon Sep 17 00:00:00 2001 From: Fern Support <126544928+fern-support@users.noreply.github.com> Date: Fri, 4 Apr 2025 17:20:21 -0400 Subject: [PATCH 2/3] chore: update jsonschema_definitions.py --- src/polytomic/types/jsonschema_definitions.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/polytomic/types/jsonschema_definitions.py b/src/polytomic/types/jsonschema_definitions.py index 4146852..7081989 100644 --- a/src/polytomic/types/jsonschema_definitions.py +++ b/src/polytomic/types/jsonschema_definitions.py @@ -1,6 +1,7 @@ # This file was auto-generated by Fern from our API Definition. import typing -from .jsonschema_schema import JsonschemaSchema -JsonschemaDefinitions = typing.Dict[str, JsonschemaSchema] +JsonschemaDefinitions = typing.Dict[str, "JsonschemaSchema"] + +from .jsonschema_schema import JsonschemaSchema From 7de6ec871b54b4e0361c4b7f668c445a8b314448 Mon Sep 17 00:00:00 2001 From: Fern Support <126544928+fern-support@users.noreply.github.com> Date: Fri, 4 Apr 2025 17:20:34 -0400 Subject: [PATCH 3/3] Update .fernignore --- .fernignore | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.fernignore b/.fernignore index 694283c..4245b3b 100644 --- a/.fernignore +++ b/.fernignore @@ -1,2 +1,4 @@ # Specify files that shouldn't be modified by Fern -README.md \ No newline at end of file + +README.md +src/polytomic/types/jsonschema_definitions.py