UncountablePythonSDK 0.0.129__tar.gz → 0.0.131__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 (373) hide show
  1. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/PKG-INFO +1 -1
  2. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/UncountablePythonSDK.egg-info/PKG-INFO +1 -1
  3. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/UncountablePythonSDK.egg-info/SOURCES.txt +10 -0
  4. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/docs/requirements.txt +1 -1
  5. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/examples/integration-server/jobs/materials_auto/example_parse.py +33 -23
  6. uncountablepythonsdk-0.0.131/examples/integration-server/jobs/materials_auto/example_runsheet_wh.py +39 -0
  7. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/pkgs/argument_parser/argument_parser.py +20 -1
  8. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/pkgs/type_spec/parts/base.ts.prepart +3 -0
  9. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/__init__.py +10 -0
  10. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/entity/transition_entity_phase.py +2 -1
  11. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/integrations/push_notification.py +2 -0
  12. uncountablepythonsdk-0.0.131/uncountable/types/api/listing/fetch_listing.py +58 -0
  13. uncountablepythonsdk-0.0.131/uncountable/types/api/notebooks/add_notebook_content.py +119 -0
  14. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/outputs/get_output_organization.py +1 -1
  15. uncountablepythonsdk-0.0.131/uncountable/types/api/uploader/__init__.py +1 -0
  16. uncountablepythonsdk-0.0.131/uncountable/types/api/user/__init__.py +1 -0
  17. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/async_batch_processor.py +43 -0
  18. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/async_batch_t.py +1 -0
  19. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/client_base.py +73 -1
  20. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/entity_t.py +1 -1
  21. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/integration_server_t.py +2 -0
  22. uncountablepythonsdk-0.0.131/uncountable/types/listing.py +9 -0
  23. uncountablepythonsdk-0.0.131/uncountable/types/listing_t.py +51 -0
  24. uncountablepythonsdk-0.0.131/uncountable/types/notices.py +8 -0
  25. uncountablepythonsdk-0.0.131/uncountable/types/notices_t.py +37 -0
  26. uncountablepythonsdk-0.0.131/uncountable/types/structured_filters.py +25 -0
  27. uncountablepythonsdk-0.0.131/uncountable/types/structured_filters_t.py +248 -0
  28. uncountablepythonsdk-0.0.129/examples/integration-server/jobs/materials_auto/example_runsheet_wh.py +0 -36
  29. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/.github/workflows/documentation.yml +0 -0
  30. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/.github/workflows/publish.yml +0 -0
  31. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/.gitignore +0 -0
  32. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/.python-version +0 -0
  33. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/README.md +0 -0
  34. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/UncountablePythonSDK.egg-info/dependency_links.txt +0 -0
  35. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/UncountablePythonSDK.egg-info/requires.txt +0 -0
  36. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/UncountablePythonSDK.egg-info/top_level.txt +0 -0
  37. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/docs/.gitignore +0 -0
  38. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/docs/conf.py +0 -0
  39. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/docs/index.md +0 -0
  40. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/docs/integration_examples/create_ingredient.md +0 -0
  41. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/docs/integration_examples/create_output.md +0 -0
  42. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/docs/integration_examples/index.md +0 -0
  43. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/docs/justfile +0 -0
  44. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/docs/static/favicons/android-chrome-192x192.png +0 -0
  45. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/docs/static/favicons/android-chrome-512x512.png +0 -0
  46. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/docs/static/favicons/apple-touch-icon.png +0 -0
  47. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/docs/static/favicons/browserconfig.xml +0 -0
  48. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/docs/static/favicons/favicon-16x16.png +0 -0
  49. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/docs/static/favicons/favicon-32x32.png +0 -0
  50. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/docs/static/favicons/manifest.json +0 -0
  51. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/docs/static/favicons/mstile-150x150.png +0 -0
  52. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/docs/static/favicons/safari-pinned-tab.svg +0 -0
  53. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/docs/static/logo_blue.png +0 -0
  54. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/examples/async_batch.py +0 -0
  55. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/examples/basic_auth.py +0 -0
  56. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/examples/create_entity.py +0 -0
  57. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/examples/create_ingredient_sdk.py +0 -0
  58. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/examples/download_files.py +0 -0
  59. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/examples/edit_recipe_inputs.py +0 -0
  60. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/examples/integration-server/jobs/materials_auto/concurrent_cron.py +0 -0
  61. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/examples/integration-server/jobs/materials_auto/example_cron.py +0 -0
  62. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/examples/integration-server/jobs/materials_auto/example_http.py +0 -0
  63. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/examples/integration-server/jobs/materials_auto/example_instrument.py +0 -0
  64. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/examples/integration-server/jobs/materials_auto/example_predictions.py +0 -0
  65. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/examples/integration-server/jobs/materials_auto/example_wh.py +0 -0
  66. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/examples/integration-server/jobs/materials_auto/profile.yaml +0 -0
  67. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/examples/integration-server/pyproject.toml +0 -0
  68. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/examples/invoke_uploader.py +0 -0
  69. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/examples/oauth.py +0 -0
  70. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/examples/set_recipe_metadata_file.py +0 -0
  71. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/examples/set_recipe_output_file_sdk.py +0 -0
  72. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/examples/upload_files.py +0 -0
  73. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/pkgs/__init__.py +0 -0
  74. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/pkgs/argument_parser/__init__.py +0 -0
  75. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/pkgs/argument_parser/_is_enum.py +0 -0
  76. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/pkgs/argument_parser/_is_namedtuple.py +0 -0
  77. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/pkgs/argument_parser/case_convert.py +0 -0
  78. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/pkgs/filesystem_utils/__init__.py +0 -0
  79. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/pkgs/filesystem_utils/_blob_session.py +0 -0
  80. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/pkgs/filesystem_utils/_gdrive_session.py +0 -0
  81. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/pkgs/filesystem_utils/_local_session.py +0 -0
  82. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/pkgs/filesystem_utils/_s3_session.py +0 -0
  83. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/pkgs/filesystem_utils/_sftp_session.py +0 -0
  84. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/pkgs/filesystem_utils/file_type_utils.py +0 -0
  85. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/pkgs/filesystem_utils/filesystem_session.py +0 -0
  86. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/pkgs/py.typed +0 -0
  87. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/pkgs/serialization/__init__.py +0 -0
  88. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/pkgs/serialization/annotation.py +0 -0
  89. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/pkgs/serialization/missing_sentry.py +0 -0
  90. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/pkgs/serialization/opaque_key.py +0 -0
  91. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/pkgs/serialization/serial_alias.py +0 -0
  92. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/pkgs/serialization/serial_class.py +0 -0
  93. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/pkgs/serialization/serial_generic.py +0 -0
  94. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/pkgs/serialization/serial_union.py +0 -0
  95. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/pkgs/serialization/yaml.py +0 -0
  96. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/pkgs/serialization_util/__init__.py +0 -0
  97. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/pkgs/serialization_util/_get_type_for_serialization.py +0 -0
  98. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/pkgs/serialization_util/convert_to_snakecase.py +0 -0
  99. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/pkgs/serialization_util/dataclasses.py +0 -0
  100. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/pkgs/serialization_util/serialization_helpers.py +0 -0
  101. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/pkgs/strenum_compat/__init__.py +0 -0
  102. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/pkgs/strenum_compat/strenum_compat.py +0 -0
  103. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/pkgs/type_spec/__init__.py +0 -0
  104. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/pkgs/type_spec/__main__.py +0 -0
  105. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/pkgs/type_spec/actions_registry/__init__.py +0 -0
  106. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/pkgs/type_spec/actions_registry/__main__.py +0 -0
  107. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/pkgs/type_spec/actions_registry/emit_typescript.py +0 -0
  108. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/pkgs/type_spec/builder.py +0 -0
  109. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/pkgs/type_spec/builder_types.py +0 -0
  110. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/pkgs/type_spec/config.py +0 -0
  111. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/pkgs/type_spec/cross_output_links.py +0 -0
  112. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/pkgs/type_spec/emit_io_ts.py +0 -0
  113. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/pkgs/type_spec/emit_open_api.py +0 -0
  114. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/pkgs/type_spec/emit_open_api_util.py +0 -0
  115. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/pkgs/type_spec/emit_python.py +0 -0
  116. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/pkgs/type_spec/emit_typescript.py +0 -0
  117. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/pkgs/type_spec/emit_typescript_util.py +0 -0
  118. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/pkgs/type_spec/load_types.py +0 -0
  119. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/pkgs/type_spec/non_discriminated_union_exceptions.py +0 -0
  120. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/pkgs/type_spec/open_api_util.py +0 -0
  121. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/pkgs/type_spec/parts/base.py.prepart +0 -0
  122. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/pkgs/type_spec/test.py +0 -0
  123. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/pkgs/type_spec/type_info/__main__.py +0 -0
  124. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/pkgs/type_spec/type_info/emit_type_info.py +0 -0
  125. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/pkgs/type_spec/ui_entry_actions/__init__.py +0 -0
  126. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/pkgs/type_spec/ui_entry_actions/generate_ui_entry_actions.py +0 -0
  127. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/pkgs/type_spec/util.py +0 -0
  128. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/pkgs/type_spec/value_spec/__init__.py +0 -0
  129. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/pkgs/type_spec/value_spec/__main__.py +0 -0
  130. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/pkgs/type_spec/value_spec/convert_type.py +0 -0
  131. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/pkgs/type_spec/value_spec/emit_python.py +0 -0
  132. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/pkgs/type_spec/value_spec/types.py +0 -0
  133. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/pyproject.toml +0 -0
  134. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/setup.cfg +0 -0
  135. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/__init__.py +0 -0
  136. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/core/__init__.py +0 -0
  137. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/core/async_batch.py +0 -0
  138. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/core/client.py +0 -0
  139. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/core/environment.py +0 -0
  140. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/core/file_upload.py +0 -0
  141. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/core/types.py +0 -0
  142. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/integration/__init__.py +0 -0
  143. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/integration/cli.py +0 -0
  144. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/integration/construct_client.py +0 -0
  145. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/integration/cron.py +0 -0
  146. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/integration/db/__init__.py +0 -0
  147. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/integration/db/connect.py +0 -0
  148. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/integration/db/session.py +0 -0
  149. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/integration/entrypoint.py +0 -0
  150. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/integration/executors/__init__.py +0 -0
  151. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/integration/executors/executors.py +0 -0
  152. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/integration/executors/generic_upload_executor.py +0 -0
  153. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/integration/executors/script_executor.py +0 -0
  154. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/integration/http_server/__init__.py +0 -0
  155. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/integration/http_server/types.py +0 -0
  156. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/integration/job.py +0 -0
  157. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/integration/queue_runner/__init__.py +0 -0
  158. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/integration/queue_runner/command_server/__init__.py +0 -0
  159. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/integration/queue_runner/command_server/command_client.py +0 -0
  160. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/integration/queue_runner/command_server/command_server.py +0 -0
  161. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/integration/queue_runner/command_server/constants.py +0 -0
  162. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/integration/queue_runner/command_server/protocol/__init__.py +0 -0
  163. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/integration/queue_runner/command_server/protocol/command_server.proto +0 -0
  164. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/integration/queue_runner/command_server/protocol/command_server_pb2.py +0 -0
  165. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/integration/queue_runner/command_server/protocol/command_server_pb2.pyi +0 -0
  166. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/integration/queue_runner/command_server/protocol/command_server_pb2_grpc.py +0 -0
  167. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/integration/queue_runner/command_server/types.py +0 -0
  168. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/integration/queue_runner/datastore/__init__.py +0 -0
  169. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/integration/queue_runner/datastore/datastore_sqlite.py +0 -0
  170. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/integration/queue_runner/datastore/interface.py +0 -0
  171. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/integration/queue_runner/datastore/model.py +0 -0
  172. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/integration/queue_runner/job_scheduler.py +0 -0
  173. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/integration/queue_runner/queue_runner.py +0 -0
  174. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/integration/queue_runner/types.py +0 -0
  175. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/integration/queue_runner/worker.py +0 -0
  176. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/integration/scan_profiles.py +0 -0
  177. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/integration/scheduler.py +0 -0
  178. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/integration/secret_retrieval/__init__.py +0 -0
  179. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/integration/secret_retrieval/retrieve_secret.py +0 -0
  180. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/integration/server.py +0 -0
  181. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/integration/telemetry.py +0 -0
  182. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/integration/webhook_server/entrypoint.py +0 -0
  183. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/py.typed +0 -0
  184. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/__init__.py +0 -0
  185. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/batch/__init__.py +0 -0
  186. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/batch/execute_batch.py +0 -0
  187. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/batch/execute_batch_load_async.py +0 -0
  188. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/chemical/__init__.py +0 -0
  189. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/chemical/convert_chemical_formats.py +0 -0
  190. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/condition_parameters/__init__.py +0 -0
  191. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/condition_parameters/upsert_condition_match.py +0 -0
  192. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/entity/__init__.py +0 -0
  193. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/entity/create_entities.py +0 -0
  194. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/entity/create_entity.py +0 -0
  195. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/entity/create_or_update_entity.py +0 -0
  196. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/entity/export_entities.py +0 -0
  197. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/entity/get_entities_data.py +0 -0
  198. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/entity/grant_entity_permissions.py +0 -0
  199. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/entity/list_aggregate.py +0 -0
  200. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/entity/list_entities.py +0 -0
  201. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/entity/lock_entity.py +0 -0
  202. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/entity/lookup_entity.py +0 -0
  203. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/entity/resolve_entity_ids.py +0 -0
  204. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/entity/set_entity_field_values.py +0 -0
  205. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/entity/set_values.py +0 -0
  206. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/entity/unlock_entity.py +0 -0
  207. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/equipment/__init__.py +0 -0
  208. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/equipment/associate_equipment_input.py +0 -0
  209. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/field_options/__init__.py +0 -0
  210. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/field_options/upsert_field_options.py +0 -0
  211. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/files/__init__.py +0 -0
  212. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/files/download_file.py +0 -0
  213. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/id_source/__init__.py +0 -0
  214. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/id_source/list_id_source.py +0 -0
  215. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/id_source/match_id_source.py +0 -0
  216. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/input_groups/__init__.py +0 -0
  217. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/input_groups/get_input_group_names.py +0 -0
  218. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/inputs/__init__.py +0 -0
  219. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/inputs/create_inputs.py +0 -0
  220. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/inputs/get_input_data.py +0 -0
  221. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/inputs/get_input_names.py +0 -0
  222. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/inputs/get_inputs_data.py +0 -0
  223. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/inputs/set_input_attribute_values.py +0 -0
  224. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/inputs/set_input_category.py +0 -0
  225. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/inputs/set_input_subcategories.py +0 -0
  226. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/inputs/set_intermediate_type.py +0 -0
  227. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/integrations/__init__.py +0 -0
  228. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/integrations/publish_realtime_data.py +0 -0
  229. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/integrations/register_sockets_token.py +0 -0
  230. {uncountablepythonsdk-0.0.129/uncountable/types/api/material_families → uncountablepythonsdk-0.0.131/uncountable/types/api/listing}/__init__.py +0 -0
  231. {uncountablepythonsdk-0.0.129/uncountable/types/api/outputs → uncountablepythonsdk-0.0.131/uncountable/types/api/material_families}/__init__.py +0 -0
  232. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/material_families/update_entity_material_families.py +0 -0
  233. {uncountablepythonsdk-0.0.129/uncountable/types/api/permissions → uncountablepythonsdk-0.0.131/uncountable/types/api/notebooks}/__init__.py +0 -0
  234. {uncountablepythonsdk-0.0.129/uncountable/types/api/project → uncountablepythonsdk-0.0.131/uncountable/types/api/outputs}/__init__.py +0 -0
  235. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/outputs/get_output_data.py +0 -0
  236. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/outputs/get_output_names.py +0 -0
  237. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/outputs/resolve_output_conditions.py +0 -0
  238. {uncountablepythonsdk-0.0.129/uncountable/types/api/recipe_links → uncountablepythonsdk-0.0.131/uncountable/types/api/permissions}/__init__.py +0 -0
  239. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/permissions/set_core_permissions.py +0 -0
  240. {uncountablepythonsdk-0.0.129/uncountable/types/api/recipe_metadata → uncountablepythonsdk-0.0.131/uncountable/types/api/project}/__init__.py +0 -0
  241. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/project/get_projects.py +0 -0
  242. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/project/get_projects_data.py +0 -0
  243. {uncountablepythonsdk-0.0.129/uncountable/types/api/recipes → uncountablepythonsdk-0.0.131/uncountable/types/api/recipe_links}/__init__.py +0 -0
  244. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/recipe_links/create_recipe_link.py +0 -0
  245. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/recipe_links/remove_recipe_link.py +0 -0
  246. {uncountablepythonsdk-0.0.129/uncountable/types/api/runsheet → uncountablepythonsdk-0.0.131/uncountable/types/api/recipe_metadata}/__init__.py +0 -0
  247. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/recipe_metadata/get_recipe_metadata_data.py +0 -0
  248. {uncountablepythonsdk-0.0.129/uncountable/types/api/triggers → uncountablepythonsdk-0.0.131/uncountable/types/api/recipes}/__init__.py +0 -0
  249. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/recipes/add_recipe_to_project.py +0 -0
  250. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/recipes/add_time_series_data.py +0 -0
  251. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/recipes/archive_recipes.py +0 -0
  252. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/recipes/associate_recipe_as_input.py +0 -0
  253. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/recipes/associate_recipe_as_lot.py +0 -0
  254. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/recipes/clear_recipe_outputs.py +0 -0
  255. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/recipes/create_mix_order.py +0 -0
  256. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/recipes/create_recipe.py +0 -0
  257. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/recipes/create_recipes.py +0 -0
  258. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/recipes/disassociate_recipe_as_input.py +0 -0
  259. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/recipes/edit_recipe_inputs.py +0 -0
  260. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/recipes/get_column_calculation_values.py +0 -0
  261. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/recipes/get_curve.py +0 -0
  262. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/recipes/get_recipe_calculations.py +0 -0
  263. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/recipes/get_recipe_links.py +0 -0
  264. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/recipes/get_recipe_names.py +0 -0
  265. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/recipes/get_recipe_output_metadata.py +0 -0
  266. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/recipes/get_recipes_data.py +0 -0
  267. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/recipes/lock_recipes.py +0 -0
  268. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/recipes/remove_recipe_from_project.py +0 -0
  269. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/recipes/set_recipe_inputs.py +0 -0
  270. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/recipes/set_recipe_metadata.py +0 -0
  271. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/recipes/set_recipe_output_annotations.py +0 -0
  272. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/recipes/set_recipe_output_file.py +0 -0
  273. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/recipes/set_recipe_outputs.py +0 -0
  274. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/recipes/set_recipe_tags.py +0 -0
  275. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/recipes/set_recipe_total.py +0 -0
  276. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/recipes/unarchive_recipes.py +0 -0
  277. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/recipes/unlock_recipes.py +0 -0
  278. {uncountablepythonsdk-0.0.129/uncountable/types/api/uploader → uncountablepythonsdk-0.0.131/uncountable/types/api/runsheet}/__init__.py +0 -0
  279. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/runsheet/complete_async_upload.py +0 -0
  280. {uncountablepythonsdk-0.0.129/uncountable/types/api/user → uncountablepythonsdk-0.0.131/uncountable/types/api/triggers}/__init__.py +0 -0
  281. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/triggers/run_trigger.py +0 -0
  282. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/uploader/complete_async_parse.py +0 -0
  283. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/uploader/invoke_uploader.py +0 -0
  284. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/api/user/get_current_user_info.py +0 -0
  285. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/async_batch.py +0 -0
  286. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/async_jobs.py +0 -0
  287. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/async_jobs_t.py +0 -0
  288. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/auth_retrieval.py +0 -0
  289. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/auth_retrieval_t.py +0 -0
  290. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/base.py +0 -0
  291. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/base_t.py +0 -0
  292. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/calculations.py +0 -0
  293. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/calculations_t.py +0 -0
  294. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/chemical_structure.py +0 -0
  295. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/chemical_structure_t.py +0 -0
  296. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/client_config.py +0 -0
  297. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/client_config_t.py +0 -0
  298. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/curves.py +0 -0
  299. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/curves_t.py +0 -0
  300. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/data.py +0 -0
  301. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/data_t.py +0 -0
  302. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/entity.py +0 -0
  303. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/experiment_groups.py +0 -0
  304. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/experiment_groups_t.py +0 -0
  305. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/exports.py +0 -0
  306. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/exports_t.py +0 -0
  307. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/field_values.py +0 -0
  308. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/field_values_t.py +0 -0
  309. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/fields.py +0 -0
  310. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/fields_t.py +0 -0
  311. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/generic_upload.py +0 -0
  312. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/generic_upload_t.py +0 -0
  313. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/id_source.py +0 -0
  314. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/id_source_t.py +0 -0
  315. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/identifier.py +0 -0
  316. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/identifier_t.py +0 -0
  317. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/input_attributes.py +0 -0
  318. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/input_attributes_t.py +0 -0
  319. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/inputs.py +0 -0
  320. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/inputs_t.py +0 -0
  321. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/integration_server.py +0 -0
  322. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/integration_session.py +0 -0
  323. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/integration_session_t.py +0 -0
  324. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/integrations.py +0 -0
  325. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/integrations_t.py +0 -0
  326. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/job_definition.py +0 -0
  327. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/job_definition_t.py +0 -0
  328. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/notifications.py +0 -0
  329. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/notifications_t.py +0 -0
  330. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/outputs.py +0 -0
  331. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/outputs_t.py +0 -0
  332. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/overrides.py +0 -0
  333. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/overrides_t.py +0 -0
  334. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/permissions.py +0 -0
  335. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/permissions_t.py +0 -0
  336. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/phases.py +0 -0
  337. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/phases_t.py +0 -0
  338. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/post_base.py +0 -0
  339. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/post_base_t.py +0 -0
  340. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/queued_job.py +0 -0
  341. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/queued_job_t.py +0 -0
  342. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/recipe_identifiers.py +0 -0
  343. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/recipe_identifiers_t.py +0 -0
  344. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/recipe_inputs.py +0 -0
  345. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/recipe_inputs_t.py +0 -0
  346. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/recipe_links.py +0 -0
  347. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/recipe_links_t.py +0 -0
  348. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/recipe_metadata.py +0 -0
  349. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/recipe_metadata_t.py +0 -0
  350. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/recipe_output_metadata.py +0 -0
  351. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/recipe_output_metadata_t.py +0 -0
  352. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/recipe_tags.py +0 -0
  353. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/recipe_tags_t.py +0 -0
  354. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/recipe_workflow_steps.py +0 -0
  355. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/recipe_workflow_steps_t.py +0 -0
  356. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/recipes.py +0 -0
  357. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/recipes_t.py +0 -0
  358. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/response.py +0 -0
  359. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/response_t.py +0 -0
  360. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/secret_retrieval.py +0 -0
  361. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/secret_retrieval_t.py +0 -0
  362. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/sockets.py +0 -0
  363. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/sockets_t.py +0 -0
  364. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/units.py +0 -0
  365. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/units_t.py +0 -0
  366. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/uploader.py +0 -0
  367. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/uploader_t.py +0 -0
  368. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/users.py +0 -0
  369. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/users_t.py +0 -0
  370. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/webhook_job.py +0 -0
  371. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/webhook_job_t.py +0 -0
  372. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/uncountable/types/workflows.py +0 -0
  373. {uncountablepythonsdk-0.0.129 → uncountablepythonsdk-0.0.131}/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.129
