UncountablePythonSDK 0.0.24__py3-none-any.whl → 0.0.131__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of UncountablePythonSDK might be problematic. Click here for more details.
- docs/conf.py +60 -8
- docs/index.md +107 -4
- docs/integration_examples/create_ingredient.md +43 -0
- docs/integration_examples/create_output.md +56 -0
- docs/integration_examples/index.md +6 -0
- docs/justfile +2 -2
- docs/requirements.txt +7 -5
- examples/async_batch.py +5 -6
- examples/basic_auth.py +7 -0
- examples/create_entity.py +4 -6
- examples/create_ingredient_sdk.py +34 -0
- examples/download_files.py +26 -0
- examples/edit_recipe_inputs.py +50 -0
- examples/integration-server/jobs/materials_auto/concurrent_cron.py +11 -0
- examples/integration-server/jobs/materials_auto/example_cron.py +21 -0
- examples/integration-server/jobs/materials_auto/example_http.py +47 -0
- examples/integration-server/jobs/materials_auto/example_instrument.py +100 -0
- examples/integration-server/jobs/materials_auto/example_parse.py +140 -0
- examples/integration-server/jobs/materials_auto/example_predictions.py +61 -0
- examples/integration-server/jobs/materials_auto/example_runsheet_wh.py +39 -0
- examples/integration-server/jobs/materials_auto/example_wh.py +23 -0
- examples/integration-server/jobs/materials_auto/profile.yaml +104 -0
- examples/integration-server/pyproject.toml +224 -0
- examples/invoke_uploader.py +26 -0
- examples/oauth.py +7 -0
- examples/set_recipe_metadata_file.py +40 -0
- examples/set_recipe_output_file_sdk.py +26 -0
- examples/upload_files.py +2 -3
- pkgs/argument_parser/__init__.py +9 -0
- pkgs/argument_parser/_is_namedtuple.py +3 -0
- pkgs/argument_parser/argument_parser.py +295 -74
- pkgs/argument_parser/case_convert.py +4 -3
- pkgs/filesystem_utils/__init__.py +20 -0
- pkgs/filesystem_utils/_blob_session.py +144 -0
- pkgs/filesystem_utils/_gdrive_session.py +309 -0
- pkgs/filesystem_utils/_local_session.py +69 -0
- pkgs/filesystem_utils/_s3_session.py +118 -0
- pkgs/filesystem_utils/_sftp_session.py +151 -0
- pkgs/filesystem_utils/file_type_utils.py +91 -0
- pkgs/filesystem_utils/filesystem_session.py +39 -0
- pkgs/py.typed +0 -0
- pkgs/serialization/__init__.py +8 -1
- pkgs/serialization/annotation.py +64 -0
- pkgs/serialization/missing_sentry.py +1 -1
- pkgs/serialization/opaque_key.py +1 -1
- pkgs/serialization/serial_alias.py +47 -0
- pkgs/serialization/serial_class.py +69 -54
- pkgs/serialization/serial_generic.py +16 -0
- pkgs/serialization/serial_union.py +84 -0
- pkgs/serialization/yaml.py +57 -0
- pkgs/serialization_util/__init__.py +7 -7
- pkgs/serialization_util/convert_to_snakecase.py +27 -0
- pkgs/serialization_util/dataclasses.py +14 -0
- pkgs/serialization_util/serialization_helpers.py +117 -71
- pkgs/type_spec/actions_registry/__main__.py +0 -4
- pkgs/type_spec/actions_registry/emit_typescript.py +5 -5
- pkgs/type_spec/builder.py +438 -109
- pkgs/type_spec/builder_types.py +9 -0
- pkgs/type_spec/config.py +52 -24
- pkgs/type_spec/cross_output_links.py +99 -0
- pkgs/type_spec/emit_io_ts.py +1 -1
- pkgs/type_spec/emit_open_api.py +160 -41
- pkgs/type_spec/emit_open_api_util.py +13 -7
- pkgs/type_spec/emit_python.py +450 -136
- pkgs/type_spec/emit_typescript.py +117 -250
- pkgs/type_spec/emit_typescript_util.py +293 -4
- pkgs/type_spec/load_types.py +20 -5
- pkgs/type_spec/non_discriminated_union_exceptions.py +14 -0
- pkgs/type_spec/open_api_util.py +29 -4
- pkgs/type_spec/parts/base.py.prepart +13 -10
- pkgs/type_spec/parts/base.ts.prepart +4 -0
- pkgs/type_spec/type_info/__main__.py +3 -1
- pkgs/type_spec/type_info/emit_type_info.py +161 -32
- pkgs/type_spec/ui_entry_actions/__init__.py +4 -0
- pkgs/type_spec/ui_entry_actions/generate_ui_entry_actions.py +308 -0
- pkgs/type_spec/util.py +4 -4
- pkgs/type_spec/value_spec/__main__.py +27 -10
- pkgs/type_spec/value_spec/convert_type.py +21 -1
- pkgs/type_spec/value_spec/emit_python.py +25 -7
- pkgs/type_spec/value_spec/types.py +1 -1
- uncountable/__init__.py +1 -2
- uncountable/core/__init__.py +11 -3
- uncountable/core/async_batch.py +16 -1
- uncountable/core/client.py +247 -52
- uncountable/core/environment.py +41 -0
- uncountable/core/file_upload.py +67 -22
- uncountable/core/types.py +8 -13
- uncountable/integration/cli.py +142 -0
- uncountable/integration/construct_client.py +43 -27
- uncountable/integration/cron.py +12 -11
- uncountable/integration/db/connect.py +12 -2
- uncountable/integration/db/session.py +25 -0
- uncountable/integration/entrypoint.py +4 -34
- uncountable/integration/executors/executors.py +147 -0
- uncountable/integration/executors/generic_upload_executor.py +336 -0
- uncountable/integration/executors/script_executor.py +15 -9
- uncountable/integration/http_server/__init__.py +5 -0
- uncountable/integration/http_server/types.py +69 -0
- uncountable/integration/job.py +246 -19
- uncountable/integration/queue_runner/__init__.py +0 -0
- uncountable/integration/queue_runner/command_server/__init__.py +28 -0
- uncountable/integration/queue_runner/command_server/command_client.py +133 -0
- uncountable/integration/queue_runner/command_server/command_server.py +142 -0
- uncountable/integration/queue_runner/command_server/constants.py +4 -0
- uncountable/integration/queue_runner/command_server/protocol/__init__.py +0 -0
- uncountable/integration/queue_runner/command_server/protocol/command_server.proto +58 -0
- uncountable/integration/queue_runner/command_server/protocol/command_server_pb2.py +57 -0
- uncountable/integration/queue_runner/command_server/protocol/command_server_pb2.pyi +114 -0
- uncountable/integration/queue_runner/command_server/protocol/command_server_pb2_grpc.py +264 -0
- uncountable/integration/queue_runner/command_server/types.py +75 -0
- uncountable/integration/queue_runner/datastore/__init__.py +3 -0
- uncountable/integration/queue_runner/datastore/datastore_sqlite.py +250 -0
- uncountable/integration/queue_runner/datastore/interface.py +29 -0
- uncountable/integration/queue_runner/datastore/model.py +24 -0
- uncountable/integration/queue_runner/job_scheduler.py +200 -0
- uncountable/integration/queue_runner/queue_runner.py +34 -0
- uncountable/integration/queue_runner/types.py +7 -0
- uncountable/integration/queue_runner/worker.py +116 -0
- uncountable/integration/scan_profiles.py +67 -0
- uncountable/integration/scheduler.py +199 -0
- uncountable/integration/secret_retrieval/__init__.py +3 -0
- uncountable/integration/secret_retrieval/retrieve_secret.py +93 -0
- uncountable/integration/server.py +103 -54
- uncountable/integration/telemetry.py +251 -0
- uncountable/integration/webhook_server/entrypoint.py +97 -0
- uncountable/types/__init__.py +149 -30
- uncountable/types/api/batch/execute_batch.py +16 -9
- uncountable/types/api/batch/execute_batch_load_async.py +13 -7
- uncountable/types/api/chemical/convert_chemical_formats.py +20 -8
- uncountable/types/api/condition_parameters/__init__.py +1 -0
- uncountable/types/api/condition_parameters/upsert_condition_match.py +72 -0
- uncountable/types/api/entity/create_entities.py +24 -12
- uncountable/types/api/entity/create_entity.py +22 -13
- uncountable/types/api/entity/create_or_update_entity.py +48 -0
- uncountable/types/api/entity/export_entities.py +59 -0
- uncountable/types/api/entity/get_entities_data.py +18 -9
- uncountable/types/api/entity/grant_entity_permissions.py +48 -0
- uncountable/types/api/entity/list_aggregate.py +79 -0
- uncountable/types/api/entity/list_entities.py +53 -14
- uncountable/types/api/entity/lock_entity.py +45 -0
- uncountable/types/api/entity/lookup_entity.py +116 -0
- uncountable/types/api/entity/resolve_entity_ids.py +19 -10
- uncountable/types/api/entity/set_entity_field_values.py +44 -0
- uncountable/types/api/entity/set_values.py +15 -8
- uncountable/types/api/entity/transition_entity_phase.py +27 -12
- uncountable/types/api/entity/unlock_entity.py +44 -0
- uncountable/types/api/equipment/__init__.py +1 -0
- uncountable/types/api/equipment/associate_equipment_input.py +43 -0
- uncountable/types/api/field_options/__init__.py +1 -0
- uncountable/types/api/field_options/upsert_field_options.py +55 -0
- uncountable/types/api/files/__init__.py +1 -0
- uncountable/types/api/files/download_file.py +77 -0
- uncountable/types/api/id_source/list_id_source.py +20 -11
- uncountable/types/api/id_source/match_id_source.py +15 -10
- uncountable/types/api/input_groups/get_input_group_names.py +16 -7
- uncountable/types/api/inputs/create_inputs.py +28 -14
- uncountable/types/api/inputs/get_input_data.py +34 -16
- uncountable/types/api/inputs/get_input_names.py +19 -10
- uncountable/types/api/inputs/get_inputs_data.py +29 -11
- uncountable/types/api/inputs/set_input_attribute_values.py +16 -10
- uncountable/types/api/inputs/set_input_category.py +44 -0
- uncountable/types/api/inputs/set_input_subcategories.py +45 -0
- uncountable/types/api/inputs/set_intermediate_type.py +50 -0
- uncountable/types/api/integrations/__init__.py +1 -0
- uncountable/types/api/integrations/publish_realtime_data.py +41 -0
- uncountable/types/api/integrations/push_notification.py +49 -0
- uncountable/types/api/integrations/register_sockets_token.py +41 -0
- uncountable/types/api/listing/__init__.py +1 -0
- uncountable/types/api/listing/fetch_listing.py +58 -0
- uncountable/types/api/material_families/__init__.py +1 -0
- uncountable/types/api/material_families/update_entity_material_families.py +47 -0
- uncountable/types/api/notebooks/__init__.py +1 -0
- uncountable/types/api/notebooks/add_notebook_content.py +119 -0
- uncountable/types/api/outputs/get_output_data.py +32 -17
- uncountable/types/api/outputs/get_output_names.py +18 -9
- uncountable/types/api/outputs/get_output_organization.py +173 -0
- uncountable/types/api/outputs/resolve_output_conditions.py +23 -11
- uncountable/types/api/permissions/set_core_permissions.py +31 -15
- uncountable/types/api/project/get_projects.py +20 -11
- uncountable/types/api/project/get_projects_data.py +23 -14
- uncountable/types/api/recipe_links/create_recipe_link.py +17 -10
- uncountable/types/api/recipe_links/remove_recipe_link.py +45 -0
- uncountable/types/api/recipe_metadata/get_recipe_metadata_data.py +19 -10
- uncountable/types/api/recipes/add_recipe_to_project.py +42 -0
- uncountable/types/api/recipes/add_time_series_data.py +64 -0
- uncountable/types/api/recipes/archive_recipes.py +14 -7
- uncountable/types/api/recipes/associate_recipe_as_input.py +16 -8
- uncountable/types/api/recipes/associate_recipe_as_lot.py +14 -7
- uncountable/types/api/recipes/clear_recipe_outputs.py +42 -0
- uncountable/types/api/recipes/create_mix_order.py +44 -0
- uncountable/types/api/recipes/create_recipe.py +21 -14
- uncountable/types/api/recipes/create_recipes.py +25 -13
- uncountable/types/api/recipes/disassociate_recipe_as_input.py +14 -7
- uncountable/types/api/recipes/edit_recipe_inputs.py +208 -19
- uncountable/types/api/recipes/get_column_calculation_values.py +57 -0
- uncountable/types/api/recipes/get_curve.py +15 -9
- uncountable/types/api/recipes/get_recipe_calculations.py +17 -11
- uncountable/types/api/recipes/get_recipe_links.py +14 -8
- uncountable/types/api/recipes/get_recipe_names.py +16 -7
- uncountable/types/api/recipes/get_recipe_output_metadata.py +16 -10
- uncountable/types/api/recipes/get_recipes_data.py +96 -45
- uncountable/types/api/recipes/lock_recipes.py +64 -0
- uncountable/types/api/recipes/remove_recipe_from_project.py +42 -0
- uncountable/types/api/recipes/set_recipe_inputs.py +19 -13
- uncountable/types/api/recipes/set_recipe_metadata.py +14 -7
- uncountable/types/api/recipes/set_recipe_output_annotations.py +114 -0
- uncountable/types/api/recipes/set_recipe_output_file.py +55 -0
- uncountable/types/api/recipes/set_recipe_outputs.py +40 -15
- uncountable/types/api/recipes/set_recipe_tags.py +30 -13
- uncountable/types/api/recipes/set_recipe_total.py +59 -0
- uncountable/types/api/recipes/unarchive_recipes.py +41 -0
- uncountable/types/api/recipes/unlock_recipes.py +51 -0
- uncountable/types/api/runsheet/__init__.py +1 -0
- uncountable/types/api/runsheet/complete_async_upload.py +41 -0
- uncountable/types/api/triggers/run_trigger.py +15 -8
- uncountable/types/api/uploader/__init__.py +1 -0
- uncountable/types/api/uploader/complete_async_parse.py +46 -0
- uncountable/types/api/uploader/invoke_uploader.py +46 -0
- uncountable/types/api/user/__init__.py +1 -0
- uncountable/types/api/user/get_current_user_info.py +40 -0
- uncountable/types/async_batch.py +8 -52
- uncountable/types/async_batch_processor.py +694 -18
- uncountable/types/async_batch_t.py +108 -0
- uncountable/types/async_jobs.py +8 -0
- uncountable/types/async_jobs_t.py +52 -0
- uncountable/types/auth_retrieval.py +11 -0
- uncountable/types/auth_retrieval_t.py +75 -0
- uncountable/types/base.py +5 -80
- uncountable/types/base_t.py +87 -0
- uncountable/types/calculations.py +3 -19
- uncountable/types/calculations_t.py +26 -0
- uncountable/types/chemical_structure.py +3 -23
- uncountable/types/chemical_structure_t.py +28 -0
- uncountable/types/client_base.py +1170 -88
- uncountable/types/client_config.py +8 -0
- uncountable/types/client_config_t.py +36 -0
- uncountable/types/curves.py +5 -43
- uncountable/types/curves_t.py +50 -0
- uncountable/types/data.py +12 -0
- uncountable/types/data_t.py +103 -0
- uncountable/types/entity.py +8 -270
- uncountable/types/entity_t.py +446 -0
- uncountable/types/experiment_groups.py +3 -19
- uncountable/types/experiment_groups_t.py +26 -0
- uncountable/types/exports.py +8 -0
- uncountable/types/exports_t.py +34 -0
- uncountable/types/field_values.py +25 -61
- uncountable/types/field_values_t.py +302 -0
- uncountable/types/fields.py +3 -20
- uncountable/types/fields_t.py +27 -0
- uncountable/types/generic_upload.py +14 -0
- uncountable/types/generic_upload_t.py +119 -0
- uncountable/types/id_source.py +7 -45
- uncountable/types/id_source_t.py +68 -0
- uncountable/types/identifier.py +6 -50
- uncountable/types/identifier_t.py +62 -0
- uncountable/types/input_attributes.py +3 -25
- uncountable/types/input_attributes_t.py +29 -0
- uncountable/types/inputs.py +6 -57
- uncountable/types/inputs_t.py +82 -0
- uncountable/types/integration_server.py +8 -0
- uncountable/types/integration_server_t.py +46 -0
- uncountable/types/integration_session.py +10 -0
- uncountable/types/integration_session_t.py +60 -0
- uncountable/types/integrations.py +10 -0
- uncountable/types/integrations_t.py +62 -0
- uncountable/types/job_definition.py +28 -0
- uncountable/types/job_definition_t.py +285 -0
- uncountable/types/listing.py +9 -0
- uncountable/types/listing_t.py +51 -0
- uncountable/types/notices.py +8 -0
- uncountable/types/notices_t.py +37 -0
- uncountable/types/notifications.py +11 -0
- uncountable/types/notifications_t.py +74 -0
- uncountable/types/outputs.py +3 -22
- uncountable/types/outputs_t.py +29 -0
- uncountable/types/overrides.py +9 -0
- uncountable/types/overrides_t.py +49 -0
- uncountable/types/permissions.py +3 -42
- uncountable/types/permissions_t.py +45 -0
- uncountable/types/phases.py +3 -19
- uncountable/types/phases_t.py +26 -0
- uncountable/types/post_base.py +3 -26
- uncountable/types/post_base_t.py +29 -0
- uncountable/types/queued_job.py +17 -0
- uncountable/types/queued_job_t.py +140 -0
- uncountable/types/recipe_identifiers.py +7 -58
- uncountable/types/recipe_identifiers_t.py +75 -0
- uncountable/types/recipe_inputs.py +4 -26
- uncountable/types/recipe_inputs_t.py +29 -0
- uncountable/types/recipe_links.py +4 -46
- uncountable/types/recipe_links_t.py +53 -0
- uncountable/types/recipe_metadata.py +5 -48
- uncountable/types/recipe_metadata_t.py +57 -0
- uncountable/types/recipe_output_metadata.py +3 -20
- uncountable/types/recipe_output_metadata_t.py +27 -0
- uncountable/types/recipe_tags.py +3 -19
- uncountable/types/recipe_tags_t.py +26 -0
- uncountable/types/recipe_workflow_steps.py +9 -73
- uncountable/types/recipe_workflow_steps_t.py +95 -0
- uncountable/types/recipes.py +7 -0
- uncountable/types/recipes_t.py +25 -0
- uncountable/types/response.py +3 -21
- uncountable/types/response_t.py +26 -0
- uncountable/types/secret_retrieval.py +11 -0
- uncountable/types/secret_retrieval_t.py +75 -0
- uncountable/types/sockets.py +20 -0
- uncountable/types/sockets_t.py +169 -0
- uncountable/types/structured_filters.py +25 -0
- uncountable/types/structured_filters_t.py +248 -0
- uncountable/types/units.py +3 -19
- uncountable/types/units_t.py +26 -0
- uncountable/types/uploader.py +24 -0
- uncountable/types/uploader_t.py +222 -0
- uncountable/types/users.py +3 -20
- uncountable/types/users_t.py +27 -0
- uncountable/types/webhook_job.py +9 -0
- uncountable/types/webhook_job_t.py +48 -0
- uncountable/types/workflows.py +4 -28
- uncountable/types/workflows_t.py +38 -0
- uncountablepythonsdk-0.0.131.dist-info/METADATA +64 -0
- uncountablepythonsdk-0.0.131.dist-info/RECORD +363 -0
- {UncountablePythonSDK-0.0.24.dist-info → uncountablepythonsdk-0.0.131.dist-info}/WHEEL +1 -1
- {UncountablePythonSDK-0.0.24.dist-info → uncountablepythonsdk-0.0.131.dist-info}/top_level.txt +0 -1
- UncountablePythonSDK-0.0.24.dist-info/METADATA +0 -47
- UncountablePythonSDK-0.0.24.dist-info/RECORD +0 -216
- docs/quickstart.md +0 -19
- examples/recipe-import/importer.py +0 -39
- type_spec/external/api/batch/execute_batch.yaml +0 -56
- type_spec/external/api/batch/execute_batch_load_async.yaml +0 -18
- type_spec/external/api/chemical/convert_chemical_formats.yaml +0 -33
- type_spec/external/api/entity/create_entities.yaml +0 -45
- type_spec/external/api/entity/create_entity.yaml +0 -51
- type_spec/external/api/entity/get_entities_data.yaml +0 -29
- type_spec/external/api/entity/list_entities.yaml +0 -52
- type_spec/external/api/entity/resolve_entity_ids.yaml +0 -29
- type_spec/external/api/entity/set_values.yaml +0 -18
- type_spec/external/api/entity/transition_entity_phase.yaml +0 -44
- type_spec/external/api/id_source/list_id_source.yaml +0 -35
- type_spec/external/api/id_source/match_id_source.yaml +0 -32
- type_spec/external/api/input_groups/get_input_group_names.yaml +0 -29
- type_spec/external/api/inputs/create_inputs.yaml +0 -48
- type_spec/external/api/inputs/get_input_data.yaml +0 -95
- type_spec/external/api/inputs/get_input_names.yaml +0 -38
- type_spec/external/api/inputs/get_inputs_data.yaml +0 -82
- type_spec/external/api/inputs/set_input_attribute_values.yaml +0 -33
- type_spec/external/api/outputs/get_output_data.yaml +0 -92
- type_spec/external/api/outputs/get_output_names.yaml +0 -35
- type_spec/external/api/outputs/resolve_output_conditions.yaml +0 -50
- type_spec/external/api/permissions/set_core_permissions.yaml +0 -69
- type_spec/external/api/project/get_projects.yaml +0 -42
- type_spec/external/api/project/get_projects_data.yaml +0 -50
- type_spec/external/api/recipe_links/create_recipe_link.yaml +0 -25
- type_spec/external/api/recipe_metadata/get_recipe_metadata_data.yaml +0 -41
- type_spec/external/api/recipes/archive_recipes.yaml +0 -20
- type_spec/external/api/recipes/associate_recipe_as_input.yaml +0 -19
- type_spec/external/api/recipes/associate_recipe_as_lot.yaml +0 -19
- type_spec/external/api/recipes/create_recipe.yaml +0 -39
- type_spec/external/api/recipes/create_recipes.yaml +0 -47
- type_spec/external/api/recipes/disassociate_recipe_as_input.yaml +0 -16
- type_spec/external/api/recipes/edit_recipe_inputs.yaml +0 -85
- type_spec/external/api/recipes/get_curve.yaml +0 -21
- type_spec/external/api/recipes/get_recipe_calculations.yaml +0 -39
- type_spec/external/api/recipes/get_recipe_links.yaml +0 -26
- type_spec/external/api/recipes/get_recipe_names.yaml +0 -29
- type_spec/external/api/recipes/get_recipe_output_metadata.yaml +0 -36
- type_spec/external/api/recipes/get_recipes_data.yaml +0 -244
- type_spec/external/api/recipes/set_recipe_inputs.yaml +0 -42
- type_spec/external/api/recipes/set_recipe_metadata.yaml +0 -20
- type_spec/external/api/recipes/set_recipe_outputs.yaml +0 -52
- type_spec/external/api/recipes/set_recipe_tags.yaml +0 -62
- type_spec/external/api/triggers/run_trigger.yaml +0 -18
- uncountable/integration/types.py +0 -89
|
@@ -0,0 +1,302 @@
|
|
|
1
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
+
# ruff: noqa: E402 Q003
|
|
3
|
+
# fmt: off
|
|
4
|
+
# isort: skip_file
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
import typing # noqa: F401
|
|
7
|
+
import datetime # noqa: F401
|
|
8
|
+
from decimal import Decimal # noqa: F401
|
|
9
|
+
from enum import StrEnum
|
|
10
|
+
import dataclasses
|
|
11
|
+
from pkgs.serialization import serial_class
|
|
12
|
+
from pkgs.serialization import serial_union_annotation
|
|
13
|
+
from . import base_t
|
|
14
|
+
from . import entity_t
|
|
15
|
+
from . import identifier_t
|
|
16
|
+
|
|
17
|
+
__all__: list[str] = [
|
|
18
|
+
"ArgumentValueId",
|
|
19
|
+
"ArgumentValueRefName",
|
|
20
|
+
"FieldArgumentValue",
|
|
21
|
+
"FieldRefIdNameValue",
|
|
22
|
+
"FieldRefNameValue",
|
|
23
|
+
"FieldValue",
|
|
24
|
+
"FieldValueBase",
|
|
25
|
+
"FieldValueBatchReference",
|
|
26
|
+
"FieldValueBoolean",
|
|
27
|
+
"FieldValueDate",
|
|
28
|
+
"FieldValueDatetime",
|
|
29
|
+
"FieldValueFieldOption",
|
|
30
|
+
"FieldValueFieldOptions",
|
|
31
|
+
"FieldValueFiles",
|
|
32
|
+
"FieldValueId",
|
|
33
|
+
"FieldValueIds",
|
|
34
|
+
"FieldValueNotes",
|
|
35
|
+
"FieldValueNull",
|
|
36
|
+
"FieldValueNumeric",
|
|
37
|
+
"FieldValueText",
|
|
38
|
+
"FieldValueTexts",
|
|
39
|
+
"FieldValueType",
|
|
40
|
+
"ValueResolution",
|
|
41
|
+
]
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
45
|
+
@serial_class(
|
|
46
|
+
named_type_path="sdk.field_values.FieldRefNameValue",
|
|
47
|
+
unconverted_values={"value"},
|
|
48
|
+
)
|
|
49
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
50
|
+
class FieldRefNameValue:
|
|
51
|
+
field_ref_name: str
|
|
52
|
+
value: base_t.JsonValue
|
|
53
|
+
row_index: int | None = None
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
57
|
+
@serial_class(
|
|
58
|
+
named_type_path="sdk.field_values.FieldRefIdNameValue",
|
|
59
|
+
unconverted_values={"value"},
|
|
60
|
+
)
|
|
61
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
62
|
+
class FieldRefIdNameValue:
|
|
63
|
+
field_id: base_t.ObjectId
|
|
64
|
+
field_ref_name: str
|
|
65
|
+
value: base_t.JsonValue
|
|
66
|
+
row_index: int | None = None
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
70
|
+
@serial_class(
|
|
71
|
+
named_type_path="sdk.field_values.ArgumentValueRefName",
|
|
72
|
+
unconverted_values={"value"},
|
|
73
|
+
)
|
|
74
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
75
|
+
class ArgumentValueRefName:
|
|
76
|
+
field_ref_name: str
|
|
77
|
+
value: base_t.JsonValue
|
|
78
|
+
row_index: int | None = None
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
82
|
+
@serial_class(
|
|
83
|
+
named_type_path="sdk.field_values.ArgumentValueId",
|
|
84
|
+
unconverted_values={"value"},
|
|
85
|
+
)
|
|
86
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
87
|
+
class ArgumentValueId:
|
|
88
|
+
field_id: base_t.ObjectId
|
|
89
|
+
value: base_t.JsonValue
|
|
90
|
+
row_index: int | None = None
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
94
|
+
class FieldValueType(StrEnum):
|
|
95
|
+
FILES = "files"
|
|
96
|
+
TEXT = "text"
|
|
97
|
+
TEXTS = "texts"
|
|
98
|
+
ID = "id"
|
|
99
|
+
IDS = "ids"
|
|
100
|
+
BOOLEAN = "boolean"
|
|
101
|
+
NUMERIC = "numeric"
|
|
102
|
+
BATCH_REFERENCE = "batch_reference"
|
|
103
|
+
FIELD_OPTION = "field_option"
|
|
104
|
+
FIELD_OPTIONS = "field_options"
|
|
105
|
+
NULL_VALUE = "null_value"
|
|
106
|
+
NOTES = "notes"
|
|
107
|
+
DATE = "date"
|
|
108
|
+
DATETIME = "datetime"
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
112
|
+
@serial_class(
|
|
113
|
+
named_type_path="sdk.field_values.FieldValueBase",
|
|
114
|
+
)
|
|
115
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
116
|
+
class FieldValueBase:
|
|
117
|
+
type: FieldValueType
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
121
|
+
@serial_class(
|
|
122
|
+
named_type_path="sdk.field_values.FieldValueFiles",
|
|
123
|
+
parse_require={"type"},
|
|
124
|
+
)
|
|
125
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
126
|
+
class FieldValueFiles(FieldValueBase):
|
|
127
|
+
type: typing.Literal[FieldValueType.FILES] = FieldValueType.FILES
|
|
128
|
+
file_ids: list[base_t.ObjectId]
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
132
|
+
class ValueResolution(StrEnum):
|
|
133
|
+
DIRECT = "direct"
|
|
134
|
+
LABEL = "label"
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
138
|
+
@serial_class(
|
|
139
|
+
named_type_path="sdk.field_values.FieldValueFieldOption",
|
|
140
|
+
parse_require={"type"},
|
|
141
|
+
)
|
|
142
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
143
|
+
class FieldValueFieldOption(FieldValueBase):
|
|
144
|
+
type: typing.Literal[FieldValueType.FIELD_OPTION] = FieldValueType.FIELD_OPTION
|
|
145
|
+
value: str
|
|
146
|
+
value_resolution: ValueResolution = ValueResolution.DIRECT
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
150
|
+
@serial_class(
|
|
151
|
+
named_type_path="sdk.field_values.FieldValueFieldOptions",
|
|
152
|
+
parse_require={"type"},
|
|
153
|
+
)
|
|
154
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
155
|
+
class FieldValueFieldOptions(FieldValueBase):
|
|
156
|
+
type: typing.Literal[FieldValueType.FIELD_OPTIONS] = FieldValueType.FIELD_OPTIONS
|
|
157
|
+
value: list[str]
|
|
158
|
+
value_resolution: ValueResolution = ValueResolution.DIRECT
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
162
|
+
@serial_class(
|
|
163
|
+
named_type_path="sdk.field_values.FieldValueId",
|
|
164
|
+
parse_require={"type"},
|
|
165
|
+
)
|
|
166
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
167
|
+
class FieldValueId(FieldValueBase):
|
|
168
|
+
type: typing.Literal[FieldValueType.ID] = FieldValueType.ID
|
|
169
|
+
entity_type: entity_t.EntityType
|
|
170
|
+
identifier_key: identifier_t.IdentifierKey
|
|
171
|
+
|
|
172
|
+
|
|
173
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
174
|
+
@serial_class(
|
|
175
|
+
named_type_path="sdk.field_values.FieldValueIds",
|
|
176
|
+
parse_require={"type"},
|
|
177
|
+
)
|
|
178
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
179
|
+
class FieldValueIds(FieldValueBase):
|
|
180
|
+
type: typing.Literal[FieldValueType.IDS] = FieldValueType.IDS
|
|
181
|
+
entity_type: entity_t.EntityType
|
|
182
|
+
identifier_keys: list[identifier_t.IdentifierKey]
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
186
|
+
@serial_class(
|
|
187
|
+
named_type_path="sdk.field_values.FieldValueText",
|
|
188
|
+
parse_require={"type"},
|
|
189
|
+
)
|
|
190
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
191
|
+
class FieldValueText(FieldValueBase):
|
|
192
|
+
type: typing.Literal[FieldValueType.TEXT] = FieldValueType.TEXT
|
|
193
|
+
value: str
|
|
194
|
+
|
|
195
|
+
|
|
196
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
197
|
+
@serial_class(
|
|
198
|
+
named_type_path="sdk.field_values.FieldValueTexts",
|
|
199
|
+
parse_require={"type"},
|
|
200
|
+
)
|
|
201
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
202
|
+
class FieldValueTexts(FieldValueBase):
|
|
203
|
+
type: typing.Literal[FieldValueType.TEXTS] = FieldValueType.TEXTS
|
|
204
|
+
value: list[str]
|
|
205
|
+
|
|
206
|
+
|
|
207
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
208
|
+
@serial_class(
|
|
209
|
+
named_type_path="sdk.field_values.FieldValueBoolean",
|
|
210
|
+
parse_require={"type"},
|
|
211
|
+
)
|
|
212
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
213
|
+
class FieldValueBoolean(FieldValueBase):
|
|
214
|
+
type: typing.Literal[FieldValueType.BOOLEAN] = FieldValueType.BOOLEAN
|
|
215
|
+
value: bool
|
|
216
|
+
|
|
217
|
+
|
|
218
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
219
|
+
@serial_class(
|
|
220
|
+
named_type_path="sdk.field_values.FieldValueNumeric",
|
|
221
|
+
to_string_values={"value"},
|
|
222
|
+
parse_require={"type"},
|
|
223
|
+
)
|
|
224
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
225
|
+
class FieldValueNumeric(FieldValueBase):
|
|
226
|
+
type: typing.Literal[FieldValueType.NUMERIC] = FieldValueType.NUMERIC
|
|
227
|
+
value: Decimal
|
|
228
|
+
|
|
229
|
+
|
|
230
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
231
|
+
@serial_class(
|
|
232
|
+
named_type_path="sdk.field_values.FieldValueBatchReference",
|
|
233
|
+
parse_require={"type"},
|
|
234
|
+
)
|
|
235
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
236
|
+
class FieldValueBatchReference(FieldValueBase):
|
|
237
|
+
type: typing.Literal[FieldValueType.BATCH_REFERENCE] = FieldValueType.BATCH_REFERENCE
|
|
238
|
+
reference_key: identifier_t.IdentifierKeyBatchReference
|
|
239
|
+
data_key: str
|
|
240
|
+
|
|
241
|
+
|
|
242
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
243
|
+
@serial_class(
|
|
244
|
+
named_type_path="sdk.field_values.FieldValueNull",
|
|
245
|
+
parse_require={"type"},
|
|
246
|
+
)
|
|
247
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
248
|
+
class FieldValueNull(FieldValueBase):
|
|
249
|
+
type: typing.Literal[FieldValueType.NULL_VALUE] = FieldValueType.NULL_VALUE
|
|
250
|
+
|
|
251
|
+
|
|
252
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
253
|
+
@serial_class(
|
|
254
|
+
named_type_path="sdk.field_values.FieldValueNotes",
|
|
255
|
+
parse_require={"type"},
|
|
256
|
+
)
|
|
257
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
258
|
+
class FieldValueNotes(FieldValueBase):
|
|
259
|
+
type: typing.Literal[FieldValueType.NOTES] = FieldValueType.NOTES
|
|
260
|
+
value: str
|
|
261
|
+
|
|
262
|
+
|
|
263
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
264
|
+
@serial_class(
|
|
265
|
+
named_type_path="sdk.field_values.FieldValueDate",
|
|
266
|
+
parse_require={"type"},
|
|
267
|
+
)
|
|
268
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
269
|
+
class FieldValueDate(FieldValueBase):
|
|
270
|
+
type: typing.Literal[FieldValueType.DATE] = FieldValueType.DATE
|
|
271
|
+
value: datetime.date
|
|
272
|
+
|
|
273
|
+
|
|
274
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
275
|
+
@serial_class(
|
|
276
|
+
named_type_path="sdk.field_values.FieldValueDatetime",
|
|
277
|
+
parse_require={"type"},
|
|
278
|
+
)
|
|
279
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
280
|
+
class FieldValueDatetime(FieldValueBase):
|
|
281
|
+
type: typing.Literal[FieldValueType.DATETIME] = FieldValueType.DATETIME
|
|
282
|
+
value: datetime.datetime
|
|
283
|
+
|
|
284
|
+
|
|
285
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
286
|
+
FieldValue = typing.Annotated[
|
|
287
|
+
FieldValueFiles | FieldValueId | FieldValueIds | FieldValueText | FieldValueTexts | FieldValueBoolean | FieldValueNumeric | FieldValueBatchReference | FieldValueFieldOption | FieldValueFieldOptions | FieldValueNull | FieldValueNotes | FieldValueDate | FieldValueDatetime,
|
|
288
|
+
serial_union_annotation(
|
|
289
|
+
named_type_path="sdk.field_values.FieldValue",
|
|
290
|
+
),
|
|
291
|
+
]
|
|
292
|
+
|
|
293
|
+
|
|
294
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
295
|
+
@serial_class(
|
|
296
|
+
named_type_path="sdk.field_values.FieldArgumentValue",
|
|
297
|
+
)
|
|
298
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
299
|
+
class FieldArgumentValue:
|
|
300
|
+
field_key: identifier_t.IdentifierKey
|
|
301
|
+
value: FieldValue
|
|
302
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
uncountable/types/fields.py
CHANGED
|
@@ -1,24 +1,7 @@
|
|
|
1
|
-
#
|
|
2
|
-
# flake8: noqa: F821
|
|
3
|
-
# ruff: noqa: E402
|
|
1
|
+
# ruff: noqa: E402 Q003
|
|
4
2
|
# fmt: off
|
|
5
3
|
# isort: skip_file
|
|
6
|
-
from __future__ import annotations
|
|
7
|
-
import typing # noqa: F401
|
|
8
|
-
import datetime # noqa: F401
|
|
9
|
-
from decimal import Decimal # noqa: F401
|
|
10
|
-
from dataclasses import dataclass
|
|
11
|
-
from . import base as base_t
|
|
12
|
-
|
|
13
|
-
__all__: list[str] = [
|
|
14
|
-
"Field",
|
|
15
|
-
]
|
|
16
|
-
|
|
17
|
-
|
|
18
4
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
id: base_t.ObjectId
|
|
22
|
-
name: str
|
|
23
|
-
value_type: str
|
|
5
|
+
# Kept only for SDK backwards compatibility
|
|
6
|
+
from .fields_t import Field as Field
|
|
24
7
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
+
# ruff: noqa: E402 Q003
|
|
3
|
+
# fmt: off
|
|
4
|
+
# isort: skip_file
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
import typing # noqa: F401
|
|
7
|
+
import datetime # noqa: F401
|
|
8
|
+
from decimal import Decimal # noqa: F401
|
|
9
|
+
import dataclasses
|
|
10
|
+
from pkgs.serialization import serial_class
|
|
11
|
+
from . import base_t
|
|
12
|
+
|
|
13
|
+
__all__: list[str] = [
|
|
14
|
+
"Field",
|
|
15
|
+
]
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
19
|
+
@serial_class(
|
|
20
|
+
named_type_path="sdk.fields.Field",
|
|
21
|
+
)
|
|
22
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
23
|
+
class Field:
|
|
24
|
+
id: base_t.ObjectId
|
|
25
|
+
name: str
|
|
26
|
+
value_type: str
|
|
27
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# ruff: noqa: E402 Q003
|
|
2
|
+
# fmt: off
|
|
3
|
+
# isort: skip_file
|
|
4
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
5
|
+
# Kept only for SDK backwards compatibility
|
|
6
|
+
from .generic_upload_t import GenericRemoteDirectoryScope as GenericRemoteDirectoryScope
|
|
7
|
+
from .generic_upload_t import UploadDestinationType as UploadDestinationType
|
|
8
|
+
from .generic_upload_t import UploadDestinationBase as UploadDestinationBase
|
|
9
|
+
from .generic_upload_t import UploadDestinationProject as UploadDestinationProject
|
|
10
|
+
from .generic_upload_t import UploadDestinationMaterialFamily as UploadDestinationMaterialFamily
|
|
11
|
+
from .generic_upload_t import UploadDestinationRecipe as UploadDestinationRecipe
|
|
12
|
+
from .generic_upload_t import UploadDestination as UploadDestination
|
|
13
|
+
from .generic_upload_t import GenericUploadStrategy as GenericUploadStrategy
|
|
14
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
+
# ruff: noqa: E402 Q003
|
|
3
|
+
# fmt: off
|
|
4
|
+
# isort: skip_file
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
import typing # noqa: F401
|
|
7
|
+
import datetime # noqa: F401
|
|
8
|
+
from decimal import Decimal # noqa: F401
|
|
9
|
+
from enum import StrEnum
|
|
10
|
+
import dataclasses
|
|
11
|
+
from pkgs.serialization import serial_class
|
|
12
|
+
from pkgs.serialization import serial_union_annotation
|
|
13
|
+
from . import base_t
|
|
14
|
+
from . import identifier_t
|
|
15
|
+
|
|
16
|
+
__all__: list[str] = [
|
|
17
|
+
"GenericRemoteDirectoryScope",
|
|
18
|
+
"GenericUploadStrategy",
|
|
19
|
+
"UploadDestination",
|
|
20
|
+
"UploadDestinationBase",
|
|
21
|
+
"UploadDestinationMaterialFamily",
|
|
22
|
+
"UploadDestinationProject",
|
|
23
|
+
"UploadDestinationRecipe",
|
|
24
|
+
"UploadDestinationType",
|
|
25
|
+
]
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
29
|
+
@serial_class(
|
|
30
|
+
named_type_path="sdk.generic_upload.GenericRemoteDirectoryScope",
|
|
31
|
+
)
|
|
32
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
33
|
+
class GenericRemoteDirectoryScope:
|
|
34
|
+
src_path: str
|
|
35
|
+
success_archive_path: str
|
|
36
|
+
failure_archive_path: str
|
|
37
|
+
recursive: bool
|
|
38
|
+
prepend_date_on_archive: bool
|
|
39
|
+
valid_file_extensions: list[str] | None = None
|
|
40
|
+
filename_regex: str | None = None
|
|
41
|
+
max_files: int | None = None
|
|
42
|
+
detection_keyword: str | None = None
|
|
43
|
+
delimiter: str | None = None
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
47
|
+
class UploadDestinationType(StrEnum):
|
|
48
|
+
PROJECT = "project"
|
|
49
|
+
MATERIAL_FAMILY = "material_family"
|
|
50
|
+
RECIPE = "recipe"
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
54
|
+
@serial_class(
|
|
55
|
+
named_type_path="sdk.generic_upload.UploadDestinationBase",
|
|
56
|
+
)
|
|
57
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
58
|
+
class UploadDestinationBase:
|
|
59
|
+
type: UploadDestinationType
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
63
|
+
@serial_class(
|
|
64
|
+
named_type_path="sdk.generic_upload.UploadDestinationProject",
|
|
65
|
+
parse_require={"type"},
|
|
66
|
+
)
|
|
67
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
68
|
+
class UploadDestinationProject(UploadDestinationBase):
|
|
69
|
+
type: typing.Literal[UploadDestinationType.PROJECT] = UploadDestinationType.PROJECT
|
|
70
|
+
project_key: identifier_t.IdentifierKey
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
74
|
+
@serial_class(
|
|
75
|
+
named_type_path="sdk.generic_upload.UploadDestinationMaterialFamily",
|
|
76
|
+
parse_require={"type"},
|
|
77
|
+
)
|
|
78
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
79
|
+
class UploadDestinationMaterialFamily(UploadDestinationBase):
|
|
80
|
+
type: typing.Literal[UploadDestinationType.MATERIAL_FAMILY] = UploadDestinationType.MATERIAL_FAMILY
|
|
81
|
+
material_family_key: identifier_t.IdentifierKey
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
85
|
+
@serial_class(
|
|
86
|
+
named_type_path="sdk.generic_upload.UploadDestinationRecipe",
|
|
87
|
+
parse_require={"type"},
|
|
88
|
+
)
|
|
89
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
90
|
+
class UploadDestinationRecipe(UploadDestinationBase):
|
|
91
|
+
type: typing.Literal[UploadDestinationType.RECIPE] = UploadDestinationType.RECIPE
|
|
92
|
+
recipe_key: identifier_t.IdentifierKey
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
96
|
+
UploadDestination = typing.Annotated[
|
|
97
|
+
UploadDestinationProject | UploadDestinationMaterialFamily | UploadDestinationRecipe,
|
|
98
|
+
serial_union_annotation(
|
|
99
|
+
named_type_path="sdk.generic_upload.UploadDestination",
|
|
100
|
+
discriminator="type",
|
|
101
|
+
discriminator_map={
|
|
102
|
+
"project": UploadDestinationProject,
|
|
103
|
+
"material_family": UploadDestinationMaterialFamily,
|
|
104
|
+
"recipe": UploadDestinationRecipe,
|
|
105
|
+
},
|
|
106
|
+
),
|
|
107
|
+
]
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
111
|
+
@serial_class(
|
|
112
|
+
named_type_path="sdk.generic_upload.GenericUploadStrategy",
|
|
113
|
+
)
|
|
114
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
115
|
+
class GenericUploadStrategy:
|
|
116
|
+
uploader_key: identifier_t.IdentifierKey
|
|
117
|
+
destinations: list[UploadDestination]
|
|
118
|
+
skip_moving_files: bool = False
|
|
119
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
uncountable/types/id_source.py
CHANGED
|
@@ -1,49 +1,11 @@
|
|
|
1
|
-
#
|
|
2
|
-
# flake8: noqa: F821
|
|
3
|
-
# ruff: noqa: E402
|
|
1
|
+
# ruff: noqa: E402 Q003
|
|
4
2
|
# fmt: off
|
|
5
3
|
# isort: skip_file
|
|
6
|
-
from __future__ import annotations
|
|
7
|
-
import typing # noqa: F401
|
|
8
|
-
import datetime # noqa: F401
|
|
9
|
-
from decimal import Decimal # noqa: F401
|
|
10
|
-
from dataclasses import dataclass
|
|
11
|
-
from . import entity as entity_t
|
|
12
|
-
|
|
13
|
-
__all__: list[str] = [
|
|
14
|
-
"IdSourceSpec",
|
|
15
|
-
"IdSourceSpecBase",
|
|
16
|
-
"IdSourceSpecCustomEntity",
|
|
17
|
-
"IdSourceSpecEntity",
|
|
18
|
-
"IdSourceSpecFieldOptions",
|
|
19
|
-
]
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
# DO NOT MODIFY -- This file is generated by type_spec
|
|
23
|
-
@dataclass(kw_only=True)
|
|
24
|
-
class IdSourceSpecBase:
|
|
25
|
-
pass
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
# DO NOT MODIFY -- This file is generated by type_spec
|
|
29
|
-
@dataclass(kw_only=True)
|
|
30
|
-
class IdSourceSpecEntity(IdSourceSpecBase):
|
|
31
|
-
entity_type: entity_t.EntityType
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
# DO NOT MODIFY -- This file is generated by type_spec
|
|
35
|
-
@dataclass(kw_only=True)
|
|
36
|
-
class IdSourceSpecCustomEntity(IdSourceSpecBase):
|
|
37
|
-
definition_ref_name: str
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
# DO NOT MODIFY -- This file is generated by type_spec
|
|
41
|
-
@dataclass(kw_only=True)
|
|
42
|
-
class IdSourceSpecFieldOptions(IdSourceSpecBase):
|
|
43
|
-
set_ref_name: str
|
|
44
|
-
subset_ref_name: typing.Optional[str] = None
|
|
45
|
-
|
|
46
|
-
|
|
47
4
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
48
|
-
|
|
5
|
+
# Kept only for SDK backwards compatibility
|
|
6
|
+
from .id_source_t import IdSourceSpecBase as IdSourceSpecBase
|
|
7
|
+
from .id_source_t import IdSourceSpecEntity as IdSourceSpecEntity
|
|
8
|
+
from .id_source_t import IdSourceSpecCustomEntity as IdSourceSpecCustomEntity
|
|
9
|
+
from .id_source_t import IdSourceSpecFieldOptions as IdSourceSpecFieldOptions
|
|
10
|
+
from .id_source_t import IdSourceSpec as IdSourceSpec
|
|
49
11
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
+
# ruff: noqa: E402 Q003
|
|
3
|
+
# fmt: off
|
|
4
|
+
# isort: skip_file
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
import typing # noqa: F401
|
|
7
|
+
import datetime # noqa: F401
|
|
8
|
+
from decimal import Decimal # noqa: F401
|
|
9
|
+
import dataclasses
|
|
10
|
+
from pkgs.serialization import serial_class
|
|
11
|
+
from pkgs.serialization import serial_alias_annotation
|
|
12
|
+
from . import base_t
|
|
13
|
+
from . import entity_t
|
|
14
|
+
|
|
15
|
+
__all__: list[str] = [
|
|
16
|
+
"IdSourceSpec",
|
|
17
|
+
"IdSourceSpecBase",
|
|
18
|
+
"IdSourceSpecCustomEntity",
|
|
19
|
+
"IdSourceSpecEntity",
|
|
20
|
+
"IdSourceSpecFieldOptions",
|
|
21
|
+
]
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
25
|
+
@serial_class(
|
|
26
|
+
named_type_path="sdk.id_source.IdSourceSpecBase",
|
|
27
|
+
)
|
|
28
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
29
|
+
class IdSourceSpecBase:
|
|
30
|
+
pass
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
34
|
+
@serial_class(
|
|
35
|
+
named_type_path="sdk.id_source.IdSourceSpecEntity",
|
|
36
|
+
)
|
|
37
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
38
|
+
class IdSourceSpecEntity(IdSourceSpecBase):
|
|
39
|
+
entity_type: entity_t.EntityType
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
43
|
+
@serial_class(
|
|
44
|
+
named_type_path="sdk.id_source.IdSourceSpecCustomEntity",
|
|
45
|
+
)
|
|
46
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
47
|
+
class IdSourceSpecCustomEntity(IdSourceSpecBase):
|
|
48
|
+
definition_ref_name: str
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
52
|
+
@serial_class(
|
|
53
|
+
named_type_path="sdk.id_source.IdSourceSpecFieldOptions",
|
|
54
|
+
)
|
|
55
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
56
|
+
class IdSourceSpecFieldOptions(IdSourceSpecBase):
|
|
57
|
+
set_ref_name: str
|
|
58
|
+
subset_ref_name: str | None = None
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
62
|
+
IdSourceSpec = typing.Annotated[
|
|
63
|
+
IdSourceSpecEntity | IdSourceSpecCustomEntity | IdSourceSpecFieldOptions,
|
|
64
|
+
serial_alias_annotation(
|
|
65
|
+
named_type_path="sdk.id_source.IdSourceSpec",
|
|
66
|
+
),
|
|
67
|
+
]
|
|
68
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
uncountable/types/identifier.py
CHANGED
|
@@ -1,54 +1,10 @@
|
|
|
1
|
-
#
|
|
2
|
-
# flake8: noqa: F821
|
|
3
|
-
# ruff: noqa: E402
|
|
1
|
+
# ruff: noqa: E402 Q003
|
|
4
2
|
# fmt: off
|
|
5
3
|
# isort: skip_file
|
|
6
|
-
from __future__ import annotations
|
|
7
|
-
import typing # noqa: F401
|
|
8
|
-
import datetime # noqa: F401
|
|
9
|
-
from decimal import Decimal # noqa: F401
|
|
10
|
-
from dataclasses import dataclass
|
|
11
|
-
from pkgs.serialization import serial_class
|
|
12
|
-
from . import base as base_t
|
|
13
|
-
|
|
14
|
-
__all__: list[str] = [
|
|
15
|
-
"IdentifierKey",
|
|
16
|
-
"IdentifierKeyBatchReference",
|
|
17
|
-
"IdentifierKeyId",
|
|
18
|
-
"IdentifierKeyRefName",
|
|
19
|
-
]
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
# DO NOT MODIFY -- This file is generated by type_spec
|
|
23
|
-
@serial_class(
|
|
24
|
-
parse_require={"type"},
|
|
25
|
-
)
|
|
26
|
-
@dataclass(kw_only=True, frozen=True, eq=True)
|
|
27
|
-
class IdentifierKeyId:
|
|
28
|
-
type: typing.Literal["id"] = "id"
|
|
29
|
-
id: base_t.ObjectId
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
# DO NOT MODIFY -- This file is generated by type_spec
|
|
33
|
-
@serial_class(
|
|
34
|
-
parse_require={"type"},
|
|
35
|
-
)
|
|
36
|
-
@dataclass(kw_only=True, frozen=True, eq=True)
|
|
37
|
-
class IdentifierKeyRefName:
|
|
38
|
-
type: typing.Literal["ref_name"] = "ref_name"
|
|
39
|
-
ref_name: str
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
# DO NOT MODIFY -- This file is generated by type_spec
|
|
43
|
-
@serial_class(
|
|
44
|
-
parse_require={"type"},
|
|
45
|
-
)
|
|
46
|
-
@dataclass(kw_only=True, frozen=True, eq=True)
|
|
47
|
-
class IdentifierKeyBatchReference:
|
|
48
|
-
type: typing.Literal["batch_reference"] = "batch_reference"
|
|
49
|
-
reference: str
|
|
50
|
-
|
|
51
|
-
|
|
52
4
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
53
|
-
|
|
5
|
+
# Kept only for SDK backwards compatibility
|
|
6
|
+
from .identifier_t import IdentifierKeyId as IdentifierKeyId
|
|
7
|
+
from .identifier_t import IdentifierKeyRefName as IdentifierKeyRefName
|
|
8
|
+
from .identifier_t import IdentifierKeyBatchReference as IdentifierKeyBatchReference
|
|
9
|
+
from .identifier_t import IdentifierKey as IdentifierKey
|
|
54
10
|
# DO NOT MODIFY -- This file is generated by type_spec
|