UncountablePythonSDK 0.0.110__tar.gz → 0.0.111__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.

Potentially problematic release.


This version of UncountablePythonSDK might be problematic. Click here for more details.

Files changed (318) hide show
  1. {uncountablepythonsdk-0.0.110/UncountablePythonSDK.egg-info → uncountablepythonsdk-0.0.111}/PKG-INFO +1 -1
  2. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111/UncountablePythonSDK.egg-info}/PKG-INFO +1 -1
  3. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/UncountablePythonSDK.egg-info/SOURCES.txt +3 -0
  4. uncountablepythonsdk-0.0.111/examples/create_ingredient_sdk.py +34 -0
  5. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/pkgs/argument_parser/argument_parser.py +3 -3
  6. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/pkgs/type_spec/builder.py +19 -2
  7. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/pkgs/type_spec/type_info/emit_type_info.py +12 -3
  8. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/__init__.py +2 -0
  9. uncountablepythonsdk-0.0.111/uncountable/types/api/condition_parameters/upsert_condition_match.py +71 -0
  10. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/api/inputs/create_inputs.py +2 -0
  11. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/api/recipes/edit_recipe_inputs.py +1 -0
  12. uncountablepythonsdk-0.0.111/uncountable/types/api/uploader/__init__.py +1 -0
  13. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/async_batch_processor.py +40 -0
  14. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/async_batch_t.py +1 -0
  15. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/client_base.py +27 -0
  16. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/data_t.py +15 -15
  17. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/entity_t.py +7 -1
  18. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/.github/workflows/documentation.yml +0 -0
  19. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/.github/workflows/publish.yml +0 -0
  20. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/.gitignore +0 -0
  21. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/README.md +0 -0
  22. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/UncountablePythonSDK.egg-info/dependency_links.txt +0 -0
  23. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/UncountablePythonSDK.egg-info/requires.txt +0 -0
  24. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/UncountablePythonSDK.egg-info/top_level.txt +0 -0
  25. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/docs/.gitignore +0 -0
  26. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/docs/conf.py +0 -0
  27. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/docs/index.md +0 -0
  28. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/docs/justfile +0 -0
  29. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/docs/quickstart.md +0 -0
  30. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/docs/requirements.txt +0 -0
  31. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/docs/static/favicons/android-chrome-192x192.png +0 -0
  32. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/docs/static/favicons/android-chrome-512x512.png +0 -0
  33. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/docs/static/favicons/apple-touch-icon.png +0 -0
  34. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/docs/static/favicons/browserconfig.xml +0 -0
  35. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/docs/static/favicons/favicon-16x16.png +0 -0
  36. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/docs/static/favicons/favicon-32x32.png +0 -0
  37. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/docs/static/favicons/manifest.json +0 -0
  38. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/docs/static/favicons/mstile-150x150.png +0 -0
  39. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/docs/static/favicons/safari-pinned-tab.svg +0 -0
  40. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/docs/static/logo_blue.png +0 -0
  41. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/examples/async_batch.py +0 -0
  42. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/examples/create_entity.py +0 -0
  43. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/examples/download_files.py +0 -0
  44. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/examples/edit_recipe_inputs.py +0 -0
  45. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/examples/integration-server/jobs/materials_auto/example_cron.py +0 -0
  46. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/examples/integration-server/jobs/materials_auto/example_wh.py +0 -0
  47. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/examples/integration-server/jobs/materials_auto/profile.yaml +0 -0
  48. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/examples/integration-server/pyproject.toml +0 -0
  49. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/examples/invoke_uploader.py +0 -0
  50. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/examples/set_recipe_metadata_file.py +0 -0
  51. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/examples/set_recipe_output_file_sdk.py +0 -0
  52. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/examples/upload_files.py +0 -0
  53. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/pkgs/__init__.py +0 -0
  54. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/pkgs/argument_parser/__init__.py +0 -0
  55. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/pkgs/argument_parser/_is_enum.py +0 -0
  56. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/pkgs/argument_parser/_is_namedtuple.py +0 -0
  57. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/pkgs/argument_parser/case_convert.py +0 -0
  58. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/pkgs/filesystem_utils/__init__.py +0 -0
  59. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/pkgs/filesystem_utils/_blob_session.py +0 -0
  60. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/pkgs/filesystem_utils/_gdrive_session.py +0 -0
  61. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/pkgs/filesystem_utils/_local_session.py +0 -0
  62. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/pkgs/filesystem_utils/_s3_session.py +0 -0
  63. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/pkgs/filesystem_utils/_sftp_session.py +0 -0
  64. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/pkgs/filesystem_utils/file_type_utils.py +0 -0
  65. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/pkgs/filesystem_utils/filesystem_session.py +0 -0
  66. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/pkgs/py.typed +0 -0
  67. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/pkgs/serialization/__init__.py +0 -0
  68. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/pkgs/serialization/annotation.py +0 -0
  69. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/pkgs/serialization/missing_sentry.py +0 -0
  70. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/pkgs/serialization/opaque_key.py +0 -0
  71. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/pkgs/serialization/serial_alias.py +0 -0
  72. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/pkgs/serialization/serial_class.py +0 -0
  73. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/pkgs/serialization/serial_generic.py +0 -0
  74. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/pkgs/serialization/serial_union.py +0 -0
  75. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/pkgs/serialization/yaml.py +0 -0
  76. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/pkgs/serialization_util/__init__.py +0 -0
  77. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/pkgs/serialization_util/_get_type_for_serialization.py +0 -0
  78. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/pkgs/serialization_util/convert_to_snakecase.py +0 -0
  79. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/pkgs/serialization_util/dataclasses.py +0 -0
  80. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/pkgs/serialization_util/serialization_helpers.py +0 -0
  81. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/pkgs/strenum_compat/__init__.py +0 -0
  82. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/pkgs/strenum_compat/strenum_compat.py +0 -0
  83. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/pkgs/type_spec/__init__.py +0 -0
  84. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/pkgs/type_spec/__main__.py +0 -0
  85. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/pkgs/type_spec/actions_registry/__init__.py +0 -0
  86. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/pkgs/type_spec/actions_registry/__main__.py +0 -0
  87. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/pkgs/type_spec/actions_registry/emit_typescript.py +0 -0
  88. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/pkgs/type_spec/config.py +0 -0
  89. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/pkgs/type_spec/cross_output_links.py +0 -0
  90. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/pkgs/type_spec/emit_io_ts.py +0 -0
  91. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/pkgs/type_spec/emit_open_api.py +0 -0
  92. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/pkgs/type_spec/emit_open_api_util.py +0 -0
  93. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/pkgs/type_spec/emit_python.py +0 -0
  94. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/pkgs/type_spec/emit_typescript.py +0 -0
  95. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/pkgs/type_spec/emit_typescript_util.py +0 -0
  96. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/pkgs/type_spec/load_types.py +0 -0
  97. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/pkgs/type_spec/open_api_util.py +0 -0
  98. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/pkgs/type_spec/parts/base.py.prepart +0 -0
  99. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/pkgs/type_spec/parts/base.ts.prepart +0 -0
  100. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/pkgs/type_spec/test.py +0 -0
  101. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/pkgs/type_spec/type_info/__main__.py +0 -0
  102. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/pkgs/type_spec/util.py +0 -0
  103. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/pkgs/type_spec/value_spec/__init__.py +0 -0
  104. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/pkgs/type_spec/value_spec/__main__.py +0 -0
  105. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/pkgs/type_spec/value_spec/convert_type.py +0 -0
  106. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/pkgs/type_spec/value_spec/emit_python.py +0 -0
  107. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/pkgs/type_spec/value_spec/types.py +0 -0
  108. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/pyproject.toml +0 -0
  109. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/setup.cfg +0 -0
  110. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/__init__.py +0 -0
  111. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/core/__init__.py +0 -0
  112. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/core/async_batch.py +0 -0
  113. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/core/client.py +0 -0
  114. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/core/environment.py +0 -0
  115. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/core/file_upload.py +0 -0
  116. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/core/types.py +0 -0
  117. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/integration/__init__.py +0 -0
  118. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/integration/cli.py +0 -0
  119. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/integration/construct_client.py +0 -0
  120. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/integration/cron.py +0 -0
  121. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/integration/db/__init__.py +0 -0
  122. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/integration/db/connect.py +0 -0
  123. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/integration/db/session.py +0 -0
  124. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/integration/entrypoint.py +0 -0
  125. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/integration/executors/__init__.py +0 -0
  126. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/integration/executors/executors.py +0 -0
  127. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/integration/executors/generic_upload_executor.py +0 -0
  128. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/integration/executors/script_executor.py +0 -0
  129. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/integration/job.py +0 -0
  130. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/integration/queue_runner/__init__.py +0 -0
  131. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/integration/queue_runner/command_server/__init__.py +0 -0
  132. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/integration/queue_runner/command_server/command_client.py +0 -0
  133. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/integration/queue_runner/command_server/command_server.py +0 -0
  134. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/integration/queue_runner/command_server/protocol/__init__.py +0 -0
  135. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/integration/queue_runner/command_server/protocol/command_server.proto +0 -0
  136. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/integration/queue_runner/command_server/protocol/command_server_pb2.py +0 -0
  137. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/integration/queue_runner/command_server/protocol/command_server_pb2.pyi +0 -0
  138. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/integration/queue_runner/command_server/protocol/command_server_pb2_grpc.py +0 -0
  139. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/integration/queue_runner/command_server/types.py +0 -0
  140. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/integration/queue_runner/datastore/__init__.py +0 -0
  141. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/integration/queue_runner/datastore/datastore_sqlite.py +0 -0
  142. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/integration/queue_runner/datastore/interface.py +0 -0
  143. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/integration/queue_runner/datastore/model.py +0 -0
  144. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/integration/queue_runner/job_scheduler.py +0 -0
  145. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/integration/queue_runner/queue_runner.py +0 -0
  146. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/integration/queue_runner/types.py +0 -0
  147. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/integration/queue_runner/worker.py +0 -0
  148. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/integration/scan_profiles.py +0 -0
  149. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/integration/scheduler.py +0 -0
  150. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/integration/secret_retrieval/__init__.py +0 -0
  151. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/integration/secret_retrieval/retrieve_secret.py +0 -0
  152. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/integration/server.py +0 -0
  153. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/integration/telemetry.py +0 -0
  154. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/integration/webhook_server/entrypoint.py +0 -0
  155. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/py.typed +0 -0
  156. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/api/__init__.py +0 -0
  157. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/api/batch/__init__.py +0 -0
  158. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/api/batch/execute_batch.py +0 -0
  159. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/api/batch/execute_batch_load_async.py +0 -0
  160. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/api/chemical/__init__.py +0 -0
  161. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/api/chemical/convert_chemical_formats.py +0 -0
  162. {uncountablepythonsdk-0.0.110/uncountable/types/api/entity → uncountablepythonsdk-0.0.111/uncountable/types/api/condition_parameters}/__init__.py +0 -0
  163. {uncountablepythonsdk-0.0.110/uncountable/types/api/equipment → uncountablepythonsdk-0.0.111/uncountable/types/api/entity}/__init__.py +0 -0
  164. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/api/entity/create_entities.py +0 -0
  165. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/api/entity/create_entity.py +0 -0
  166. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/api/entity/create_or_update_entity.py +0 -0
  167. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/api/entity/get_entities_data.py +0 -0
  168. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/api/entity/grant_entity_permissions.py +0 -0
  169. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/api/entity/list_entities.py +0 -0
  170. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/api/entity/lock_entity.py +0 -0
  171. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/api/entity/lookup_entity.py +0 -0
  172. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/api/entity/resolve_entity_ids.py +0 -0
  173. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/api/entity/set_entity_field_values.py +0 -0
  174. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/api/entity/set_values.py +0 -0
  175. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/api/entity/transition_entity_phase.py +0 -0
  176. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/api/entity/unlock_entity.py +0 -0
  177. {uncountablepythonsdk-0.0.110/uncountable/types/api/field_options → uncountablepythonsdk-0.0.111/uncountable/types/api/equipment}/__init__.py +0 -0
  178. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/api/equipment/associate_equipment_input.py +0 -0
  179. {uncountablepythonsdk-0.0.110/uncountable/types/api/files → uncountablepythonsdk-0.0.111/uncountable/types/api/field_options}/__init__.py +0 -0
  180. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/api/field_options/upsert_field_options.py +0 -0
  181. {uncountablepythonsdk-0.0.110/uncountable/types/api/id_source → uncountablepythonsdk-0.0.111/uncountable/types/api/files}/__init__.py +0 -0
  182. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/api/files/download_file.py +0 -0
  183. {uncountablepythonsdk-0.0.110/uncountable/types/api/input_groups → uncountablepythonsdk-0.0.111/uncountable/types/api/id_source}/__init__.py +0 -0
  184. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/api/id_source/list_id_source.py +0 -0
  185. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/api/id_source/match_id_source.py +0 -0
  186. {uncountablepythonsdk-0.0.110/uncountable/types/api/inputs → uncountablepythonsdk-0.0.111/uncountable/types/api/input_groups}/__init__.py +0 -0
  187. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/api/input_groups/get_input_group_names.py +0 -0
  188. {uncountablepythonsdk-0.0.110/uncountable/types/api/material_families → uncountablepythonsdk-0.0.111/uncountable/types/api/inputs}/__init__.py +0 -0
  189. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/api/inputs/get_input_data.py +0 -0
  190. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/api/inputs/get_input_names.py +0 -0
  191. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/api/inputs/get_inputs_data.py +0 -0
  192. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/api/inputs/set_input_attribute_values.py +0 -0
  193. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/api/inputs/set_input_category.py +0 -0
  194. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/api/inputs/set_input_subcategories.py +0 -0
  195. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/api/inputs/set_intermediate_type.py +0 -0
  196. {uncountablepythonsdk-0.0.110/uncountable/types/api/outputs → uncountablepythonsdk-0.0.111/uncountable/types/api/material_families}/__init__.py +0 -0
  197. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/api/material_families/update_entity_material_families.py +0 -0
  198. {uncountablepythonsdk-0.0.110/uncountable/types/api/permissions → uncountablepythonsdk-0.0.111/uncountable/types/api/outputs}/__init__.py +0 -0
  199. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/api/outputs/get_output_data.py +0 -0
  200. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/api/outputs/get_output_names.py +0 -0
  201. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/api/outputs/resolve_output_conditions.py +0 -0
  202. {uncountablepythonsdk-0.0.110/uncountable/types/api/project → uncountablepythonsdk-0.0.111/uncountable/types/api/permissions}/__init__.py +0 -0
  203. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/api/permissions/set_core_permissions.py +0 -0
  204. {uncountablepythonsdk-0.0.110/uncountable/types/api/recipe_links → uncountablepythonsdk-0.0.111/uncountable/types/api/project}/__init__.py +0 -0
  205. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/api/project/get_projects.py +0 -0
  206. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/api/project/get_projects_data.py +0 -0
  207. {uncountablepythonsdk-0.0.110/uncountable/types/api/recipe_metadata → uncountablepythonsdk-0.0.111/uncountable/types/api/recipe_links}/__init__.py +0 -0
  208. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/api/recipe_links/create_recipe_link.py +0 -0
  209. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/api/recipe_links/remove_recipe_link.py +0 -0
  210. {uncountablepythonsdk-0.0.110/uncountable/types/api/recipes → uncountablepythonsdk-0.0.111/uncountable/types/api/recipe_metadata}/__init__.py +0 -0
  211. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/api/recipe_metadata/get_recipe_metadata_data.py +0 -0
  212. {uncountablepythonsdk-0.0.110/uncountable/types/api/triggers → uncountablepythonsdk-0.0.111/uncountable/types/api/recipes}/__init__.py +0 -0
  213. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/api/recipes/add_recipe_to_project.py +0 -0
  214. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/api/recipes/add_time_series_data.py +0 -0
  215. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/api/recipes/archive_recipes.py +0 -0
  216. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/api/recipes/associate_recipe_as_input.py +0 -0
  217. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/api/recipes/associate_recipe_as_lot.py +0 -0
  218. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/api/recipes/clear_recipe_outputs.py +0 -0
  219. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/api/recipes/create_recipe.py +0 -0
  220. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/api/recipes/create_recipes.py +0 -0
  221. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/api/recipes/disassociate_recipe_as_input.py +0 -0
  222. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/api/recipes/get_column_calculation_values.py +0 -0
  223. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/api/recipes/get_curve.py +0 -0
  224. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/api/recipes/get_recipe_calculations.py +0 -0
  225. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/api/recipes/get_recipe_links.py +0 -0
  226. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/api/recipes/get_recipe_names.py +0 -0
  227. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/api/recipes/get_recipe_output_metadata.py +0 -0
  228. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/api/recipes/get_recipes_data.py +0 -0
  229. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/api/recipes/lock_recipes.py +0 -0
  230. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/api/recipes/remove_recipe_from_project.py +0 -0
  231. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/api/recipes/set_recipe_inputs.py +0 -0
  232. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/api/recipes/set_recipe_metadata.py +0 -0
  233. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/api/recipes/set_recipe_output_annotations.py +0 -0
  234. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/api/recipes/set_recipe_output_file.py +0 -0
  235. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/api/recipes/set_recipe_outputs.py +0 -0
  236. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/api/recipes/set_recipe_tags.py +0 -0
  237. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/api/recipes/unarchive_recipes.py +0 -0
  238. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/api/recipes/unlock_recipes.py +0 -0
  239. {uncountablepythonsdk-0.0.110/uncountable/types/api/uploader → uncountablepythonsdk-0.0.111/uncountable/types/api/triggers}/__init__.py +0 -0
  240. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/api/triggers/run_trigger.py +0 -0
  241. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/api/uploader/invoke_uploader.py +0 -0
  242. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/async_batch.py +0 -0
  243. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/async_jobs.py +0 -0
  244. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/async_jobs_t.py +0 -0
  245. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/auth_retrieval.py +0 -0
  246. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/auth_retrieval_t.py +0 -0
  247. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/base.py +0 -0
  248. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/base_t.py +0 -0
  249. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/calculations.py +0 -0
  250. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/calculations_t.py +0 -0
  251. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/chemical_structure.py +0 -0
  252. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/chemical_structure_t.py +0 -0
  253. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/client_config.py +0 -0
  254. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/client_config_t.py +0 -0
  255. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/curves.py +0 -0
  256. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/curves_t.py +0 -0
  257. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/data.py +0 -0
  258. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/entity.py +0 -0
  259. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/experiment_groups.py +0 -0
  260. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/experiment_groups_t.py +0 -0
  261. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/field_values.py +0 -0
  262. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/field_values_t.py +0 -0
  263. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/fields.py +0 -0
  264. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/fields_t.py +0 -0
  265. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/generic_upload.py +0 -0
  266. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/generic_upload_t.py +0 -0
  267. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/id_source.py +0 -0
  268. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/id_source_t.py +0 -0
  269. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/identifier.py +0 -0
  270. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/identifier_t.py +0 -0
  271. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/input_attributes.py +0 -0
  272. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/input_attributes_t.py +0 -0
  273. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/inputs.py +0 -0
  274. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/inputs_t.py +0 -0
  275. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/integration_server.py +0 -0
  276. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/integration_server_t.py +0 -0
  277. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/job_definition.py +0 -0
  278. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/job_definition_t.py +0 -0
  279. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/outputs.py +0 -0
  280. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/outputs_t.py +0 -0
  281. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/overrides.py +0 -0
  282. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/overrides_t.py +0 -0
  283. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/permissions.py +0 -0
  284. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/permissions_t.py +0 -0
  285. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/phases.py +0 -0
  286. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/phases_t.py +0 -0
  287. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/post_base.py +0 -0
  288. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/post_base_t.py +0 -0
  289. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/queued_job.py +0 -0
  290. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/queued_job_t.py +0 -0
  291. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/recipe_identifiers.py +0 -0
  292. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/recipe_identifiers_t.py +0 -0
  293. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/recipe_inputs.py +0 -0
  294. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/recipe_inputs_t.py +0 -0
  295. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/recipe_links.py +0 -0
  296. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/recipe_links_t.py +0 -0
  297. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/recipe_metadata.py +0 -0
  298. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/recipe_metadata_t.py +0 -0
  299. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/recipe_output_metadata.py +0 -0
  300. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/recipe_output_metadata_t.py +0 -0
  301. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/recipe_tags.py +0 -0
  302. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/recipe_tags_t.py +0 -0
  303. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/recipe_workflow_steps.py +0 -0
  304. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/recipe_workflow_steps_t.py +0 -0
  305. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/recipes.py +0 -0
  306. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/recipes_t.py +0 -0
  307. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/response.py +0 -0
  308. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/response_t.py +0 -0
  309. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/secret_retrieval.py +0 -0
  310. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/secret_retrieval_t.py +0 -0
  311. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/units.py +0 -0
  312. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/units_t.py +0 -0
  313. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/users.py +0 -0
  314. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/users_t.py +0 -0
  315. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/webhook_job.py +0 -0
  316. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/webhook_job_t.py +0 -0
  317. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/uncountable/types/workflows.py +0 -0
  318. {uncountablepythonsdk-0.0.110 → uncountablepythonsdk-0.0.111}/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.110
