hushscript 1.0.0__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.
- hushscript/__init__.py +97 -0
- hushscript/_client.py +687 -0
- hushscript/_clock.py +36 -0
- hushscript/_config.py +139 -0
- hushscript/_errors.py +563 -0
- hushscript/_guard.py +61 -0
- hushscript/_http.py +624 -0
- hushscript/_json.py +55 -0
- hushscript/_log.py +155 -0
- hushscript/_models.py +144 -0
- hushscript/_pacing.py +51 -0
- hushscript/_redact.py +140 -0
- hushscript/_response.py +67 -0
- hushscript/_retry.py +205 -0
- hushscript/_shape.py +197 -0
- hushscript/_shapes.py +248 -0
- hushscript/_version.py +1 -0
- hushscript/format.py +224 -0
- hushscript/generated/__init__.py +8 -0
- hushscript/generated/api/__init__.py +1 -0
- hushscript/generated/api/default/__init__.py +1 -0
- hushscript/generated/api/default/buy_minutes.py +248 -0
- hushscript/generated/api/default/claim_agent_account.py +238 -0
- hushscript/generated/api/default/complete_upload.py +238 -0
- hushscript/generated/api/default/create_agent_account_signup.py +261 -0
- hushscript/generated/api/default/create_setup_session.py +244 -0
- hushscript/generated/api/default/create_upload.py +225 -0
- hushscript/generated/api/default/get_account.py +169 -0
- hushscript/generated/api/default/get_job.py +198 -0
- hushscript/generated/api/default/get_org.py +169 -0
- hushscript/generated/api/default/get_transcript.py +226 -0
- hushscript/generated/api/default/get_transcription_context.py +173 -0
- hushscript/generated/api/default/get_upload_part_urls.py +246 -0
- hushscript/generated/api/default/heartbeat_upload.py +197 -0
- hushscript/generated/api/default/lift_transcript_hold.py +206 -0
- hushscript/generated/api/default/list_credit_ledger.py +229 -0
- hushscript/generated/api/default/list_deleted_transcripts.py +237 -0
- hushscript/generated/api/default/list_holds.py +233 -0
- hushscript/generated/api/default/list_jobs.py +249 -0
- hushscript/generated/api/default/list_org_audit.py +221 -0
- hushscript/generated/api/default/list_org_invoices.py +221 -0
- hushscript/generated/api/default/list_org_ledger.py +221 -0
- hushscript/generated/api/default/list_org_matters.py +247 -0
- hushscript/generated/api/default/list_org_members.py +221 -0
- hushscript/generated/api/default/list_org_transcripts.py +233 -0
- hushscript/generated/api/default/list_packs.py +169 -0
- hushscript/generated/api/default/list_saved_cards.py +169 -0
- hushscript/generated/api/default/list_transactions.py +225 -0
- hushscript/generated/api/default/list_transcripts.py +225 -0
- hushscript/generated/api/default/org_audit_csv.py +163 -0
- hushscript/generated/api/default/org_ledger_csv.py +163 -0
- hushscript/generated/api/default/org_usage_report.py +247 -0
- hushscript/generated/api/default/org_usage_report_csv.py +229 -0
- hushscript/generated/api/default/patch_org_member.py +237 -0
- hushscript/generated/api/default/place_transcript_hold.py +206 -0
- hushscript/generated/api/default/rotate_agent_credentials.py +177 -0
- hushscript/generated/api/default/schedule_org_custody.py +215 -0
- hushscript/generated/api/default/set_default_card.py +223 -0
- hushscript/generated/api/default/upload_part.py +249 -0
- hushscript/generated/catalog.py +138 -0
- hushscript/generated/client.py +282 -0
- hushscript/generated/errors.py +16 -0
- hushscript/generated/hints.py +28 -0
- hushscript/generated/models/__init__.py +193 -0
- hushscript/generated/models/account_response.py +114 -0
- hushscript/generated/models/active_hold.py +88 -0
- hushscript/generated/models/active_hold_kind.py +18 -0
- hushscript/generated/models/agent_claim_request.py +61 -0
- hushscript/generated/models/agent_claim_response.py +85 -0
- hushscript/generated/models/agent_credentials_rotate_response.py +101 -0
- hushscript/generated/models/agent_signup_request.py +118 -0
- hushscript/generated/models/agent_signup_request_agent.py +80 -0
- hushscript/generated/models/agent_signup_response.py +111 -0
- hushscript/generated/models/buy_minutes_body.py +89 -0
- hushscript/generated/models/card.py +132 -0
- hushscript/generated/models/cards_response.py +90 -0
- hushscript/generated/models/complete_upload_body.py +107 -0
- hushscript/generated/models/complete_upload_body_parts_type_0_item.py +69 -0
- hushscript/generated/models/context_dictionary.py +143 -0
- hushscript/generated/models/context_prompt_preset.py +118 -0
- hushscript/generated/models/create_setup_session_body.py +62 -0
- hushscript/generated/models/create_upload_body.py +254 -0
- hushscript/generated/models/create_upload_body_transcription_options_type_0.py +178 -0
- hushscript/generated/models/credit_ledger_entry.py +113 -0
- hushscript/generated/models/credit_ledger_response.py +90 -0
- hushscript/generated/models/deleted_transcript.py +148 -0
- hushscript/generated/models/deleted_transcript_cause.py +18 -0
- hushscript/generated/models/deleted_transcript_receipt_type_0.py +107 -0
- hushscript/generated/models/deleted_transcript_receipt_type_0_items_item.py +69 -0
- hushscript/generated/models/deleted_transcripts_response.py +90 -0
- hushscript/generated/models/dictionary_entry.py +123 -0
- hushscript/generated/models/dictionary_entry_category.py +37 -0
- hushscript/generated/models/error.py +155 -0
- hushscript/generated/models/error_details.py +94 -0
- hushscript/generated/models/get_upload_part_urls_response_200_type_0.py +108 -0
- hushscript/generated/models/heartbeat_upload_response_200.py +61 -0
- hushscript/generated/models/holds_response.py +90 -0
- hushscript/generated/models/job.py +309 -0
- hushscript/generated/models/job_failure_kind_type_1.py +16 -0
- hushscript/generated/models/job_failure_kind_type_2_type_1.py +16 -0
- hushscript/generated/models/job_failure_kind_type_3_type_1.py +16 -0
- hushscript/generated/models/job_list.py +90 -0
- hushscript/generated/models/lift_transcript_hold_response_200.py +61 -0
- hushscript/generated/models/list_jobs_active.py +17 -0
- hushscript/generated/models/list_org_matters_status.py +16 -0
- hushscript/generated/models/options_summary.py +135 -0
- hushscript/generated/models/org_audit_entry.py +105 -0
- hushscript/generated/models/org_audit_response.py +90 -0
- hushscript/generated/models/org_invoice.py +175 -0
- hushscript/generated/models/org_invoices_response.py +90 -0
- hushscript/generated/models/org_ledger_entry.py +155 -0
- hushscript/generated/models/org_ledger_response.py +90 -0
- hushscript/generated/models/org_matter.py +79 -0
- hushscript/generated/models/org_matter_status.py +16 -0
- hushscript/generated/models/org_matters_response.py +75 -0
- hushscript/generated/models/org_member.py +123 -0
- hushscript/generated/models/org_members_response.py +90 -0
- hushscript/generated/models/org_summary_response.py +482 -0
- hushscript/generated/models/org_transcript.py +103 -0
- hushscript/generated/models/org_transcripts_response.py +90 -0
- hushscript/generated/models/org_usage_report_csv_group_by.py +17 -0
- hushscript/generated/models/org_usage_report_group_by.py +17 -0
- hushscript/generated/models/org_usage_response.py +112 -0
- hushscript/generated/models/org_usage_response_group_by.py +17 -0
- hushscript/generated/models/org_usage_row.py +86 -0
- hushscript/generated/models/pack.py +107 -0
- hushscript/generated/models/packs_response.py +75 -0
- hushscript/generated/models/patch_org_member_body.py +102 -0
- hushscript/generated/models/patch_org_member_response_200.py +61 -0
- hushscript/generated/models/place_transcript_hold_response_200.py +61 -0
- hushscript/generated/models/presigned_part_url.py +69 -0
- hushscript/generated/models/purchase_response.py +76 -0
- hushscript/generated/models/schedule_org_custody_body.py +66 -0
- hushscript/generated/models/schedule_org_custody_body_custody.py +17 -0
- hushscript/generated/models/schedule_org_custody_response_200.py +69 -0
- hushscript/generated/models/set_default_card_body.py +61 -0
- hushscript/generated/models/set_default_card_response_200.py +61 -0
- hushscript/generated/models/setup_session_response.py +77 -0
- hushscript/generated/models/transaction.py +183 -0
- hushscript/generated/models/transactions_response.py +98 -0
- hushscript/generated/models/transcript_detail.py +194 -0
- hushscript/generated/models/transcript_detail_speaker_names.py +47 -0
- hushscript/generated/models/transcript_envelope.py +89 -0
- hushscript/generated/models/transcript_envelope_translations.py +62 -0
- hushscript/generated/models/transcript_language.py +75 -0
- hushscript/generated/models/transcript_list.py +90 -0
- hushscript/generated/models/transcript_list_row.py +152 -0
- hushscript/generated/models/transcript_list_row_insights_state.py +20 -0
- hushscript/generated/models/transcription_context_response.py +95 -0
- hushscript/generated/models/upload_complete_response.py +100 -0
- hushscript/generated/models/upload_create_response.py +148 -0
- hushscript/generated/models/upload_create_response_funding.py +16 -0
- hushscript/generated/models/upload_create_response_upload_type_0.py +108 -0
- hushscript/generated/models/upload_limits.py +86 -0
- hushscript/generated/models/upload_part_response_200.py +69 -0
- hushscript/generated/models/utterance.py +85 -0
- hushscript/generated/scopes.py +42 -0
- hushscript/generated/types.py +54 -0
- hushscript/money.py +79 -0
- hushscript/paginate.py +78 -0
- hushscript/py.typed +0 -0
- hushscript/resources/__init__.py +1 -0
- hushscript/resources/_params.py +33 -0
- hushscript/resources/account.py +121 -0
- hushscript/resources/agent.py +421 -0
- hushscript/resources/billing.py +567 -0
- hushscript/resources/jobs.py +105 -0
- hushscript/resources/transcripts.py +209 -0
- hushscript/transcribe/__init__.py +1 -0
- hushscript/transcribe/apipeline.py +234 -0
- hushscript/transcribe/aupload.py +197 -0
- hushscript/transcribe/heartbeat.py +78 -0
- hushscript/transcribe/pipeline.py +312 -0
- hushscript/transcribe/preflight.py +272 -0
- hushscript/transcribe/probe.py +185 -0
- hushscript/transcribe/resume.py +115 -0
- hushscript/transcribe/segment.py +23 -0
- hushscript/transcribe/session.py +34 -0
- hushscript/transcribe/sniff.py +30 -0
- hushscript/transcribe/source.py +218 -0
- hushscript/transcribe/upload.py +498 -0
- hushscript/transcribe/wait.py +124 -0
- hushscript/transcript.py +197 -0
- hushscript-1.0.0.dist-info/METADATA +502 -0
- hushscript-1.0.0.dist-info/RECORD +187 -0
- hushscript-1.0.0.dist-info/WHEEL +4 -0
- hushscript-1.0.0.dist-info/licenses/LICENSE +21 -0
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from collections.abc import Mapping
|
|
4
|
+
from typing import TYPE_CHECKING, Any, TypeVar, cast
|
|
5
|
+
|
|
6
|
+
from attrs import define as _attrs_define
|
|
7
|
+
from attrs import field as _attrs_field
|
|
8
|
+
|
|
9
|
+
from ..models.deleted_transcript_cause import (
|
|
10
|
+
DeletedTranscriptCause,
|
|
11
|
+
check_deleted_transcript_cause,
|
|
12
|
+
)
|
|
13
|
+
|
|
14
|
+
if TYPE_CHECKING:
|
|
15
|
+
from ..models.deleted_transcript_receipt_type_0 import DeletedTranscriptReceiptType0
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
T = TypeVar("T", bound="DeletedTranscript")
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
@_attrs_define
|
|
22
|
+
class DeletedTranscript:
|
|
23
|
+
"""
|
|
24
|
+
Attributes:
|
|
25
|
+
id (str):
|
|
26
|
+
title (str):
|
|
27
|
+
duration_seconds (int):
|
|
28
|
+
created_at (int): When the transcript was originally uploaded, Unix seconds. This is the key the list is ordered
|
|
29
|
+
and paged on.
|
|
30
|
+
deleted_at (int):
|
|
31
|
+
cause (DeletedTranscriptCause): Which deletion path removed the transcript: an explicit delete (manual), the
|
|
32
|
+
transcript's own auto_delete_at retention date (scheduled), the dormant-account purge (dormant), or the global
|
|
33
|
+
retention sweep (expired).
|
|
34
|
+
receipt (DeletedTranscriptReceiptType0 | None): The receipt recorded when the transcript was deleted, kept so
|
|
35
|
+
the deletion stays evidenced after the content itself is gone. Null when the stored receipt could not be read
|
|
36
|
+
back.
|
|
37
|
+
"""
|
|
38
|
+
|
|
39
|
+
id: str
|
|
40
|
+
title: str
|
|
41
|
+
duration_seconds: int
|
|
42
|
+
created_at: int
|
|
43
|
+
deleted_at: int
|
|
44
|
+
cause: DeletedTranscriptCause
|
|
45
|
+
receipt: DeletedTranscriptReceiptType0 | None
|
|
46
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
47
|
+
|
|
48
|
+
def to_dict(self) -> dict[str, Any]:
|
|
49
|
+
from ..models.deleted_transcript_receipt_type_0 import (
|
|
50
|
+
DeletedTranscriptReceiptType0, # noqa: PLC0415
|
|
51
|
+
)
|
|
52
|
+
|
|
53
|
+
id = self.id
|
|
54
|
+
|
|
55
|
+
title = self.title
|
|
56
|
+
|
|
57
|
+
duration_seconds = self.duration_seconds
|
|
58
|
+
|
|
59
|
+
created_at = self.created_at
|
|
60
|
+
|
|
61
|
+
deleted_at = self.deleted_at
|
|
62
|
+
|
|
63
|
+
cause: str = self.cause
|
|
64
|
+
|
|
65
|
+
receipt: dict[str, Any] | None
|
|
66
|
+
if isinstance(self.receipt, DeletedTranscriptReceiptType0):
|
|
67
|
+
receipt = self.receipt.to_dict()
|
|
68
|
+
else:
|
|
69
|
+
receipt = self.receipt
|
|
70
|
+
|
|
71
|
+
field_dict: dict[str, Any] = {}
|
|
72
|
+
field_dict.update(self.additional_properties)
|
|
73
|
+
field_dict.update(
|
|
74
|
+
{
|
|
75
|
+
"id": id,
|
|
76
|
+
"title": title,
|
|
77
|
+
"duration_seconds": duration_seconds,
|
|
78
|
+
"created_at": created_at,
|
|
79
|
+
"deleted_at": deleted_at,
|
|
80
|
+
"cause": cause,
|
|
81
|
+
"receipt": receipt,
|
|
82
|
+
}
|
|
83
|
+
)
|
|
84
|
+
|
|
85
|
+
return field_dict
|
|
86
|
+
|
|
87
|
+
@classmethod
|
|
88
|
+
def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
|
|
89
|
+
from ..models.deleted_transcript_receipt_type_0 import (
|
|
90
|
+
DeletedTranscriptReceiptType0, # noqa: PLC0415
|
|
91
|
+
)
|
|
92
|
+
|
|
93
|
+
d = dict(src_dict)
|
|
94
|
+
id = d.pop("id")
|
|
95
|
+
|
|
96
|
+
title = d.pop("title")
|
|
97
|
+
|
|
98
|
+
duration_seconds = d.pop("duration_seconds")
|
|
99
|
+
|
|
100
|
+
created_at = d.pop("created_at")
|
|
101
|
+
|
|
102
|
+
deleted_at = d.pop("deleted_at")
|
|
103
|
+
|
|
104
|
+
cause = check_deleted_transcript_cause(d.pop("cause"))
|
|
105
|
+
|
|
106
|
+
def _parse_receipt(data: object) -> DeletedTranscriptReceiptType0 | None:
|
|
107
|
+
if data is None:
|
|
108
|
+
return data
|
|
109
|
+
try:
|
|
110
|
+
if not isinstance(data, dict):
|
|
111
|
+
raise TypeError()
|
|
112
|
+
receipt_type_0 = DeletedTranscriptReceiptType0.from_dict(data)
|
|
113
|
+
|
|
114
|
+
return receipt_type_0
|
|
115
|
+
except (TypeError, ValueError, AttributeError, KeyError):
|
|
116
|
+
pass
|
|
117
|
+
return cast(DeletedTranscriptReceiptType0 | None, data)
|
|
118
|
+
|
|
119
|
+
receipt = _parse_receipt(d.pop("receipt"))
|
|
120
|
+
|
|
121
|
+
deleted_transcript = cls(
|
|
122
|
+
id=id,
|
|
123
|
+
title=title,
|
|
124
|
+
duration_seconds=duration_seconds,
|
|
125
|
+
created_at=created_at,
|
|
126
|
+
deleted_at=deleted_at,
|
|
127
|
+
cause=cause,
|
|
128
|
+
receipt=receipt,
|
|
129
|
+
)
|
|
130
|
+
|
|
131
|
+
deleted_transcript.additional_properties = d
|
|
132
|
+
return deleted_transcript
|
|
133
|
+
|
|
134
|
+
@property
|
|
135
|
+
def additional_keys(self) -> list[str]:
|
|
136
|
+
return list(self.additional_properties.keys())
|
|
137
|
+
|
|
138
|
+
def __getitem__(self, key: str) -> Any:
|
|
139
|
+
return self.additional_properties[key]
|
|
140
|
+
|
|
141
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
|
142
|
+
self.additional_properties[key] = value
|
|
143
|
+
|
|
144
|
+
def __delitem__(self, key: str) -> None:
|
|
145
|
+
del self.additional_properties[key]
|
|
146
|
+
|
|
147
|
+
def __contains__(self, key: str) -> bool:
|
|
148
|
+
return key in self.additional_properties
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
from typing import Literal
|
|
2
|
+
|
|
3
|
+
DeletedTranscriptCause = Literal["dormant", "expired", "manual", "scheduled"]
|
|
4
|
+
|
|
5
|
+
DELETED_TRANSCRIPT_CAUSE_VALUES: set[DeletedTranscriptCause] = {
|
|
6
|
+
"dormant",
|
|
7
|
+
"expired",
|
|
8
|
+
"manual",
|
|
9
|
+
"scheduled",
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
def check_deleted_transcript_cause(value: str) -> DeletedTranscriptCause:
|
|
14
|
+
if value in DELETED_TRANSCRIPT_CAUSE_VALUES:
|
|
15
|
+
return value
|
|
16
|
+
raise TypeError(
|
|
17
|
+
f"Unexpected value {value!r}. Expected one of {DELETED_TRANSCRIPT_CAUSE_VALUES!r}"
|
|
18
|
+
)
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from collections.abc import Mapping
|
|
4
|
+
from typing import TYPE_CHECKING, Any, TypeVar
|
|
5
|
+
|
|
6
|
+
from attrs import define as _attrs_define
|
|
7
|
+
from attrs import field as _attrs_field
|
|
8
|
+
|
|
9
|
+
if TYPE_CHECKING:
|
|
10
|
+
from ..models.deleted_transcript_receipt_type_0_items_item import (
|
|
11
|
+
DeletedTranscriptReceiptType0ItemsItem,
|
|
12
|
+
)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
T = TypeVar("T", bound="DeletedTranscriptReceiptType0")
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
@_attrs_define
|
|
19
|
+
class DeletedTranscriptReceiptType0:
|
|
20
|
+
"""The receipt recorded when the transcript was deleted, kept so the deletion stays evidenced after the content itself
|
|
21
|
+
is gone. Null when the stored receipt could not be read back.
|
|
22
|
+
|
|
23
|
+
Attributes:
|
|
24
|
+
type_ (str):
|
|
25
|
+
version (int):
|
|
26
|
+
created_at (str): UTC timestamp, seconds precision.
|
|
27
|
+
items (list[DeletedTranscriptReceiptType0ItemsItem]):
|
|
28
|
+
"""
|
|
29
|
+
|
|
30
|
+
type_: str
|
|
31
|
+
version: int
|
|
32
|
+
created_at: str
|
|
33
|
+
items: list[DeletedTranscriptReceiptType0ItemsItem]
|
|
34
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
35
|
+
|
|
36
|
+
def to_dict(self) -> dict[str, Any]:
|
|
37
|
+
type_ = self.type_
|
|
38
|
+
|
|
39
|
+
version = self.version
|
|
40
|
+
|
|
41
|
+
created_at = self.created_at
|
|
42
|
+
|
|
43
|
+
items = []
|
|
44
|
+
for items_item_data in self.items:
|
|
45
|
+
items_item = items_item_data.to_dict()
|
|
46
|
+
items.append(items_item)
|
|
47
|
+
|
|
48
|
+
field_dict: dict[str, Any] = {}
|
|
49
|
+
field_dict.update(self.additional_properties)
|
|
50
|
+
field_dict.update(
|
|
51
|
+
{
|
|
52
|
+
"type": type_,
|
|
53
|
+
"version": version,
|
|
54
|
+
"created_at": created_at,
|
|
55
|
+
"items": items,
|
|
56
|
+
}
|
|
57
|
+
)
|
|
58
|
+
|
|
59
|
+
return field_dict
|
|
60
|
+
|
|
61
|
+
@classmethod
|
|
62
|
+
def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
|
|
63
|
+
from ..models.deleted_transcript_receipt_type_0_items_item import (
|
|
64
|
+
DeletedTranscriptReceiptType0ItemsItem, # noqa: PLC0415
|
|
65
|
+
)
|
|
66
|
+
|
|
67
|
+
d = dict(src_dict)
|
|
68
|
+
type_ = d.pop("type")
|
|
69
|
+
|
|
70
|
+
version = d.pop("version")
|
|
71
|
+
|
|
72
|
+
created_at = d.pop("created_at")
|
|
73
|
+
|
|
74
|
+
items = []
|
|
75
|
+
_items = d.pop("items")
|
|
76
|
+
for items_item_data in _items:
|
|
77
|
+
items_item = DeletedTranscriptReceiptType0ItemsItem.from_dict(
|
|
78
|
+
items_item_data
|
|
79
|
+
)
|
|
80
|
+
|
|
81
|
+
items.append(items_item)
|
|
82
|
+
|
|
83
|
+
deleted_transcript_receipt_type_0 = cls(
|
|
84
|
+
type_=type_,
|
|
85
|
+
version=version,
|
|
86
|
+
created_at=created_at,
|
|
87
|
+
items=items,
|
|
88
|
+
)
|
|
89
|
+
|
|
90
|
+
deleted_transcript_receipt_type_0.additional_properties = d
|
|
91
|
+
return deleted_transcript_receipt_type_0
|
|
92
|
+
|
|
93
|
+
@property
|
|
94
|
+
def additional_keys(self) -> list[str]:
|
|
95
|
+
return list(self.additional_properties.keys())
|
|
96
|
+
|
|
97
|
+
def __getitem__(self, key: str) -> Any:
|
|
98
|
+
return self.additional_properties[key]
|
|
99
|
+
|
|
100
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
|
101
|
+
self.additional_properties[key] = value
|
|
102
|
+
|
|
103
|
+
def __delitem__(self, key: str) -> None:
|
|
104
|
+
del self.additional_properties[key]
|
|
105
|
+
|
|
106
|
+
def __contains__(self, key: str) -> bool:
|
|
107
|
+
return key in self.additional_properties
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from collections.abc import Mapping
|
|
4
|
+
from typing import Any, TypeVar
|
|
5
|
+
|
|
6
|
+
from attrs import define as _attrs_define
|
|
7
|
+
from attrs import field as _attrs_field
|
|
8
|
+
|
|
9
|
+
T = TypeVar("T", bound="DeletedTranscriptReceiptType0ItemsItem")
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
@_attrs_define
|
|
13
|
+
class DeletedTranscriptReceiptType0ItemsItem:
|
|
14
|
+
"""
|
|
15
|
+
Attributes:
|
|
16
|
+
kind (str):
|
|
17
|
+
deleted_at (str): UTC timestamp, seconds precision, e.g. 2026-09-07T14:53:35Z.
|
|
18
|
+
"""
|
|
19
|
+
|
|
20
|
+
kind: str
|
|
21
|
+
deleted_at: str
|
|
22
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
23
|
+
|
|
24
|
+
def to_dict(self) -> dict[str, Any]:
|
|
25
|
+
kind = self.kind
|
|
26
|
+
|
|
27
|
+
deleted_at = self.deleted_at
|
|
28
|
+
|
|
29
|
+
field_dict: dict[str, Any] = {}
|
|
30
|
+
field_dict.update(self.additional_properties)
|
|
31
|
+
field_dict.update(
|
|
32
|
+
{
|
|
33
|
+
"kind": kind,
|
|
34
|
+
"deleted_at": deleted_at,
|
|
35
|
+
}
|
|
36
|
+
)
|
|
37
|
+
|
|
38
|
+
return field_dict
|
|
39
|
+
|
|
40
|
+
@classmethod
|
|
41
|
+
def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
|
|
42
|
+
d = dict(src_dict)
|
|
43
|
+
kind = d.pop("kind")
|
|
44
|
+
|
|
45
|
+
deleted_at = d.pop("deleted_at")
|
|
46
|
+
|
|
47
|
+
deleted_transcript_receipt_type_0_items_item = cls(
|
|
48
|
+
kind=kind,
|
|
49
|
+
deleted_at=deleted_at,
|
|
50
|
+
)
|
|
51
|
+
|
|
52
|
+
deleted_transcript_receipt_type_0_items_item.additional_properties = d
|
|
53
|
+
return deleted_transcript_receipt_type_0_items_item
|
|
54
|
+
|
|
55
|
+
@property
|
|
56
|
+
def additional_keys(self) -> list[str]:
|
|
57
|
+
return list(self.additional_properties.keys())
|
|
58
|
+
|
|
59
|
+
def __getitem__(self, key: str) -> Any:
|
|
60
|
+
return self.additional_properties[key]
|
|
61
|
+
|
|
62
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
|
63
|
+
self.additional_properties[key] = value
|
|
64
|
+
|
|
65
|
+
def __delitem__(self, key: str) -> None:
|
|
66
|
+
del self.additional_properties[key]
|
|
67
|
+
|
|
68
|
+
def __contains__(self, key: str) -> bool:
|
|
69
|
+
return key in self.additional_properties
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from collections.abc import Mapping
|
|
4
|
+
from typing import TYPE_CHECKING, Any, TypeVar, cast
|
|
5
|
+
|
|
6
|
+
from attrs import define as _attrs_define
|
|
7
|
+
from attrs import field as _attrs_field
|
|
8
|
+
|
|
9
|
+
if TYPE_CHECKING:
|
|
10
|
+
from ..models.deleted_transcript import DeletedTranscript
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
T = TypeVar("T", bound="DeletedTranscriptsResponse")
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
@_attrs_define
|
|
17
|
+
class DeletedTranscriptsResponse:
|
|
18
|
+
"""
|
|
19
|
+
Attributes:
|
|
20
|
+
deleted (list[DeletedTranscript]):
|
|
21
|
+
next_cursor (None | str): An opaque token for the next page's cursor parameter, or null on the last page. This
|
|
22
|
+
API refuses a cursor it did not mint.
|
|
23
|
+
"""
|
|
24
|
+
|
|
25
|
+
deleted: list[DeletedTranscript]
|
|
26
|
+
next_cursor: None | str
|
|
27
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
28
|
+
|
|
29
|
+
def to_dict(self) -> dict[str, Any]:
|
|
30
|
+
deleted = []
|
|
31
|
+
for deleted_item_data in self.deleted:
|
|
32
|
+
deleted_item = deleted_item_data.to_dict()
|
|
33
|
+
deleted.append(deleted_item)
|
|
34
|
+
|
|
35
|
+
next_cursor: None | str
|
|
36
|
+
next_cursor = self.next_cursor
|
|
37
|
+
|
|
38
|
+
field_dict: dict[str, Any] = {}
|
|
39
|
+
field_dict.update(self.additional_properties)
|
|
40
|
+
field_dict.update(
|
|
41
|
+
{
|
|
42
|
+
"deleted": deleted,
|
|
43
|
+
"next_cursor": next_cursor,
|
|
44
|
+
}
|
|
45
|
+
)
|
|
46
|
+
|
|
47
|
+
return field_dict
|
|
48
|
+
|
|
49
|
+
@classmethod
|
|
50
|
+
def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
|
|
51
|
+
from ..models.deleted_transcript import DeletedTranscript # noqa: PLC0415
|
|
52
|
+
|
|
53
|
+
d = dict(src_dict)
|
|
54
|
+
deleted = []
|
|
55
|
+
_deleted = d.pop("deleted")
|
|
56
|
+
for deleted_item_data in _deleted:
|
|
57
|
+
deleted_item = DeletedTranscript.from_dict(deleted_item_data)
|
|
58
|
+
|
|
59
|
+
deleted.append(deleted_item)
|
|
60
|
+
|
|
61
|
+
def _parse_next_cursor(data: object) -> None | str:
|
|
62
|
+
if data is None:
|
|
63
|
+
return data
|
|
64
|
+
return cast(None | str, data)
|
|
65
|
+
|
|
66
|
+
next_cursor = _parse_next_cursor(d.pop("next_cursor"))
|
|
67
|
+
|
|
68
|
+
deleted_transcripts_response = cls(
|
|
69
|
+
deleted=deleted,
|
|
70
|
+
next_cursor=next_cursor,
|
|
71
|
+
)
|
|
72
|
+
|
|
73
|
+
deleted_transcripts_response.additional_properties = d
|
|
74
|
+
return deleted_transcripts_response
|
|
75
|
+
|
|
76
|
+
@property
|
|
77
|
+
def additional_keys(self) -> list[str]:
|
|
78
|
+
return list(self.additional_properties.keys())
|
|
79
|
+
|
|
80
|
+
def __getitem__(self, key: str) -> Any:
|
|
81
|
+
return self.additional_properties[key]
|
|
82
|
+
|
|
83
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
|
84
|
+
self.additional_properties[key] = value
|
|
85
|
+
|
|
86
|
+
def __delitem__(self, key: str) -> None:
|
|
87
|
+
del self.additional_properties[key]
|
|
88
|
+
|
|
89
|
+
def __contains__(self, key: str) -> bool:
|
|
90
|
+
return key in self.additional_properties
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from collections.abc import Mapping
|
|
4
|
+
from typing import Any, TypeVar, cast
|
|
5
|
+
|
|
6
|
+
from attrs import define as _attrs_define
|
|
7
|
+
from attrs import field as _attrs_field
|
|
8
|
+
|
|
9
|
+
from ..models.dictionary_entry_category import (
|
|
10
|
+
DictionaryEntryCategory,
|
|
11
|
+
check_dictionary_entry_category,
|
|
12
|
+
)
|
|
13
|
+
|
|
14
|
+
T = TypeVar("T", bound="DictionaryEntry")
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
@_attrs_define
|
|
18
|
+
class DictionaryEntry:
|
|
19
|
+
"""
|
|
20
|
+
Attributes:
|
|
21
|
+
id (str):
|
|
22
|
+
canonical (str): The spelling the transcript should use.
|
|
23
|
+
variants (list[str]): Alternative spellings that should be normalized to the canonical form.
|
|
24
|
+
category (DictionaryEntryCategory): What kind of term this is. Never empty and never null: an entry saved
|
|
25
|
+
without a category is stored as other.
|
|
26
|
+
note (str): Free-text note about the entry. Empty when unset; never null.
|
|
27
|
+
case_sensitive (bool):
|
|
28
|
+
created_at (int):
|
|
29
|
+
updated_at (int):
|
|
30
|
+
"""
|
|
31
|
+
|
|
32
|
+
id: str
|
|
33
|
+
canonical: str
|
|
34
|
+
variants: list[str]
|
|
35
|
+
category: DictionaryEntryCategory
|
|
36
|
+
note: str
|
|
37
|
+
case_sensitive: bool
|
|
38
|
+
created_at: int
|
|
39
|
+
updated_at: int
|
|
40
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
41
|
+
|
|
42
|
+
def to_dict(self) -> dict[str, Any]:
|
|
43
|
+
id = self.id
|
|
44
|
+
|
|
45
|
+
canonical = self.canonical
|
|
46
|
+
|
|
47
|
+
variants = self.variants
|
|
48
|
+
|
|
49
|
+
category: str = self.category
|
|
50
|
+
|
|
51
|
+
note = self.note
|
|
52
|
+
|
|
53
|
+
case_sensitive = self.case_sensitive
|
|
54
|
+
|
|
55
|
+
created_at = self.created_at
|
|
56
|
+
|
|
57
|
+
updated_at = self.updated_at
|
|
58
|
+
|
|
59
|
+
field_dict: dict[str, Any] = {}
|
|
60
|
+
field_dict.update(self.additional_properties)
|
|
61
|
+
field_dict.update(
|
|
62
|
+
{
|
|
63
|
+
"id": id,
|
|
64
|
+
"canonical": canonical,
|
|
65
|
+
"variants": variants,
|
|
66
|
+
"category": category,
|
|
67
|
+
"note": note,
|
|
68
|
+
"case_sensitive": case_sensitive,
|
|
69
|
+
"created_at": created_at,
|
|
70
|
+
"updated_at": updated_at,
|
|
71
|
+
}
|
|
72
|
+
)
|
|
73
|
+
|
|
74
|
+
return field_dict
|
|
75
|
+
|
|
76
|
+
@classmethod
|
|
77
|
+
def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
|
|
78
|
+
d = dict(src_dict)
|
|
79
|
+
id = d.pop("id")
|
|
80
|
+
|
|
81
|
+
canonical = d.pop("canonical")
|
|
82
|
+
|
|
83
|
+
variants = cast(list[str], d.pop("variants"))
|
|
84
|
+
|
|
85
|
+
category = check_dictionary_entry_category(d.pop("category"))
|
|
86
|
+
|
|
87
|
+
note = d.pop("note")
|
|
88
|
+
|
|
89
|
+
case_sensitive = d.pop("case_sensitive")
|
|
90
|
+
|
|
91
|
+
created_at = d.pop("created_at")
|
|
92
|
+
|
|
93
|
+
updated_at = d.pop("updated_at")
|
|
94
|
+
|
|
95
|
+
dictionary_entry = cls(
|
|
96
|
+
id=id,
|
|
97
|
+
canonical=canonical,
|
|
98
|
+
variants=variants,
|
|
99
|
+
category=category,
|
|
100
|
+
note=note,
|
|
101
|
+
case_sensitive=case_sensitive,
|
|
102
|
+
created_at=created_at,
|
|
103
|
+
updated_at=updated_at,
|
|
104
|
+
)
|
|
105
|
+
|
|
106
|
+
dictionary_entry.additional_properties = d
|
|
107
|
+
return dictionary_entry
|
|
108
|
+
|
|
109
|
+
@property
|
|
110
|
+
def additional_keys(self) -> list[str]:
|
|
111
|
+
return list(self.additional_properties.keys())
|
|
112
|
+
|
|
113
|
+
def __getitem__(self, key: str) -> Any:
|
|
114
|
+
return self.additional_properties[key]
|
|
115
|
+
|
|
116
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
|
117
|
+
self.additional_properties[key] = value
|
|
118
|
+
|
|
119
|
+
def __delitem__(self, key: str) -> None:
|
|
120
|
+
del self.additional_properties[key]
|
|
121
|
+
|
|
122
|
+
def __contains__(self, key: str) -> bool:
|
|
123
|
+
return key in self.additional_properties
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
from typing import Literal
|
|
2
|
+
|
|
3
|
+
DictionaryEntryCategory = Literal[
|
|
4
|
+
"abbreviation",
|
|
5
|
+
"acronym",
|
|
6
|
+
"legal_term",
|
|
7
|
+
"medical_term",
|
|
8
|
+
"organization",
|
|
9
|
+
"other",
|
|
10
|
+
"person_name",
|
|
11
|
+
"place",
|
|
12
|
+
"preferred_spelling",
|
|
13
|
+
"product",
|
|
14
|
+
"technical_term",
|
|
15
|
+
]
|
|
16
|
+
|
|
17
|
+
DICTIONARY_ENTRY_CATEGORY_VALUES: set[DictionaryEntryCategory] = {
|
|
18
|
+
"abbreviation",
|
|
19
|
+
"acronym",
|
|
20
|
+
"legal_term",
|
|
21
|
+
"medical_term",
|
|
22
|
+
"organization",
|
|
23
|
+
"other",
|
|
24
|
+
"person_name",
|
|
25
|
+
"place",
|
|
26
|
+
"preferred_spelling",
|
|
27
|
+
"product",
|
|
28
|
+
"technical_term",
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
def check_dictionary_entry_category(value: str) -> DictionaryEntryCategory:
|
|
33
|
+
if value in DICTIONARY_ENTRY_CATEGORY_VALUES:
|
|
34
|
+
return value
|
|
35
|
+
raise TypeError(
|
|
36
|
+
f"Unexpected value {value!r}. Expected one of {DICTIONARY_ENTRY_CATEGORY_VALUES!r}"
|
|
37
|
+
)
|