benchling-api-client 2.0.415__py3-none-any.whl → 2.0.416__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.
Files changed (47) hide show
  1. benchling_api_client/models/container_content.py +183 -26
  2. benchling_api_client/models/entity.py +19 -7
  3. benchling_api_client/models/entity_or_inaccessible_resource.py +19 -7
  4. benchling_api_client/models/molecule_with_entity_type.py +787 -0
  5. benchling_api_client/models/molecule_with_entity_type_entity_type.py +22 -0
  6. benchling_api_client/models/registered_entities_list.py +89 -32
  7. benchling_api_client/models/request_response_samples_item_entity.py +216 -74
  8. benchling_api_client/models/rna_sequence_with_entity_type.py +1151 -0
  9. benchling_api_client/models/rna_sequence_with_entity_type_entity_type.py +22 -0
  10. benchling_api_client/v2/beta/models/aa_sequence_with_entity_type.py +865 -0
  11. benchling_api_client/v2/beta/models/aa_sequence_with_entity_type_entity_type.py +22 -0
  12. benchling_api_client/v2/beta/models/container_content.py +183 -26
  13. benchling_api_client/v2/beta/models/custom_entity_creator.py +2 -100
  14. benchling_api_client/v2/beta/models/custom_entity_with_entity_type.py +747 -0
  15. benchling_api_client/v2/beta/models/custom_entity_with_entity_type_entity_type.py +22 -0
  16. benchling_api_client/v2/beta/models/dna_oligo_with_entity_type.py +972 -0
  17. benchling_api_client/v2/beta/models/dna_oligo_with_entity_type_entity_type.py +22 -0
  18. benchling_api_client/v2/beta/models/dna_sequence_with_entity_type.py +1102 -0
  19. benchling_api_client/v2/beta/models/dna_sequence_with_entity_type_entity_type.py +22 -0
  20. benchling_api_client/v2/beta/models/entity.py +19 -7
  21. benchling_api_client/v2/beta/models/entity_or_inaccessible_resource.py +19 -7
  22. benchling_api_client/v2/beta/models/mixture_creator.py +2 -100
  23. benchling_api_client/v2/beta/models/mixture_with_entity_type.py +867 -0
  24. benchling_api_client/v2/beta/models/mixture_with_entity_type_entity_type.py +22 -0
  25. benchling_api_client/v2/beta/models/molecule_with_entity_type.py +787 -0
  26. benchling_api_client/v2/beta/models/molecule_with_entity_type_entity_type.py +22 -0
  27. benchling_api_client/v2/beta/models/rna_oligo_with_entity_type.py +972 -0
  28. benchling_api_client/v2/beta/models/rna_oligo_with_entity_type_entity_type.py +22 -0
  29. benchling_api_client/v2/beta/models/rna_sequence.py +1109 -0
  30. benchling_api_client/v2/beta/models/rna_sequence_part.py +183 -0
  31. benchling_api_client/v2/beta/models/rna_sequence_with_entity_type.py +1151 -0
  32. benchling_api_client/v2/beta/models/rna_sequence_with_entity_type_entity_type.py +22 -0
  33. benchling_api_client/v2/beta/openapi.yaml +216 -6
  34. benchling_api_client/v2/stable/models/container_content.py +183 -26
  35. benchling_api_client/v2/stable/models/entity.py +19 -7
  36. benchling_api_client/v2/stable/models/entity_or_inaccessible_resource.py +19 -7
  37. benchling_api_client/v2/stable/models/molecule_with_entity_type.py +787 -0
  38. benchling_api_client/v2/stable/models/molecule_with_entity_type_entity_type.py +22 -0
  39. benchling_api_client/v2/stable/models/registered_entities_list.py +89 -32
  40. benchling_api_client/v2/stable/models/request_response_samples_item_entity.py +216 -74
  41. benchling_api_client/v2/stable/models/rna_sequence_with_entity_type.py +1151 -0
  42. benchling_api_client/v2/stable/models/rna_sequence_with_entity_type_entity_type.py +22 -0
  43. benchling_api_client/v2/stable/openapi.yaml +40 -22
  44. {benchling_api_client-2.0.415.dist-info → benchling_api_client-2.0.416.dist-info}/METADATA +1 -1
  45. {benchling_api_client-2.0.415.dist-info → benchling_api_client-2.0.416.dist-info}/RECORD +47 -21
  46. {benchling_api_client-2.0.415.dist-info → benchling_api_client-2.0.416.dist-info}/LICENSE +0 -0
  47. {benchling_api_client-2.0.415.dist-info → benchling_api_client-2.0.416.dist-info}/WHEEL +0 -0