3
+ Version: 0.0.111
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.110
3
+ Version: 0.0.111
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
@@ -26,6 +26,7 @@ docs/static/favicons/mstile-150x150.png
26
26
  docs/static/favicons/safari-pinned-tab.svg
27
27
  examples/async_batch.py
28
28
  examples/create_entity.py
29
+ examples/create_ingredient_sdk.py
29
30
  examples/download_files.py
30
31
  examples/edit_recipe_inputs.py
31
32
  examples/invoke_uploader.py
@@ -229,6 +230,8 @@ uncountable/types/api/batch/execute_batch.py
229
230
  uncountable/types/api/batch/execute_batch_load_async.py
230
231
  uncountable/types/api/chemical/__init__.py
231
232
  uncountable/types/api/chemical/convert_chemical_formats.py
233
+ uncountable/types/api/condition_parameters/__init__.py
234
+ uncountable/types/api/condition_parameters/upsert_condition_match.py
232
235
  uncountable/types/api/entity/__init__.py
233
236
  uncountable/types/api/entity/create_entities.py
234
237
  uncountable/types/api/entity/create_entity.py
@@ -0,0 +1,34 @@
1
+ import os
2
+
3
+ import uncountable.types.api.inputs.create_inputs as create_inputs
4
+ from uncountable.core import AuthDetailsApiKey, Client
5
+ from uncountable.types import field_values_t, inputs_t
6
+
7
+ client = Client(
8
+ base_url="http://localhost:5000",
9
+ auth_details=AuthDetailsApiKey(
10
+ api_id=os.environ["UNC_API_ID"],
11
+ api_secret_key=os.environ["UNC_API_SECRET_KEY"],
12
+ ),
13
+ )
14
+
15
+ client.external_create_inputs(
16
+ inputs_to_create=[
17
+ create_inputs.InputToCreate(
18
+ name="sdk test ing",
19
+ material_family_ids=[1],
20
+ quantity_type=inputs_t.IngredientQuantityType.NUMERIC,
21
+ type=inputs_t.IngredientType.INGREDIENT,
22
+ field_values=[
23
+ field_values_t.FieldRefNameValue(
24
+ field_ref_name="carrieTestNumericField",
25
+ value="10",
26
+ ),
27
+ field_values_t.FieldRefNameValue(
28
+ field_ref_name="carrieTestCheckboxField",
29
+ value=True,
30
+ ),
31
+ ],
32
+ )
33
+ ]
34
+ )
@@ -12,13 +12,13 @@ from enum import Enum, auto
12
12
  from importlib import resources
