UncountablePythonSDK 0.0.97__py3-none-any.whl → 0.0.99__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


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

@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: UncountablePythonSDK
3
- Version: 0.0.97
3
+ Version: 0.0.99
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
@@ -51,11 +51,10 @@ pkgs/serialization/serial_generic.py,sha256=vAC0-o9fkco2lM_YvBavY0JDYncDxbW3jFbo
51
51
  pkgs/serialization/serial_union.py,sha256=IdWsSsM8j-qGfl5Wv6haX37ZS1SKob8XT8cilBBOVIo,2670
52
52
  pkgs/serialization/yaml.py,sha256=yoJtu7_ixnJV6uTxA_U1PpK5F_ixT08AKVh5ocyYwXM,1466
53
53
  pkgs/serialization_util/__init__.py,sha256=YykkhqGNKiLCo-D5vSTq6WiPNfCyPXyr-mQO5e5Klak,513
54
- pkgs/serialization_util/_env_flags.py,sha256=5kBchfeYS_MRWWSdUE3EljXTtOZX-YYH7inh48d-Qz8,90
55
54
  pkgs/serialization_util/_get_type_for_serialization.py,sha256=dW5_W9MFd6wgWfW5qlWork-GBb-QFLtiOZkjk2Zqn2M,1177
56
55
  pkgs/serialization_util/convert_to_snakecase.py,sha256=H2BAo5ZdcCDN77RpLb-uP0s7-FQ5Ukwnsd3VYc1vD0M,583
57
56
  pkgs/serialization_util/dataclasses.py,sha256=uhNGXQPQLZblDFQuuwkAGmKOPiRyfDzCdg72CVtYJGA,390
58
- pkgs/serialization_util/serialization_helpers.py,sha256=gP4U5zLYA6Y3y1qtcH2qoRsXPh-UnhR5ITEIRUDj06A,6649
57
+ pkgs/serialization_util/serialization_helpers.py,sha256=KgLk6z9Y9TbkJyoMKffzBnPTtSRrE9CxnPuErVWoBSQ,6550
59
58
  pkgs/strenum_compat/__init__.py,sha256=wXRFeNvBm8RU6dy1PFJ5sRLgUIEeH_DVR95Sv5qpGbk,59
60
59
  pkgs/strenum_compat/strenum_compat.py,sha256=uOUAgpYTjHs1MX8dG81jRlyTkt3KNbkV_25zp7xTX2s,36
61
60
  pkgs/type_spec/__init__.py,sha256=h5DmJTca4QVV10sZR1x0-MlkZfuGYDfapR3zHvXfzto,19
@@ -99,7 +98,7 @@ uncountable/integration/cron.py,sha256=6eH-kIs3sdYPCyb62_L2M7U_uQTdMTdwY5hreEJb0
99
98
  uncountable/integration/entrypoint.py,sha256=BHOYPQgKvZE6HG8Rv15MkdYl8lRkvfDgv1OdLo0oQ9Q,433
100
99
  uncountable/integration/job.py,sha256=zamfyEhtZh0cWyd8DvVq64RlaA1aX_wtOALv6Kf7tyo,2354
101
100
  uncountable/integration/scan_profiles.py,sha256=760zbv7O7wXxHUHqUkFBpd1Afe8hqxMPU3ugwZGdhEo,2925
102
- uncountable/integration/scheduler.py,sha256=jrtktQYGW4QKRLH5GvhOFvCl4S9CLLhWY2GF0rzY-KM,4780
101
+ uncountable/integration/scheduler.py,sha256=99Vq9RBdK_clu4-dS7JtU4aqcxZicG8Njt992if2jK8,4811
103
102
  uncountable/integration/server.py,sha256=m_DYRosGbHuPhygM32Xo-jRBl_oaUhOYsBBD1qwwKh4,4697
104
103
  uncountable/integration/telemetry.py,sha256=QFvvJdzc15CvdaRLFaJeru0OouAFbYdhHYYovbT8bXg,7425
105
104
  uncountable/integration/db/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -107,7 +106,7 @@ uncountable/integration/db/connect.py,sha256=mE3bdV0huclH2iT_dXCQdRL4LkjIuf_myAR
107
106
  uncountable/integration/db/session.py,sha256=96cGQXpe6IugBTdSsjdP0S5yhJ6toSmbVB6qhc3FJzE,693
108
107
  uncountable/integration/executors/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
109
108
  uncountable/integration/executors/executors.py,sha256=Kzisp1eKufGCWrHIw4mmAj-l1UQ2oJsJR7I-_mksnVs,5441
