UncountablePythonSDK 0.0.170__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.
Files changed (415) hide show
  1. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/PKG-INFO +1 -1
  2. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/UncountablePythonSDK.egg-info/PKG-INFO +1 -1
  3. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/UncountablePythonSDK.egg-info/SOURCES.txt +2 -0
  4. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/pkgs/argument_parser/argument_parser.py +24 -4
  5. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/pkgs/type_spec/builder.py +24 -8
  6. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/pkgs/type_spec/emit_open_api.py +5 -0
  7. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/pkgs/type_spec/emit_python.py +5 -1
  8. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/pkgs/type_spec/emit_typescript_util.py +5 -1
  9. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/pkgs/type_spec/type_info/emit_type_info.py +2 -0
  10. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/__init__.py +4 -0
  11. uncountablepythonsdk-0.0.171/uncountable/types/api/entity/create_or_update_entities.py +57 -0
  12. uncountablepythonsdk-0.0.171/uncountable/types/api/entity/set_entities_field_values.py +55 -0
  13. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/client_base.py +48 -0
  14. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/.github/workflows/documentation.yml +0 -0
  15. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/.github/workflows/publish.yml +0 -0
  16. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/.gitignore +0 -0
  17. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/.python-version +0 -0
  18. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/README.md +0 -0
  19. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/UncountablePythonSDK.egg-info/dependency_links.txt +0 -0
  20. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/UncountablePythonSDK.egg-info/requires.txt +0 -0
  21. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/UncountablePythonSDK.egg-info/top_level.txt +0 -0
  22. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/docs/.gitignore +0 -0
  23. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/docs/conf.py +0 -0
  24. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/docs/index.md +0 -0
  25. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/docs/integration_examples/add_file_to_folder.md +0 -0
  26. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/docs/integration_examples/create_ingredient.md +0 -0
  27. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/docs/integration_examples/create_output.md +0 -0
  28. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/docs/integration_examples/index.md +0 -0
  29. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/docs/integration_examples/upload_file.md +0 -0
  30. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/docs/justfile +0 -0
  31. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/docs/requirements.txt +0 -0
  32. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/docs/static/favicons/android-chrome-192x192.png +0 -0
  33. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/docs/static/favicons/android-chrome-512x512.png +0 -0
  34. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/docs/static/favicons/apple-touch-icon.png +0 -0
  35. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/docs/static/favicons/browserconfig.xml +0 -0
  36. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/docs/static/favicons/favicon-16x16.png +0 -0
  37. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/docs/static/favicons/favicon-32x32.png +0 -0
  38. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/docs/static/favicons/manifest.json +0 -0
  39. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/docs/static/favicons/mstile-150x150.png +0 -0
  40. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/docs/static/favicons/safari-pinned-tab.svg +0 -0
  41. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/docs/static/logo_blue.png +0 -0
  42. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/examples/async_batch.py +0 -0
  43. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/examples/async_batch_large_parse.py +0 -0
  44. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/examples/basic_auth.py +0 -0
  45. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/examples/create_entity.py +0 -0
  46. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/examples/create_ingredient_sdk.py +0 -0
  47. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/examples/download_files.py +0 -0
  48. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/examples/edit_recipe_inputs.py +0 -0
  49. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/examples/integration-server/jobs/materials_auto/concurrent_cron.py +0 -0
  50. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/examples/integration-server/jobs/materials_auto/example_cron.py +0 -0
  51. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/examples/integration-server/jobs/materials_auto/example_http.py +0 -0
  52. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/examples/integration-server/jobs/materials_auto/example_instrument.py +0 -0
  53. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/examples/integration-server/jobs/materials_auto/example_parse.py +0 -0
  54. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/examples/integration-server/jobs/materials_auto/example_predictions.py +0 -0
  55. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/examples/integration-server/jobs/materials_auto/example_runsheet_wh.py +0 -0
  56. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/examples/integration-server/jobs/materials_auto/example_wh.py +0 -0
  57. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/examples/integration-server/jobs/materials_auto/profile.yaml +0 -0
  58. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/examples/integration-server/pyproject.toml +0 -0
  59. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/examples/invoke_uploader.py +0 -0
  60. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/examples/oauth.py +0 -0
  61. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/examples/set_input_pdf_attribute.py +0 -0
  62. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/examples/set_recipe_metadata_file.py +0 -0
  63. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/examples/set_recipe_output_file_sdk.py +0 -0
  64. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/examples/upload_files.py +0 -0
  65. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/pkgs/__init__.py +0 -0
  66. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/pkgs/argument_parser/__init__.py +0 -0
  67. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/pkgs/argument_parser/_is_enum.py +0 -0
  68. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/pkgs/argument_parser/_is_namedtuple.py +0 -0
  69. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/pkgs/argument_parser/case_convert.py +0 -0
  70. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/pkgs/argument_parser/parser_error.py +0 -0
  71. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/pkgs/filesystem_utils/__init__.py +0 -0
  72. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/pkgs/filesystem_utils/_blob_session.py +0 -0
  73. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/pkgs/filesystem_utils/_file_share_session.py +0 -0
  74. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/pkgs/filesystem_utils/_gdrive_session.py +0 -0
  75. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/pkgs/filesystem_utils/_local_session.py +0 -0
  76. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/pkgs/filesystem_utils/_s3_session.py +0 -0
  77. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/pkgs/filesystem_utils/_sftp_session.py +0 -0
  78. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/pkgs/filesystem_utils/file_type_utils.py +0 -0
  79. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/pkgs/filesystem_utils/filesystem_session.py +0 -0
  80. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/pkgs/py.typed +0 -0
  81. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/pkgs/serialization/__init__.py +0 -0
  82. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/pkgs/serialization/annotation.py +0 -0
  83. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/pkgs/serialization/missing_sentry.py +0 -0
  84. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/pkgs/serialization/opaque_key.py +0 -0
  85. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/pkgs/serialization/serial_alias.py +0 -0
  86. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/pkgs/serialization/serial_class.py +0 -0
  87. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/pkgs/serialization/serial_generic.py +0 -0
  88. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/pkgs/serialization/serial_union.py +0 -0
  89. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/pkgs/serialization/unknown.py +0 -0
  90. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/pkgs/serialization/yaml.py +0 -0
  91. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/pkgs/serialization_util/__init__.py +0 -0
  92. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/pkgs/serialization_util/_get_type_for_serialization.py +0 -0
  93. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/pkgs/serialization_util/convert_to_snakecase.py +0 -0
  94. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/pkgs/serialization_util/dataclasses.py +0 -0
  95. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/pkgs/serialization_util/serialization_helpers.py +0 -0
  96. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/pkgs/strenum_compat/__init__.py +0 -0
  97. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/pkgs/strenum_compat/strenum_compat.py +0 -0
  98. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/pkgs/type_spec/__init__.py +0 -0
  99. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/pkgs/type_spec/__main__.py +0 -0
  100. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/pkgs/type_spec/actions_registry/__init__.py +0 -0
  101. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/pkgs/type_spec/actions_registry/__main__.py +0 -0
  102. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/pkgs/type_spec/actions_registry/emit_typescript.py +0 -0
  103. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/pkgs/type_spec/builder_types.py +0 -0
  104. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/pkgs/type_spec/config.py +0 -0
  105. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/pkgs/type_spec/cross_output_links.py +0 -0
  106. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/pkgs/type_spec/emit_io_ts.py +0 -0
  107. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/pkgs/type_spec/emit_open_api_util.py +0 -0
  108. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/pkgs/type_spec/emit_typescript.py +0 -0
  109. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/pkgs/type_spec/load_types.py +0 -0
  110. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/pkgs/type_spec/non_discriminated_union_exceptions.py +0 -0
  111. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/pkgs/type_spec/open_api_util.py +0 -0
  112. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/pkgs/type_spec/parts/base.py.prepart +0 -0
  113. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/pkgs/type_spec/parts/base.ts.prepart +0 -0
  114. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/pkgs/type_spec/test.py +0 -0
  115. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/pkgs/type_spec/type_info/__main__.py +0 -0
  116. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/pkgs/type_spec/ui_entry_actions/__init__.py +0 -0
  117. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/pkgs/type_spec/ui_entry_actions/generate_ui_entry_actions.py +0 -0
  118. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/pkgs/type_spec/util.py +0 -0
  119. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/pkgs/type_spec/value_spec/__init__.py +0 -0
  120. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/pkgs/type_spec/value_spec/__main__.py +0 -0
  121. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/pkgs/type_spec/value_spec/convert_type.py +0 -0
  122. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/pkgs/type_spec/value_spec/emit_python.py +0 -0
  123. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/pkgs/type_spec/value_spec/types.py +0 -0
  124. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/pyproject.toml +0 -0
  125. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/setup.cfg +0 -0
  126. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/__init__.py +0 -0
  127. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/core/__init__.py +0 -0
  128. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/core/async_batch.py +0 -0
  129. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/core/client.py +0 -0
  130. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/core/environment.py +0 -0
  131. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/core/file_upload.py +0 -0
  132. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/core/query/__init__.py +0 -0
  133. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/core/query/builder.py +0 -0
  134. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/core/query/column.py +0 -0
  135. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/core/query/row.py +0 -0
  136. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/core/query/types.py +0 -0
  137. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/core/types.py +0 -0
  138. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/integration/__init__.py +0 -0
  139. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/integration/cli.py +0 -0
  140. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/integration/construct_client.py +0 -0
  141. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/integration/cron.py +0 -0
  142. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/integration/db/__init__.py +0 -0
  143. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/integration/db/connect.py +0 -0
  144. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/integration/db/session.py +0 -0
  145. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/integration/entrypoint.py +0 -0
  146. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/integration/executors/__init__.py +0 -0
  147. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/integration/executors/executors.py +0 -0
  148. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/integration/executors/generic_upload_executor.py +0 -0
  149. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/integration/executors/script_executor.py +0 -0
  150. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/integration/http_server/__init__.py +0 -0
  151. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/integration/http_server/types.py +0 -0
  152. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/integration/job.py +0 -0
  153. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/integration/queue_runner/__init__.py +0 -0
  154. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/integration/queue_runner/command_server/__init__.py +0 -0
  155. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/integration/queue_runner/command_server/command_client.py +0 -0
  156. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/integration/queue_runner/command_server/command_server.py +0 -0
  157. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/integration/queue_runner/command_server/constants.py +0 -0
  158. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/integration/queue_runner/command_server/protocol/__init__.py +0 -0
  159. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/integration/queue_runner/command_server/protocol/command_server.proto +0 -0
  160. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/integration/queue_runner/command_server/protocol/command_server_pb2.py +0 -0
  161. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/integration/queue_runner/command_server/protocol/command_server_pb2.pyi +0 -0
  162. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/integration/queue_runner/command_server/protocol/command_server_pb2_grpc.py +0 -0
  163. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/integration/queue_runner/command_server/types.py +0 -0
  164. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/integration/queue_runner/datastore/__init__.py +0 -0
  165. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/integration/queue_runner/datastore/datastore_sqlite.py +0 -0
  166. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/integration/queue_runner/datastore/interface.py +0 -0
  167. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/integration/queue_runner/datastore/model.py +0 -0
  168. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/integration/queue_runner/job_scheduler.py +0 -0
  169. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/integration/queue_runner/queue_runner.py +0 -0
  170. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/integration/queue_runner/types.py +0 -0
  171. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/integration/queue_runner/worker.py +0 -0
  172. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/integration/request_context.py +0 -0
  173. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/integration/scan_profiles.py +0 -0
  174. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/integration/scheduler.py +0 -0
  175. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/integration/secret_retrieval/__init__.py +0 -0
  176. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/integration/secret_retrieval/retrieve_secret.py +0 -0
  177. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/integration/server.py +0 -0
  178. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/integration/telemetry.py +0 -0
  179. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/integration/webhook_server/entrypoint.py +0 -0
  180. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/py.typed +0 -0
  181. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/__init__.py +0 -0
  182. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/batch/__init__.py +0 -0
  183. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/batch/execute_batch.py +0 -0
  184. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/batch/execute_batch_load_async.py +0 -0
  185. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/chemical/__init__.py +0 -0
  186. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/chemical/convert_chemical_formats.py +0 -0
  187. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/condition_parameters/__init__.py +0 -0
  188. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/condition_parameters/upsert_condition_match.py +0 -0
  189. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/condition_parameters/upsert_condition_matches.py +0 -0
  190. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/entity/__init__.py +0 -0
  191. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/entity/create_entities.py +0 -0
  192. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/entity/create_entity.py +0 -0
  193. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/entity/create_or_update_entity.py +0 -0
  194. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/entity/export_entities.py +0 -0
  195. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/entity/get_entities_data.py +0 -0
  196. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/entity/grant_entity_permissions.py +0 -0
  197. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/entity/list_aggregate.py +0 -0
  198. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/entity/list_entities.py +0 -0
  199. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/entity/lock_entity.py +0 -0
  200. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/entity/lookup_entity.py +0 -0
  201. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/entity/resolve_entity_ids.py +0 -0
  202. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/entity/set_barcode.py +0 -0
  203. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/entity/set_entity_field_values.py +0 -0
  204. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/entity/set_values.py +0 -0
  205. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/entity/transition_entity_phase.py +0 -0
  206. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/entity/unlock_entity.py +0 -0
  207. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/equipment/__init__.py +0 -0
  208. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/equipment/associate_equipment_input.py +0 -0
  209. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/field_options/__init__.py +0 -0
  210. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/field_options/upsert_field_options.py +0 -0
  211. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/file_folders/__init__.py +0 -0
  212. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/file_folders/add_file_to_folder.py +0 -0
  213. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/file_folders/modify_file_system.py +0 -0
  214. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/files/__init__.py +0 -0
  215. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/files/download_file.py +0 -0
  216. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/id_source/__init__.py +0 -0
  217. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/id_source/list_id_source.py +0 -0
  218. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/id_source/match_id_source.py +0 -0
  219. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/input_groups/__init__.py +0 -0
  220. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/input_groups/get_input_group_names.py +0 -0
  221. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/inputs/__init__.py +0 -0
  222. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/inputs/create_inputs.py +0 -0
  223. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/inputs/get_input_data.py +0 -0
  224. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/inputs/get_input_names.py +0 -0
  225. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/inputs/get_inputs_data.py +0 -0
  226. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/inputs/set_input_attribute_values.py +0 -0
  227. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/inputs/set_input_category.py +0 -0
  228. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/inputs/set_input_subcategories.py +0 -0
  229. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/inputs/set_intermediate_type.py +0 -0
  230. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/integrations/__init__.py +0 -0
  231. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/integrations/publish_realtime_data.py +0 -0
  232. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/integrations/push_notification.py +0 -0
  233. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/integrations/register_sockets_token.py +0 -0
  234. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/listing/__init__.py +0 -0
  235. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/listing/export_listing.py +0 -0
  236. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/listing/fetch_listing.py +0 -0
  237. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/material_families/__init__.py +0 -0
  238. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/material_families/update_entity_material_families.py +0 -0
  239. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/notebooks/__init__.py +0 -0
  240. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/notebooks/add_notebook_content.py +0 -0
  241. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/notebooks/get_notebook_content.py +0 -0
  242. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/output_parameters/__init__.py +0 -0
  243. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/output_parameters/swap_output_condition_parameters.py +0 -0
  244. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/outputs/__init__.py +0 -0
  245. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/outputs/get_output_data.py +0 -0
  246. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/outputs/get_output_names.py +0 -0
  247. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/outputs/get_output_organization.py +0 -0
  248. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/outputs/resolve_output_conditions.py +0 -0
  249. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/outputs/update_output_condition_parameter.py +0 -0
  250. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/permissions/__init__.py +0 -0
  251. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/permissions/set_core_permissions.py +0 -0
  252. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/permissions/set_entity_permission.py +0 -0
  253. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/project/__init__.py +0 -0
  254. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/project/get_projects.py +0 -0
  255. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/project/get_projects_data.py +0 -0
  256. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipe_links/__init__.py +0 -0
  257. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipe_links/create_recipe_link.py +0 -0
  258. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipe_links/remove_recipe_link.py +0 -0
  259. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipe_metadata/__init__.py +0 -0
  260. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipe_metadata/get_recipe_metadata_data.py +0 -0
  261. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipes/__init__.py +0 -0
  262. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipes/add_recipe_to_project.py +0 -0
  263. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipes/add_time_series_data.py +0 -0
  264. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipes/archive_recipes.py +0 -0
  265. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipes/associate_recipe_as_input.py +0 -0
  266. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipes/associate_recipe_as_lot.py +0 -0
  267. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipes/clear_recipe_outputs.py +0 -0
  268. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipes/create_mix_order.py +0 -0
  269. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipes/create_recipe.py +0 -0
  270. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipes/create_recipes.py +0 -0
  271. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipes/disassociate_recipe_as_input.py +0 -0
  272. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipes/edit_recipe_inputs.py +0 -0
  273. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipes/get_column_calculation_values.py +0 -0
  274. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipes/get_curve.py +0 -0
  275. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipes/get_recipe_calculations.py +0 -0
  276. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipes/get_recipe_links.py +0 -0
  277. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipes/get_recipe_names.py +0 -0
  278. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipes/get_recipe_output_metadata.py +0 -0
  279. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipes/get_recipes_data.py +0 -0
  280. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipes/lock_recipes.py +0 -0
  281. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipes/remove_recipe_from_project.py +0 -0
  282. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipes/set_recipe_inputs.py +0 -0
  283. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipes/set_recipe_metadata.py +0 -0
  284. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipes/set_recipe_output_annotations.py +0 -0
  285. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipes/set_recipe_output_file.py +0 -0
  286. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipes/set_recipe_outputs.py +0 -0
  287. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipes/set_recipe_tags.py +0 -0
  288. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipes/set_recipe_total.py +0 -0
  289. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipes/unarchive_recipes.py +0 -0
  290. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipes/unlock_recipes.py +0 -0
  291. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipes/upsert_recipe_workflow_step.py +0 -0
  292. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/recipes/upsert_step_relationships.py +0 -0
  293. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/runsheet/__init__.py +0 -0
  294. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/runsheet/complete_async_upload.py +0 -0
  295. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/runsheet/export_default_runsheet.py +0 -0
  296. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/triggers/__init__.py +0 -0
  297. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/triggers/run_trigger.py +0 -0
  298. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/uploader/__init__.py +0 -0
  299. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/uploader/complete_async_parse.py +0 -0
  300. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/uploader/invoke_uploader.py +0 -0
  301. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/user/__init__.py +0 -0
  302. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/api/user/get_current_user_info.py +0 -0
  303. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/async_batch.py +0 -0
  304. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/async_batch_processor.py +0 -0
  305. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/async_batch_t.py +0 -0
  306. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/async_jobs.py +0 -0
  307. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/async_jobs_t.py +0 -0
  308. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/auth_retrieval.py +0 -0
  309. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/auth_retrieval_t.py +0 -0
  310. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/base.py +0 -0
  311. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/base_t.py +0 -0
  312. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/calculations.py +0 -0
  313. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/calculations_t.py +0 -0
  314. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/chemical_structure.py +0 -0
  315. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/chemical_structure_t.py +0 -0
  316. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/client_config.py +0 -0
  317. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/client_config_t.py +0 -0
  318. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/condition_match.py +0 -0
  319. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/condition_match_t.py +0 -0
  320. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/curves.py +0 -0
  321. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/curves_t.py +0 -0
  322. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/data.py +0 -0
  323. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/data_t.py +0 -0
  324. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/entity.py +0 -0
  325. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/entity_t.py +0 -0
  326. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/experiment_groups.py +0 -0
  327. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/experiment_groups_t.py +0 -0
  328. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/exports.py +0 -0
  329. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/exports_t.py +0 -0
  330. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/field_values.py +0 -0
  331. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/field_values_t.py +0 -0
  332. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/fields.py +0 -0
  333. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/fields_t.py +0 -0
  334. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/generic_upload.py +0 -0
  335. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/generic_upload_t.py +0 -0
  336. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/id_source.py +0 -0
  337. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/id_source_t.py +0 -0
  338. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/identifier.py +0 -0
  339. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/identifier_t.py +0 -0
  340. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/input_attributes.py +0 -0
  341. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/input_attributes_t.py +0 -0
  342. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/inputs.py +0 -0
  343. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/inputs_t.py +0 -0
  344. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/integration_server.py +0 -0
  345. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/integration_server_t.py +0 -0
  346. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/integration_session.py +0 -0
  347. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/integration_session_t.py +0 -0
  348. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/integrations.py +0 -0
  349. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/integrations_t.py +0 -0
  350. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/job_definition.py +0 -0
  351. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/job_definition_t.py +0 -0
  352. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/listing.py +0 -0
  353. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/listing_t.py +0 -0
  354. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/notices.py +0 -0
  355. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/notices_t.py +0 -0
  356. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/notifications.py +0 -0
  357. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/notifications_t.py +0 -0
  358. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/outputs.py +0 -0
  359. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/outputs_t.py +0 -0
  360. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/overrides.py +0 -0
  361. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/overrides_t.py +0 -0
  362. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/permissions.py +0 -0
  363. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/permissions_t.py +0 -0
  364. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/phases.py +0 -0
  365. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/phases_t.py +0 -0
  366. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/post_base.py +0 -0
  367. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/post_base_t.py +0 -0
  368. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/queued_job.py +0 -0
  369. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/queued_job_t.py +0 -0
  370. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/recipe_identifiers.py +0 -0
  371. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/recipe_identifiers_t.py +0 -0
  372. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/recipe_inputs.py +0 -0
  373. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/recipe_inputs_t.py +0 -0
  374. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/recipe_links.py +0 -0
  375. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/recipe_links_t.py +0 -0
  376. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/recipe_metadata.py +0 -0
  377. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/recipe_metadata_t.py +0 -0
  378. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/recipe_output_metadata.py +0 -0
  379. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/recipe_output_metadata_t.py +0 -0
  380. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/recipe_step_relationships.py +0 -0
  381. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/recipe_step_relationships_t.py +0 -0
  382. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/recipe_tags.py +0 -0
  383. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/recipe_tags_t.py +0 -0
  384. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/recipe_workflow_step_types.py +0 -0
  385. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/recipe_workflow_step_types_t.py +0 -0
  386. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/recipe_workflow_steps.py +0 -0
  387. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/recipe_workflow_steps_t.py +0 -0
  388. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/recipes.py +0 -0
  389. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/recipes_t.py +0 -0
  390. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/request_headers.py +0 -0
  391. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/request_headers_t.py +0 -0
  392. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/response.py +0 -0
  393. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/response_t.py +0 -0
  394. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/runsheet.py +0 -0
  395. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/runsheet_format.py +0 -0
  396. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/runsheet_format_t.py +0 -0
  397. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/runsheet_t.py +0 -0
  398. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/secret_retrieval.py +0 -0
  399. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/secret_retrieval_t.py +0 -0
  400. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/sockets.py +0 -0
  401. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/sockets_t.py +0 -0
  402. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/specs.py +0 -0
  403. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/specs_t.py +0 -0
  404. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/step_relationships.py +0 -0
  405. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/step_relationships_t.py +0 -0
  406. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/units.py +0 -0
  407. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/units_t.py +0 -0
  408. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/uploader.py +0 -0
  409. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/uploader_t.py +0 -0
  410. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/users.py +0 -0
  411. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/users_t.py +0 -0
  412. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/webhook_job.py +0 -0
  413. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/webhook_job_t.py +0 -0
  414. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/workflows.py +0 -0
  415. {uncountablepythonsdk-0.0.170 → uncountablepythonsdk-0.0.171}/uncountable/types/workflows_t.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: UncountablePythonSDK