13
13
 
14
14
  import dateutil.parser
15
+ import msgspec.yaml
15
16
 
16
17
  from pkgs.serialization import (
17
18
  MissingSentryType,
18
19
  OpaqueKey,
19
20
  get_serial_class_data,
20
21
  get_serial_union_data,
21
- yaml,
22
22
  )
23
23
 
24
24
  from ._is_enum import is_string_enum_class
@@ -561,11 +561,11 @@ class ParserBase(ABC, typing.Generic[T]):
561
561
 
562
562
  def parse_yaml_file(self, path: str) -> T:
563
563
  with open(path, encoding="utf-8") as data_in:
564
- return self.parse_storage(yaml.safe_load(data_in))
564
+ return self.parse_storage(msgspec.yaml.decode(data_in.read()))
565
565
 
566
566
  def parse_yaml_resource(self, package: resources.Package, resource: str) -> T:
567
567
  with resources.open_text(package, resource) as fp:
568
- return self.parse_storage(yaml.safe_load(fp))
568
+ return self.parse_storage(msgspec.yaml.decode(fp.read()))
569
569
 
570
570
 
571
571
  class CachedParser(ParserBase[T], typing.Generic[T]):
@@ -624,7 +624,12 @@ class SpecTypeDefnUnion(SpecTypeDefn):
624
624
  prop_type = unwrap_literal_type(discriminator_type.spec_type)