110
- uncountable/integration/executors/generic_upload_executor.py,sha256=KRUVeQkywIQUxzuzCIp6Vli1JWFelUCKTeJCxjMmkuI,11179
109
+ uncountable/integration/executors/generic_upload_executor.py,sha256=0j3mySzvpy40yu3JEMCeRMaIF2ML8xzNKjHHTGV0-5A,12075
111
110
  uncountable/integration/executors/script_executor.py,sha256=BBQ9f0l7uH2hgKf60jtm-pONzwk-EeOhM2qBAbv_URo,846
112
111
  uncountable/integration/queue_runner/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
113
112
  uncountable/integration/queue_runner/job_scheduler.py,sha256=2acmeWscG87MZsifxwMRMGJ4sQgQVNJNr5CqIPUg75E,6288
@@ -144,13 +143,13 @@ uncountable/types/calculations.py,sha256=fApOFpgBemt_t7IVneVR0VdI3X5EOxiG6Xhzr6R
144
143
  uncountable/types/calculations_t.py,sha256=LE_HWYPf7yxNTpH5sVPaC0e98OxJ5hUOhHezeJNKDtk,648
145
144
  uncountable/types/chemical_structure.py,sha256=ujyragaD26-QG5jgKnWhO7TN3N1V9b_04T2WhqNYxxo,281
146
145
  uncountable/types/chemical_structure_t.py,sha256=iYmGER_vXqoksv2Nr189qU1Zm70s-U49Eiv0DkWaB1I,773
147
- uncountable/types/client_base.py,sha256=5UJI7ByJitlpoW6ET6AIB14pgzB8zHXTQ0yn291cWmc,68932
146
+ uncountable/types/client_base.py,sha256=9NmhVYQGhMtc78o9K4w0N-3u42avw8DuzSEettyyMs8,69144
148
147
  uncountable/types/client_config.py,sha256=qLpHt4O_B098CyN6qQajoxZ2zjZ1DILXLUEGyyGP0TQ,280
149
148
  uncountable/types/client_config_t.py,sha256=k_UkjemqiVuJBiFUjJYk3h673Nahr0nGZvfEZFzsC0k,699
150
149
  uncountable/types/curves.py,sha256=QyEyC20jsG-LGKVx6miiF-w70vKMwNkILFBDIJ5Ok9g,345
151
150
  uncountable/types/curves_t.py,sha256=2_9qdrSl1XAvIG57lo45KWNpa0wXgZ97OkSRCPRrudc,1347
152
151
  uncountable/types/entity.py,sha256=Zclk1LYcRaYrMDhqyCjMSLEg0fE6_q8LHvV22Qvscgs,566
153
- uncountable/types/entity_t.py,sha256=MWtA4b9ZoayKDKJ2j1MNbt7lefSFJy3mWaswoOOx3ks,17512
152
+ uncountable/types/entity_t.py,sha256=k3kJhPl9bEGtcIlu1BOzdpMAszaFDVHUTZRrDWvW2Fo,17565
154
153
  uncountable/types/experiment_groups.py,sha256=qUpFOx1AKgzaT_4khCOv5Xs6jwiQGbvHH-GUh3v1nv4,288
155
154
  uncountable/types/experiment_groups_t.py,sha256=_fAYZwqYLR3cFdv2vwLOYs5TvH5CEWDEbh3kFpg26zY,700
156
155
  uncountable/types/field_values.py,sha256=hERqHIDmWPQpdW7BLitdA-DNiutmll-ggecwEO7FoVU,1181
@@ -250,7 +249,7 @@ uncountable/types/api/inputs/set_input_category.py,sha256=a2sV0pE_EsZd6DBS3ud2KL
250
249
  uncountable/types/api/inputs/set_input_subcategories.py,sha256=y-Wttpmddpe7ps9OxsVe96x3t1R_p5h4xShJxI7i5MY,1175
251
250
  uncountable/types/api/inputs/set_intermediate_type.py,sha256=8eodqt_J6OqmU4qyfbjgc43UrlG8xBfUEY-e9oRDFxI,1286
252
251
  uncountable/types/api/material_families/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
253
- uncountable/types/api/material_families/update_entity_material_families.py,sha256=UNKzPnwF7IjeaZFe8NwK4hwxyEe7Yd6v4p19yvf43-U,1577
252
+ uncountable/types/api/material_families/update_entity_material_families.py,sha256=cSb7dedp6qgxxe01GDs1yN7RKJa854_7NFPEfmjNIuU,1639
254
253
  uncountable/types/api/outputs/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