@@ -0,0 +1,787 @@
1
+ import datetime
2
+ from typing import Any, cast, Dict, List, Optional, Type, TypeVar, Union
3
+
4
+ import attr
5
+ from dateutil.parser import isoparse
6
+
7
+ from ..extensions import NotPresentError
8
+ from ..models.archive_record import ArchiveRecord
9
+ from ..models.custom_fields import CustomFields
10
+ from ..models.fields import Fields
11
+ from ..models.molecule_with_entity_type_entity_type import MoleculeWithEntityTypeEntityType
12
+ from ..models.registration_origin import RegistrationOrigin
13
+ from ..models.schema_summary import SchemaSummary
14
+ from ..models.user_summary import UserSummary
15
+ from ..types import UNSET, Unset
16
+
17
+ T = TypeVar("T", bound="MoleculeWithEntityType")
18
+
19
+
20
+ @attr.s(auto_attribs=True, repr=False)
21
+ class MoleculeWithEntityType:
22
+ """ """
23
+
24
+ _entity_type: Union[Unset, MoleculeWithEntityTypeEntityType] = UNSET
25
+ _aliases: Union[Unset, List[str]] = UNSET
26
+ _api_url: Union[Unset, str] = UNSET
27
+ _archive_record: Union[Unset, None, ArchiveRecord] = UNSET
28
+ _authors: Union[Unset, List[UserSummary]] = UNSET
29
+ _canonicalized_smiles: Union[Unset, str] = UNSET
30
+ _created_at: Union[Unset, datetime.datetime] = UNSET
31
+ _creator: Union[Unset, UserSummary] = UNSET
32
+ _custom_fields: Union[Unset, CustomFields] = UNSET
33
+ _entity_registry_id: Union[Unset, None, str] = UNSET
34
+ _fields: Union[Unset, Fields] = UNSET
35
+ _folder_id: Union[Unset, None, str] = UNSET
36
+ _id: Union[Unset, str] = UNSET
37
+ _modified_at: Union[Unset, datetime.datetime] = UNSET
38
+ _name: Union[Unset, str] = UNSET
39
+ _original_smiles: Union[Unset, None, str] = UNSET
40
+ _registration_origin: Union[Unset, None, RegistrationOrigin] = UNSET
41
+ _registry_id: Union[Unset, None, str] = UNSET
42
+ _schema: Union[Unset, None, SchemaSummary] = UNSET
43
+ _web_url: Union[Unset, str] = UNSET
44
+ additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict)
45
+
46
+ def __repr__(self):
47
+ fields = []
48
+ fields.append("entity_type={}".format(repr(self._entity_type)))
49
+ fields.append("aliases={}".format(repr(self._aliases)))
50
+ fields.append("api_url={}".format(repr(self._api_url)))
51
+ fields.append("archive_record={}".format(repr(self._archive_record)))
52
+ fields.append("authors={}".format(repr(self._authors)))
53
+ fields.append("canonicalized_smiles={}".format(repr(self._canonicalized_smiles)))
54
+ fields.append("created_at={}".format(repr(self._created_at)))
55
+ fields.append("creator={}".format(repr(self._creator)))
56
+ fields.append("custom_fields={}".format(repr(self._custom_fields)))
57
+ fields.append("entity_registry_id={}".format(repr(self._entity_registry_id)))
58
+ fields.append("fields={}".format(repr(self._fields)))
59
+ fields.append("folder_id={}".format(repr(self._folder_id)))
60
+ fields.append("id={}".format(repr(self._id)))
61
+ fields.append("modified_at={}".format(repr(self._modified_at)))
62
+ fields.append("name={}".format(repr(self._name)))
63
+ fields.append("original_smiles={}".format(repr(self._original_smiles)))
64
+ fields.append("registration_origin={}".format(repr(self._registration_origin)))
65
+ fields.append("registry_id={}".format(repr(self._registry_id)))
66
+ fields.append("schema={}".format(repr(self._schema)))
67
+ fields.append("web_url={}".format(repr(self._web_url)))
68
+ fields.append("additional_properties={}".format(repr(self.additional_properties)))
69
+ return "MoleculeWithEntityType({})".format(", ".join(fields))
70
+
71
+ def to_dict(self) -> Dict[str, Any]:
72
+ entity_type: Union[Unset, int] = UNSET
73
+ if not isinstance(self._entity_type, Unset):
74
+ entity_type = self._entity_type.value
75
+
76
+ aliases: Union[Unset, List[Any]] = UNSET
77
+ if not isinstance(self._aliases, Unset):
78
+ aliases = self._aliases
79
+
80
+ api_url = self._api_url
81
+ archive_record: Union[Unset, None, Dict[str, Any]] = UNSET
82
+ if not isinstance(self._archive_record, Unset):
83
+ archive_record = self._archive_record.to_dict() if self._archive_record else None
84
+
85
+ authors: Union[Unset, List[Any]] = UNSET
86
+ if not isinstance(self._authors, Unset):
87
+ authors = []
88
+ for authors_item_data in self._authors:
89
+ authors_item = authors_item_data.to_dict()
90
+
91
+ authors.append(authors_item)
92
+
93
+ canonicalized_smiles = self._canonicalized_smiles
94
+ created_at: Union[Unset, str] = UNSET
95
+ if not isinstance(self._created_at, Unset):
96
+ created_at = self._created_at.isoformat()
97
+
98
+ creator: Union[Unset, Dict[str, Any]] = UNSET
99
+ if not isinstance(self._creator, Unset):
100
+ creator = self._creator.to_dict()
101
+
102
+ custom_fields: Union[Unset, Dict[str, Any]] = UNSET
103
+ if not isinstance(self._custom_fields, Unset):
104
+ custom_fields = self._custom_fields.to_dict()
105
+
106
+ entity_registry_id = self._entity_registry_id
107
+ fields: Union[Unset, Dict[str, Any]] = UNSET
108
+ if not isinstance(self._fields, Unset):
109
+ fields = self._fields.to_dict()
110
+
111
+ folder_id = self._folder_id
112
+ id = self._id
113
+ modified_at: Union[Unset, str] = UNSET
114
+ if not isinstance(self._modified_at, Unset):
115
+ modified_at = self._modified_at.isoformat()
116
+
117
+ name = self._name
118
+ original_smiles = self._original_smiles
119
+ registration_origin: Union[Unset, None, Dict[str, Any]] = UNSET
120
+ if not isinstance(self._registration_origin, Unset):
121
+ registration_origin = self._registration_origin.to_dict() if self._registration_origin else None
122
+
123
+ registry_id = self._registry_id
124
+ schema: Union[Unset, None, Dict[str, Any]] = UNSET
125
+ if not isinstance(self._schema, Unset):
126
+ schema = self._schema.to_dict() if self._schema else None
127
+
128
+ web_url = self._web_url
129
+
130
+ field_dict: Dict[str, Any] = {}
131
+ field_dict.update(self.additional_properties)
132
+ # Allow the model to serialize even if it was created outside of the constructor, circumventing validation
133
+ if entity_type is not UNSET:
134
+ field_dict["entityType"] = entity_type
135
+ if aliases is not UNSET:
136
+ field_dict["aliases"] = aliases
137
+ if api_url is not UNSET:
138
+ field_dict["apiURL"] = api_url
139
+ if archive_record is not UNSET:
140
+ field_dict["archiveRecord"] = archive_record
141
+ if authors is not UNSET:
142
+ field_dict["authors"] = authors
143
+ if canonicalized_smiles is not UNSET:
144
+ field_dict["canonicalizedSmiles"] = canonicalized_smiles
145
+ if created_at is not UNSET:
146
+ field_dict["createdAt"] = created_at
147
+ if creator is not UNSET:
148
+ field_dict["creator"] = creator
149
+ if custom_fields is not UNSET:
150
+ field_dict["customFields"] = custom_fields
151
+ if entity_registry_id is not UNSET:
152
+ field_dict["entityRegistryId"] = entity_registry_id
153
+ if fields is not UNSET:
154
+ field_dict["fields"] = fields
155
+ if folder_id is not UNSET:
156
+ field_dict["folderId"] = folder_id
157
+ if id is not UNSET:
158
+ field_dict["id"] = id
159
+ if modified_at is not UNSET:
160
+ field_dict["modifiedAt"] = modified_at
161
+ if name is not UNSET:
162
+ field_dict["name"] = name
163
+ if original_smiles is not UNSET:
164
+ field_dict["originalSmiles"] = original_smiles
165
+ if registration_origin is not UNSET:
166
+ field_dict["registrationOrigin"] = registration_origin
167
+ if registry_id is not UNSET:
168
+ field_dict["registryId"] = registry_id
169
+ if schema is not UNSET:
170
+ field_dict["schema"] = schema
171
+ if web_url is not UNSET:
172
+ field_dict["webURL"] = web_url
173
+
174
+ return field_dict
175
+
176
+ @classmethod
177
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any], strict: bool = False) -> T:
178
+ d = src_dict.copy()
179
+
180
+ def get_entity_type() -> Union[Unset, MoleculeWithEntityTypeEntityType]:
181
+ entity_type = UNSET
182
+ _entity_type = d.pop("entityType")
183
+ if _entity_type is not None and _entity_type is not UNSET:
184
+ try:
185
+ entity_type = MoleculeWithEntityTypeEntityType(_entity_type)
186
+ except ValueError:
187
+ entity_type = MoleculeWithEntityTypeEntityType.of_unknown(_entity_type)
188
+
189
+ return entity_type
190
+
191
+ try:
192
+ entity_type = get_entity_type()
193
+ except KeyError:
194
+ if strict:
195
+ raise
196
+ entity_type = cast(Union[Unset, MoleculeWithEntityTypeEntityType], UNSET)
197
+
198
+ def get_aliases() -> Union[Unset, List[str]]:
199
+ aliases = cast(List[str], d.pop("aliases"))
200
+
201
+ return aliases
202
+
203
+ try:
204
+ aliases = get_aliases()
205
+ except KeyError:
206
+ if strict:
207
+ raise
208
+ aliases = cast(Union[Unset, List[str]], UNSET)
209
+
210
+ def get_api_url() -> Union[Unset, str]:
211
+ api_url = d.pop("apiURL")
212
+ return api_url
213
+
214
+ try:
215
+ api_url = get_api_url()
216
+ except KeyError:
217
+ if strict:
218
+ raise
219
+ api_url = cast(Union[Unset, str], UNSET)
220
+
221
+ def get_archive_record() -> Union[Unset, None, ArchiveRecord]:
222
+ archive_record = None
223
+ _archive_record = d.pop("archiveRecord")
224
+
225
+ if _archive_record is not None and not isinstance(_archive_record, Unset):
226
+ archive_record = ArchiveRecord.from_dict(_archive_record)
227
+
228
+ return archive_record
229
+
230
+ try:
231
+ archive_record = get_archive_record()
232
+ except KeyError:
233
+ if strict:
234
+ raise
235
+ archive_record = cast(Union[Unset, None, ArchiveRecord], UNSET)
236
+
237
+ def get_authors() -> Union[Unset, List[UserSummary]]:
238
+ authors = []
239
+ _authors = d.pop("authors")
240
+ for authors_item_data in _authors or []:
241
+ authors_item = UserSummary.from_dict(authors_item_data, strict=False)
242
+
243
+ authors.append(authors_item)
244
+
245
+ return authors
246
+
247
+ try:
248
+ authors = get_authors()
249
+ except KeyError:
250
+ if strict:
251
+ raise
252
+ authors = cast(Union[Unset, List[UserSummary]], UNSET)
253
+
254
+ def get_canonicalized_smiles() -> Union[Unset, str]:
255
+ canonicalized_smiles = d.pop("canonicalizedSmiles")
256
+ return canonicalized_smiles
257
+
258
+ try:
259
+ canonicalized_smiles = get_canonicalized_smiles()
260
+ except KeyError:
261
+ if strict:
262
+ raise
263
+ canonicalized_smiles = cast(Union[Unset, str], UNSET)
264
+
265
+ def get_created_at() -> Union[Unset, datetime.datetime]:
266
+ created_at: Union[Unset, datetime.datetime] = UNSET
267
+ _created_at = d.pop("createdAt")
268
+ if _created_at is not None and not isinstance(_created_at, Unset):
269
+ created_at = isoparse(cast(str, _created_at))
270
+
271
+ return created_at
272
+
273
+ try:
274
+ created_at = get_created_at()
275
+ except KeyError:
276
+ if strict:
277
+ raise
278
+ created_at = cast(Union[Unset, datetime.datetime], UNSET)
279
+
280
+ def get_creator() -> Union[Unset, UserSummary]:
281
+ creator: Union[Unset, Union[Unset, UserSummary]] = UNSET
282
+ _creator = d.pop("creator")
283
+
284
+ if not isinstance(_creator, Unset):
285
+ creator = UserSummary.from_dict(_creator)
286
+
287
+ return creator
288
+
289
+ try:
290
+ creator = get_creator()
291
+ except KeyError:
292
+ if strict:
293
+ raise
294
+ creator = cast(Union[Unset, UserSummary], UNSET)
295
+
296
+ def get_custom_fields() -> Union[Unset, CustomFields]:
297
+ custom_fields: Union[Unset, Union[Unset, CustomFields]] = UNSET
298
+ _custom_fields = d.pop("customFields")
299
+
300
+ if not isinstance(_custom_fields, Unset):
301
+ custom_fields = CustomFields.from_dict(_custom_fields)
302
+
303
+ return custom_fields
304
+
305
+ try:
306
+ custom_fields = get_custom_fields()
307
+ except KeyError:
308
+ if strict:
309
+ raise
310
+ custom_fields = cast(Union[Unset, CustomFields], UNSET)
311
+
312
+ def get_entity_registry_id() -> Union[Unset, None, str]:
313
+ entity_registry_id = d.pop("entityRegistryId")
314
+ return entity_registry_id
315
+
316
+ try:
317
+ entity_registry_id = get_entity_registry_id()
318
+ except KeyError:
319
+ if strict:
320
+ raise
321
+ entity_registry_id = cast(Union[Unset, None, str], UNSET)
322
+
323
+ def get_fields() -> Union[Unset, Fields]:
324
+ fields: Union[Unset, Union[Unset, Fields]] = UNSET
325
+ _fields = d.pop("fields")
326
+
327
+ if not isinstance(_fields, Unset):
328
+ fields = Fields.from_dict(_fields)
329
+
330
+ return fields
331
+
332
+ try:
333
+ fields = get_fields()
334
+ except KeyError:
335
+ if strict:
336
+ raise
337
+ fields = cast(Union[Unset, Fields], UNSET)
338
+
339
+ def get_folder_id() -> Union[Unset, None, str]:
340
+ folder_id = d.pop("folderId")
341
+ return folder_id
342
+
343
+ try:
344
+ folder_id = get_folder_id()
345
+ except KeyError:
346
+ if strict:
347
+ raise
348
+ folder_id = cast(Union[Unset, None, str], UNSET)
349
+
350
+ def get_id() -> Union[Unset, str]:
351
+ id = d.pop("id")
352
+ return id
353
+
354
+ try:
355
+ id = get_id()
356
+ except KeyError:
357
+ if strict:
358
+ raise
359
+ id = cast(Union[Unset, str], UNSET)
360
+
361
+ def get_modified_at() -> Union[Unset, datetime.datetime]:
362
+ modified_at: Union[Unset, datetime.datetime] = UNSET
363
+ _modified_at = d.pop("modifiedAt")
364
+ if _modified_at is not None and not isinstance(_modified_at, Unset):
365
+ modified_at = isoparse(cast(str, _modified_at))
366
+
367
+ return modified_at
368
+
369
+ try:
370
+ modified_at = get_modified_at()
371
+ except KeyError:
372
+ if strict:
373
+ raise
374
+ modified_at = cast(Union[Unset, datetime.datetime], UNSET)
375
+
376
+ def get_name() -> Union[Unset, str]:
377
+ name = d.pop("name")
378
+ return name
379
+
380
+ try:
381
+ name = get_name()
382
+ except KeyError:
383
+ if strict:
384
+ raise
385
+ name = cast(Union[Unset, str], UNSET)
386
+
387
+ def get_original_smiles() -> Union[Unset, None, str]:
388
+ original_smiles = d.pop("originalSmiles")
389
+ return original_smiles
390
+
391
+ try:
392
+ original_smiles = get_original_smiles()
393
+ except KeyError:
394
+ if strict:
395
+ raise
396
+ original_smiles = cast(Union[Unset, None, str], UNSET)
397
+
398
+ def get_registration_origin() -> Union[Unset, None, RegistrationOrigin]:
399
+ registration_origin = None
400
+ _registration_origin = d.pop("registrationOrigin")
401
+
402
+ if _registration_origin is not None and not isinstance(_registration_origin, Unset):
403
+ registration_origin = RegistrationOrigin.from_dict(_registration_origin)
404
+
405
+ return registration_origin
406
+
407
+ try:
408
+ registration_origin = get_registration_origin()
409
+ except KeyError:
410
+ if strict:
411
+ raise
412
+ registration_origin = cast(Union[Unset, None, RegistrationOrigin], UNSET)
413
+
414
+ def get_registry_id() -> Union[Unset, None, str]:
415
+ registry_id = d.pop("registryId")
416
+ return registry_id
417
+
418
+ try:
419
+ registry_id = get_registry_id()
420
+ except KeyError:
421
+ if strict:
422
+ raise
423
+ registry_id = cast(Union[Unset, None, str], UNSET)
424
+
425
+ def get_schema() -> Union[Unset, None, SchemaSummary]:
426
+ schema = None
427
+ _schema = d.pop("schema")
428
+
429
+ if _schema is not None and not isinstance(_schema, Unset):
430
+ schema = SchemaSummary.from_dict(_schema)
431
+
432
+ return schema
433
+
434
+ try:
435
+ schema = get_schema()
436
+ except KeyError:
437
+ if strict:
438
+ raise
439
+ schema = cast(Union[Unset, None, SchemaSummary], UNSET)
440
+
441
+ def get_web_url() -> Union[Unset, str]:
442
+ web_url = d.pop("webURL")
443
+ return web_url
444
+
445
+ try:
446
+ web_url = get_web_url()
447
+ except KeyError:
448
+ if strict:
449
+ raise
450
+ web_url = cast(Union[Unset, str], UNSET)
451
+
452
+ molecule_with_entity_type = cls(
453
+ entity_type=entity_type,
454
+ aliases=aliases,
455
+ api_url=api_url,
456
+ archive_record=archive_record,
457
+ authors=authors,
458
+ canonicalized_smiles=canonicalized_smiles,
459
+ created_at=created_at,
460
+ creator=creator,
461
+ custom_fields=custom_fields,
462
+ entity_registry_id=entity_registry_id,
463
+ fields=fields,
464
+ folder_id=folder_id,
465
+ id=id,
466
+ modified_at=modified_at,
467
+ name=name,
468
+ original_smiles=original_smiles,
469
+ registration_origin=registration_origin,
470
+ registry_id=registry_id,
471
+ schema=schema,
472
+ web_url=web_url,
473
+ )
474
+
475
+ molecule_with_entity_type.additional_properties = d
476
+ return molecule_with_entity_type
477
+
478
+ @property
479
+ def additional_keys(self) -> List[str]:
480
+ return list(self.additional_properties.keys())
481
+
482
+ def __getitem__(self, key: str) -> Any:
483
+ return self.additional_properties[key]
484
+
485
+ def __setitem__(self, key: str, value: Any) -> None:
486
+ self.additional_properties[key] = value
487
+
488
+ def __delitem__(self, key: str) -> None:
489
+ del self.additional_properties[key]
490
+
491
+ def __contains__(self, key: str) -> bool:
492
+ return key in self.additional_properties
493
+
494
+ def get(self, key, default=None) -> Optional[Any]:
495
+ return self.additional_properties.get(key, default)
496
+
497
+ @property
498
+ def entity_type(self) -> MoleculeWithEntityTypeEntityType:
499
+ if isinstance(self._entity_type, Unset):
500
+ raise NotPresentError(self, "entity_type")
501
+ return self._entity_type
502
+
503
+ @entity_type.setter
504
+ def entity_type(self, value: MoleculeWithEntityTypeEntityType) -> None:
505
+ self._entity_type = value
506
+
507
+ @entity_type.deleter
508
+ def entity_type(self) -> None:
509
+ self._entity_type = UNSET
510
+
511
+ @property
512
+ def aliases(self) -> List[str]:
513
+ """ Array of aliases. """
514
+ if isinstance(self._aliases, Unset):
515
+ raise NotPresentError(self, "aliases")
516
+ return self._aliases
517
+
518
+ @aliases.setter
519
+ def aliases(self, value: List[str]) -> None:
520
+ self._aliases = value
521
+
522
+ @aliases.deleter
523
+ def aliases(self) -> None:
524
+ self._aliases = UNSET
525
+
526
+ @property
527
+ def api_url(self) -> str:
528
+ """ The canonical url of the Molecule in the API. """
529
+ if isinstance(self._api_url, Unset):
530
+ raise NotPresentError(self, "api_url")
531
+ return self._api_url
532
+
533
+ @api_url.setter
534
+ def api_url(self, value: str) -> None:
535
+ self._api_url = value
536
+
537
+ @api_url.deleter
538
+ def api_url(self) -> None:
539
+ self._api_url = UNSET
540
+
541
+ @property
542
+ def archive_record(self) -> Optional[ArchiveRecord]:
543
+ if isinstance(self._archive_record, Unset):
544
+ raise NotPresentError(self, "archive_record")
545
+ return self._archive_record
546
+
547
+ @archive_record.setter
548
+ def archive_record(self, value: Optional[ArchiveRecord]) -> None:
549
+ self._archive_record = value
550
+
551
+ @archive_record.deleter
552
+ def archive_record(self) -> None:
553
+ self._archive_record = UNSET
554
+
555
+ @property
556
+ def authors(self) -> List[UserSummary]:
557
+ if isinstance(self._authors, Unset):
558
+ raise NotPresentError(self, "authors")
559
+ return self._authors
560
+
561
+ @authors.setter
562
+ def authors(self, value: List[UserSummary]) -> None:
563
+ self._authors = value
564
+
565
+ @authors.deleter
566
+ def authors(self) -> None:
567
+ self._authors = UNSET
568
+
569
+ @property
570
+ def canonicalized_smiles(self) -> str:
571
+ """ The canonicalized chemical structure in SMILES format. """
572
+ if isinstance(self._canonicalized_smiles, Unset):
573
+ raise NotPresentError(self, "canonicalized_smiles")
574
+ return self._canonicalized_smiles
575
+
576
+ @canonicalized_smiles.setter
577
+ def canonicalized_smiles(self, value: str) -> None:
578
+ self._canonicalized_smiles = value
579
+
580
+ @canonicalized_smiles.deleter
581
+ def canonicalized_smiles(self) -> None:
582
+ self._canonicalized_smiles = UNSET
583
+
584
+ @property
585
+ def created_at(self) -> datetime.datetime:
586
+ """ DateTime the Molecule was created. """
587
+ if isinstance(self._created_at, Unset):
588
+ raise NotPresentError(self, "created_at")
589
+ return self._created_at
590
+
591
+ @created_at.setter
592
+ def created_at(self, value: datetime.datetime) -> None:
593
+ self._created_at = value
594
+
595
+ @created_at.deleter
596
+ def created_at(self) -> None:
597
+ self._created_at = UNSET
598
+
599
+ @property
600
+ def creator(self) -> UserSummary:
601
+ if isinstance(self._creator, Unset):
602
+ raise NotPresentError(self, "creator")
603
+ return self._creator
604
+
605
+ @creator.setter
606
+ def creator(self, value: UserSummary) -> None:
607
+ self._creator = value
608
+
609
+ @creator.deleter
610
+ def creator(self) -> None:
611
+ self._creator = UNSET
612
+
613
+ @property
614
+ def custom_fields(self) -> CustomFields:
615
+ if isinstance(self._custom_fields, Unset):
616
+ raise NotPresentError(self, "custom_fields")
617
+ return self._custom_fields
618
+
619
+ @custom_fields.setter
620
+ def custom_fields(self, value: CustomFields) -> None:
621
+ self._custom_fields = value
622
+
623
+ @custom_fields.deleter
624
+ def custom_fields(self) -> None:
625
+ self._custom_fields = UNSET
626
+
627
+ @property
628
+ def entity_registry_id(self) -> Optional[str]:
629
+ """ Registry ID of the Molecule if registered. """
630
+ if isinstance(self._entity_registry_id, Unset):
631
+ raise NotPresentError(self, "entity_registry_id")
632
+ return self._entity_registry_id
633
+
634
+ @entity_registry_id.setter
635
+ def entity_registry_id(self, value: Optional[str]) -> None:
636
+ self._entity_registry_id = value
637
+
638
+ @entity_registry_id.deleter
639
+ def entity_registry_id(self) -> None:
640
+ self._entity_registry_id = UNSET
641
+
642
+ @property
643
+ def fields(self) -> Fields:
644
+ if isinstance(self._fields, Unset):
645
+ raise NotPresentError(self, "fields")
646
+ return self._fields
647
+
648
+ @fields.setter
649
+ def fields(self, value: Fields) -> None:
650
+ self._fields = value
651
+
652
+ @fields.deleter
653
+ def fields(self) -> None:
654
+ self._fields = UNSET
655
+
656
+ @property
657
+ def folder_id(self) -> Optional[str]:
658
+ """ ID of the folder that contains the Molecule. """
659
+ if isinstance(self._folder_id, Unset):
660
+ raise NotPresentError(self, "folder_id")
661
+ return self._folder_id
662
+
663
+ @folder_id.setter
664
+ def folder_id(self, value: Optional[str]) -> None:
665
+ self._folder_id = value
666
+
667
+ @folder_id.deleter
668
+ def folder_id(self) -> None:
669
+ self._folder_id = UNSET
670
+
671
+ @property
672
+ def id(self) -> str:
673
+ """ ID of the Molecule. """
674
+ if isinstance(self._id, Unset):
675
+ raise NotPresentError(self, "id")
676
+ return self._id
677
+
678
+ @id.setter
679
+ def id(self, value: str) -> None:
680
+ self._id = value
681
+
682
+ @id.deleter
683
+ def id(self) -> None:
684
+ self._id = UNSET
685
+
686
+ @property
687
+ def modified_at(self) -> datetime.datetime:
688
+ """ DateTime the Molecule was last modified. """
689
+ if isinstance(self._modified_at, Unset):
690
+ raise NotPresentError(self, "modified_at")
691
+ return self._modified_at
692
+
693
+ @modified_at.setter
694
+ def modified_at(self, value: datetime.datetime) -> None:
695
+ self._modified_at = value
696
+
697
+ @modified_at.deleter
698
+ def modified_at(self) -> None:
699
+ self._modified_at = UNSET
700
+
701
+ @property
702
+ def name(self) -> str:
703
+ """ Name of the Molecule. """
704
+ if isinstance(self._name, Unset):
705
+ raise NotPresentError(self, "name")
706
+ return self._name
707
+
708
+ @name.setter
709
+ def name(self, value: str) -> None:
710
+ self._name = value
711
+
712
+ @name.deleter
713
+ def name(self) -> None:
714
+ self._name = UNSET
715
+
716
+ @property
717
+ def original_smiles(self) -> Optional[str]:
718
+ """ The original chemical structure supplied by the user in SMILES format. Null if the user did not originally supply SMILES. """
719
+ if isinstance(self._original_smiles, Unset):
720
+ raise NotPresentError(self, "original_smiles")
721
+ return self._original_smiles
722
+
723
+ @original_smiles.setter
724
+ def original_smiles(self, value: Optional[str]) -> None:
725
+ self._original_smiles = value
726
+
727
+ @original_smiles.deleter
728
+ def original_smiles(self) -> None:
729
+ self._original_smiles = UNSET
730
+
731
+ @property
732
+ def registration_origin(self) -> Optional[RegistrationOrigin]:
733
+ if isinstance(self._registration_origin, Unset):
734
+ raise NotPresentError(self, "registration_origin")
735
+ return self._registration_origin
736
+
737
+ @registration_origin.setter
738
+ def registration_origin(self, value: Optional[RegistrationOrigin]) -> None:
739
+ self._registration_origin = value
740
+
741
+ @registration_origin.deleter
742
+ def registration_origin(self) -> None:
743
+ self._registration_origin = UNSET
744
+
745
+ @property
746
+ def registry_id(self) -> Optional[str]:
747
+ """ Registry the Molecule is registered in. """
748
+ if isinstance(self._registry_id, Unset):
749
+ raise NotPresentError(self, "registry_id")
750
+ return self._registry_id
751
+
752
+ @registry_id.setter
753
+ def registry_id(self, value: Optional[str]) -> None:
754
+ self._registry_id = value
755
+
756
+ @registry_id.deleter
757
+ def registry_id(self) -> None:
758
+ self._registry_id = UNSET
759
+
760
+ @property
761
+ def schema(self) -> Optional[SchemaSummary]:
762
+ if isinstance(self._schema, Unset):
763
+ raise NotPresentError(self, "schema")
764
+ return self._schema
765
+
766
+ @schema.setter
767
+ def schema(self, value: Optional[SchemaSummary]) -> None:
768
+ self._schema = value
769
+
770
+ @schema.deleter
771
+ def schema(self) -> None:
772
+ self._schema = UNSET
773
+
774
+ @property
775
+ def web_url(self) -> str:
776
+ """ URL of the Molecule. """
777
+ if isinstance(self._web_url, Unset):
778
+ raise NotPresentError(self, "web_url")
779
+ return self._web_url
780
+
781
+ @web_url.setter
782
+ def web_url(self, value: str) -> None:
783
+ self._web_url = value
784
+
785
+ @web_url.deleter
786
+ def web_url(self) -> None:
787
+ self._web_url = UNSET