625
625
  assert prop_type is not None
626
626
  assert prop_type.is_value_to_string()
627
- discriminant = str(prop_type.value)
627
+ value_type = prop_type.value_type
628
+ if isinstance(value_type, SpecTypeDefnStringEnum):
629
+ assert isinstance(prop_type.value, str)
630
+ discriminant = value_type.values[prop_type.value].value
631
+ else:
632
+ discriminant = str(prop_type.value)
628
633
  assert discriminant not in self.discriminator_map, (
629
634
  f"duplicated-discriminant, {discriminant} in {sub_type}"
630
635
  )
@@ -793,6 +798,7 @@ class SpecTypeDefnStringEnum(SpecTypeDefn):
793
798
  TOKEN_ENDPOINT = "$endpoint"
794
799
  TOKEN_EMIT_IO_TS = "$emit_io_ts"
795
800
  TOKEN_EMIT_TYPE_INFO = "$emit_type_info"
801
+ TOKEN_EMIT_TYPE_INFO_PYTHON = "$emit_type_info_python"
796
802
  # The import token is only for explicit ordering of the files, to process constants
797
803
  # and enums correctly. It does not impact the final generation of files, or the
798
804
  # language imports. Those are still auto-resolved.
@@ -1161,6 +1167,7 @@ class SpecNamespace:
1161
1167
  self.endpoint: SpecEndpoint | None = None