255
254
  uncountable/types/api/outputs/get_output_data.py,sha256=Sg2gkAN9k9171eW1-5spsHKERgIFfPkX8mGe_t0ep2c,2703
256
255
  uncountable/types/api/outputs/get_output_names.py,sha256=m4lSzpZF1g0CBtQBzOS0MH6hsuVOMs0FlJAKlTz6hW4,1356
@@ -261,8 +260,8 @@ uncountable/types/api/project/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8
261
260
  uncountable/types/api/project/get_projects.py,sha256=DHThOC3XesjDPjle3LTW93ef6DTjrVKIK2AZcbv2_s0,1466
262
261
  uncountable/types/api/project/get_projects_data.py,sha256=wp-mL40BNR9I1NXBXYVWlCGxLOFsT2T9B0aoFTYCuZA,1675
263
262
  uncountable/types/api/recipe_links/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
264
- uncountable/types/api/recipe_links/create_recipe_link.py,sha256=Z8WTy6SQPDt2zleRXhKzj2jS-R1QfLnQFg56XVctftQ,1368
265
- uncountable/types/api/recipe_links/remove_recipe_link.py,sha256=HZQ15AqPjTqSEJjRY3L9RnU0T2EuzV4Wu7ilbeLhuDI,1354
263
+ uncountable/types/api/recipe_links/create_recipe_link.py,sha256=xrn7jk1VtCP1Obo-ssWOxrZVvgQHiIPZUKRBueobP4k,1450
264
+ uncountable/types/api/recipe_links/remove_recipe_link.py,sha256=wxh18Q-CFsX6evJ6ASTiJUcQU1dIMEPOuoMWJdAJ1Oc,1422
266
265
  uncountable/types/api/recipe_metadata/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
267
266
  uncountable/types/api/recipe_metadata/get_recipe_metadata_data.py,sha256=fW-6_vBIGa5Wx8JvEdpKb3orXD60DX_wOeHnmMPduc8,1550
268
267
  uncountable/types/api/recipes/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
@@ -296,7 +295,7 @@ uncountable/types/api/triggers/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr
296
295
  uncountable/types/api/triggers/run_trigger.py,sha256=diX1ix_5hkti1F1uYoZhP5iyc6GHAU5coKgqq5syLhI,1059
297
296
  uncountable/types/api/uploader/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
298
297
  uncountable/types/api/uploader/invoke_uploader.py,sha256=-loZzBihKqx63eP-f5RuV1mu6tgkRTZmIc545kklZLk,1273
299
- UncountablePythonSDK-0.0.97.dist-info/METADATA,sha256=1O4TCwofyPeLhjLaD5kfZC6VDDk2x7-HQ0NATsK4qYs,2114
300
- UncountablePythonSDK-0.0.97.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
301
- UncountablePythonSDK-0.0.97.dist-info/top_level.txt,sha256=1UVGjAU-6hJY9qw2iJ7nCBeEwZ793AEN5ZfKX9A1uj4,31
302
- UncountablePythonSDK-0.0.97.dist-info/RECORD,,
298
+ UncountablePythonSDK-0.0.99.dist-info/METADATA,sha256=usEsc4-kmTVinca7Rvady4lYj1YADAcblFhxICJ5oh8,2114
299
+ UncountablePythonSDK-0.0.99.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
300
+ UncountablePythonSDK-0.0.99.dist-info/top_level.txt,sha256=1UVGjAU-6hJY9qw2iJ7nCBeEwZ793AEN5ZfKX9A1uj4,31
301
+ UncountablePythonSDK-0.0.99.dist-info/RECORD,,
@@ -23,7 +23,6 @@ from pkgs.serialization import (
23
23
  get_serial_class_data,
24
24
  )
25
25
 
26
- from ._env_flags import USE_FASTJSON
27
26
  from ._get_type_for_serialization import SerializationType, get_serialization_type
28
27
  from .dataclasses import iterate_fields
29
28
 
@@ -110,9 +109,7 @@ def _get_dataclass_conversion_lookups(dataclass_type: Any) -> DataclassConversio
110
109
  if scd.has_to_string_value(key):
111
110
  value_conversion_functions[key] = _to_string_value
112
111
  elif scd.has_unconverted_value(key):
113
- value_conversion_functions[key] = (
114
- serialize_for_storage if USE_FASTJSON else identity
115
- )
112
+ value_conversion_functions[key] = serialize_for_storage
116
113
  else:
117
114
  value_conversion_functions[key] = serialize_for_api
118
115
 
