UncountablePythonSDK 0.0.169__tar.gz → 0.0.171__tar.gz
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.
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/.github/workflows/documentation.yml +2 -2
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/PKG-INFO +1 -1
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/UncountablePythonSDK.egg-info/PKG-INFO +1 -1
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/UncountablePythonSDK.egg-info/SOURCES.txt +2 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/examples/integration-server/jobs/materials_auto/example_instrument.py +1 -1
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/pkgs/argument_parser/argument_parser.py +24 -4
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/pkgs/serialization_util/serialization_helpers.py +1 -1
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/pkgs/type_spec/builder.py +24 -8
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/pkgs/type_spec/emit_open_api.py +5 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/pkgs/type_spec/emit_python.py +7 -10
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/pkgs/type_spec/emit_typescript_util.py +5 -1
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/pkgs/type_spec/parts/base.py.prepart +0 -4
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/pkgs/type_spec/type_info/emit_type_info.py +16 -5
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/pkgs/type_spec/value_spec/__main__.py +2 -6
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/pkgs/type_spec/value_spec/emit_python.py +1 -1
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/integration/queue_runner/command_server/command_client.py +3 -3
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/__init__.py +4 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/batch/execute_batch.py +4 -4
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/batch/execute_batch_load_async.py +2 -2
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/chemical/convert_chemical_formats.py +3 -3
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/condition_parameters/upsert_condition_match.py +3 -4
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/condition_parameters/upsert_condition_matches.py +8 -9
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/entity/create_entities.py +3 -3
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/entity/create_entity.py +3 -3
- uncountablepythonsdk-0.0.171/uncountable/types/api/entity/create_or_update_entities.py +57 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/entity/create_or_update_entity.py +2 -3
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/entity/export_entities.py +3 -3
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/entity/get_entities_data.py +3 -3
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/entity/grant_entity_permissions.py +2 -3
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/entity/list_aggregate.py +5 -5
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/entity/list_entities.py +6 -6
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/entity/lock_entity.py +2 -3
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/entity/lookup_entity.py +6 -6
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/entity/resolve_entity_ids.py +3 -3
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/entity/set_barcode.py +2 -3
- uncountablepythonsdk-0.0.171/uncountable/types/api/entity/set_entities_field_values.py +55 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/entity/set_entity_field_values.py +2 -3
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/entity/set_values.py +2 -3
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/entity/transition_entity_phase.py +4 -5
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/entity/unlock_entity.py +2 -3
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/equipment/associate_equipment_input.py +2 -2
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/field_options/upsert_field_options.py +3 -4
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/file_folders/add_file_to_folder.py +2 -2
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/file_folders/modify_file_system.py +3 -4
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/files/download_file.py +4 -4
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/id_source/list_id_source.py +3 -3
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/id_source/match_id_source.py +3 -3
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/input_groups/get_input_group_names.py +3 -3
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/inputs/create_inputs.py +4 -4
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/inputs/get_input_data.py +6 -6
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/inputs/get_input_names.py +3 -3
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/inputs/get_inputs_data.py +6 -6
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/inputs/set_input_attribute_values.py +3 -3
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/inputs/set_input_category.py +2 -3
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/inputs/set_input_subcategories.py +2 -3
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/inputs/set_intermediate_type.py +2 -3
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/integrations/publish_realtime_data.py +3 -4
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/integrations/push_notification.py +2 -3
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/integrations/register_sockets_token.py +2 -3
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/listing/export_listing.py +2 -3
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/listing/fetch_listing.py +3 -3
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/material_families/update_entity_material_families.py +2 -2
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/notebooks/add_notebook_content.py +20 -20
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/notebooks/get_notebook_content.py +14 -15
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/output_parameters/swap_output_condition_parameters.py +7 -8
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/outputs/get_output_data.py +6 -6
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/outputs/get_output_names.py +3 -3
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/outputs/get_output_organization.py +9 -9
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/outputs/resolve_output_conditions.py +5 -5
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/outputs/update_output_condition_parameter.py +2 -3
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/permissions/set_core_permissions.py +6 -7
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/permissions/set_entity_permission.py +4 -5
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/project/get_projects.py +3 -3
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/project/get_projects_data.py +3 -3
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipe_links/create_recipe_link.py +2 -3
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipe_links/remove_recipe_link.py +2 -3
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipe_metadata/get_recipe_metadata_data.py +3 -3
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipes/add_recipe_to_project.py +2 -3
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipes/add_time_series_data.py +3 -4
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipes/archive_recipes.py +2 -3
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipes/associate_recipe_as_input.py +2 -3
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipes/associate_recipe_as_lot.py +2 -3
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipes/clear_recipe_outputs.py +2 -3
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipes/create_mix_order.py +2 -3
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipes/create_recipe.py +2 -2
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipes/create_recipes.py +4 -4
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipes/disassociate_recipe_as_input.py +2 -3
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipes/edit_recipe_inputs.py +20 -21
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipes/get_column_calculation_values.py +3 -3
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipes/get_curve.py +2 -2
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipes/get_recipe_calculations.py +3 -3
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipes/get_recipe_links.py +2 -2
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipes/get_recipe_names.py +3 -3
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipes/get_recipe_output_metadata.py +3 -3
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipes/get_recipes_data.py +13 -13
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipes/lock_recipes.py +3 -4
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipes/remove_recipe_from_project.py +2 -3
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipes/set_recipe_inputs.py +3 -3
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipes/set_recipe_metadata.py +2 -3
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipes/set_recipe_output_annotations.py +6 -6
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipes/set_recipe_output_file.py +3 -3
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipes/set_recipe_outputs.py +4 -4
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipes/set_recipe_tags.py +6 -6
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipes/set_recipe_total.py +3 -4
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipes/unarchive_recipes.py +2 -3
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipes/unlock_recipes.py +2 -3
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipes/upsert_recipe_workflow_step.py +2 -3
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipes/upsert_step_relationships.py +4 -5
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/runsheet/complete_async_upload.py +2 -2
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/runsheet/export_default_runsheet.py +2 -2
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/triggers/run_trigger.py +2 -3
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/uploader/complete_async_parse.py +2 -2
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/uploader/invoke_uploader.py +2 -2
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/user/get_current_user_info.py +2 -2
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/async_batch_t.py +5 -5
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/async_jobs_t.py +4 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/auth_retrieval_t.py +3 -4
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/base_t.py +0 -4
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/calculations_t.py +1 -1
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/chemical_structure_t.py +1 -2
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/client_base.py +48 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/client_config_t.py +4 -4
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/curves_t.py +2 -2
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/data_t.py +4 -5
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/entity_t.py +2 -2
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/experiment_groups_t.py +1 -1
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/exports_t.py +1 -2
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/field_values_t.py +20 -20
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/fields_t.py +1 -1
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/generic_upload_t.py +6 -7
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/id_source_t.py +4 -5
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/identifier_t.py +3 -3
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/input_attributes_t.py +1 -1
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/inputs_t.py +1 -1
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/integration_server_t.py +1 -2
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/integration_session_t.py +2 -3
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/integrations_t.py +2 -3
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/job_definition_t.py +15 -16
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/listing_t.py +29 -29
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/notices_t.py +1 -2
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/notifications_t.py +3 -4
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/outputs_t.py +1 -1
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/overrides_t.py +2 -3
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/phases_t.py +1 -1
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/queued_job_t.py +8 -8
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/recipe_identifiers_t.py +3 -3
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/recipe_links_t.py +1 -1
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/recipe_metadata_t.py +3 -3
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/recipe_output_metadata_t.py +1 -1
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/recipe_tags_t.py +1 -1
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/recipe_workflow_step_types_t.py +5 -6
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/recipe_workflow_steps_t.py +4 -5
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/recipes_t.py +1 -2
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/response_t.py +1 -2
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/runsheet_format_t.py +3 -4
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/runsheet_t.py +10 -11
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/secret_retrieval_t.py +3 -4
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/sockets_t.py +8 -8
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/step_relationships_t.py +7 -8
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/units_t.py +1 -1
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/uploader_t.py +12 -13
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/users_t.py +1 -1
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/webhook_job_t.py +3 -3
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/workflows_t.py +2 -2
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/.github/workflows/publish.yml +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/.gitignore +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/.python-version +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/README.md +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/UncountablePythonSDK.egg-info/dependency_links.txt +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/UncountablePythonSDK.egg-info/requires.txt +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/UncountablePythonSDK.egg-info/top_level.txt +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/docs/.gitignore +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/docs/conf.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/docs/index.md +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/docs/integration_examples/add_file_to_folder.md +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/docs/integration_examples/create_ingredient.md +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/docs/integration_examples/create_output.md +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/docs/integration_examples/index.md +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/docs/integration_examples/upload_file.md +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/docs/justfile +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/docs/requirements.txt +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/docs/static/favicons/android-chrome-192x192.png +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/docs/static/favicons/android-chrome-512x512.png +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/docs/static/favicons/apple-touch-icon.png +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/docs/static/favicons/browserconfig.xml +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/docs/static/favicons/favicon-16x16.png +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/docs/static/favicons/favicon-32x32.png +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/docs/static/favicons/manifest.json +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/docs/static/favicons/mstile-150x150.png +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/docs/static/favicons/safari-pinned-tab.svg +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/docs/static/logo_blue.png +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/examples/async_batch.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/examples/async_batch_large_parse.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/examples/basic_auth.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/examples/create_entity.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/examples/create_ingredient_sdk.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/examples/download_files.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/examples/edit_recipe_inputs.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/examples/integration-server/jobs/materials_auto/concurrent_cron.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/examples/integration-server/jobs/materials_auto/example_cron.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/examples/integration-server/jobs/materials_auto/example_http.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/examples/integration-server/jobs/materials_auto/example_parse.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/examples/integration-server/jobs/materials_auto/example_predictions.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/examples/integration-server/jobs/materials_auto/example_runsheet_wh.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/examples/integration-server/jobs/materials_auto/example_wh.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/examples/integration-server/jobs/materials_auto/profile.yaml +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/examples/integration-server/pyproject.toml +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/examples/invoke_uploader.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/examples/oauth.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/examples/set_input_pdf_attribute.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/examples/set_recipe_metadata_file.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/examples/set_recipe_output_file_sdk.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/examples/upload_files.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/pkgs/__init__.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/pkgs/argument_parser/__init__.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/pkgs/argument_parser/_is_enum.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/pkgs/argument_parser/_is_namedtuple.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/pkgs/argument_parser/case_convert.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/pkgs/argument_parser/parser_error.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/pkgs/filesystem_utils/__init__.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/pkgs/filesystem_utils/_blob_session.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/pkgs/filesystem_utils/_file_share_session.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/pkgs/filesystem_utils/_gdrive_session.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/pkgs/filesystem_utils/_local_session.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/pkgs/filesystem_utils/_s3_session.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/pkgs/filesystem_utils/_sftp_session.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/pkgs/filesystem_utils/file_type_utils.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/pkgs/filesystem_utils/filesystem_session.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/pkgs/py.typed +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/pkgs/serialization/__init__.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/pkgs/serialization/annotation.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/pkgs/serialization/missing_sentry.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/pkgs/serialization/opaque_key.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/pkgs/serialization/serial_alias.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/pkgs/serialization/serial_class.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/pkgs/serialization/serial_generic.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/pkgs/serialization/serial_union.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/pkgs/serialization/unknown.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/pkgs/serialization/yaml.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/pkgs/serialization_util/__init__.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/pkgs/serialization_util/_get_type_for_serialization.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/pkgs/serialization_util/convert_to_snakecase.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/pkgs/serialization_util/dataclasses.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/pkgs/strenum_compat/__init__.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/pkgs/strenum_compat/strenum_compat.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/pkgs/type_spec/__init__.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/pkgs/type_spec/__main__.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/pkgs/type_spec/actions_registry/__init__.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/pkgs/type_spec/actions_registry/__main__.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/pkgs/type_spec/actions_registry/emit_typescript.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/pkgs/type_spec/builder_types.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/pkgs/type_spec/config.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/pkgs/type_spec/cross_output_links.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/pkgs/type_spec/emit_io_ts.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/pkgs/type_spec/emit_open_api_util.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/pkgs/type_spec/emit_typescript.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/pkgs/type_spec/load_types.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/pkgs/type_spec/non_discriminated_union_exceptions.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/pkgs/type_spec/open_api_util.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/pkgs/type_spec/parts/base.ts.prepart +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/pkgs/type_spec/test.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/pkgs/type_spec/type_info/__main__.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/pkgs/type_spec/ui_entry_actions/__init__.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/pkgs/type_spec/ui_entry_actions/generate_ui_entry_actions.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/pkgs/type_spec/util.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/pkgs/type_spec/value_spec/__init__.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/pkgs/type_spec/value_spec/convert_type.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/pkgs/type_spec/value_spec/types.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/pyproject.toml +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/setup.cfg +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/__init__.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/core/__init__.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/core/async_batch.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/core/client.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/core/environment.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/core/file_upload.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/core/query/__init__.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/core/query/builder.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/core/query/column.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/core/query/row.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/core/query/types.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/core/types.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/integration/__init__.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/integration/cli.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/integration/construct_client.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/integration/cron.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/integration/db/__init__.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/integration/db/connect.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/integration/db/session.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/integration/entrypoint.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/integration/executors/__init__.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/integration/executors/executors.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/integration/executors/generic_upload_executor.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/integration/executors/script_executor.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/integration/http_server/__init__.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/integration/http_server/types.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/integration/job.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/integration/queue_runner/__init__.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/integration/queue_runner/command_server/__init__.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/integration/queue_runner/command_server/command_server.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/integration/queue_runner/command_server/constants.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/integration/queue_runner/command_server/protocol/__init__.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/integration/queue_runner/command_server/protocol/command_server.proto +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/integration/queue_runner/command_server/protocol/command_server_pb2.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/integration/queue_runner/command_server/protocol/command_server_pb2.pyi +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/integration/queue_runner/command_server/protocol/command_server_pb2_grpc.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/integration/queue_runner/command_server/types.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/integration/queue_runner/datastore/__init__.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/integration/queue_runner/datastore/datastore_sqlite.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/integration/queue_runner/datastore/interface.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/integration/queue_runner/datastore/model.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/integration/queue_runner/job_scheduler.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/integration/queue_runner/queue_runner.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/integration/queue_runner/types.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/integration/queue_runner/worker.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/integration/request_context.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/integration/scan_profiles.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/integration/scheduler.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/integration/secret_retrieval/__init__.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/integration/secret_retrieval/retrieve_secret.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/integration/server.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/integration/telemetry.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/integration/webhook_server/entrypoint.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/py.typed +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/__init__.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/batch/__init__.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/chemical/__init__.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/condition_parameters/__init__.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/entity/__init__.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/equipment/__init__.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/field_options/__init__.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/file_folders/__init__.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/files/__init__.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/id_source/__init__.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/input_groups/__init__.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/inputs/__init__.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/integrations/__init__.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/listing/__init__.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/material_families/__init__.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/notebooks/__init__.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/output_parameters/__init__.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/outputs/__init__.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/permissions/__init__.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/project/__init__.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipe_links/__init__.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipe_metadata/__init__.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipes/__init__.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/runsheet/__init__.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/triggers/__init__.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/uploader/__init__.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/api/user/__init__.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/async_batch.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/async_batch_processor.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/async_jobs.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/auth_retrieval.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/base.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/calculations.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/chemical_structure.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/client_config.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/condition_match.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/condition_match_t.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/curves.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/data.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/entity.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/experiment_groups.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/exports.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/field_values.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/fields.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/generic_upload.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/id_source.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/identifier.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/input_attributes.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/inputs.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/integration_server.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/integration_session.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/integrations.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/job_definition.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/listing.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/notices.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/notifications.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/outputs.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/overrides.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/permissions.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/permissions_t.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/phases.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/post_base.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/post_base_t.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/queued_job.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/recipe_identifiers.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/recipe_inputs.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/recipe_inputs_t.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/recipe_links.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/recipe_metadata.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/recipe_output_metadata.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/recipe_step_relationships.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/recipe_step_relationships_t.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/recipe_tags.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/recipe_workflow_step_types.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/recipe_workflow_steps.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/recipes.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/request_headers.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/request_headers_t.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/response.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/runsheet.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/runsheet_format.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/secret_retrieval.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/sockets.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/specs.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/specs_t.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/step_relationships.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/units.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/uploader.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/users.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/webhook_job.py +0 -0
- {uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/uncountable/types/workflows.py +0 -0
{uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/.github/workflows/documentation.yml
RENAMED
|
@@ -11,9 +11,9 @@ jobs:
|
|
|
11
11
|
steps:
|
|
12
12
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
|
13
13
|
- uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6
|
|
14
|
-
- uses: extractions/setup-crate@
|
|
14
|
+
- uses: extractions/setup-crate@0551596312d4008a6dfbc4d3c38fa20eaef46d2d # v2
|
|
15
15
|
with:
|
|
16
|
-
repo: casey/just@0
|
|
16
|
+
repo: casey/just@1.50.0
|
|
17
17
|
- name: Set up UV
|
|
18
18
|
uses: astral-sh/setup-uv@f0ec1fc3b38f5e7cd731bb6ce540c5af426746bb
|
|
19
19
|
with:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: UncountablePythonSDK
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.171
|
|
4
4
|
Summary: Uncountable SDK
|
|
5
5
|
Project-URL: Homepage, https://github.com/uncountableinc/uncountable-python-sdk
|
|
6
6
|
Project-URL: Repository, https://github.com/uncountableinc/uncountable-python-sdk.git
|
{uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/UncountablePythonSDK.egg-info/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: UncountablePythonSDK
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.171
|
|
4
4
|
Summary: Uncountable SDK
|
|
5
5
|
Project-URL: Homepage, https://github.com/uncountableinc/uncountable-python-sdk
|
|
6
6
|
Project-URL: Repository, https://github.com/uncountableinc/uncountable-python-sdk.git
|
|
@@ -299,6 +299,7 @@ uncountable/types/api/condition_parameters/upsert_condition_matches.py
|
|
|
299
299
|
uncountable/types/api/entity/__init__.py
|
|
300
300
|
uncountable/types/api/entity/create_entities.py
|
|
301
301
|
uncountable/types/api/entity/create_entity.py
|
|
302
|
+
uncountable/types/api/entity/create_or_update_entities.py
|
|
302
303
|
uncountable/types/api/entity/create_or_update_entity.py
|
|
303
304
|
uncountable/types/api/entity/export_entities.py
|
|
304
305
|
uncountable/types/api/entity/get_entities_data.py
|
|
@@ -309,6 +310,7 @@ uncountable/types/api/entity/lock_entity.py
|
|
|
309
310
|
uncountable/types/api/entity/lookup_entity.py
|
|
310
311
|
uncountable/types/api/entity/resolve_entity_ids.py
|
|
311
312
|
uncountable/types/api/entity/set_barcode.py
|
|
313
|
+
uncountable/types/api/entity/set_entities_field_values.py
|
|
312
314
|
uncountable/types/api/entity/set_entity_field_values.py
|
|
313
315
|
uncountable/types/api/entity/set_values.py
|
|
314
316
|
uncountable/types/api/entity/transition_entity_phase.py
|
|
@@ -29,7 +29,7 @@ class InstrumentExample(WebhookJob[InstrumentPayload]):
|
|
|
29
29
|
self, args: JobArguments, payload: InstrumentPayload
|
|
30
30
|
) -> job_definition_t.JobResult:
|
|
31
31
|
parser: CachedParser[sockets_t.SocketResponse] = CachedParser(
|
|
32
|
-
sockets_t.SocketResponse
|
|
32
|
+
sockets_t.SocketResponse
|
|
33
33
|
)
|
|
34
34
|
|
|
35
35
|
def parse_message(message: Data) -> sockets_t.SocketEventData | None:
|
|
@@ -35,7 +35,7 @@ from .parser_error import (
|
|
|
35
35
|
|
|
36
36
|
T = typing.TypeVar("T")
|
|
37
37
|
ParserFunction = typing.Callable[[typing.Any], T]
|
|
38
|
-
ParserCache = dict[type[typing.Any], ParserFunction[typing.Any]]
|
|
38
|
+
ParserCache = dict[type[typing.Any] | typing.TypeAliasType, ParserFunction[typing.Any]]
|
|
39
39
|
|
|
40
40
|
|
|
41
41
|
class SourceEncoding(Enum):
|
|
@@ -267,7 +267,7 @@ def _resolve_base_type_vars(
|
|
|
267
267
|
|
|
268
268
|
|
|
269
269
|
def _build_parser_inner(
|
|
270
|
-
parsed_type: type[T] | typing.TypeVar,
|
|
270
|
+
parsed_type: type[T] | typing.TypeVar | typing.TypeAliasType,
|
|
271
271
|
context: ParserContext,
|
|
272
272
|
type_var_map: dict[typing.TypeVar, type],
|
|
273
273
|
) -> ParserFunction[T]:
|
|
@@ -278,6 +278,26 @@ def _build_parser_inner(
|
|
|
278
278
|
if isinstance(parsed_type, typing.TypeVar):
|
|
279
279
|
return _build_parser_inner(type_var_map[parsed_type], context, type_var_map)
|
|
280
280
|
|
|
281
|
+
# Resolve PEP 695 type aliases (e.g. ``type Foo[T] = Annotated[..., ...]``)
|
|
282
|
+
# to their underlying value, threading any subscripted type arguments into
|
|
283
|
+
# ``type_var_map`` so generic substitutions reach the inner parser.
|
|
284
|
+
if isinstance(parsed_type, typing.TypeAliasType):
|
|
285
|
+
return _build_parser_inner(parsed_type.__value__, context, type_var_map)
|
|
286
|
+
alias_origin = typing.get_origin(parsed_type)
|
|
287
|
+
if isinstance(alias_origin, typing.TypeAliasType):
|
|
288
|
+
alias_args = typing.get_args(parsed_type)
|
|
289
|
+
merged_alias_map: dict[typing.TypeVar, type] = {**type_var_map}
|
|
290
|
+
for alias_param, alias_arg in zip(
|
|
291
|
+
alias_origin.__type_params__, alias_args, strict=True
|
|
292
|
+
):
|
|
293
|
+
assert isinstance(alias_param, typing.TypeVar), (
|
|
294
|
+
"Parametric type alias only supports TypeVar parameters"
|
|
295
|
+
)
|
|
296
|
+
merged_alias_map[alias_param] = _resolve_type_var(
|
|
297
|
+
type_arg=alias_arg, type_var_map=type_var_map
|
|
298
|
+
)
|
|
299
|
+
return _build_parser_inner(alias_origin.__value__, context, merged_alias_map)
|
|
300
|
+
|
|
281
301
|
serial_union = get_serial_union_data(parsed_type)
|
|
282
302
|
if serial_union is not None:
|
|
283
303
|
discriminator = serial_union.discriminator
|
|
@@ -689,7 +709,7 @@ _CACHE_MAP: dict[ParserOptions, ParserCache] = defaultdict(ParserCache)
|
|
|
689
709
|
|
|
690
710
|
|
|
691
711
|
def build_parser(
|
|
692
|
-
parsed_type: type[T],
|
|
712
|
+
parsed_type: type[T] | typing.TypeAliasType,
|
|
693
713
|
options: ParserOptions,
|
|
694
714
|
) -> ParserFunction[T]:
|
|
695
715
|
"""
|
|
@@ -744,7 +764,7 @@ class ParserBase(ABC, typing.Generic[T]):
|
|
|
744
764
|
class CachedParser(ParserBase[T], typing.Generic[T]):
|
|
745
765
|
def __init__(
|
|
746
766
|
self,
|
|
747
|
-
args: type[T],
|
|
767
|
+
args: type[T] | typing.TypeAliasType,
|
|
748
768
|
strict_property_parsing: bool = False,
|
|
749
769
|
):
|
|
750
770
|
self.arguments = args
|
|
@@ -63,7 +63,7 @@ def convert_decimals_to_strings(obj: JsonValue) -> JsonValue:
|
|
|
63
63
|
|
|
64
64
|
|
|
65
65
|
class Dataclass(Protocol):
|
|
66
|
-
__dataclass_fields__: ClassVar[dict] # type: ignore[type-arg
|
|
66
|
+
__dataclass_fields__: ClassVar[dict] # type: ignore[type-arg]
|
|
67
67
|
|
|
68
68
|
|
|
69
69
|
def identity(x: T) -> T:
|
|
@@ -467,7 +467,7 @@ class SpecTypeDefn(SpecType):
|
|
|
467
467
|
class SpecTypeGenericParameter(SpecType):
|
|
468
468
|
def __init__(
|
|
469
469
|
self,
|
|
470
|
-
spec_type_definition: SpecTypeDefnObject,
|
|
470
|
+
spec_type_definition: SpecTypeDefnObject | SpecTypeDefnUnion,
|
|
471
471
|
name: str,
|
|
472
472
|
) -> None:
|
|
473
473
|
self.spec_type_definition = spec_type_definition
|
|
@@ -623,8 +623,17 @@ class SpecTypeDefnAlias(SpecTypeDefn):
|
|
|
623
623
|
|
|
624
624
|
|
|
625
625
|
class SpecTypeDefnUnion(SpecTypeDefn):
|
|
626
|
-
|
|
626
|
+
parameters: list[str]
|
|
627
|
+
|
|
628
|
+
def __init__(
|
|
629
|
+
self,
|
|
630
|
+
namespace: SpecNamespace,
|
|
631
|
+
name: str,
|
|
632
|
+
*,
|
|
633
|
+
parameters: list[str] | None = None,
|
|
634
|
+
) -> None:
|
|
627
635
|
super().__init__(namespace, name)
|
|
636
|
+
self.parameters = parameters if parameters is not None else []
|
|
628
637
|
self.discriminator: str | None = None
|
|
629
638
|
self.types: list[SpecType] = []
|
|
630
639
|
self._alias_type: SpecType | None = None
|
|
@@ -638,7 +647,7 @@ class SpecTypeDefnUnion(SpecTypeDefn):
|
|
|
638
647
|
self.discriminator = data.get("discriminator", None)
|
|
639
648
|
|
|
640
649
|
for sub_type_str in data["types"]:
|
|
641
|
-
sub_type = builder.parse_type(self.namespace, sub_type_str)
|
|
650
|
+
sub_type = builder.parse_type(self.namespace, sub_type_str, scope=self)
|
|
642
651
|
self.types.append(sub_type)
|
|
643
652
|
|
|
644
653
|
base_type = builder.namespaces[base_namespace_name].types[BaseTypeName.s_union]
|
|
@@ -1302,9 +1311,16 @@ class SpecNamespace:
|
|
|
1302
1311
|
if defn_type == DefnTypeName.s_alias:
|
|
1303
1312
|
spec_type = SpecTypeDefnAlias(self, name)
|
|
1304
1313
|
elif defn_type == DefnTypeName.s_union:
|
|
1305
|
-
|
|
1306
|
-
|
|
1307
|
-
|
|
1314
|
+
union_parameters = (
|
|
1315
|
+
[
|
|
1316
|
+
parameter.name
|
|
1317
|
+
for name_parameters in parsed_name.parameters
|
|
1318
|
+
for parameter in name_parameters
|
|
1319
|
+
]
|
|
1320
|
+
if parsed_name.parameters is not None
|
|
1321
|
+
else None
|
|
1322
|
+
)
|
|
1323
|
+
spec_type = SpecTypeDefnUnion(self, name, parameters=union_parameters)
|
|
1308
1324
|
elif defn_type == DefnTypeName.s_external:
|
|
1309
1325
|
spec_type = SpecTypeDefnExternal(self, name)
|
|
1310
1326
|
elif defn_type == DefnTypeName.s_string_enum:
|
|
@@ -1550,9 +1566,9 @@ class SpecBuilder:
|
|
|
1550
1566
|
if (
|
|
1551
1567
|
defn_type is None
|
|
1552
1568
|
and scope is not None
|
|
1553
|
-
and isinstance(scope, SpecTypeDefnObject)
|
|
1569
|
+
and isinstance(scope, (SpecTypeDefnObject, SpecTypeDefnUnion))
|
|
1554
1570
|
):
|
|
1555
|
-
if path[0].name in
|
|
1571
|
+
if path[0].name in scope.parameters:
|
|
1556
1572
|
return SpecTypeGenericParameter(
|
|
1557
1573
|
spec_type_definition=scope,
|
|
1558
1574
|
name=path[0].name,
|
{uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/pkgs/type_spec/emit_open_api.py
RENAMED
|
@@ -535,6 +535,11 @@ def _emit_type(
|
|
|
535
535
|
return
|
|
536
536
|
|
|
537
537
|
if isinstance(stype, builder.SpecTypeDefnUnion):
|
|
538
|
+
if len(stype.parameters) > 0:
|
|
539
|
+
raise NotImplementedError(
|
|
540
|
+
f"OpenAPI emission for parametric union {stype.namespace.name}.{stype.name} "
|
|
541
|
+
f"is not supported. Use a concrete instantiation in the API surface instead."
|
|
542
|
+
)
|
|
538
543
|
converted_discriminator_map: dict[str, OpenAPIRefType] = dict()
|
|
539
544
|
if stype.discriminator_map is not None:
|
|
540
545
|
for discriminator_value, base_type in stype.discriminator_map.items():
|
|
@@ -9,7 +9,6 @@ from .builder import (
|
|
|
9
9
|
EndpointEmitType,
|
|
10
10
|
EndpointSpecificPath,
|
|
11
11
|
PropertyExtant,
|
|
12
|
-
base_namespace_name,
|
|
13
12
|
)
|
|
14
13
|
from .config import PythonConfig
|
|
15
14
|
from .cross_output_links import get_path_links
|
|
@@ -941,7 +940,11 @@ def _emit_type(ctx: Context, stype: builder.SpecType) -> None:
|
|
|
941
940
|
|
|
942
941
|
if isinstance(stype, builder.SpecTypeDefnUnion):
|
|
943
942
|
ctx.use_serial_union = True
|
|
944
|
-
|
|
943
|
+
if len(stype.parameters) > 0:
|
|
944
|
+
type_params = f"[{', '.join(stype.parameters)}]"
|
|
945
|
+
ctx.out.write(f"type {stype.name}{type_params} = typing.Annotated[\n")
|
|
946
|
+
else:
|
|
947
|
+
ctx.out.write(f"{stype.name} = typing.Annotated[\n")
|
|
945
948
|
ctx.out.write(f"{INDENT}{refer_to(ctx, stype.get_backing_type())},\n")
|
|
946
949
|
ctx.out.write(f"{INDENT}serial_union_annotation(\n")
|
|
947
950
|
ctx.out.write(
|
|
@@ -1016,19 +1019,13 @@ def _emit_type(ctx: Context, stype: builder.SpecType) -> None:
|
|
|
1016
1019
|
|
|
1017
1020
|
# Emit dataclass decorator
|
|
1018
1021
|
dataclass = "@dataclasses.dataclass"
|
|
1019
|
-
|
|
1020
|
-
ctx,
|
|
1021
|
-
builder.SpecTypeDefnAlias(
|
|
1022
|
-
namespace=ctx.builder.namespaces[base_namespace_name], name="ENABLE_SLOTS"
|
|
1023
|
-
),
|
|
1024
|
-
)
|
|
1025
|
-
dc_args = ["slots=base_t.ENABLE_SLOTS"]
|
|
1022
|
+
dc_args = ["slots=True"]
|
|
1026
1023
|
if stype.is_kw_only():
|
|
1027
1024
|
dc_args.append("kw_only=True")
|
|
1028
1025
|
if stype.is_hashable:
|
|
1029
1026
|
dc_args.extend(["frozen=True", "eq=True"])
|
|
1030
1027
|
if len(dc_args) > 0:
|
|
1031
|
-
dataclass += f"({', '.join(dc_args)})
|
|
1028
|
+
dataclass += f"({', '.join(dc_args)})"
|
|
1032
1029
|
|
|
1033
1030
|
ctx.out.write(f"{dataclass}\n")
|
|
1034
1031
|
ctx.out.write(class_out.getvalue())
|
{uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/pkgs/type_spec/emit_typescript_util.py
RENAMED
|
@@ -176,8 +176,12 @@ def emit_type_ts(ctx: EmitTypescriptContext, stype: builder.SpecType) -> None:
|
|
|
176
176
|
return
|
|
177
177
|
|
|
178
178
|
if isinstance(stype, builder.SpecTypeDefnUnion):
|
|
179
|
+
if len(stype.parameters) > 0:
|
|
180
|
+
full_type_name = f"{stype.name}<{', '.join(stype.parameters)}>"
|
|
181
|
+
else:
|
|
182
|
+
full_type_name = stype.name
|
|
179
183
|
ctx.out.write(
|
|
180
|
-
f"export type {
|
|
184
|
+
f"export type {full_type_name} = {refer_to(ctx, stype.get_backing_type())}\n"
|
|
181
185
|
)
|
|
182
186
|
return
|
|
183
187
|
|
{uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/pkgs/type_spec/parts/base.py.prepart
RENAMED
|
@@ -30,10 +30,6 @@ REF_NAME_STRICT_REGEX = rf"{REF_NAME_STRICT_REGEX_STRING}"
|
|
|
30
30
|
ID_REGEX = r"-?[1-9][0-9]{0,20}"
|
|
31
31
|
|
|
32
32
|
|
|
33
|
-
# ENABLE_SLOTS should be removed after slots have been tested locally
|
|
34
|
-
import os
|
|
35
|
-
ENABLE_SLOTS = os.environ.get("UNC_ENABLE_DATACLASS_SLOTS") == "true"
|
|
36
|
-
|
|
37
33
|
if TYPE_CHECKING:
|
|
38
34
|
JsonValue = Union[JsonScalar, Mapping[str, "JsonValue"], Sequence["JsonValue"]]
|
|
39
35
|
ExtJsonValue = JsonValue
|
|
@@ -30,6 +30,7 @@ def type_path_of(stype: builder.SpecType) -> object: # NamePath
|
|
|
30
30
|
- Scoped Type: [ (namespace-string)..., type-string ]
|
|
31
31
|
- Instance Type: [ "$instance", Scoped-Type-Base, [TypePath-Parameters...] ]
|
|
32
32
|
- Literal Type: [ "$literal", [ "$value", value, value-type-string ]... ]
|
|
33
|
+
- Parameter Type: [ "$param", parameter-name-string ]
|
|
33
34
|
|
|
34
35
|
@return (string-specific, multiple-types)
|
|
35
36
|
"""
|
|
@@ -71,6 +72,9 @@ def type_path_of(stype: builder.SpecType) -> object: # NamePath
|
|
|
71
72
|
[type_path_of(parameter) for parameter in stype.parameters],
|
|
72
73
|
]
|
|
73
74
|
|
|
75
|
+
if isinstance(stype, builder.SpecTypeGenericParameter):
|
|
76
|
+
return ["$param", stype.name]
|
|
77
|
+
|
|
74
78
|
raise Exception("unhandled-SpecType")
|
|
75
79
|
|
|
76
80
|
|
|
@@ -177,12 +181,14 @@ class MapTypeBase:
|
|
|
177
181
|
class MapTypeObject(MapTypeBase):
|
|
178
182
|
base_type_path: object
|
|
179
183
|
properties: dict[OpaqueKey, MapProperty]
|
|
184
|
+
parameters: list[str] | None = None
|
|
180
185
|
|
|
181
186
|
|
|
182
187
|
@dataclasses.dataclass
|
|
183
188
|
class MapTypeAlias(MapTypeBase):
|
|
184
189
|
alias_type_path: object
|
|
185
190
|
discriminator: str | None
|
|
191
|
+
parameters: list[str] | None = None
|
|
186
192
|
|
|
187
193
|
|
|
188
194
|
@dataclasses.dataclass
|
|
@@ -387,23 +393,28 @@ def _validate_type_ext_info(
|
|
|
387
393
|
def _build_map_type(
|
|
388
394
|
build: builder.SpecBuilder, stype: builder.SpecTypeDefn, python: bool = False
|
|
389
395
|
) -> MapType | None:
|
|
390
|
-
# limited support for now
|
|
391
396
|
if (
|
|
392
397
|
isinstance(stype, builder.SpecTypeDefnObject)
|
|
393
|
-
and len(stype.parameters) == 0
|
|
394
398
|
and not stype.is_base
|
|
395
399
|
and stype.base is not None
|
|
396
400
|
):
|
|
397
401
|
_, ext_info = _validate_type_ext_info(stype)
|
|
398
402
|
|
|
399
403
|
properties: dict[OpaqueKey, MapProperty] = {}
|
|
404
|
+
params = stype.parameters if len(stype.parameters) > 0 else None
|
|
405
|
+
base_for_path = (
|
|
406
|
+
stype.base_type_instance
|
|
407
|
+
if stype.base_type_instance is not None
|
|
408
|
+
else stype.base
|
|
409
|
+
)
|
|
400
410
|
map_type = MapTypeObject(
|
|
401
411
|
type_name=stype.name,
|
|
402
412
|
label=stype.label,
|
|
403
413
|
properties=properties,
|
|
404
414
|
desc=stype.desc,
|
|
405
|
-
base_type_path=type_path_of(
|
|
415
|
+
base_type_path=type_path_of(base_for_path),
|
|
406
416
|
ext_info=ext_info,
|
|
417
|
+
parameters=params,
|
|
407
418
|
)
|
|
408
419
|
|
|
409
420
|
if stype.properties is not None:
|
|
@@ -441,10 +452,9 @@ def _build_map_type(
|
|
|
441
452
|
)
|
|
442
453
|
|
|
443
454
|
if isinstance(stype, builder.SpecTypeDefnUnion):
|
|
444
|
-
# Emit as a basic alias for now, as the front-end supports only those for now
|
|
445
|
-
# IMPROVE: We should emit a proper union type and support that
|
|
446
455
|
backing = stype.get_backing_type()
|
|
447
456
|
ext_info = _parse_ext_info(stype.ext_info)
|
|
457
|
+
union_params = stype.parameters if len(stype.parameters) > 0 else None
|
|
448
458
|
return MapTypeAlias(
|
|
449
459
|
type_name=stype.name,
|
|
450
460
|
label=stype.label,
|
|
@@ -452,6 +462,7 @@ def _build_map_type(
|
|
|
452
462
|
alias_type_path=type_path_of(backing),
|
|
453
463
|
ext_info=_parse_ext_info(stype.ext_info),
|
|
454
464
|
discriminator=stype.discriminator,
|
|
465
|
+
parameters=union_params,
|
|
455
466
|
)
|
|
456
467
|
|
|
457
468
|
if isinstance(stype, builder.SpecTypeDefnStringEnum):
|
{uncountablepythonsdk-0.0.169 → uncountablepythonsdk-0.0.171}/pkgs/type_spec/value_spec/__main__.py
RENAMED
|
@@ -14,8 +14,6 @@ After that you can also specify a `!` indicating the argument may not be null.
|
|
|
14
14
|
If this is not specified, then a null input on this argument should produce a null output.
|
|
15
15
|
We prefer not to use `!` as we want to encourage null pass-through where possible.
|
|
16
16
|
|
|
17
|
-
If null is allowed as a legitimate value, such as in conditionals like `is_null`,
|
|
18
|
-
then `!usenull` must be specified, this distinguishes it from the pass-through case.
|
|
19
17
|
The accepted argument type must accept "None", it is not implied.
|
|
20
18
|
"""
|
|
21
19
|
|
|
@@ -87,7 +85,7 @@ class Source:
|
|
|
87
85
|
return self._text[start : self._at]
|
|
88
86
|
|
|
89
87
|
|
|
90
|
-
_re_argument_name = re.compile(r"([a-z_]+)(\?|\+)?(
|
|
88
|
+
_re_argument_name = re.compile(r"([a-z_]+)(\?|\+)?(!)?:")
|
|
91
89
|
|
|
92
90
|
|
|
93
91
|
def parse_function_signature(text: str) -> ParsedFunctionSignature:
|
|
@@ -111,10 +109,8 @@ def parse_function_signature(text: str) -> ParsedFunctionSignature:
|
|
|
111
109
|
match arg_group.group(3):
|
|
112
110
|
case "!":
|
|
113
111
|
on_null = value_spec_t.OnNull.DISALLOW
|
|
114
|
-
case "!usenull":
|
|
115
|
-
on_null = value_spec_t.OnNull.USE
|
|
116
112
|
case _:
|
|
117
|
-
on_null = value_spec_t.OnNull.
|
|
113
|
+
on_null = value_spec_t.OnNull.USE
|
|
118
114
|
|
|
119
115
|
extant = value_spec_t.ArgumentExtant.REQUIRED
|
|
120
116
|
extant_marker = arg_group.group(2)
|
|
@@ -70,7 +70,7 @@ def _emit_function_wrapper(function: value_spec_t.Function) -> str:
|
|
|
70
70
|
else:
|
|
71
71
|
python_type = _emit_python_type(argument.type)
|
|
72
72
|
if (
|
|
73
|
-
argument.on_null == value_spec_t.OnNull.
|
|
73
|
+
argument.on_null == value_spec_t.OnNull.USE
|
|
74
74
|
or argument.extant == value_spec_t.ArgumentExtant.MISSING
|
|
75
75
|
):
|
|
76
76
|
python_type += " | None"
|
|
@@ -105,7 +105,7 @@ def send_retry_job_message(
|
|
|
105
105
|
|
|
106
106
|
return response.queued_job_uuid
|
|
107
107
|
except grpc.RpcError as e:
|
|
108
|
-
raise ValueError(e.details())
|
|
108
|
+
raise ValueError(e.details())
|
|
109
109
|
|
|
110
110
|
|
|
111
111
|
def check_health(*, host: str = _LOCAL_RPC_HOST, port: int) -> bool:
|
|
@@ -152,7 +152,7 @@ def send_list_queued_jobs_message(
|
|
|
152
152
|
request, timeout=_DEFAULT_MESSAGE_TIMEOUT_SECS
|
|
153
153
|
)
|
|
154
154
|
except grpc.RpcError as e:
|
|
155
|
-
raise ValueError(e.details())
|
|
155
|
+
raise ValueError(e.details())
|
|
156
156
|
|
|
157
157
|
assert isinstance(response, ListQueuedJobsResult)
|
|
158
158
|
return list(response.queued_jobs)
|
|
@@ -167,7 +167,7 @@ def send_vaccuum_queued_jobs_message(*, host: str = "localhost", port: int) -> N
|
|
|
167
167
|
request, timeout=_DEFAULT_MESSAGE_TIMEOUT_SECS
|
|
168
168
|
)
|
|
169
169
|
except grpc.RpcError as e:
|
|
170
|
-
raise ValueError(e.details())
|
|
170
|
+
raise ValueError(e.details())
|
|
171
171
|
|
|
172
172
|
assert isinstance(response, VaccuumQueuedJobsResult)
|
|
173
173
|
return None
|
|
@@ -26,6 +26,7 @@ from .api.entity import create_entities as create_entities_t
|
|
|
26
26
|
from .api.entity import create_entity as create_entity_t
|
|
27
27
|
from .api.inputs import create_inputs as create_inputs_t
|
|
28
28
|
from .api.recipes import create_mix_order as create_mix_order_t
|
|
29
|
+
from .api.entity import create_or_update_entities as create_or_update_entities_t
|
|
29
30
|
from .api.entity import create_or_update_entity as create_or_update_entity_t
|
|
30
31
|
from .api.recipes import create_recipe as create_recipe_t
|
|
31
32
|
from .api.recipe_links import create_recipe_link as create_recipe_link_t
|
|
@@ -119,6 +120,7 @@ from . import runsheet_t as runsheet_t
|
|
|
119
120
|
from . import secret_retrieval_t as secret_retrieval_t
|
|
120
121
|
from .api.entity import set_barcode as set_barcode_t
|
|
121
122
|
from .api.permissions import set_core_permissions as set_core_permissions_t
|
|
123
|
+
from .api.entity import set_entities_field_values as set_entities_field_values_t
|
|
122
124
|
from .api.entity import set_entity_field_values as set_entity_field_values_t
|
|
123
125
|
from .api.permissions import set_entity_permission as set_entity_permission_t
|
|
124
126
|
from .api.inputs import set_input_attribute_values as set_input_attribute_values_t
|
|
@@ -180,6 +182,7 @@ __all__: list[str] = [
|
|
|
180
182
|
"create_entity_t",
|
|
181
183
|
"create_inputs_t",
|
|
182
184
|
"create_mix_order_t",
|
|
185
|
+
"create_or_update_entities_t",
|
|
183
186
|
"create_or_update_entity_t",
|
|
184
187
|
"create_recipe_t",
|
|
185
188
|
"create_recipe_link_t",
|
|
@@ -273,6 +276,7 @@ __all__: list[str] = [
|
|
|
273
276
|
"secret_retrieval_t",
|
|
274
277
|
"set_barcode_t",
|
|
275
278
|
"set_core_permissions_t",
|
|
279
|
+
"set_entities_field_values_t",
|
|
276
280
|
"set_entity_field_values_t",
|
|
277
281
|
"set_entity_permission_t",
|
|
278
282
|
"set_input_attribute_values_t",
|
|
@@ -43,7 +43,7 @@ class RequestMethod(StrEnum):
|
|
|
43
43
|
named_type_path="sdk.api.batch.execute_batch.BatchRequest",
|
|
44
44
|
unconverted_values={"data"},
|
|
45
45
|
)
|
|
46
|
-
@dataclasses.dataclass(slots=
|
|
46
|
+
@dataclasses.dataclass(slots=True, kw_only=True)
|
|
47
47
|
class BatchRequest:
|
|
48
48
|
path: str
|
|
49
49
|
method: RequestMethod
|
|
@@ -54,7 +54,7 @@ class BatchRequest:
|
|
|
54
54
|
@serial_class(
|
|
55
55
|
named_type_path="sdk.api.batch.execute_batch.Arguments",
|
|
56
56
|
)
|
|
57
|
-
@dataclasses.dataclass(slots=
|
|
57
|
+
@dataclasses.dataclass(slots=True, kw_only=True)
|
|
58
58
|
class Arguments:
|
|
59
59
|
requests: list[BatchRequest]
|
|
60
60
|
|
|
@@ -64,7 +64,7 @@ class Arguments:
|
|
|
64
64
|
named_type_path="sdk.api.batch.execute_batch.BatchResponse",
|
|
65
65
|
unconverted_values={"response"},
|
|
66
66
|
)
|
|
67
|
-
@dataclasses.dataclass(slots=
|
|
67
|
+
@dataclasses.dataclass(slots=True, kw_only=True)
|
|
68
68
|
class BatchResponse:
|
|
69
69
|
path: str
|
|
70
70
|
method: RequestMethod
|
|
@@ -76,7 +76,7 @@ class BatchResponse:
|
|
|
76
76
|
@serial_class(
|
|
77
77
|
named_type_path="sdk.api.batch.execute_batch.Data",
|
|
78
78
|
)
|
|
79
|
-
@dataclasses.dataclass(slots=
|
|
79
|
+
@dataclasses.dataclass(slots=True, kw_only=True)
|
|
80
80
|
class Data:
|
|
81
81
|
responses: list[BatchResponse]
|
|
82
82
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -26,7 +26,7 @@ ENDPOINT_PATH = "api/external/batch/execute_batch_load_async"
|
|
|
26
26
|
@serial_class(
|
|
27
27
|
named_type_path="sdk.api.batch.execute_batch_load_async.Arguments",
|
|
28
28
|
)
|
|
29
|
-
@dataclasses.dataclass(slots=
|
|
29
|
+
@dataclasses.dataclass(slots=True, kw_only=True)
|
|
30
30
|
class Arguments:
|
|
31
31
|
requests: list[async_batch_t.AsyncBatchRequest]
|
|
32
32
|
|
|
@@ -35,7 +35,7 @@ class Arguments:
|
|
|
35
35
|
@serial_class(
|
|
36
36
|
named_type_path="sdk.api.batch.execute_batch_load_async.Data",
|
|
37
37
|
)
|
|
38
|
-
@dataclasses.dataclass(slots=
|
|
38
|
+
@dataclasses.dataclass(slots=True, kw_only=True)
|
|
39
39
|
class Data:
|
|
40
40
|
job_id: base_t.ObjectId
|
|
41
41
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -28,7 +28,7 @@ ENDPOINT_PATH = "api/external/chemical/convert_chemical_formats"
|
|
|
28
28
|
@serial_class(
|
|
29
29
|
named_type_path="sdk.api.chemical.convert_chemical_formats.ChemicalStructureFile",
|
|
30
30
|
)
|
|
31
|
-
@dataclasses.dataclass(slots=
|
|
31
|
+
@dataclasses.dataclass(slots=True, kw_only=True)
|
|
32
32
|
class ChemicalStructureFile:
|
|
33
33
|
struct_file: str
|
|
34
34
|
|
|
@@ -37,7 +37,7 @@ class ChemicalStructureFile:
|
|
|
37
37
|
@serial_class(
|
|
38
38
|
named_type_path="sdk.api.chemical.convert_chemical_formats.Arguments",
|
|
39
39
|
)
|
|
40
|
-
@dataclasses.dataclass(slots=
|
|
40
|
+
@dataclasses.dataclass(slots=True, kw_only=True)
|
|
41
41
|
class Arguments:
|
|
42
42
|
source_chemical_structures: list[ChemicalStructureFile]
|
|
43
43
|
|
|
@@ -56,7 +56,7 @@ UncountableChemicalStructure = typing.Annotated[
|
|
|
56
56
|
named_type_path="sdk.api.chemical.convert_chemical_formats.Data",
|
|
57
57
|
unconverted_values={"chemical_structures"},
|
|
58
58
|
)
|
|
59
|
-
@dataclasses.dataclass(slots=
|
|
59
|
+
@dataclasses.dataclass(slots=True, kw_only=True)
|
|
60
60
|
class Data:
|
|
61
61
|
chemical_structures: list[UncountableChemicalStructure]
|
|
62
62
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -10,7 +10,6 @@ import dataclasses
|
|
|
10
10
|
from pkgs.serialization import serial_class
|
|
11
11
|
from pkgs.serialization import serial_alias_annotation
|
|
12
12
|
from ... import async_batch_t
|
|
13
|
-
from ... import base_t
|
|
14
13
|
from ... import condition_match_t
|
|
15
14
|
from ... import identifier_t
|
|
16
15
|
|
|
@@ -32,7 +31,7 @@ ENDPOINT_PATH = "api/external/condition_parameters/upsert_condition_match"
|
|
|
32
31
|
named_type_path="sdk.api.condition_parameters.upsert_condition_match.ConditionParameter",
|
|
33
32
|
to_string_values={"max_value", "min_value"},
|
|
34
33
|
)
|
|
35
|
-
@dataclasses.dataclass(slots=
|
|
34
|
+
@dataclasses.dataclass(slots=True, kw_only=True)
|
|
36
35
|
class ConditionParameter:
|
|
37
36
|
condition_parameter_key: identifier_t.IdentifierKey
|
|
38
37
|
allow_null: bool
|
|
@@ -55,7 +54,7 @@ MatchType = typing.Annotated[
|
|
|
55
54
|
@serial_class(
|
|
56
55
|
named_type_path="sdk.api.condition_parameters.upsert_condition_match.Arguments",
|
|
57
56
|
)
|
|
58
|
-
@dataclasses.dataclass(slots=
|
|
57
|
+
@dataclasses.dataclass(slots=True, kw_only=True)
|
|
59
58
|
class Arguments:
|
|
60
59
|
explicit_name: bool = False
|
|
61
60
|
name: str | None = None
|
|
@@ -68,7 +67,7 @@ class Arguments:
|
|
|
68
67
|
@serial_class(
|
|
69
68
|
named_type_path="sdk.api.condition_parameters.upsert_condition_match.Data",
|
|
70
69
|
)
|
|
71
|
-
@dataclasses.dataclass(slots=
|
|
70
|
+
@dataclasses.dataclass(slots=True, kw_only=True)
|
|
72
71
|
class Data(async_batch_t.AsyncBatchActionReturn):
|
|
73
72
|
pass
|
|
74
73
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -10,7 +10,6 @@ import dataclasses
|
|
|
10
10
|
from pkgs.serialization import serial_class
|
|
11
11
|
from pkgs.serialization import serial_union_annotation
|
|
12
12
|
from ... import async_batch_t
|
|
13
|
-
from ... import base_t
|
|
14
13
|
from ... import condition_match_t
|
|
15
14
|
from ... import identifier_t
|
|
16
15
|
|
|
@@ -38,7 +37,7 @@ ENDPOINT_PATH = "api/external/condition_parameters/upsert_condition_matches"
|
|
|
38
37
|
named_type_path="sdk.api.condition_parameters.upsert_condition_matches.ConditionParameterAll",
|
|
39
38
|
parse_require={"match_type"},
|
|
40
39
|
)
|
|
41
|
-
@dataclasses.dataclass(slots=
|
|
40
|
+
@dataclasses.dataclass(slots=True, kw_only=True)
|
|
42
41
|
class ConditionParameterAll:
|
|
43
42
|
condition_parameter_key: identifier_t.IdentifierKey
|
|
44
43
|
allow_null: bool
|
|
@@ -50,7 +49,7 @@ class ConditionParameterAll:
|
|
|
50
49
|
named_type_path="sdk.api.condition_parameters.upsert_condition_matches.ConditionParameterEqNumeric",
|
|
51
50
|
parse_require={"match_type"},
|
|
52
51
|
)
|
|
53
|
-
@dataclasses.dataclass(slots=
|
|
52
|
+
@dataclasses.dataclass(slots=True, kw_only=True)
|
|
54
53
|
class ConditionParameterEqNumeric:
|
|
55
54
|
condition_parameter_key: identifier_t.IdentifierKey
|
|
56
55
|
allow_null: bool
|
|
@@ -63,7 +62,7 @@ class ConditionParameterEqNumeric:
|
|
|
63
62
|
named_type_path="sdk.api.condition_parameters.upsert_condition_matches.ConditionParameterEqCategorical",
|
|
64
63
|
parse_require={"match_type"},
|
|
65
64
|
)
|
|
66
|
-
@dataclasses.dataclass(slots=
|
|
65
|
+
@dataclasses.dataclass(slots=True, kw_only=True)
|
|
67
66
|
class ConditionParameterEqCategorical:
|
|
68
67
|
condition_parameter_key: identifier_t.IdentifierKey
|
|
69
68
|
allow_null: bool
|
|
@@ -77,7 +76,7 @@ class ConditionParameterEqCategorical:
|
|
|
77
76
|
to_string_values={"max_value", "min_value"},
|
|
78
77
|
parse_require={"match_type"},
|
|
79
78
|
)
|
|
80
|
-
@dataclasses.dataclass(slots=
|
|
79
|
+
@dataclasses.dataclass(slots=True, kw_only=True)
|
|
81
80
|
class ConditionParameterRange:
|
|
82
81
|
condition_parameter_key: identifier_t.IdentifierKey
|
|
83
82
|
allow_null: bool
|
|
@@ -107,7 +106,7 @@ ConditionParameter = typing.Annotated[
|
|
|
107
106
|
named_type_path="sdk.api.condition_parameters.upsert_condition_matches.UpsertArgsParameters",
|
|
108
107
|
parse_require={"kind"},
|
|
109
108
|
)
|
|
110
|
-
@dataclasses.dataclass(slots=
|
|
109
|
+
@dataclasses.dataclass(slots=True, kw_only=True)
|
|
111
110
|
class UpsertArgsParameters:
|
|
112
111
|
condition_parameters: list[ConditionParameter]
|
|
113
112
|
kind: typing.Literal["condition_parameters"] = "condition_parameters"
|
|
@@ -120,7 +119,7 @@ class UpsertArgsParameters:
|
|
|
120
119
|
named_type_path="sdk.api.condition_parameters.upsert_condition_matches.UpsertArgsOutputConditions",
|
|
121
120
|
parse_require={"kind"},
|
|
122
121
|
)
|
|
123
|
-
@dataclasses.dataclass(slots=
|
|
122
|
+
@dataclasses.dataclass(slots=True, kw_only=True)
|
|
124
123
|
class UpsertArgsOutputConditions:
|
|
125
124
|
output_condition_keys: list[identifier_t.IdentifierKey]
|
|
126
125
|
kind: typing.Literal["output_conditions"] = "output_conditions"
|
|
@@ -146,7 +145,7 @@ UpsertArgs = typing.Annotated[
|
|
|
146
145
|
@serial_class(
|
|
147
146
|
named_type_path="sdk.api.condition_parameters.upsert_condition_matches.Arguments",
|
|
148
147
|
)
|
|
149
|
-
@dataclasses.dataclass(slots=
|
|
148
|
+
@dataclasses.dataclass(slots=True, kw_only=True)
|
|
150
149
|
class Arguments:
|
|
151
150
|
upserts: list[UpsertArgs]
|
|
152
151
|
|
|
@@ -155,7 +154,7 @@ class Arguments:
|
|
|
155
154
|
@serial_class(
|
|
156
155
|
named_type_path="sdk.api.condition_parameters.upsert_condition_matches.Data",
|
|
157
156
|
)
|
|
158
|
-
@dataclasses.dataclass(slots=
|
|
157
|
+
@dataclasses.dataclass(slots=True, kw_only=True)
|
|
159
158
|
class Data:
|
|
160
159
|
results: list[async_batch_t.AsyncBatchActionReturn]
|
|
161
160
|
# DO NOT MODIFY -- This file is generated by type_spec
|