1162
1168
  self.emit_io_ts = False
1163
1169
  self.emit_type_info = False
1170
+ self.emit_type_info_python = False
1164
1171
  self.derive_types_from_io_ts = False
1165
1172
  self._imports: list[str] | None = None
1166
1173
  self.path = name.split(".")
@@ -1215,6 +1222,11 @@ class SpecNamespace:
1215
1222
  self.emit_type_info = defn
1216
1223
  continue
1217
1224
 
1225
+ if name == TOKEN_EMIT_TYPE_INFO_PYTHON:
1226
+ assert defn in (True, False)
1227
+ self.emit_type_info_python = defn
1228
+ continue
1229
+
1218
1230
  if name == TOKEN_IMPORT:
1219
1231
  assert self._imports is None
1220
1232
  imports = [defn] if isinstance(defn, str) else defn
@@ -1276,7 +1288,12 @@ class SpecNamespace:
1276
1288
  parsed_name = parse_type_str(full_name)[0]
1277
1289
  name = parsed_name.name
1278
1290
 
1279
- if name in [TOKEN_EMIT_IO_TS, TOKEN_EMIT_TYPE_INFO, TOKEN_IMPORT]:
1291
+ if name in [
1292
+ TOKEN_EMIT_IO_TS,
1293
+ TOKEN_EMIT_TYPE_INFO,
1294
+ TOKEN_IMPORT,
1295
+ TOKEN_EMIT_TYPE_INFO_PYTHON,
1296
+ ]:
1280
1297
  continue
1281
1298
 
1282
1299
  builder.push_where(name)
@@ -116,7 +116,7 @@ def asdict_for_yaml_dump(dataclass_instance: Any) -> Any:
116
116
 
117
117
 
118
118
  def emit_type_info_python(build: builder.SpecBuilder, output: str) -> None:
119
- type_map = _build_map_all(build)
119
+ type_map = _build_map_all(build, python=True)
120
120
 
121
121
  stripped = _dict_null_strip(asdict_for_yaml_dump(type_map))
122
122
 
@@ -176,11 +176,14 @@ class MapAll:
176
176
  namespaces: dict[str, MapNamespace]
177
177
 
178
178
 
179
- def _build_map_all(build: builder.SpecBuilder) -> MapAll:
179
+ def _build_map_all(build: builder.SpecBuilder, *, python: bool = False) -> MapAll:
180
180
  map_all = MapAll(namespaces={})
181
181
 
182
182
  for namespace in build.namespaces.values():
183
- if not namespace.emit_type_info:
183
+ if not python and not namespace.emit_type_info:
184
+ continue
185
+
186
+ if python and not namespace.emit_type_info_python:
184
187
  continue
185
188
 
186
189
  map_namespace = MapNamespace(types={})