3
- Version: 0.0.170
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
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: UncountablePythonSDK
3
- Version: 0.0.170
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
@@ -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
@@ -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
- def __init__(self, namespace: SpecNamespace, name: str) -> None:
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
- spec_type = SpecTypeDefnUnion(self, name)
1306
- if parsed_name.parameters is not None:
1307
- raise ValueError("Union types with parameters are not supported")
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 (scope.parameters or []):
1571
+ if path[0].name in scope.parameters:
1556
1572
  return SpecTypeGenericParameter(
1557
1573
  spec_type_definition=scope,
1558
1574
  name=path[0].name,
@@ -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():
@@ -940,7 +940,11 @@ def _emit_type(ctx: Context, stype: builder.SpecType) -> None:
940
940
 
941
941
  if isinstance(stype, builder.SpecTypeDefnUnion):
942
942
  ctx.use_serial_union = True
943
- ctx.out.write(f"{stype.name} = typing.Annotated[\n")
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")
944
948
  ctx.out.write(f"{INDENT}{refer_to(ctx, stype.get_backing_type())},\n")
945
949
  ctx.out.write(f"{INDENT}serial_union_annotation(\n")
946
950
  ctx.out.write(
@@ -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 {stype.name} = {refer_to(ctx, stype.get_backing_type())}\n"
184
+ f"export type {full_type_name} = {refer_to(ctx, stype.get_backing_type())}\n"
181
185
  )
182
186
  return
183
187
 
@@ -454,6 +454,7 @@ def _build_map_type(
454
454
  if isinstance(stype, builder.SpecTypeDefnUnion):
455
455
  backing = stype.get_backing_type()
456
456
  ext_info = _parse_ext_info(stype.ext_info)
457
+ union_params = stype.parameters if len(stype.parameters) > 0 else None
457
458
  return MapTypeAlias(
458
459
  type_name=stype.name,
459
460
  label=stype.label,
@@ -461,6 +462,7 @@ def _build_map_type(
461
462
  alias_type_path=type_path_of(backing),
462
463
  ext_info=_parse_ext_info(stype.ext_info),
463
464
  discriminator=stype.discriminator,
465
+ parameters=union_params,
464
466
  )
465
467
 
466
468
  if isinstance(stype, builder.SpecTypeDefnStringEnum):
@@ -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",
@@ -0,0 +1,57 @@
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 async_batch_t
12
+ from ... import entity_t
13
+ from ... import field_values_t
14
+ from ... import identifier_t
15
+
16
+ __all__: list[str] = [
17
+ "Arguments",
18
+ "Data",
19
+ "ENDPOINT_METHOD",
20
+ "ENDPOINT_PATH",
21
+ "EntityToCreateOrUpdate",
22
+ ]
23
+
24
+ ENDPOINT_METHOD = "POST"
25
+ ENDPOINT_PATH = "api/external/entity/create_or_update_entities"
26
+
27
+
28
+ # DO NOT MODIFY -- This file is generated by type_spec
29
+ @serial_class(
30
+ named_type_path="sdk.api.entity.create_or_update_entities.EntityToCreateOrUpdate",
31
+ )
32
+ @dataclasses.dataclass(slots=True, kw_only=True)
33
+ class EntityToCreateOrUpdate:
34
+ field_values: list[field_values_t.FieldArgumentValue]
35
+ entity_key: identifier_t.IdentifierKey | None = None
36
+ on_create_init_field_values: list[field_values_t.FieldArgumentValue] | None = None
37
+
38
+
39
+ # DO NOT MODIFY -- This file is generated by type_spec
40
+ @serial_class(
41
+ named_type_path="sdk.api.entity.create_or_update_entities.Arguments",
42
+ )
43
+ @dataclasses.dataclass(slots=True, kw_only=True)
44
+ class Arguments:
45
+ entity_type: entity_t.EntityType
46
+ definition_key: identifier_t.IdentifierKey
47
+ operations: list[EntityToCreateOrUpdate]
48
+
49
+
50
+ # DO NOT MODIFY -- This file is generated by type_spec
51
+ @serial_class(
52
+ named_type_path="sdk.api.entity.create_or_update_entities.Data",
53
+ )
54
+ @dataclasses.dataclass(slots=True, kw_only=True)
55
+ class Data:
56
+ results: list[async_batch_t.AsyncBatchActionReturn]
57
+ # DO NOT MODIFY -- This file is generated by type_spec
@@ -0,0 +1,55 @@
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 async_batch_t
12
+ from ... import entity_t
13
+ from ... import field_values_t
14
+ from ... import identifier_t
15
+
16
+ __all__: list[str] = [
17
+ "Arguments",
18
+ "Data",
19
+ "ENDPOINT_METHOD",
20
+ "ENDPOINT_PATH",
21
+ "EntityToSetFieldValues",
22
+ ]
23
+
24
+ ENDPOINT_METHOD = "POST"
25
+ ENDPOINT_PATH = "api/external/entity/set_entities_field_values"
26
+
27
+
28
+ # DO NOT MODIFY -- This file is generated by type_spec
29
+ @serial_class(
30
+ named_type_path="sdk.api.entity.set_entities_field_values.EntityToSetFieldValues",
31
+ )
32
+ @dataclasses.dataclass(slots=True, kw_only=True)
33
+ class EntityToSetFieldValues:
34
+ identifier_key: identifier_t.IdentifierKey
35
+ field_values: list[field_values_t.FieldArgumentValue]
36
+
37
+
38
+ # DO NOT MODIFY -- This file is generated by type_spec
39
+ @serial_class(
40
+ named_type_path="sdk.api.entity.set_entities_field_values.Arguments",
41
+ )
42
+ @dataclasses.dataclass(slots=True, kw_only=True)
43
+ class Arguments:
44
+ entity_type: entity_t.EntityType
45
+ operations: list[EntityToSetFieldValues]
46
+
47
+
48
+ # DO NOT MODIFY -- This file is generated by type_spec
49
+ @serial_class(
50
+ named_type_path="sdk.api.entity.set_entities_field_values.Data",
51
+ )
52
+ @dataclasses.dataclass(slots=True, kw_only=True)
53
+ class Data:
54
+ results: list[async_batch_t.AsyncBatchActionReturn]
55
+ # DO NOT MODIFY -- This file is generated by type_spec
@@ -27,6 +27,7 @@ import uncountable.types.api.entity.create_entities as create_entities_t
27
27
  import uncountable.types.api.entity.create_entity as create_entity_t
28
28
  import uncountable.types.api.inputs.create_inputs as create_inputs_t
29
29
  import uncountable.types.api.recipes.create_mix_order as create_mix_order_t
30
+ import uncountable.types.api.entity.create_or_update_entities as create_or_update_entities_t
30
31
  import uncountable.types.api.entity.create_or_update_entity as create_or_update_entity_t
31
32
  import uncountable.types.api.recipes.create_recipe as create_recipe_t
32
33
  import uncountable.types.api.recipe_links.create_recipe_link as create_recipe_link_t
@@ -96,6 +97,7 @@ import uncountable.types.api.outputs.resolve_output_conditions as resolve_output
96
97
  import uncountable.types.api.triggers.run_trigger as run_trigger_t
97
98
  import uncountable.types.api.entity.set_barcode as set_barcode_t
98
99
  import uncountable.types.api.permissions.set_core_permissions as set_core_permissions_t
100
+ import uncountable.types.api.entity.set_entities_field_values as set_entities_field_values_t
99
101
  import uncountable.types.api.entity.set_entity_field_values as set_entity_field_values_t
100
102
  import uncountable.types.api.permissions.set_entity_permission as set_entity_permission_t
101
103
  import uncountable.types.api.inputs.set_input_attribute_values as set_input_attribute_values_t
@@ -541,6 +543,30 @@ class ClientMethods(ABC):
541
543
  )
542
544
  return self.do_request(api_request=api_request, return_type=create_mix_order_t.Data)
543
545
 
546
+ def create_or_update_entities(
547
+ self,
548
+ *,
549
+ entity_type: entity_t.EntityType,
550
+ definition_key: identifier_t.IdentifierKey,
551
+ operations: list[create_or_update_entities_t.EntityToCreateOrUpdate],
552
+ _request_options: client_config_t.RequestOptions | None = None,
553
+ ) -> create_or_update_entities_t.Data:
554
+ """Bulk variant of create_or_update_entity scoped to a single (entity_type, definition_key) — accepts up to 100 operations sharing that scope and applies them via batched primitive calls (one permission check + one set_field_values across updates, one create_entities across creates). Returns one AsyncBatchActionReturn per input, in the same order. Cross-operation batch_reference dependencies are not supported.
555
+
556
+ """
557
+ args = create_or_update_entities_t.Arguments(
558
+ entity_type=entity_type,
559
+ definition_key=definition_key,
560
+ operations=operations,
561
+ )
562
+ api_request = APIRequest(
563
+ method=create_or_update_entities_t.ENDPOINT_METHOD,
564
+ endpoint=create_or_update_entities_t.ENDPOINT_PATH,
565
+ args=args,
566
+ request_options=_request_options,
567
+ )
568
+ return self.do_request(api_request=api_request, return_type=create_or_update_entities_t.Data)
569
+
544
570
  def create_or_update_entity(
545
571
  self,
546
572
  *,
@@ -1899,6 +1925,28 @@ class ClientMethods(ABC):
1899
1925
  )
1900
1926
  return self.do_request(api_request=api_request, return_type=set_core_permissions_t.Data)
1901
1927
 
1928
+ def set_entities_field_values(
1929
+ self,
1930
+ *,
1931
+ entity_type: entity_t.EntityType,
1932
+ operations: list[set_entities_field_values_t.EntityToSetFieldValues],
1933
+ _request_options: client_config_t.RequestOptions | None = None,
1934
+ ) -> set_entities_field_values_t.Data:
1935
+ """Bulk variant of set_entity_field_values scoped to a single entity_type — accepts up to 100 (identifier_key, field_values) operations sharing that scope and applies them via batched primitive calls (one entity-resolution round-trip, one check_entity_list_permitted, one set_field_values across the aggregate). Returns one AsyncBatchActionReturn per input, in the same order. Cross-operation batch_reference dependencies are not supported.
1936
+
1937
+ """
1938
+ args = set_entities_field_values_t.Arguments(
1939
+ entity_type=entity_type,
1940
+ operations=operations,
1941
+ )
1942
+ api_request = APIRequest(
1943
+ method=set_entities_field_values_t.ENDPOINT_METHOD,
1944
+ endpoint=set_entities_field_values_t.ENDPOINT_PATH,
1945
+ args=args,
1946
+ request_options=_request_options,
1947
+ )
1948
+ return self.do_request(api_request=api_request, return_type=set_entities_field_values_t.Data)
1949
+
1902
1950
  def set_entity_field_values(
1903
1951
  self,
1904
1952
  *,