3
+ Version: 0.0.131
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.129
3
+ Version: 0.0.131
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
@@ -208,6 +208,10 @@ uncountable/types/integrations.py
208
208
  uncountable/types/integrations_t.py
209
209
  uncountable/types/job_definition.py
210
210
  uncountable/types/job_definition_t.py
211
+ uncountable/types/listing.py
212
+ uncountable/types/listing_t.py
213
+ uncountable/types/notices.py
214
+ uncountable/types/notices_t.py
211
215
  uncountable/types/notifications.py
212
216
  uncountable/types/notifications_t.py
213
217
  uncountable/types/outputs.py
@@ -244,6 +248,8 @@ uncountable/types/secret_retrieval.py
244
248
  uncountable/types/secret_retrieval_t.py
245
249
  uncountable/types/sockets.py
246
250
  uncountable/types/sockets_t.py
251
+ uncountable/types/structured_filters.py
252
+ uncountable/types/structured_filters_t.py
247
253
  uncountable/types/units.py
248
254
  uncountable/types/units_t.py
249
255
  uncountable/types/uploader.py
@@ -302,8 +308,12 @@ uncountable/types/api/integrations/__init__.py
302
308
  uncountable/types/api/integrations/publish_realtime_data.py
303
309
  uncountable/types/api/integrations/push_notification.py