@@ -324,6 +327,12 @@ def _validate_type_ext_info(
324
327
  prop = _pull_property_from_type_recursively(stype, name)
325
328
  assert prop is not None, f"missing-label-field:{name}"
326
329
 
330
+ if ext_info.actions is not None:
331
+ assert stype.properties is not None
332
+ for action in ext_info.actions:
333
+ prop = _pull_property_from_type_recursively(stype, action.property)
334
+ assert prop is not None, f"missing-action-field:{action.property}"
335
+
327
336
  if not stype.is_base and isinstance(stype.base, builder.SpecTypeDefnObject):
328
337
  base_layout, _ = _validate_type_ext_info(stype.base)
329
338
  else:
@@ -107,6 +107,7 @@ from . import units_t as units_t
107
107
  from .api.entity import unlock_entity as unlock_entity_t
108
108
  from .api.recipes import unlock_recipes as unlock_recipes_t
109
109
  from .api.material_families import update_entity_material_families as update_entity_material_families_t
110
+ from .api.condition_parameters import upsert_condition_match as upsert_condition_match_t
110
111
  from .api.field_options import upsert_field_options as upsert_field_options_t
111
112
  from . import users_t as users_t
112
113
  from . import webhook_job_t as webhook_job_t
@@ -219,6 +220,7 @@ __all__: list[str] = [
219
220
  "unlock_entity_t",
220
221
  "unlock_recipes_t",
221
222
  "update_entity_material_families_t",
223
+ "upsert_condition_match_t",
222
224
  "upsert_field_options_t",
223
225
  "users_t",
224
226
  "webhook_job_t",
@@ -0,0 +1,71 @@
1
+ # DO NOT MODIFY -- This file is generated by type_spec
2
+ # ruff: noqa: E402 Q003
3
+ # fmt: off
4
+ # isort: skip_file
5
+ from __future__ import annotations
6
+ import typing # noqa: F401
7
+ import datetime # noqa: F401
8
+ from decimal import Decimal # noqa: F401
9
+ from enum import StrEnum
10
+ import dataclasses
11
+ from pkgs.serialization import serial_class
12
+ from ... import async_batch_t
13
+ from ... import identifier_t
14
+
15
+ __all__: list[str] = [
16
+ "Arguments",
17
+ "ConditionParameter",
18
+ "Data",
19
+ "ENDPOINT_METHOD",
20
+ "ENDPOINT_PATH",
21
+ "MatchType",
22
+ ]
23
+
24
+ ENDPOINT_METHOD = "POST"
25
+ ENDPOINT_PATH = "api/external/condition_parameters/upsert_condition_match"
26
+
27
+
28
+ # DO NOT MODIFY -- This file is generated by type_spec
29
+ @serial_class(
30
+ named_type_path="sdk.api.condition_parameters.upsert_condition_match.ConditionParameter",
31
+ to_string_values={"max_value", "min_value"},
32
+ )
33
+ @dataclasses.dataclass(kw_only=True)
34
+ class ConditionParameter:
35
+ condition_parameter_key: identifier_t.IdentifierKey
36
+ allow_null: bool
37
+ min_value: Decimal | None = None
38
+ max_value: Decimal | None = None
39
+ categorical_values: list[str | None] | None = None
40
+ match_type: MatchType | None = None
41
+
42
+
43
+ # DO NOT MODIFY -- This file is generated by type_spec
44
+ class MatchType(StrEnum):
45
+ ALL = "all"
46
+ EQ = "eq"
47
+ EQCATEGORICAL = "eqCategorical"
48
+ RANGE = "range"
49
+
50
+
51
+ # DO NOT MODIFY -- This file is generated by type_spec
52
+ @serial_class(
53
+ named_type_path="sdk.api.condition_parameters.upsert_condition_match.Arguments",
54
+ )
55
+ @dataclasses.dataclass(kw_only=True)
56
+ class Arguments:
57
+ explicit_name: bool = False
58
+ name: str | None = None
59
+ condition_parameters: list[ConditionParameter] | None = None
60
+ output_conditions: list[identifier_t.IdentifierKey] | None = None
61
+ existing_condition_match: identifier_t.IdentifierKey | None = None
62
+
63
+
64
+ # DO NOT MODIFY -- This file is generated by type_spec
65
+ @serial_class(
66
+ named_type_path="sdk.api.condition_parameters.upsert_condition_match.Data",
67
+ )
68
+ @dataclasses.dataclass(kw_only=True)
69
+ class Data(async_batch_t.AsyncBatchActionReturn):
70
+ pass
71
+ # DO NOT MODIFY -- This file is generated by type_spec
@@ -9,6 +9,7 @@ from decimal import Decimal # noqa: F401
9
9
  import dataclasses
10
10
  from pkgs.serialization import serial_class
11
11
  from ... import base_t
12
+ from ... import field_values_t
12
13
  from ... import input_attributes_t
13
14
  from ... import inputs_t
14
15
 
@@ -46,6 +47,7 @@ class InputToCreate:
46
47
  type: typing.Literal[inputs_t.IngredientType.INGREDIENT] | typing.Literal[inputs_t.IngredientType.PROCESS_PARAMETER]
47
48
  attributes: list[input_attributes_t.InputAttributeValue] | None = None
48
49
  category_id: base_t.ObjectId | None = None
50
+ field_values: list[field_values_t.FieldRefNameValue] | None = None
49
51
 
50
52
 
51
53
  # DO NOT MODIFY -- This file is generated by type_spec
@@ -143,6 +143,7 @@ class RecipeInputEditSetLot(RecipeInputEditBase):
143
143
  type: typing.Literal[RecipeInputEditType.SET_LOT] = RecipeInputEditType.SET_LOT
144
144
  ingredient_key: identifier_t.IdentifierKey
145
145
  ingredient_lot_recipe_key: identifier_t.IdentifierKey
146
+ mix_step_match_strategy: MixStepMatchStrategy = MixStepMatchStrategy.FIRST
146
147
 
147
148
 
148
149
  # DO NOT MODIFY -- This file is generated by type_spec
@@ -0,0 +1 @@
1
+ # DO NOT MODIFY -- This file is generated by type_spec
@@ -28,6 +28,7 @@ from uncountable.types import recipe_metadata_t
28
28
  from uncountable.types import recipe_workflow_steps_t
29
29
  import uncountable.types.api.entity.set_entity_field_values as set_entity_field_values_t
30
30
  import uncountable.types.api.recipes.set_recipe_metadata as set_recipe_metadata_t
31
+ import uncountable.types.api.condition_parameters.upsert_condition_match as upsert_condition_match_t
31
32
  import uuid
32
33
  from abc import ABC, abstractmethod
33
34
  from pkgs.serialization_util import serialize_for_api
@@ -489,3 +490,42 @@ class AsyncBatchProcessorBase(ABC):
489
490
  path=req.path,
490
491
  batch_reference=req.batch_reference,
491
492
  )
493
+
494
+ def upsert_condition_match(
495
+ self,
496
+ *,
497
+ explicit_name: bool = False,
498
+ name: str | None = None,
499
+ condition_parameters: list[upsert_condition_match_t.ConditionParameter] | None = None,
500
+ output_conditions: list[identifier_t.IdentifierKey] | None = None,
501
+ existing_condition_match: identifier_t.IdentifierKey | None = None,
502
+ depends_on: list[str] | None = None,
503
+ ) -> async_batch_t.QueuedAsyncBatchRequest:
504
+ """Creates or updates condition match
505
+
506
+ :param depends_on: A list of batch reference keys to process before processing this request
507
+ """
508
+ args = upsert_condition_match_t.Arguments(
509
+ name=name,
510
+ condition_parameters=condition_parameters,
511
+ output_conditions=output_conditions,
512
+ explicit_name=explicit_name,
513
+ existing_condition_match=existing_condition_match,
514
+ )
515
+ json_data = serialize_for_api(args)
516
+
517
+ batch_reference = str(uuid.uuid4())
518
+
519
+ req = async_batch_t.AsyncBatchRequest(
520
+ path=async_batch_t.AsyncBatchRequestPath.UPSERT_CONDITION_MATCH,
521
+ data=json_data,
522
+ depends_on=depends_on,
523
+ batch_reference=batch_reference,
524
+ )
525
+
526
+ self._enqueue(req)
527
+
528
+ return async_batch_t.QueuedAsyncBatchRequest(
529
+ path=req.path,
530
+ batch_reference=req.batch_reference,
531
+ )
@@ -42,6 +42,7 @@ class AsyncBatchRequestPath(StrEnum):
42
42
  ADD_TIME_SERIES_DATA = "recipes/add_time_series_data"
43
43
  LOOKUP_ENTITY = "entity/lookup_entity"
44
44
  CREATE_RECIPE_LINK = "recipe_links/create_recipe_link"
45
+ UPSERT_CONDITION_MATCH = "condition_parameters/upsert_condition_match"
45
46
 
46
47
 
47
48
  # DO NOT MODIFY -- This file is generated by type_spec
@@ -88,6 +88,7 @@ import uncountable.types.api.recipes.unarchive_recipes as unarchive_recipes_t
88
88
  import uncountable.types.api.entity.unlock_entity as unlock_entity_t
89
89
  import uncountable.types.api.recipes.unlock_recipes as unlock_recipes_t
90
90
  import uncountable.types.api.material_families.update_entity_material_families as update_entity_material_families_t
91
+ import uncountable.types.api.condition_parameters.upsert_condition_match as upsert_condition_match_t
91
92
  import uncountable.types.api.field_options.upsert_field_options as upsert_field_options_t
92
93
  from abc import ABC, abstractmethod
93
94
  import dataclasses
@@ -1673,6 +1674,32 @@ class ClientMethods(ABC):
1673
1674
  )
