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,1109 @@
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.primer import Primer
12
+ from ..models.registration_origin import RegistrationOrigin
13
+ from ..models.rna_annotation import RnaAnnotation
14
+ from ..models.rna_sequence_part import RnaSequencePart
15
+ from ..models.schema_summary import SchemaSummary
16
+ from ..models.translation import Translation
17
+ from ..models.user_summary import UserSummary
18
+ from ..types import UNSET, Unset
19
+
20
+ T = TypeVar("T", bound="RnaSequence")
21
+
22
+
23
+ @attr.s(auto_attribs=True, repr=False)
24
+ class RnaSequence:
25
+ """ """
26
+
27
+ _aliases: Union[Unset, List[str]] = UNSET
28
+ _alignment_ids: Union[Unset, List[str]] = UNSET
29
+ _annotations: Union[Unset, List[RnaAnnotation]] = UNSET
30
+ _api_url: Union[Unset, str] = UNSET
31
+ _archive_record: Union[Unset, None, ArchiveRecord] = UNSET
32
+ _authors: Union[Unset, List[UserSummary]] = UNSET
33
+ _bases: Union[Unset, str] = UNSET
34
+ _created_at: Union[Unset, datetime.datetime] = UNSET
35
+ _creator: Union[Unset, UserSummary] = UNSET
36
+ _custom_fields: Union[Unset, CustomFields] = UNSET
37
+ _custom_notation: Union[Unset, None, str] = UNSET
38
+ _custom_notation_name: Union[Unset, None, str] = UNSET
39
+ _entity_registry_id: Union[Unset, None, str] = UNSET
40
+ _fields: Union[Unset, Fields] = UNSET
41
+ _folder_id: Union[Unset, None, str] = UNSET
42
+ _helm: Union[Unset, None, str] = UNSET
43
+ _id: Union[Unset, str] = UNSET
44
+ _is_circular: Union[Unset, bool] = UNSET
45
+ _length: Union[Unset, int] = UNSET
46
+ _modified_at: Union[Unset, datetime.datetime] = UNSET
47
+ _name: Union[Unset, str] = UNSET
48
+ _parts: Union[Unset, List[RnaSequencePart]] = UNSET
49
+ _primers: Union[Unset, List[Primer]] = UNSET
50
+ _registration_origin: Union[Unset, None, RegistrationOrigin] = UNSET
51
+ _registry_id: Union[Unset, None, str] = UNSET
52
+ _schema: Union[Unset, None, SchemaSummary] = UNSET
53
+ _translations: Union[Unset, List[Translation]] = UNSET
54
+ _url: Union[Unset, str] = UNSET
55
+ _web_url: Union[Unset, str] = UNSET
56
+ additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict)
57
+
58
+ def __repr__(self):
59
+ fields = []
60
+ fields.append("aliases={}".format(repr(self._aliases)))
61
+ fields.append("alignment_ids={}".format(repr(self._alignment_ids)))
62
+ fields.append("annotations={}".format(repr(self._annotations)))
63
+ fields.append("api_url={}".format(repr(self._api_url)))
64
+ fields.append("archive_record={}".format(repr(self._archive_record)))
65
+ fields.append("authors={}".format(repr(self._authors)))
66
+ fields.append("bases={}".format(repr(self._bases)))
67
+ fields.append("created_at={}".format(repr(self._created_at)))
68
+ fields.append("creator={}".format(repr(self._creator)))
69
+ fields.append("custom_fields={}".format(repr(self._custom_fields)))
70
+ fields.append("custom_notation={}".format(repr(self._custom_notation)))
71
+ fields.append("custom_notation_name={}".format(repr(self._custom_notation_name)))
72
+ fields.append("entity_registry_id={}".format(repr(self._entity_registry_id)))
73
+ fields.append("fields={}".format(repr(self._fields)))
74
+ fields.append("folder_id={}".format(repr(self._folder_id)))
75
+ fields.append("helm={}".format(repr(self._helm)))
76
+ fields.append("id={}".format(repr(self._id)))
77
+ fields.append("is_circular={}".format(repr(self._is_circular)))
78
+ fields.append("length={}".format(repr(self._length)))
79
+ fields.append("modified_at={}".format(repr(self._modified_at)))
80
+ fields.append("name={}".format(repr(self._name)))
81
+ fields.append("parts={}".format(repr(self._parts)))
82
+ fields.append("primers={}".format(repr(self._primers)))
83
+ fields.append("registration_origin={}".format(repr(self._registration_origin)))
84
+ fields.append("registry_id={}".format(repr(self._registry_id)))
85
+ fields.append("schema={}".format(repr(self._schema)))
86
+ fields.append("translations={}".format(repr(self._translations)))
87
+ fields.append("url={}".format(repr(self._url)))
88
+ fields.append("web_url={}".format(repr(self._web_url)))
89
+ fields.append("additional_properties={}".format(repr(self.additional_properties)))
90
+ return "RnaSequence({})".format(", ".join(fields))
91
+
92
+ def to_dict(self) -> Dict[str, Any]:
93
+ aliases: Union[Unset, List[Any]] = UNSET
94
+ if not isinstance(self._aliases, Unset):
95
+ aliases = self._aliases
96
+
97
+ alignment_ids: Union[Unset, List[Any]] = UNSET
98
+ if not isinstance(self._alignment_ids, Unset):
99
+ alignment_ids = self._alignment_ids
100
+
101
+ annotations: Union[Unset, List[Any]] = UNSET
102
+ if not isinstance(self._annotations, Unset):
103
+ annotations = []
104
+ for annotations_item_data in self._annotations:
105
+ annotations_item = annotations_item_data.to_dict()
106
+
107
+ annotations.append(annotations_item)
108
+
109
+ api_url = self._api_url
110
+ archive_record: Union[Unset, None, Dict[str, Any]] = UNSET
111
+ if not isinstance(self._archive_record, Unset):
112
+ archive_record = self._archive_record.to_dict() if self._archive_record else None
113
+
114
+ authors: Union[Unset, List[Any]] = UNSET
115
+ if not isinstance(self._authors, Unset):
116
+ authors = []
117
+ for authors_item_data in self._authors:
118
+ authors_item = authors_item_data.to_dict()
119
+
120
+ authors.append(authors_item)
121
+
122
+ bases = self._bases
123
+ created_at: Union[Unset, str] = UNSET
124
+ if not isinstance(self._created_at, Unset):
125
+ created_at = self._created_at.isoformat()
126
+
127
+ creator: Union[Unset, Dict[str, Any]] = UNSET
128
+ if not isinstance(self._creator, Unset):
129
+ creator = self._creator.to_dict()
130
+
131
+ custom_fields: Union[Unset, Dict[str, Any]] = UNSET
132
+ if not isinstance(self._custom_fields, Unset):
133
+ custom_fields = self._custom_fields.to_dict()
134
+
135
+ custom_notation = self._custom_notation
136
+ custom_notation_name = self._custom_notation_name
137
+ entity_registry_id = self._entity_registry_id
138
+ fields: Union[Unset, Dict[str, Any]] = UNSET
139
+ if not isinstance(self._fields, Unset):
140
+ fields = self._fields.to_dict()
141
+
142
+ folder_id = self._folder_id
143
+ helm = self._helm
144
+ id = self._id
145
+ is_circular = self._is_circular
146
+ length = self._length
147
+ modified_at: Union[Unset, str] = UNSET
148
+ if not isinstance(self._modified_at, Unset):
149
+ modified_at = self._modified_at.isoformat()
150
+
151
+ name = self._name
152
+ parts: Union[Unset, List[Any]] = UNSET
153
+ if not isinstance(self._parts, Unset):
154
+ parts = []
155
+ for parts_item_data in self._parts:
156
+ parts_item = parts_item_data.to_dict()
157
+
158
+ parts.append(parts_item)
159
+
160
+ primers: Union[Unset, List[Any]] = UNSET
161
+ if not isinstance(self._primers, Unset):
162
+ primers = []
163
+ for primers_item_data in self._primers:
164
+ primers_item = primers_item_data.to_dict()
165
+
166
+ primers.append(primers_item)
167
+
168
+ registration_origin: Union[Unset, None, Dict[str, Any]] = UNSET
169
+ if not isinstance(self._registration_origin, Unset):
170
+ registration_origin = self._registration_origin.to_dict() if self._registration_origin else None
171
+
172
+ registry_id = self._registry_id
173
+ schema: Union[Unset, None, Dict[str, Any]] = UNSET
174
+ if not isinstance(self._schema, Unset):
175
+ schema = self._schema.to_dict() if self._schema else None
176
+
177
+ translations: Union[Unset, List[Any]] = UNSET
178
+ if not isinstance(self._translations, Unset):
179
+ translations = []
180
+ for translations_item_data in self._translations:
181
+ translations_item = translations_item_data.to_dict()
182
+
183
+ translations.append(translations_item)
184
+
185
+ url = self._url
186
+ web_url = self._web_url
187
+
188
+ field_dict: Dict[str, Any] = {}
189
+ field_dict.update(self.additional_properties)
190
+ # Allow the model to serialize even if it was created outside of the constructor, circumventing validation
191
+ if aliases is not UNSET:
192
+ field_dict["aliases"] = aliases
193
+ if alignment_ids is not UNSET:
194
+ field_dict["alignmentIds"] = alignment_ids
195
+ if annotations is not UNSET:
196
+ field_dict["annotations"] = annotations
197
+ if api_url is not UNSET:
198
+ field_dict["apiURL"] = api_url
199
+ if archive_record is not UNSET:
200
+ field_dict["archiveRecord"] = archive_record
201
+ if authors is not UNSET:
202
+ field_dict["authors"] = authors
203
+ if bases is not UNSET:
204
+ field_dict["bases"] = bases
205
+ if created_at is not UNSET:
206
+ field_dict["createdAt"] = created_at
207
+ if creator is not UNSET:
208
+ field_dict["creator"] = creator
209
+ if custom_fields is not UNSET:
210
+ field_dict["customFields"] = custom_fields
211
+ if custom_notation is not UNSET:
212
+ field_dict["customNotation"] = custom_notation
213
+ if custom_notation_name is not UNSET:
214
+ field_dict["customNotationName"] = custom_notation_name
215
+ if entity_registry_id is not UNSET:
216
+ field_dict["entityRegistryId"] = entity_registry_id
217
+ if fields is not UNSET:
218
+ field_dict["fields"] = fields
219
+ if folder_id is not UNSET:
220
+ field_dict["folderId"] = folder_id
221
+ if helm is not UNSET:
222
+ field_dict["helm"] = helm
223
+ if id is not UNSET:
224
+ field_dict["id"] = id
225
+ if is_circular is not UNSET:
226
+ field_dict["isCircular"] = is_circular
227
+ if length is not UNSET:
228
+ field_dict["length"] = length
229
+ if modified_at is not UNSET:
230
+ field_dict["modifiedAt"] = modified_at
231
+ if name is not UNSET:
232
+ field_dict["name"] = name
233
+ if parts is not UNSET:
234
+ field_dict["parts"] = parts
235
+ if primers is not UNSET:
236
+ field_dict["primers"] = primers
237
+ if registration_origin is not UNSET:
238
+ field_dict["registrationOrigin"] = registration_origin
239
+ if registry_id is not UNSET:
240
+ field_dict["registryId"] = registry_id
241
+ if schema is not UNSET:
242
+ field_dict["schema"] = schema
243
+ if translations is not UNSET:
244
+ field_dict["translations"] = translations
245
+ if url is not UNSET:
246
+ field_dict["url"] = url
247
+ if web_url is not UNSET:
248
+ field_dict["webURL"] = web_url
249
+
250
+ return field_dict
251
+
252
+ @classmethod
253
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any], strict: bool = False) -> T:
254
+ d = src_dict.copy()
255
+
256
+ def get_aliases() -> Union[Unset, List[str]]:
257
+ aliases = cast(List[str], d.pop("aliases"))
258
+
259
+ return aliases
260
+
261
+ try:
262
+ aliases = get_aliases()
263
+ except KeyError:
264
+ if strict:
265
+ raise
266
+ aliases = cast(Union[Unset, List[str]], UNSET)
267
+
268
+ def get_alignment_ids() -> Union[Unset, List[str]]:
269
+ alignment_ids = cast(List[str], d.pop("alignmentIds"))
270
+
271
+ return alignment_ids
272
+
273
+ try:
274
+ alignment_ids = get_alignment_ids()
275
+ except KeyError:
276
+ if strict:
277
+ raise
278
+ alignment_ids = cast(Union[Unset, List[str]], UNSET)
279
+
280
+ def get_annotations() -> Union[Unset, List[RnaAnnotation]]:
281
+ annotations = []
282
+ _annotations = d.pop("annotations")
283
+ for annotations_item_data in _annotations or []:
284
+ annotations_item = RnaAnnotation.from_dict(annotations_item_data, strict=False)
285
+
286
+ annotations.append(annotations_item)
287
+
288
+ return annotations
289
+
290
+ try:
291
+ annotations = get_annotations()
292
+ except KeyError:
293
+ if strict:
294
+ raise
295
+ annotations = cast(Union[Unset, List[RnaAnnotation]], UNSET)
296
+
297
+ def get_api_url() -> Union[Unset, str]:
298
+ api_url = d.pop("apiURL")
299
+ return api_url
300
+
301
+ try:
302
+ api_url = get_api_url()
303
+ except KeyError:
304
+ if strict:
305
+ raise
306
+ api_url = cast(Union[Unset, str], UNSET)
307
+
308
+ def get_archive_record() -> Union[Unset, None, ArchiveRecord]:
309
+ archive_record = None
310
+ _archive_record = d.pop("archiveRecord")
311
+
312
+ if _archive_record is not None and not isinstance(_archive_record, Unset):
313
+ archive_record = ArchiveRecord.from_dict(_archive_record)
314
+
315
+ return archive_record
316
+
317
+ try:
318
+ archive_record = get_archive_record()
319
+ except KeyError:
320
+ if strict:
321
+ raise
322
+ archive_record = cast(Union[Unset, None, ArchiveRecord], UNSET)
323
+
324
+ def get_authors() -> Union[Unset, List[UserSummary]]:
325
+ authors = []
326
+ _authors = d.pop("authors")
327
+ for authors_item_data in _authors or []:
328
+ authors_item = UserSummary.from_dict(authors_item_data, strict=False)
329
+
330
+ authors.append(authors_item)
331
+
332
+ return authors
333
+
334
+ try:
335
+ authors = get_authors()
336
+ except KeyError:
337
+ if strict:
338
+ raise
339
+ authors = cast(Union[Unset, List[UserSummary]], UNSET)
340
+
341
+ def get_bases() -> Union[Unset, str]:
342
+ bases = d.pop("bases")
343
+ return bases
344
+
345
+ try:
346
+ bases = get_bases()
347
+ except KeyError:
348
+ if strict:
349
+ raise
350
+ bases = cast(Union[Unset, str], UNSET)
351
+
352
+ def get_created_at() -> Union[Unset, datetime.datetime]:
353
+ created_at: Union[Unset, datetime.datetime] = UNSET
354
+ _created_at = d.pop("createdAt")
355
+ if _created_at is not None and not isinstance(_created_at, Unset):
356
+ created_at = isoparse(cast(str, _created_at))
357
+
358
+ return created_at
359
+
360
+ try:
361
+ created_at = get_created_at()
362
+ except KeyError:
363
+ if strict:
364
+ raise
365
+ created_at = cast(Union[Unset, datetime.datetime], UNSET)
366
+
367
+ def get_creator() -> Union[Unset, UserSummary]:
368
+ creator: Union[Unset, Union[Unset, UserSummary]] = UNSET
369
+ _creator = d.pop("creator")
370
+
371
+ if not isinstance(_creator, Unset):
372
+ creator = UserSummary.from_dict(_creator)
373
+
374
+ return creator
375
+
376
+ try:
377
+ creator = get_creator()
378
+ except KeyError:
379
+ if strict:
380
+ raise
381
+ creator = cast(Union[Unset, UserSummary], UNSET)
382
+
383
+ def get_custom_fields() -> Union[Unset, CustomFields]:
384
+ custom_fields: Union[Unset, Union[Unset, CustomFields]] = UNSET
385
+ _custom_fields = d.pop("customFields")
386
+
387
+ if not isinstance(_custom_fields, Unset):
388
+ custom_fields = CustomFields.from_dict(_custom_fields)
389
+
390
+ return custom_fields
391
+
392
+ try:
393
+ custom_fields = get_custom_fields()
394
+ except KeyError:
395
+ if strict:
396
+ raise
397
+ custom_fields = cast(Union[Unset, CustomFields], UNSET)
398
+
399
+ def get_custom_notation() -> Union[Unset, None, str]:
400
+ custom_notation = d.pop("customNotation")
401
+ return custom_notation
402
+
403
+ try:
404
+ custom_notation = get_custom_notation()
405
+ except KeyError:
406
+ if strict:
407
+ raise
408
+ custom_notation = cast(Union[Unset, None, str], UNSET)
409
+
410
+ def get_custom_notation_name() -> Union[Unset, None, str]:
411
+ custom_notation_name = d.pop("customNotationName")
412
+ return custom_notation_name
413
+
414
+ try:
415
+ custom_notation_name = get_custom_notation_name()
416
+ except KeyError:
417
+ if strict:
418
+ raise
419
+ custom_notation_name = cast(Union[Unset, None, str], UNSET)
420
+
421
+ def get_entity_registry_id() -> Union[Unset, None, str]:
422
+ entity_registry_id = d.pop("entityRegistryId")
423
+ return entity_registry_id
424
+
425
+ try:
426
+ entity_registry_id = get_entity_registry_id()
427
+ except KeyError:
428
+ if strict:
429
+ raise
430
+ entity_registry_id = cast(Union[Unset, None, str], UNSET)
431
+
432
+ def get_fields() -> Union[Unset, Fields]:
433
+ fields: Union[Unset, Union[Unset, Fields]] = UNSET
434
+ _fields = d.pop("fields")
435
+
436
+ if not isinstance(_fields, Unset):
437
+ fields = Fields.from_dict(_fields)
438
+
439
+ return fields
440
+
441
+ try:
442
+ fields = get_fields()
443
+ except KeyError:
444
+ if strict:
445
+ raise
446
+ fields = cast(Union[Unset, Fields], UNSET)
447
+
448
+ def get_folder_id() -> Union[Unset, None, str]:
449
+ folder_id = d.pop("folderId")
450
+ return folder_id
451
+
452
+ try:
453
+ folder_id = get_folder_id()
454
+ except KeyError:
455
+ if strict:
456
+ raise
457
+ folder_id = cast(Union[Unset, None, str], UNSET)
458
+
459
+ def get_helm() -> Union[Unset, None, str]:
460
+ helm = d.pop("helm")
461
+ return helm
462
+
463
+ try:
464
+ helm = get_helm()
465
+ except KeyError:
466
+ if strict:
467
+ raise
468
+ helm = cast(Union[Unset, None, str], UNSET)
469
+
470
+ def get_id() -> Union[Unset, str]:
471
+ id = d.pop("id")
472
+ return id
473
+
474
+ try:
475
+ id = get_id()
476
+ except KeyError:
477
+ if strict:
478
+ raise
479
+ id = cast(Union[Unset, str], UNSET)
480
+
481
+ def get_is_circular() -> Union[Unset, bool]:
482
+ is_circular = d.pop("isCircular")
483
+ return is_circular
484
+
485
+ try:
486
+ is_circular = get_is_circular()
487
+ except KeyError:
488
+ if strict:
489
+ raise
490
+ is_circular = cast(Union[Unset, bool], UNSET)
491
+
492
+ def get_length() -> Union[Unset, int]:
493
+ length = d.pop("length")
494
+ return length
495
+
496
+ try:
497
+ length = get_length()
498
+ except KeyError:
499
+ if strict:
500
+ raise
501
+ length = cast(Union[Unset, int], UNSET)
502
+
503
+ def get_modified_at() -> Union[Unset, datetime.datetime]:
504
+ modified_at: Union[Unset, datetime.datetime] = UNSET
505
+ _modified_at = d.pop("modifiedAt")
506
+ if _modified_at is not None and not isinstance(_modified_at, Unset):
507
+ modified_at = isoparse(cast(str, _modified_at))
508
+
509
+ return modified_at
510
+
511
+ try:
512
+ modified_at = get_modified_at()
513
+ except KeyError:
514
+ if strict:
515
+ raise
516
+ modified_at = cast(Union[Unset, datetime.datetime], UNSET)
517
+
518
+ def get_name() -> Union[Unset, str]:
519
+ name = d.pop("name")
520
+ return name
521
+
522
+ try:
523
+ name = get_name()
524
+ except KeyError:
525
+ if strict:
526
+ raise
527
+ name = cast(Union[Unset, str], UNSET)
528
+
529
+ def get_parts() -> Union[Unset, List[RnaSequencePart]]:
530
+ parts = []
531
+ _parts = d.pop("parts")
532
+ for parts_item_data in _parts or []:
533
+ parts_item = RnaSequencePart.from_dict(parts_item_data, strict=False)
534
+
535
+ parts.append(parts_item)
536
+
537
+ return parts
538
+
539
+ try:
540
+ parts = get_parts()
541
+ except KeyError:
542
+ if strict:
543
+ raise
544
+ parts = cast(Union[Unset, List[RnaSequencePart]], UNSET)
545
+
546
+ def get_primers() -> Union[Unset, List[Primer]]:
547
+ primers = []
548
+ _primers = d.pop("primers")
549
+ for primers_item_data in _primers or []:
550
+ primers_item = Primer.from_dict(primers_item_data, strict=False)
551
+
552
+ primers.append(primers_item)
553
+
554
+ return primers
555
+
556
+ try:
557
+ primers = get_primers()
558
+ except KeyError:
559
+ if strict:
560
+ raise
561
+ primers = cast(Union[Unset, List[Primer]], UNSET)
562
+
563
+ def get_registration_origin() -> Union[Unset, None, RegistrationOrigin]:
564
+ registration_origin = None
565
+ _registration_origin = d.pop("registrationOrigin")
566
+
567
+ if _registration_origin is not None and not isinstance(_registration_origin, Unset):
568
+ registration_origin = RegistrationOrigin.from_dict(_registration_origin)
569
+
570
+ return registration_origin
571
+
572
+ try:
573
+ registration_origin = get_registration_origin()
574
+ except KeyError:
575
+ if strict:
576
+ raise
577
+ registration_origin = cast(Union[Unset, None, RegistrationOrigin], UNSET)
578
+
579
+ def get_registry_id() -> Union[Unset, None, str]:
580
+ registry_id = d.pop("registryId")
581
+ return registry_id
582
+
583
+ try:
584
+ registry_id = get_registry_id()
585
+ except KeyError:
586
+ if strict:
587
+ raise
588
+ registry_id = cast(Union[Unset, None, str], UNSET)
589
+
590
+ def get_schema() -> Union[Unset, None, SchemaSummary]:
591
+ schema = None
592
+ _schema = d.pop("schema")
593
+
594
+ if _schema is not None and not isinstance(_schema, Unset):
595
+ schema = SchemaSummary.from_dict(_schema)
596
+
597
+ return schema
598
+
599
+ try:
600
+ schema = get_schema()
601
+ except KeyError:
602
+ if strict:
603
+ raise
604
+ schema = cast(Union[Unset, None, SchemaSummary], UNSET)
605
+
606
+ def get_translations() -> Union[Unset, List[Translation]]:
607
+ translations = []
608
+ _translations = d.pop("translations")
609
+ for translations_item_data in _translations or []:
610
+ translations_item = Translation.from_dict(translations_item_data, strict=False)
611
+
612
+ translations.append(translations_item)
613
+
614
+ return translations
615
+
616
+ try:
617
+ translations = get_translations()
618
+ except KeyError:
619
+ if strict:
620
+ raise
621
+ translations = cast(Union[Unset, List[Translation]], UNSET)
622
+
623
+ def get_url() -> Union[Unset, str]:
624
+ url = d.pop("url")
625
+ return url
626
+
627
+ try:
628
+ url = get_url()
629
+ except KeyError:
630
+ if strict:
631
+ raise
632
+ url = cast(Union[Unset, str], UNSET)
633
+
634
+ def get_web_url() -> Union[Unset, str]:
635
+ web_url = d.pop("webURL")
636
+ return web_url
637
+
638
+ try:
639
+ web_url = get_web_url()
640
+ except KeyError:
641
+ if strict:
642
+ raise
643
+ web_url = cast(Union[Unset, str], UNSET)
644
+
645
+ rna_sequence = cls(
646
+ aliases=aliases,
647
+ alignment_ids=alignment_ids,
648
+ annotations=annotations,
649
+ api_url=api_url,
650
+ archive_record=archive_record,
651
+ authors=authors,
652
+ bases=bases,
653
+ created_at=created_at,
654
+ creator=creator,
655
+ custom_fields=custom_fields,
656
+ custom_notation=custom_notation,
657
+ custom_notation_name=custom_notation_name,
658
+ entity_registry_id=entity_registry_id,
659
+ fields=fields,
660
+ folder_id=folder_id,
661
+ helm=helm,
662
+ id=id,
663
+ is_circular=is_circular,
664
+ length=length,
665
+ modified_at=modified_at,
666
+ name=name,
667
+ parts=parts,
668
+ primers=primers,
669
+ registration_origin=registration_origin,
670
+ registry_id=registry_id,
671
+ schema=schema,
672
+ translations=translations,
673
+ url=url,
674
+ web_url=web_url,
675
+ )
676
+
677
+ rna_sequence.additional_properties = d
678
+ return rna_sequence
679
+
680
+ @property
681
+ def additional_keys(self) -> List[str]:
682
+ return list(self.additional_properties.keys())
683
+
684
+ def __getitem__(self, key: str) -> Any:
685
+ return self.additional_properties[key]
686
+
687
+ def __setitem__(self, key: str, value: Any) -> None:
688
+ self.additional_properties[key] = value
689
+
690
+ def __delitem__(self, key: str) -> None:
691
+ del self.additional_properties[key]
692
+
693
+ def __contains__(self, key: str) -> bool:
694
+ return key in self.additional_properties
695
+
696
+ def get(self, key, default=None) -> Optional[Any]:
697
+ return self.additional_properties.get(key, default)
698
+
699
+ @property
700
+ def aliases(self) -> List[str]:
701
+ if isinstance(self._aliases, Unset):
702
+ raise NotPresentError(self, "aliases")
703
+ return self._aliases
704
+
705
+ @aliases.setter
706
+ def aliases(self, value: List[str]) -> None:
707
+ self._aliases = value
708
+
709
+ @aliases.deleter
710
+ def aliases(self) -> None:
711
+ self._aliases = UNSET
712
+
713
+ @property
714
+ def alignment_ids(self) -> List[str]:
715
+ """ API IDs of Nucleotide Alignments involving the RNA sequence """
716
+ if isinstance(self._alignment_ids, Unset):
717
+ raise NotPresentError(self, "alignment_ids")
718
+ return self._alignment_ids
719
+
720
+ @alignment_ids.setter
721
+ def alignment_ids(self, value: List[str]) -> None:
722
+ self._alignment_ids = value
723
+
724
+ @alignment_ids.deleter
725
+ def alignment_ids(self) -> None:
726
+ self._alignment_ids = UNSET
727
+
728
+ @property
729
+ def annotations(self) -> List[RnaAnnotation]:
730
+ if isinstance(self._annotations, Unset):
731
+ raise NotPresentError(self, "annotations")
732
+ return self._annotations
733
+
734
+ @annotations.setter
735
+ def annotations(self, value: List[RnaAnnotation]) -> None:
736
+ self._annotations = value
737
+
738
+ @annotations.deleter
739
+ def annotations(self) -> None:
740
+ self._annotations = UNSET
741
+
742
+ @property
743
+ def api_url(self) -> str:
744
+ """ The canonical url of the RNA Sequence in the API. """
745
+ if isinstance(self._api_url, Unset):
746
+ raise NotPresentError(self, "api_url")
747
+ return self._api_url
748
+
749
+ @api_url.setter
750
+ def api_url(self, value: str) -> None:
751
+ self._api_url = value
752
+
753
+ @api_url.deleter
754
+ def api_url(self) -> None:
755
+ self._api_url = UNSET
756
+
757
+ @property
758
+ def archive_record(self) -> Optional[ArchiveRecord]:
759
+ if isinstance(self._archive_record, Unset):
760
+ raise NotPresentError(self, "archive_record")
761
+ return self._archive_record
762
+
763
+ @archive_record.setter
764
+ def archive_record(self, value: Optional[ArchiveRecord]) -> None:
765
+ self._archive_record = value
766
+
767
+ @archive_record.deleter
768
+ def archive_record(self) -> None:
769
+ self._archive_record = UNSET
770
+
771
+ @property
772
+ def authors(self) -> List[UserSummary]:
773
+ if isinstance(self._authors, Unset):
774
+ raise NotPresentError(self, "authors")
775
+ return self._authors
776
+
777
+ @authors.setter
778
+ def authors(self, value: List[UserSummary]) -> None:
779
+ self._authors = value
780
+
781
+ @authors.deleter
782
+ def authors(self) -> None:
783
+ self._authors = UNSET
784
+
785
+ @property
786
+ def bases(self) -> str:
787
+ if isinstance(self._bases, Unset):
788
+ raise NotPresentError(self, "bases")
789
+ return self._bases
790
+
791
+ @bases.setter
792
+ def bases(self, value: str) -> None:
793
+ self._bases = value
794
+
795
+ @bases.deleter
796
+ def bases(self) -> None:
797
+ self._bases = UNSET
798
+
799
+ @property
800
+ def created_at(self) -> datetime.datetime:
801
+ if isinstance(self._created_at, Unset):
802
+ raise NotPresentError(self, "created_at")
803
+ return self._created_at
804
+
805
+ @created_at.setter
806
+ def created_at(self, value: datetime.datetime) -> None:
807
+ self._created_at = value
808
+
809
+ @created_at.deleter
810
+ def created_at(self) -> None:
811
+ self._created_at = UNSET
812
+
813
+ @property
814
+ def creator(self) -> UserSummary:
815
+ if isinstance(self._creator, Unset):
816
+ raise NotPresentError(self, "creator")
817
+ return self._creator
818
+
819
+ @creator.setter
820
+ def creator(self, value: UserSummary) -> None:
821
+ self._creator = value
822
+
823
+ @creator.deleter
824
+ def creator(self) -> None:
825
+ self._creator = UNSET
826
+
827
+ @property
828
+ def custom_fields(self) -> CustomFields:
829
+ if isinstance(self._custom_fields, Unset):
830
+ raise NotPresentError(self, "custom_fields")
831
+ return self._custom_fields
832
+
833
+ @custom_fields.setter
834
+ def custom_fields(self, value: CustomFields) -> None:
835
+ self._custom_fields = value
836
+
837
+ @custom_fields.deleter
838
+ def custom_fields(self) -> None:
839
+ self._custom_fields = UNSET
840
+
841
+ @property
842
+ def custom_notation(self) -> Optional[str]:
843
+ """ Representation of the RNA Sequence in the custom notation specified in the request. Null if no notation was specified. """
844
+ if isinstance(self._custom_notation, Unset):
845
+ raise NotPresentError(self, "custom_notation")
846
+ return self._custom_notation
847
+
848
+ @custom_notation.setter
849
+ def custom_notation(self, value: Optional[str]) -> None:
850
+ self._custom_notation = value
851
+
852
+ @custom_notation.deleter
853
+ def custom_notation(self) -> None:
854
+ self._custom_notation = UNSET
855
+
856
+ @property
857
+ def custom_notation_name(self) -> Optional[str]:
858
+ """ Name of the custom notation specified in the request. Null if no notation was specified. """
859
+ if isinstance(self._custom_notation_name, Unset):
860
+ raise NotPresentError(self, "custom_notation_name")
861
+ return self._custom_notation_name
862
+
863
+ @custom_notation_name.setter
864
+ def custom_notation_name(self, value: Optional[str]) -> None:
865
+ self._custom_notation_name = value
866
+
867
+ @custom_notation_name.deleter
868
+ def custom_notation_name(self) -> None:
869
+ self._custom_notation_name = UNSET
870
+
871
+ @property
872
+ def entity_registry_id(self) -> Optional[str]:
873
+ if isinstance(self._entity_registry_id, Unset):
874
+ raise NotPresentError(self, "entity_registry_id")
875
+ return self._entity_registry_id
876
+
877
+ @entity_registry_id.setter
878
+ def entity_registry_id(self, value: Optional[str]) -> None:
879
+ self._entity_registry_id = value
880
+
881
+ @entity_registry_id.deleter
882
+ def entity_registry_id(self) -> None:
883
+ self._entity_registry_id = UNSET
884
+
885
+ @property
886
+ def fields(self) -> Fields:
887
+ if isinstance(self._fields, Unset):
888
+ raise NotPresentError(self, "fields")
889
+ return self._fields
890
+
891
+ @fields.setter
892
+ def fields(self, value: Fields) -> None:
893
+ self._fields = value
894
+
895
+ @fields.deleter
896
+ def fields(self) -> None:
897
+ self._fields = UNSET
898
+
899
+ @property
900
+ def folder_id(self) -> Optional[str]:
901
+ if isinstance(self._folder_id, Unset):
902
+ raise NotPresentError(self, "folder_id")
903
+ return self._folder_id
904
+
905
+ @folder_id.setter
906
+ def folder_id(self, value: Optional[str]) -> None:
907
+ self._folder_id = value
908
+
909
+ @folder_id.deleter
910
+ def folder_id(self) -> None:
911
+ self._folder_id = UNSET
912
+
913
+ @property
914
+ def helm(self) -> Optional[str]:
915
+ """ Representation of the RNA Sequence in HELM syntax, including any chemical modifications. """
916
+ if isinstance(self._helm, Unset):
917
+ raise NotPresentError(self, "helm")
918
+ return self._helm
919
+
920
+ @helm.setter
921
+ def helm(self, value: Optional[str]) -> None:
922
+ self._helm = value
923
+
924
+ @helm.deleter
925
+ def helm(self) -> None:
926
+ self._helm = UNSET
927
+
928
+ @property
929
+ def id(self) -> str:
930
+ if isinstance(self._id, Unset):
931
+ raise NotPresentError(self, "id")
932
+ return self._id
933
+
934
+ @id.setter
935
+ def id(self, value: str) -> None:
936
+ self._id = value
937
+
938
+ @id.deleter
939
+ def id(self) -> None:
940
+ self._id = UNSET
941
+
942
+ @property
943
+ def is_circular(self) -> bool:
944
+ if isinstance(self._is_circular, Unset):
945
+ raise NotPresentError(self, "is_circular")
946
+ return self._is_circular
947
+
948
+ @is_circular.setter
949
+ def is_circular(self, value: bool) -> None:
950
+ self._is_circular = value
951
+
952
+ @is_circular.deleter
953
+ def is_circular(self) -> None:
954
+ self._is_circular = UNSET
955
+
956
+ @property
957
+ def length(self) -> int:
958
+ if isinstance(self._length, Unset):
959
+ raise NotPresentError(self, "length")
960
+ return self._length
961
+
962
+ @length.setter
963
+ def length(self, value: int) -> None:
964
+ self._length = value
965
+
966
+ @length.deleter
967
+ def length(self) -> None:
968
+ self._length = UNSET
969
+
970
+ @property
971
+ def modified_at(self) -> datetime.datetime:
972
+ if isinstance(self._modified_at, Unset):
973
+ raise NotPresentError(self, "modified_at")
974
+ return self._modified_at
975
+
976
+ @modified_at.setter
977
+ def modified_at(self, value: datetime.datetime) -> None:
978
+ self._modified_at = value
979
+
980
+ @modified_at.deleter
981
+ def modified_at(self) -> None:
982
+ self._modified_at = UNSET
983
+
984
+ @property
985
+ def name(self) -> str:
986
+ if isinstance(self._name, Unset):
987
+ raise NotPresentError(self, "name")
988
+ return self._name
989
+
990
+ @name.setter
991
+ def name(self, value: str) -> None:
992
+ self._name = value
993
+
994
+ @name.deleter
995
+ def name(self) -> None:
996
+ self._name = UNSET
997
+
998
+ @property
999
+ def parts(self) -> List[RnaSequencePart]:
1000
+ if isinstance(self._parts, Unset):
1001
+ raise NotPresentError(self, "parts")
1002
+ return self._parts
1003
+
1004
+ @parts.setter
1005
+ def parts(self, value: List[RnaSequencePart]) -> None:
1006
+ self._parts = value
1007
+
1008
+ @parts.deleter
1009
+ def parts(self) -> None:
1010
+ self._parts = UNSET
1011
+
1012
+ @property
1013
+ def primers(self) -> List[Primer]:
1014
+ if isinstance(self._primers, Unset):
1015
+ raise NotPresentError(self, "primers")
1016
+ return self._primers
1017
+
1018
+ @primers.setter
1019
+ def primers(self, value: List[Primer]) -> None:
1020
+ self._primers = value
1021
+
1022
+ @primers.deleter
1023
+ def primers(self) -> None:
1024
+ self._primers = UNSET
1025
+
1026
+ @property
1027
+ def registration_origin(self) -> Optional[RegistrationOrigin]:
1028
+ if isinstance(self._registration_origin, Unset):
1029
+ raise NotPresentError(self, "registration_origin")
1030
+ return self._registration_origin
1031
+
1032
+ @registration_origin.setter
1033
+ def registration_origin(self, value: Optional[RegistrationOrigin]) -> None:
1034
+ self._registration_origin = value
1035
+
1036
+ @registration_origin.deleter
1037
+ def registration_origin(self) -> None:
1038
+ self._registration_origin = UNSET
1039
+
1040
+ @property
1041
+ def registry_id(self) -> Optional[str]:
1042
+ if isinstance(self._registry_id, Unset):
1043
+ raise NotPresentError(self, "registry_id")
1044
+ return self._registry_id
1045
+
1046
+ @registry_id.setter
1047
+ def registry_id(self, value: Optional[str]) -> None:
1048
+ self._registry_id = value
1049
+
1050
+ @registry_id.deleter
1051
+ def registry_id(self) -> None:
1052
+ self._registry_id = UNSET
1053
+
1054
+ @property
1055
+ def schema(self) -> Optional[SchemaSummary]:
1056
+ if isinstance(self._schema, Unset):
1057
+ raise NotPresentError(self, "schema")
1058
+ return self._schema
1059
+
1060
+ @schema.setter
1061
+ def schema(self, value: Optional[SchemaSummary]) -> None:
1062
+ self._schema = value
1063
+
1064
+ @schema.deleter
1065
+ def schema(self) -> None:
1066
+ self._schema = UNSET
1067
+
1068
+ @property
1069
+ def translations(self) -> List[Translation]:
1070
+ if isinstance(self._translations, Unset):
1071
+ raise NotPresentError(self, "translations")
1072
+ return self._translations
1073
+
1074
+ @translations.setter
1075
+ def translations(self, value: List[Translation]) -> None:
1076
+ self._translations = value
1077
+
1078
+ @translations.deleter
1079
+ def translations(self) -> None:
1080
+ self._translations = UNSET
1081
+
1082
+ @property
1083
+ def url(self) -> str:
1084
+ """ The path of the web URL, omitting the tenant domain """
1085
+ if isinstance(self._url, Unset):
1086
+ raise NotPresentError(self, "url")
1087
+ return self._url
1088
+
1089
+ @url.setter
1090
+ def url(self, value: str) -> None:
1091
+ self._url = value
1092
+
1093
+ @url.deleter
1094
+ def url(self) -> None:
1095
+ self._url = UNSET
1096
+
1097
+ @property
1098
+ def web_url(self) -> str:
1099
+ if isinstance(self._web_url, Unset):
1100
+ raise NotPresentError(self, "web_url")
1101
+ return self._web_url
1102
+
1103
+ @web_url.setter
1104
+ def web_url(self, value: str) -> None:
1105
+ self._web_url = value
1106
+
1107
+ @web_url.deleter
1108
+ def web_url(self) -> None:
1109
+ self._web_url = UNSET