304
310
  uncountable/types/api/integrations/register_sockets_token.py
311
+ uncountable/types/api/listing/__init__.py
312
+ uncountable/types/api/listing/fetch_listing.py
305
313
  uncountable/types/api/material_families/__init__.py
306
314
  uncountable/types/api/material_families/update_entity_material_families.py
315
+ uncountable/types/api/notebooks/__init__.py
316
+ uncountable/types/api/notebooks/add_notebook_content.py
307
317
  uncountable/types/api/outputs/__init__.py
308
318
  uncountable/types/api/outputs/get_output_data.py
309
319
  uncountable/types/api/outputs/get_output_names.py
@@ -1,4 +1,4 @@
1
- furo==2025.7.19
1
+ furo==2025.9.25
2
2
  myst-parser==4.0.1
3
3
  sphinx-autoapi==3.6.0
4
4
  sphinx-copybutton==0.5.2
@@ -23,9 +23,40 @@ class ParseExample(WebhookJob[ParsePayload]):
23
23
  def run(
24
24
  self, args: JobArguments, payload: ParsePayload
25
25
  ) -> job_definition_t.JobResult:
26
+ user_id: base_t.ObjectId | None = None
27
+ recipe_id: base_t.ObjectId | None = None
28
+ file_name: str | None = None
29
+ data = args.client.get_entities_data(
30
+ entity_ids=[payload.async_job_id], entity_type=entity_t.EntityType.ASYNC_JOB
31
+ )
32
+ for field_value in data.entity_details[0].field_values:
33
+ if field_value.field_ref_name == "core_async_job_jobData":
34
+ assert isinstance(field_value.value, dict)
35
+ assert isinstance(field_value.value["user_id"], int)
36
+ user_id = field_value.value["user_id"]
37
+ elif (
38
+ field_value.field_ref_name
39
+ == "unc_async_job_custom_parser_recipe_ids_in_view"
40
+ ):
41
+ if field_value.value is None:
42
+ continue
43
+ assert isinstance(field_value.value, list)
44
+ if len(field_value.value) > 0:
45
+ assert isinstance(field_value.value[0], int)
46
+ recipe_id = field_value.value[0]
47
+ elif field_value.field_ref_name == "unc_async_job_custom_parser_input_file":
48
+ assert isinstance(field_value.value, list)
49
+ assert len(field_value.value) == 1
50
+ assert isinstance(field_value.value[0], dict)
51
+ assert isinstance(field_value.value[0]["name"], str)
52
+ file_name = field_value.value[0]["name"]
53
+
54
+ assert user_id is not None
55
+ assert file_name is not None
56
+
26
57
  dummy_parsed_file_data: list[uploader_t.ParsedFileData] = [
27
58
  uploader_t.ParsedFileData(
28
- file_name="my_file_to_upload.xlsx",
59
+ file_name=file_name,
29
60
  file_structures=[
30
61
  uploader_t.DataChannel(
31
62
  type=uploader_t.StructureElementType.CHANNEL,
@@ -82,32 +113,11 @@ class ParseExample(WebhookJob[ParsePayload]):
82
113
  )
83
114
  ]
84
115
 
85
- user_id: base_t.ObjectId | None = None
86
- recipe_id: base_t.ObjectId | None = None
87
- data = args.client.get_entities_data(
88
- entity_ids=[payload.async_job_id], entity_type=entity_t.EntityType.ASYNC_JOB
89
- )
90
- for field_value in data.entity_details[0].field_values:
91
- if field_value.field_ref_name == "core_async_job_jobData":
92
- assert isinstance(field_value.value, dict)
93
- assert isinstance(field_value.value["user_id"], int)
94
- user_id = field_value.value["user_id"]
95
- if (
96
- field_value.field_ref_name
97
- == "unc_async_job_custom_parser_recipe_ids_in_view"
98
- ):
99
- assert isinstance(field_value.value, list)
100
- assert isinstance(field_value.value[0], int)
101
- recipe_id = field_value.value[0]
102
-
103
- assert user_id is not None
104
- assert recipe_id is not None
105
-
106
116
  complete_async_parse_req = args.batch_processor.complete_async_parse(
107
117
  parsed_file_data=dummy_parsed_file_data,
108
118
  async_job_key=identifier_t.IdentifierKeyId(id=payload.async_job_id),
109
119
  upload_destination=generic_upload_t.UploadDestinationRecipe(
110
- recipe_key=identifier_t.IdentifierKeyId(id=recipe_id)
120
+ recipe_key=identifier_t.IdentifierKeyId(id=recipe_id or 1)
111
121
  ),
112
122
  )
113
123
 
@@ -0,0 +1,39 @@
1
+ from io import BytesIO
2
+
3
+ from uncountable.core.file_upload import DataFileUpload, FileUpload
4
+ from uncountable.integration.job import JobArguments, RunsheetWebhookJob, register_job
5
+ from uncountable.types import (
6
+ download_file_t,
7
+ entity_t,
8
+ identifier_t,
9
+ webhook_job_t,
10
+ )
11
+
12
+
13
+ @register_job
14
+ class StandardRunsheetGenerator(RunsheetWebhookJob):
15
+ def build_runsheet(
16
+ self,
17
+ *,
18
+ args: JobArguments,
19
+ payload: webhook_job_t.RunsheetWebhookPayload,
20
+ ) -> FileUpload:
21
+ args.logger.log_info("Retrieving pre-exported runsheet file from async job")
22
+
23
+ file_query = download_file_t.FileDownloadQueryEntityField(
24
+ entity=entity_t.EntityIdentifier(
25
+ type=entity_t.EntityType.ASYNC_JOB,
26
+ identifier_key=identifier_t.IdentifierKeyId(id=payload.async_job_id),
27
+ ),
28
+ field_key=identifier_t.IdentifierKeyRefName(
29
+ ref_name="unc_async_job_export_runsheet_recipe_export"
30
+ ),
31
+ )
32
+
33
+ downloaded_files = args.client.download_files(file_query=file_query)
34
+
35
+ file_data = downloaded_files[0].data.read()
36
+ return DataFileUpload(
37
+ data=BytesIO(file_data),
38
+ name=downloaded_files[0].name,
39
+ )
@@ -168,6 +168,23 @@ def _invoke_membership_parser(
168
168
  raise ValueError(f"Expected value from {expected_values} but got value {value}")
169
169
 
170
170
 
171
+ # Uses `is` to compare
172
+ def _build_identity_parser(
173
+ identity_value: T,
174
+ ) -> ParserFunction[T]:
175
+ def parse(value: typing.Any) -> T:
176
+ if value is identity_value:
177
+ return identity_value
178
+ raise ValueError(
179
+ f"Expected value {identity_value} (type: {type(identity_value)}) but got value {value} (type: {type(value)})"
180
+ )
181
+
182
+ return parse
183
+
184
+
185
+ NONE_IDENTITY_PARSER = _build_identity_parser(None)
186
+
187
+
171
188
  def _build_parser_discriminated_union(
172
189
  context: ParserContext,
173
190
  discriminator_raw: str,
@@ -243,8 +260,10 @@ def _build_parser_inner(
243
260
  for field_name, field_parser in field_parsers
244
261
  })
245
262
 
263
+ # IMPROVE: unclear why we need == here
246
264
  if parsed_type == type(None): # noqa: E721
247
- return lambda value: _invoke_membership_parser({None}, value)
265
+ # Need to convince type checker that parsed_type is type(None)
266
+ return typing.cast(ParserFunction[T], NONE_IDENTITY_PARSER)
248
267
 
249
268
  origin = typing.get_origin(parsed_type)
250
269
  if origin is tuple:
@@ -29,3 +29,6 @@ export const IOJsonValue: IO.Type<JsonValue> = IO.recursion('JsonValue', () =>
29
29
  export interface nominal<T> {
30
30
  "nominal structural brand": T
31
31
  }
32
+
33
+ // Ids matching a strict integer number are converted to integers
34
+ export const ID_REGEX = /-?[1-9][0-9]{0,20}/
@@ -2,6 +2,7 @@
2
2
  # ruff: noqa: E402 Q003
3
3
  # fmt: off
4
4
  # isort: skip_file
5
+ from .api.notebooks import add_notebook_content as add_notebook_content_t
5
6
  from .api.recipes import add_recipe_to_project as add_recipe_to_project_t
6
7
  from .api.recipes import add_time_series_data as add_time_series_data_t
7
8
  from .api.recipes import archive_recipes as archive_recipes_t
@@ -38,6 +39,7 @@ from .api.batch import execute_batch_load_async as execute_batch_load_async_t
38
39
  from . import experiment_groups_t as experiment_groups_t
39
40
  from .api.entity import export_entities as export_entities_t
40
41
  from . import exports_t as exports_t
42
+ from .api.listing import fetch_listing as fetch_listing_t
41
43
  from . import field_values_t as field_values_t
42
44
  from . import fields_t as fields_t
43
45
  from . import generic_upload_t as generic_upload_t
@@ -73,10 +75,12 @@ from . import job_definition_t as job_definition_t
73
75
  from .api.entity import list_aggregate as list_aggregate_t
74
76
  from .api.entity import list_entities as list_entities_t
75
77
  from .api.id_source import list_id_source as list_id_source_t
78
+ from . import listing_t as listing_t
76
79
  from .api.entity import lock_entity as lock_entity_t
77
80
  from .api.recipes import lock_recipes as lock_recipes_t
78
81
  from .api.entity import lookup_entity as lookup_entity_t
79
82
  from .api.id_source import match_id_source as match_id_source_t
83
+ from . import notices_t as notices_t
80
84
  from . import notifications_t as notifications_t
81
85
  from . import outputs_t as outputs_t
82
86
  from . import overrides_t as overrides_t
@@ -117,6 +121,7 @@ from .api.recipes import set_recipe_tags as set_recipe_tags_t
117
121
  from .api.recipes import set_recipe_total as set_recipe_total_t
118
122
  from .api.entity import set_values as set_values_t
119
123
  from . import sockets_t as sockets_t
124
+ from . import structured_filters_t as structured_filters_t
120
125
  from .api.entity import transition_entity_phase as transition_entity_phase_t
121
126
  from .api.recipes import unarchive_recipes as unarchive_recipes_t
122
127
  from . import units_t as units_t
@@ -132,6 +137,7 @@ from . import workflows_t as workflows_t
132
137
 
133
138
 
134
139
  __all__: list[str] = [
140
+ "add_notebook_content_t",
135
141
  "add_recipe_to_project_t",
136
142
  "add_time_series_data_t",
137
143
  "archive_recipes_t",
@@ -168,6 +174,7 @@ __all__: list[str] = [
168
174
  "experiment_groups_t",
169
175
  "export_entities_t",
170
176
  "exports_t",
177
+ "fetch_listing_t",
171
178
  "field_values_t",
172
179
  "fields_t",
173
180
  "generic_upload_t",
@@ -203,10 +210,12 @@ __all__: list[str] = [
203
210
  "list_aggregate_t",
204
211
  "list_entities_t",
205
212
  "list_id_source_t",
213
+ "listing_t",
206
214
  "lock_entity_t",
207
215
  "lock_recipes_t",
208
216
  "lookup_entity_t",
209
217
  "match_id_source_t",
218
+ "notices_t",
210
219
  "notifications_t",
211
220
  "outputs_t",
212
221
  "overrides_t",
@@ -247,6 +256,7 @@ __all__: list[str] = [
247
256
  "set_recipe_total_t",
248
257
  "set_values_t",
249
258
  "sockets_t",
259
+ "structured_filters_t",
250
260
  "transition_entity_phase_t",
251
261
  "unarchive_recipes_t",
252
262
  "units_t",
@@ -66,8 +66,9 @@ TransitionIdentifier = typing.Annotated[
66
66
  )
67
67
  @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
68
68
  class Arguments:
69
- entity: entity_t.Entity
70
69
  transition: TransitionIdentifier
70
+ entity: entity_t.Entity | None = None
71
+ entity_identifier: entity_t.EntityIdentifier | None = None
71
72
 
72
73
 
73
74
  # DO NOT MODIFY -- This file is generated by type_spec
@@ -11,6 +11,7 @@ from pkgs.serialization import serial_class
11
11
  from ... import async_batch_t
12
12
  from ... import base_t
13
13
  from ... import entity_t
14
+ from ... import notices_t
14
15
  from ... import notifications_t
15
16
 
16
17
  __all__: list[str] = [
@@ -35,6 +36,7 @@ class Arguments:
35
36
  message: str
36
37
  display_notice: bool = False
37
38
  entity: entity_t.EntityIdentifier | None = None
39
+ notice_configuration: notices_t.NotificationNoticeConfiguration | None = None
38
40
 
39
41
 
40
42
  # DO NOT MODIFY -- This file is generated by type_spec
@@ -0,0 +1,58 @@
1
+ # DO NOT MODIFY -- This file is generated by type_spec
2
+ # ruff: noqa: E402 Q003
3
+ # fmt: off
4
+ # isort: skip_file
5
+ from __future__ import annotations
6
+ import typing # noqa: F401
7
+ import datetime # noqa: F401
8
+ from decimal import Decimal # noqa: F401
9
+ import dataclasses
10
+ from pkgs.serialization import serial_class
11
+ from ... import base_t
12
+ from ... import entity_t
13
+ from ... import listing_t
14
+ from ... import structured_filters_t
15
+
16
+ __all__: list[str] = [
17
+ "Arguments",
18
+ "Data",
19
+ "ENDPOINT_METHOD",
20
+ "ENDPOINT_PATH",
21
+ "ListingRow",
22
+ ]
23
+
24
+ ENDPOINT_METHOD = "POST"
25
+ ENDPOINT_PATH = "api/external/listing/fetch_listing"
26
+
27
+
28
+ # DO NOT MODIFY -- This file is generated by type_spec
29
+ @serial_class(
30
+ named_type_path="sdk.api.listing.fetch_listing.Arguments",
31
+ )
32
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
33
+ class Arguments:
34
+ entity_type: entity_t.EntityType
35
+ columns: list[listing_t.ColumnIdentifier]
36
+ filters: structured_filters_t.FilterNode | None = None
37
+ limit: int | None = None
38
+ offset: int | None = None
39
+
40
+
41
+ # DO NOT MODIFY -- This file is generated by type_spec
42
+ @serial_class(
43
+ named_type_path="sdk.api.listing.fetch_listing.ListingRow",
44
+ unconverted_values={"column_values"},
45
+ )
46
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
47
+ class ListingRow:
48
+ column_values: list[base_t.JsonValue]
49
+
50
+
51
+ # DO NOT MODIFY -- This file is generated by type_spec
52
+ @serial_class(
53
+ named_type_path="sdk.api.listing.fetch_listing.Data",
54
+ )
55
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
56
+ class Data:
57
+ results: list[ListingRow]
58
+ # DO NOT MODIFY -- This file is generated by type_spec
@@ -0,0 +1,119 @@
1
+ # DO NOT MODIFY -- This file is generated by type_spec
2
+ # ruff: noqa: E402 Q003
3
+ # fmt: off
4
+ # isort: skip_file
5
+ from __future__ import annotations
6
+ import typing # noqa: F401
7
+ import datetime # noqa: F401
8
+ from decimal import Decimal # noqa: F401
9
+ from enum import StrEnum
10
+ import dataclasses
11
+ from pkgs.serialization import serial_class
12
+ from pkgs.serialization import serial_union_annotation
13
+ from pkgs.serialization import serial_string_enum
14
+ from ... import base_t
15
+ from ... import identifier_t
16
+
17
+ __all__: list[str] = [
18
+ "Arguments",
19
+ "Data",
20
+ "ENDPOINT_METHOD",
21
+ "ENDPOINT_PATH",
22
+ "InputContent",
23
+ "InputContentTextMarkdown",
24
+ "InputContentType",
25
+ "Location",
26
+ "LocationAppendToFirstPage",
27
+ "LocationType",
28
+ ]
29
+
30
+ ENDPOINT_METHOD = "POST"
31
+ ENDPOINT_PATH = "api/external/notebooks/add_notebook_content"
32
+
33
+
34
+ # DO NOT MODIFY -- This file is generated by type_spec
35
+ @serial_string_enum(
36
+ labels={
37
+ "append_to_first_page": "Append To First Page",
38
+ },
39
+ )
40
+ class LocationType(StrEnum):
41
+ APPEND_TO_FIRST_PAGE = "append_to_first_page"
42
+
43
+
44
+ # DO NOT MODIFY -- This file is generated by type_spec
45
+ @serial_class(
46
+ named_type_path="sdk.api.notebooks.add_notebook_content.LocationAppendToFirstPage",
47
+ parse_require={"type"},
48
+ )
49
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
50
+ class LocationAppendToFirstPage:
51
+ type: typing.Literal[LocationType.APPEND_TO_FIRST_PAGE] = LocationType.APPEND_TO_FIRST_PAGE
52
+
53
+
54
+ # DO NOT MODIFY -- This file is generated by type_spec
55
+ Location = typing.Annotated[
56
+ typing.Union[LocationAppendToFirstPage],
57
+ serial_union_annotation(
58
+ named_type_path="sdk.api.notebooks.add_notebook_content.Location",
59
+ discriminator="type",
60
+ discriminator_map={
61
+ "append_to_first_page": LocationAppendToFirstPage,
62
+ },
63
+ ),
64
+ ]
65
+
66
+
67
+ # DO NOT MODIFY -- This file is generated by type_spec
68
+ @serial_string_enum(
69
+ labels={
70
+ "text_markdown": "Text Markdown",
71
+ },
72
+ )
73
+ class InputContentType(StrEnum):
74
+ TEXT_MARKDOWN = "text_markdown"
75
+
76
+
77
+ # DO NOT MODIFY -- This file is generated by type_spec
78
+ @serial_class(
79
+ named_type_path="sdk.api.notebooks.add_notebook_content.InputContentTextMarkdown",
80
+ parse_require={"type"},
81
+ )
82
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
83
+ class InputContentTextMarkdown:
84
+ type: typing.Literal[InputContentType.TEXT_MARKDOWN] = InputContentType.TEXT_MARKDOWN
85
+ text_markdown: str
86
+
87
+
88
+ # DO NOT MODIFY -- This file is generated by type_spec
89
+ InputContent = typing.Annotated[
90
+ typing.Union[InputContentTextMarkdown],
91
+ serial_union_annotation(
92
+ named_type_path="sdk.api.notebooks.add_notebook_content.InputContent",
93
+ discriminator="type",
94
+ discriminator_map={
95
+ "text_markdown": InputContentTextMarkdown,
96
+ },
97
+ ),
98
+ ]
99
+
100
+
101
+ # DO NOT MODIFY -- This file is generated by type_spec
102
+ @serial_class(
103
+ named_type_path="sdk.api.notebooks.add_notebook_content.Arguments",
104
+ )
105
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
106
+ class Arguments:
107
+ notebook_key: identifier_t.IdentifierKey
108
+ location: Location
109
+ contents: list[InputContent]
110
+
111
+
112
+ # DO NOT MODIFY -- This file is generated by type_spec
113
+ @serial_class(
114
+ named_type_path="sdk.api.notebooks.add_notebook_content.Data",
115
+ )
116
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
117
+ class Data:
118
+ pass
119
+ # DO NOT MODIFY -- This file is generated by type_spec
@@ -167,7 +167,7 @@ OrganizationParameter = typing.Annotated[
167
167
  )
168
168
  @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
169
169
  class Data:
170
- organization_id: base_t.ObjectId
170
+ organization_id: base_t.ObjectId | None
171
171
  column_definitions: list[OrganizationParameter]
172
172
  table_definitions: list[OrganizationParameter]
173
173
  # DO NOT MODIFY -- This file is generated by type_spec
@@ -0,0 +1 @@
1
+ # 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 identifier_t
28
28
  import uncountable.types.api.uploader.invoke_uploader as invoke_uploader_t
29
29
  import uncountable.types.api.recipes.lock_recipes as lock_recipes_t
30
30
  import uncountable.types.api.entity.lookup_entity as lookup_entity_t
31
+ from uncountable.types import notices_t
31
32
  from uncountable.types import notifications_t
32
33
  import uncountable.types.api.integrations.push_notification as push_notification_t
33
34
  from uncountable.types import recipe_identifiers_t
@@ -35,6 +36,7 @@ from uncountable.types import recipe_metadata_t
35
36
  from uncountable.types import recipe_workflow_steps_t
36
37
  import uncountable.types.api.entity.set_entity_field_values as set_entity_field_values_t
37
38
  import uncountable.types.api.recipes.set_recipe_metadata as set_recipe_metadata_t
39
+ import uncountable.types.api.entity.transition_entity_phase as transition_entity_phase_t
38
40
  import uncountable.types.api.recipes.unlock_recipes as unlock_recipes_t
39
41
  from uncountable.types import uploader_t
40
42
  import uncountable.types.api.condition_parameters.upsert_condition_match as upsert_condition_match_t
@@ -603,6 +605,7 @@ class AsyncBatchProcessorBase(ABC):
603
605
  message: str,
604
606
  display_notice: bool = False,
605
607
  entity: entity_t.EntityIdentifier | None = None,
608
+ notice_configuration: notices_t.NotificationNoticeConfiguration | None = None,
606
609
  depends_on: list[str] | None = None,
607
610
  _request_options: client_config_t.RequestOptions | None = None,
608
611
  ) -> async_batch_t.QueuedAsyncBatchRequest:
@@ -616,6 +619,7 @@ class AsyncBatchProcessorBase(ABC):
616
619
  message=message,
617
620
  entity=entity,
618
621
  display_notice=display_notice,
622
+ notice_configuration=notice_configuration,
619
623
  )
620
624
  json_data = serialize_for_api(args)
621
625
 
@@ -707,6 +711,45 @@ class AsyncBatchProcessorBase(ABC):
707
711
  batch_reference=req.batch_reference,
708
712
  )
709
713
 
714
+ def transition_entity_phase(
715
+ self,
716
+ *,
717
+ transition: transition_entity_phase_t.TransitionIdentifier,
718
+ entity: entity_t.Entity | None = None,
719
+ entity_identifier: entity_t.EntityIdentifier | None = None,
720
+ depends_on: list[str] | None = None,
721
+ _request_options: client_config_t.RequestOptions | None = None,
722
+ ) -> async_batch_t.QueuedAsyncBatchRequest:
723
+ """Transitions an entity from one phase to another
724
+
725
+ :param entity: Entity to transition. If entity_identifier is provided, this should be omitted.
726
+ :param entity_identifier: Identifier of the entity to transition. If entity is provided, this should be omitted.
727
+ :param transition: Identifier of the transition to perform
728
+ :param depends_on: A list of batch reference keys to process before processing this request
729
+ """
730
+ args = transition_entity_phase_t.Arguments(
731
+ entity=entity,
732
+ entity_identifier=entity_identifier,
733
+ transition=transition,
734
+ )
735
+ json_data = serialize_for_api(args)
736
+
737
+ batch_reference = str(uuid.uuid4())
738
+
739
+ req = async_batch_t.AsyncBatchRequest(
740
+ path=async_batch_t.AsyncBatchRequestPath.TRANSITION_ENTITY_PHASE,
741
+ data=json_data,
742
+ depends_on=depends_on,
743
+ batch_reference=batch_reference,
744
+ )
745
+
746
+ self._enqueue(req)
747
+
748
+ return async_batch_t.QueuedAsyncBatchRequest(
749
+ path=req.path,
750
+ batch_reference=req.batch_reference,
751
+ )
752
+
710
753
  def unlock_recipes(
711
754
  self,
712
755
  *,
@@ -48,6 +48,7 @@ class AsyncBatchRequestPath(StrEnum):
48
48
  PUSH_NOTIFICATION = "integrations/push_notification"
49
49
  COMPLETE_ASYNC_PARSE = "uploader/complete_async_parse"
50
50
  SET_RECIPE_TOTAL = "recipes/set_recipe_total"
51
+ TRANSITION_ENTITY_PHASE = "entity/transition_entity_phase"
51
52
 
52
53
 
53
54
  # DO NOT MODIFY -- This file is generated by type_spec