@@ -33,6 +33,27 @@ from uncountable.types.job_definition_t import (
33
33
  )
34
34
 
35
35
 
36
+ def _get_extension(filename: str) -> str | None:
37
+ _, ext = os.path.splitext(filename)
38
+ return ext.strip().lower()
39
+
40
+
41
+ def _run_keyword_detection(data: io.BytesIO, keyword: str) -> bool:
42
+ try:
43
+ text = io.TextIOWrapper(data)
44
+ for line in text:
45
+ if (
46
+ keyword in line
47
+ or re.search(keyword, line, flags=re.IGNORECASE) is not None
48
+ ):
49
+ return True
50
+ return False
51
+ except re.error:
52
+ return False
53
+ except UnicodeError:
54
+ return False
55
+
56
+
36
57
  def _filter_files_by_keyword(
37
58
  remote_directory: GenericRemoteDirectoryScope,
38
59
  files: list[FileObjectData],
@@ -41,7 +62,20 @@ def _filter_files_by_keyword(
41
62
  if remote_directory.detection_keyword is None:
42
63
  return files
43
64
 
44
- raise NotImplementedError("keyword detection not implemented yet")
65
+ filtered_files = []
66
+
67
+ for file in files:
68
+ extension = _get_extension(file.filename)
69
+
70
+ if extension not in (".txt", ".csv"):
71
+ raise NotImplementedError(
72
+ "keyword detection is only supported for csv, txt files"
73
+ )
74
+
75
+ if _run_keyword_detection(file.file_IO, remote_directory.detection_keyword):
76
+ filtered_files.append(file)
77
+
78
+ return filtered_files
45
79
 
46
80
 
47
81
  def _filter_by_filename(
@@ -147,4 +147,5 @@ def main() -> None:
147
147
  handle_shutdown(logger, processes=processes)
148
148
 
149
149
 
150
- main()
150
+ if __name__ == "__main__":
151
+ main()
@@ -32,7 +32,7 @@ ENDPOINT_PATH = "api/external/material_families/external_update_entity_material_
32
32
  @dataclasses.dataclass(kw_only=True)
33
33
  class Arguments:
34
34
  entity_key: identifier_t.IdentifierKey
35
- entity_type: typing.Literal[entity_t.EntityType.RECIPE_METADATA] | typing.Literal[entity_t.EntityType.INGREDIENT] | typing.Literal[entity_t.EntityType.OUTPUT] | typing.Literal[entity_t.EntityType.CONDITION_PARAMETER] | typing.Literal[entity_t.EntityType.INGREDIENT_ATTRIBUTE]
35
+ entity_type: typing.Literal[entity_t.EntityType.RECIPE_METADATA] | typing.Literal[entity_t.EntityType.INGREDIENT] | typing.Literal[entity_t.EntityType.OUTPUT] | typing.Literal[entity_t.EntityType.CONDITION_PARAMETER] | typing.Literal[entity_t.EntityType.INGREDIENT_ATTRIBUTE] | typing.Literal[entity_t.EntityType.INGREDIENT_CATEGORY_ALL]
36
36
  material_family_ids: list[base_t.ObjectId]
37
37
  update_type: post_base_t.UpdateType
38
38
 
@@ -31,8 +31,8 @@ ENDPOINT_PATH = "api/external/recipe_links/create_recipe_link"
31
31
  class Arguments:
32
32
  recipe_from_key: identifier_t.IdentifierKey
33
33
  recipe_to_key: identifier_t.IdentifierKey
34
- link_type: typing.Literal[recipe_links_t.RecipeLinkType.CHILD] | typing.Literal[recipe_links_t.RecipeLinkType.CONTROL] | typing.Literal[recipe_links_t.RecipeLinkType.USER_LINK]
35
- name: str
34
+ link_type: typing.Literal[recipe_links_t.RecipeLinkType.CHILD] | typing.Literal[recipe_links_t.RecipeLinkType.CONTROL] | typing.Literal[recipe_links_t.RecipeLinkType.USER_LINK] | typing.Literal[recipe_links_t.RecipeLinkType.PREVIOUS_EXPERIMENT]
35
+ name: str | None = None
36
36
 
37
37
 
38
38
  # DO NOT MODIFY -- This file is generated by type_spec
@@ -31,7 +31,7 @@ ENDPOINT_PATH = "api/external/recipe_links/remove_recipe_link"
31
31
  class Arguments:
32
32
  recipe_from_key: identifier_t.IdentifierKey
33
33
  recipe_to_key: identifier_t.IdentifierKey
34
- link_type: typing.Literal[recipe_links_t.RecipeLinkType.CHILD] | typing.Literal[recipe_links_t.RecipeLinkType.CONTROL] | typing.Literal[recipe_links_t.RecipeLinkType.USER_LINK]
34
+ link_type: typing.Literal[recipe_links_t.RecipeLinkType.CHILD] | typing.Literal[recipe_links_t.RecipeLinkType.CONTROL] | typing.Literal[recipe_links_t.RecipeLinkType.USER_LINK] | typing.Literal[recipe_links_t.RecipeLinkType.PREVIOUS_EXPERIMENT]
35
35
 
36
36
 
37
37
  # DO NOT MODIFY -- This file is generated by type_spec
@@ -377,8 +377,8 @@ class ClientMethods(ABC):
377
377
  *,
378
378
  recipe_from_key: identifier_t.IdentifierKey,
379
379
  recipe_to_key: identifier_t.IdentifierKey,
380
- link_type: typing.Literal[recipe_links_t.RecipeLinkType.CHILD] | typing.Literal[recipe_links_t.RecipeLinkType.CONTROL] | typing.Literal[recipe_links_t.RecipeLinkType.USER_LINK],
381
- name: str,
380
+ link_type: typing.Literal[recipe_links_t.RecipeLinkType.CHILD] | typing.Literal[recipe_links_t.RecipeLinkType.CONTROL] | typing.Literal[recipe_links_t.RecipeLinkType.USER_LINK] | typing.Literal[recipe_links_t.RecipeLinkType.PREVIOUS_EXPERIMENT],
381
+ name: str | None = None,
382
382
  ) -> create_recipe_link_t.Data:
383
383
  """Create a link between two recipes. Skip if the link already exists
384
384
 
@@ -1125,7 +1125,7 @@ class ClientMethods(ABC):
1125
1125
  *,
1126
1126
  recipe_from_key: identifier_t.IdentifierKey,
1127
1127
  recipe_to_key: identifier_t.IdentifierKey,
1128
- link_type: typing.Literal[recipe_links_t.RecipeLinkType.CHILD] | typing.Literal[recipe_links_t.RecipeLinkType.CONTROL] | typing.Literal[recipe_links_t.RecipeLinkType.USER_LINK],
1128
+ link_type: typing.Literal[recipe_links_t.RecipeLinkType.CHILD] | typing.Literal[recipe_links_t.RecipeLinkType.CONTROL] | typing.Literal[recipe_links_t.RecipeLinkType.USER_LINK] | typing.Literal[recipe_links_t.RecipeLinkType.PREVIOUS_EXPERIMENT],
1129
1129
  ) -> remove_recipe_link_t.Data:
1130
1130
  """Remove a link between two recipes. Skip if the link doesn't already exist
1131
1131
 
@@ -1577,7 +1577,7 @@ class ClientMethods(ABC):
1577
1577
  self,
1578
1578
  *,
1579
1579
  entity_key: identifier_t.IdentifierKey,
1580
- entity_type: typing.Literal[entity_t.EntityType.RECIPE_METADATA] | typing.Literal[entity_t.EntityType.INGREDIENT] | typing.Literal[entity_t.EntityType.OUTPUT] | typing.Literal[entity_t.EntityType.CONDITION_PARAMETER] | typing.Literal[entity_t.EntityType.INGREDIENT_ATTRIBUTE],
1580
+ entity_type: typing.Literal[entity_t.EntityType.RECIPE_METADATA] | typing.Literal[entity_t.EntityType.INGREDIENT] | typing.Literal[entity_t.EntityType.OUTPUT] | typing.Literal[entity_t.EntityType.CONDITION_PARAMETER] | typing.Literal[entity_t.EntityType.INGREDIENT_ATTRIBUTE] | typing.Literal[entity_t.EntityType.INGREDIENT_CATEGORY_ALL],
1581
1581
  material_family_ids: list[base_t.ObjectId],
1582
1582
  update_type: post_base_t.UpdateType,
1583
1583
  ) -> update_entity_material_families_t.Data:
@@ -346,7 +346,7 @@ class EntityType(StrEnum):
346
346
 
347
347
  # DO NOT MODIFY -- This file is generated by type_spec
348
348
  LimitedEntityType = typing.Annotated[
349
- 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],
349
+ 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],
350
350
  serial_alias_annotation(
351
351
  named_type_path="sdk.entity.LimitedEntityType",
352
352
  ),
@@ -1,3 +0,0 @@
1
- import os
2
-
3
- USE_FASTJSON: bool = os.environ.get("USE_FASTJSON", "false").lower() == "true"