1674
1675
  return self.do_request(api_request=api_request, return_type=update_entity_material_families_t.Data)
1675
1676
 
1677
+ def upsert_condition_match(
1678
+ self,
1679
+ *,
1680
+ explicit_name: bool = False,
1681
+ name: str | None = None,
1682
+ condition_parameters: list[upsert_condition_match_t.ConditionParameter] | None = None,
1683
+ output_conditions: list[identifier_t.IdentifierKey] | None = None,
1684
+ existing_condition_match: identifier_t.IdentifierKey | None = None,
1685
+ ) -> upsert_condition_match_t.Data:
1686
+ """Creates or updates condition match
1687
+
1688
+ """
1689
+ args = upsert_condition_match_t.Arguments(
1690
+ name=name,
1691
+ condition_parameters=condition_parameters,
1692
+ output_conditions=output_conditions,
1693
+ explicit_name=explicit_name,
1694
+ existing_condition_match=existing_condition_match,
1695
+ )
1696
+ api_request = APIRequest(
1697
+ method=upsert_condition_match_t.ENDPOINT_METHOD,
1698
+ endpoint=upsert_condition_match_t.ENDPOINT_PATH,
1699
+ args=args,
1700
+ )
1701
+ return self.do_request(api_request=api_request, return_type=upsert_condition_match_t.Data)
1702
+
1676
1703
  def upsert_field_options(
1677
1704
  self,
1678
1705
  *,
@@ -26,9 +26,9 @@ __all__: list[str] = [
26
26
  )
27
27
  @dataclasses.dataclass(kw_only=True)
28
28
  class RgbColor:
29
- R: int
30
- G: int
31
- B: int
29
+ R: Decimal
30
+ G: Decimal
31
+ B: Decimal
32
32
 
33
33
 
34
34
  # DO NOT MODIFY -- This file is generated by type_spec
@@ -38,9 +38,9 @@ class RgbColor:
38
38
  )
39
39
  @dataclasses.dataclass(kw_only=True)
40
40
  class CielabColor:
41
- L: int
42
- a: int
43
- b: int
41
+ L: Decimal
42
+ a: Decimal
43
+ b: Decimal
44
44
 
45
45
 
46
46
  # DO NOT MODIFY -- This file is generated by type_spec
@@ -50,9 +50,9 @@ class CielabColor:
50
50
  )
51
51
  @dataclasses.dataclass(kw_only=True)
52
52
  class XyzColor:
53
- X: int
54
- Y: int
55
- Z: int
53
+ X: Decimal
54
+ Y: Decimal
55
+ Z: Decimal
56
56
 
57
57
 
58
58
  # DO NOT MODIFY -- This file is generated by type_spec
@@ -62,9 +62,9 @@ class XyzColor:
62
62
  )
63
63
  @dataclasses.dataclass(kw_only=True)
64
64
  class LChColor:
65
- L: int
66
- C: int
67
- h: int
65
+ L: Decimal
66
+ C: Decimal
67
+ h: Decimal
68
68
 
69
69
 
70
70
  # DO NOT MODIFY -- This file is generated by type_spec
@@ -74,9 +74,9 @@ class LChColor:
74
74
  )
75
75
  @dataclasses.dataclass(kw_only=True)
76
76
  class HslColor:
77
- h: int
78
- s: int
79
- L: int
77
+ h: Decimal
78
+ s: Decimal
79
+ L: Decimal
80
80
 
81
81
 
82
82
  # DO NOT MODIFY -- This file is generated by type_spec
@@ -39,8 +39,10 @@ __all__: list[str] = [
39
39
  "characterization": "Characterization",
40
40
  "comment": "Comment",
41
41
  "comment_thread": "Comment Thread",
42
+ "condition_match": "Condition Match",
42
43
  "condition_parameter": "Condition Parameter",
43
44
  "condition_parameter_mat_family": "Condition Parameter Material Family",
45
+ "condition_parameter_rule": "Condition Parameter Rule",
44
46
  "condition_parameter_value": "Condition Parameter Value",
45
47
  "constraint": "Constraint",
46
48
  "constraint_set": "Constraint Set",
@@ -113,6 +115,7 @@ __all__: list[str] = [
113
115
  "output_condition_parameter_analytical_method_category": "Output Condition Parameter Analytical Method Category",
114
116
  "output_condition_parameter_analytical_method": "Output Condition Parameter Analytical Method",
115
117
  "output_group": "Output Group",
118
+ "output_group_member": "Output Group Member",
116
119
  "output_preferences": "Output Preferences",
117
120
  "permission": "Permission",
118
121
  "permissions_recipe_link_inheritance": "Permissions Recipe Link Inheritance",
@@ -217,8 +220,10 @@ class EntityType(StrEnum):
217
220
  CHARACTERIZATION = "characterization"
218
221
  COMMENT = "comment"
219
222
  COMMENT_THREAD = "comment_thread"
223
+ CONDITION_MATCH = "condition_match"
220
224
  CONDITION_PARAMETER = "condition_parameter"
221
225
  CONDITION_PARAMETER_MAT_FAMILY = "condition_parameter_mat_family"
226
+ CONDITION_PARAMETER_RULE = "condition_parameter_rule"
222
227
  CONDITION_PARAMETER_VALUE = "condition_parameter_value"
223
228
  CONSTRAINT = "constraint"
224
229
  CONSTRAINT_SET = "constraint_set"
@@ -291,6 +296,7 @@ class EntityType(StrEnum):
291
296
  OUTPUT_CONDITION_PARAMETER_ANALYTICAL_METHOD_CATEGORY = "output_condition_parameter_analytical_method_category"
292
297
  OUTPUT_CONDITION_PARAMETER_ANALYTICAL_METHOD = "output_condition_parameter_analytical_method"
293
298
  OUTPUT_GROUP = "output_group"
299
+ OUTPUT_GROUP_MEMBER = "output_group_member"
294
300
  OUTPUT_PREFERENCES = "output_preferences"
295
301
  PERMISSION = "permission"
296
302
  PERMISSIONS_RECIPE_LINK_INHERITANCE = "permissions_recipe_link_inheritance"
@@ -384,7 +390,7 @@ class EntityType(StrEnum):
384
390
 
385
391
  # DO NOT MODIFY -- This file is generated by type_spec
386
392
  LimitedEntityType = typing.Annotated[
387
- typing.Literal[EntityType.LAB_REQUEST] | typing.Literal[EntityType.APPROVAL] | typing.Literal[EntityType.CUSTOM_ENTITY] | typing.Literal[EntityType.INGREDIENT_ATTRIBUTE] | typing.Literal[EntityType.INVENTORY_AMOUNT] | typing.Literal[EntityType.TASK] | typing.Literal[EntityType.PROJECT] | typing.Literal[EntityType.EQUIPMENT] | typing.Literal[EntityType.INV_LOCAL_LOCATIONS] | typing.Literal[EntityType.FIELD_OPTION_SET] | typing.Literal[EntityType.WEBHOOK] | typing.Literal[EntityType.SPECS] | typing.Literal[EntityType.GOAL] | typing.Literal[EntityType.INGREDIENT_TAG_MAP] | typing.Literal[EntityType.INGREDIENT_TAG] | typing.Literal[EntityType.CONDITION_PARAMETER] | typing.Literal[EntityType.OUTPUT] | typing.Literal[EntityType.OUTPUT_CONDITION_PARAMETER] | typing.Literal[EntityType.ASYNC_JOB] | typing.Literal[EntityType.CONSTRAINT] | typing.Literal[EntityType.INGREDIENT_CATEGORY_ALL] | typing.Literal[EntityType.TIME_SERIES_SEGMENT] | typing.Literal[EntityType.EQUIPMENT_MAINTENANCE] | typing.Literal[EntityType.MAINTENANCE_SCHEDULE],
393
+ typing.Literal[EntityType.LAB_REQUEST] | typing.Literal[EntityType.APPROVAL] | typing.Literal[EntityType.CUSTOM_ENTITY] | typing.Literal[EntityType.INGREDIENT_ATTRIBUTE] | typing.Literal[EntityType.INVENTORY_AMOUNT] | typing.Literal[EntityType.TASK] | typing.Literal[EntityType.PROJECT] | typing.Literal[EntityType.EQUIPMENT] | typing.Literal[EntityType.INV_LOCAL_LOCATIONS] | typing.Literal[EntityType.FIELD_OPTION_SET] | typing.Literal[EntityType.WEBHOOK] | typing.Literal[EntityType.SPECS] | typing.Literal[EntityType.GOAL] | typing.Literal[EntityType.INGREDIENT_TAG_MAP] | typing.Literal[EntityType.INGREDIENT_TAG] | typing.Literal[EntityType.CONDITION_PARAMETER] | typing.Literal[EntityType.OUTPUT] | typing.Literal[EntityType.OUTPUT_CONDITION_PARAMETER] | typing.Literal[EntityType.ASYNC_JOB] | typing.Literal[EntityType.CONSTRAINT] | typing.Literal[EntityType.INGREDIENT_CATEGORY_ALL] | typing.Literal[EntityType.TIME_SERIES_SEGMENT] | typing.Literal[EntityType.EQUIPMENT_MAINTENANCE] | typing.Literal[EntityType.MAINTENANCE_SCHEDULE] | typing.Literal[EntityType.CONDITION_PARAMETER_RULE],
388
394
  serial_alias_annotation(
389
395
  named_type_path="sdk.entity.LimitedEntityType",
390
396
  ),