telnyx 3.4.0a0__py3-none-any.whl → 3.5.0a0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of telnyx might be problematic. Click here for more details.
- telnyx/__init__.py +3 -1
- telnyx/_base_client.py +9 -9
- telnyx/_client.py +35 -34
- telnyx/_models.py +10 -4
- telnyx/_qs.py +7 -7
- telnyx/_types.py +18 -11
- telnyx/_utils/_transform.py +2 -2
- telnyx/_utils/_utils.py +4 -4
- telnyx/_version.py +1 -1
- telnyx/resources/access_ip_address.py +15 -15
- telnyx/resources/access_ip_ranges.py +13 -13
- telnyx/resources/actions/purchase.py +13 -13
- telnyx/resources/actions/register.py +9 -9
- telnyx/resources/addresses/actions.py +13 -13
- telnyx/resources/addresses/addresses.py +33 -35
- telnyx/resources/advanced_orders.py +41 -45
- telnyx/resources/ai/ai.py +7 -7
- telnyx/resources/ai/assistants/assistants.py +89 -89
- telnyx/resources/ai/assistants/canary_deploys.py +9 -9
- telnyx/resources/ai/assistants/scheduled_events.py +21 -21
- telnyx/resources/ai/assistants/tests/runs.py +13 -13
- telnyx/resources/ai/assistants/tests/test_suites/runs.py +13 -13
- telnyx/resources/ai/assistants/tests/test_suites/test_suites.py +3 -3
- telnyx/resources/ai/assistants/tests/tests.py +43 -43
- telnyx/resources/ai/assistants/tools.py +7 -7
- telnyx/resources/ai/assistants/versions.py +45 -45
- telnyx/resources/ai/audio.py +11 -11
- telnyx/resources/ai/chat.py +47 -47
- telnyx/resources/ai/clusters.py +27 -27
- telnyx/resources/ai/conversations/conversations.py +43 -43
- telnyx/resources/ai/conversations/insight_groups/insight_groups.py +23 -23
- telnyx/resources/ai/conversations/insight_groups/insights.py +5 -5
- telnyx/resources/ai/conversations/insights.py +25 -25
- telnyx/resources/ai/conversations/messages.py +19 -19
- telnyx/resources/ai/embeddings/buckets.py +7 -7
- telnyx/resources/ai/embeddings/embeddings.py +23 -23
- telnyx/resources/ai/fine_tuning/jobs.py +13 -13
- telnyx/resources/audit_events.py +9 -9
- telnyx/resources/authentication_providers.py +29 -29
- telnyx/resources/available_phone_number_blocks.py +5 -5
- telnyx/resources/available_phone_numbers.py +5 -5
- telnyx/resources/balance.py +3 -3
- telnyx/resources/billing_groups.py +17 -17
- telnyx/resources/brand/brand.py +113 -113
- telnyx/resources/brand/external_vetting.py +9 -9
- telnyx/resources/bulk_sim_card_actions.py +11 -11
- telnyx/resources/bundle_pricing/billing_bundles.py +13 -13
- telnyx/resources/bundle_pricing/user_bundles.py +35 -35
- telnyx/resources/call_control_applications.py +63 -67
- telnyx/resources/call_events.py +7 -7
- telnyx/resources/calls/actions.py +549 -551
- telnyx/resources/calls/calls.py +99 -99
- telnyx/resources/campaign/campaign.py +47 -47
- telnyx/resources/campaign/osr.py +3 -3
- telnyx/resources/campaign/usecase.py +3 -3
- telnyx/resources/campaign_builder/brand.py +3 -3
- telnyx/resources/campaign_builder/campaign_builder.py +67 -67
- telnyx/resources/channel_zones.py +7 -7
- telnyx/resources/charges_breakdown.py +7 -7
- telnyx/resources/charges_summary.py +3 -3
- telnyx/resources/comments.py +17 -17
- telnyx/resources/conferences/actions.py +113 -113
- telnyx/resources/conferences/conferences.py +35 -35
- telnyx/resources/connections.py +15 -15
- telnyx/resources/country_coverage.py +5 -5
- telnyx/resources/credential_connections/actions.py +3 -3
- telnyx/resources/credential_connections/credential_connections.py +95 -95
- telnyx/resources/custom_storage_credentials.py +9 -9
- telnyx/resources/customer_service_records.py +19 -19
- telnyx/resources/detail_records.py +9 -9
- telnyx/resources/dialogflow_connections.py +25 -25
- telnyx/resources/document_links.py +7 -7
- telnyx/resources/documents.py +45 -45
- telnyx/resources/dynamic_emergency_addresses.py +23 -23
- telnyx/resources/dynamic_emergency_endpoints.py +13 -13
- telnyx/resources/enum.py +3 -3
- telnyx/resources/external_connections/civic_addresses.py +7 -7
- telnyx/resources/external_connections/external_connections.py +41 -41
- telnyx/resources/external_connections/log_messages.py +11 -11
- telnyx/resources/external_connections/phone_numbers.py +13 -13
- telnyx/resources/external_connections/releases.py +9 -9
- telnyx/resources/external_connections/uploads.py +25 -27
- telnyx/resources/fax_applications.py +47 -47
- telnyx/resources/faxes/actions.py +5 -5
- telnyx/resources/faxes/faxes.py +35 -35
- telnyx/resources/fqdn_connections.py +93 -93
- telnyx/resources/fqdns.py +25 -25
- telnyx/resources/global_ip_allowed_ports.py +3 -3
- telnyx/resources/global_ip_assignment_health.py +5 -5
- telnyx/resources/global_ip_assignments.py +19 -19
- telnyx/resources/global_ip_assignments_usage.py +5 -5
- telnyx/resources/global_ip_health_check_types.py +3 -3
- telnyx/resources/global_ip_health_checks.py +17 -17
- telnyx/resources/global_ip_latency.py +5 -5
- telnyx/resources/global_ip_protocols.py +3 -3
- telnyx/resources/global_ip_usage.py +5 -5
- telnyx/resources/global_ips.py +17 -17
- telnyx/resources/inbound_channels.py +5 -5
- telnyx/resources/integration_secrets.py +17 -17
- telnyx/resources/inventory_coverage.py +5 -5
- telnyx/resources/invoices.py +11 -11
- telnyx/resources/ip_connections.py +93 -93
- telnyx/resources/ips.py +23 -23
- telnyx/resources/ledger_billing_group_reports.py +9 -9
- telnyx/resources/list.py +5 -5
- telnyx/resources/managed_accounts/actions.py +7 -7
- telnyx/resources/managed_accounts/managed_accounts.py +33 -33
- telnyx/resources/media.py +23 -23
- telnyx/resources/messages/messages.py +121 -121
- telnyx/resources/messages/rcs.py +7 -7
- telnyx/resources/messaging/rcs/agents.py +15 -15
- telnyx/resources/messaging/rcs/rcs.py +7 -7
- telnyx/resources/messaging_hosted_number_orders/actions.py +7 -7
- telnyx/resources/messaging_hosted_number_orders/messaging_hosted_number_orders.py +21 -21
- telnyx/resources/messaging_hosted_numbers.py +3 -3
- telnyx/resources/messaging_numbers_bulk_updates.py +5 -5
- telnyx/resources/messaging_optouts.py +11 -11
- telnyx/resources/messaging_profiles/autoresp_configs.py +21 -21
- telnyx/resources/messaging_profiles/messaging_profiles.py +73 -73
- telnyx/resources/messaging_tollfree/verification/requests.py +27 -27
- telnyx/resources/messaging_url_domains.py +5 -5
- telnyx/resources/messsages.py +11 -11
- telnyx/resources/mobile_network_operators.py +7 -7
- telnyx/resources/mobile_push_credentials.py +23 -23
- telnyx/resources/network_coverage.py +9 -9
- telnyx/resources/networks/default_gateway.py +9 -9
- telnyx/resources/networks/networks.py +21 -21
- telnyx/resources/notification_channels.py +27 -27
- telnyx/resources/notification_event_conditions.py +7 -7
- telnyx/resources/notification_events.py +5 -5
- telnyx/resources/notification_profiles.py +17 -17
- telnyx/resources/notification_settings.py +21 -21
- telnyx/resources/number_block_orders.py +17 -17
- telnyx/resources/number_lookup.py +5 -5
- telnyx/resources/number_order_phone_numbers.py +13 -13
- telnyx/resources/number_orders.py +27 -27
- telnyx/resources/number_reservations/actions.py +3 -3
- telnyx/resources/number_reservations/number_reservations.py +15 -15
- telnyx/resources/numbers_features.py +3 -3
- telnyx/resources/operator_connect/actions.py +3 -3
- telnyx/resources/ota_updates.py +9 -9
- telnyx/resources/outbound_voice_profiles.py +65 -65
- telnyx/resources/partner_campaigns.py +25 -25
- telnyx/resources/payment/auto_recharge_prefs.py +15 -15
- telnyx/resources/phone_number_assignment_by_profile.py +15 -15
- telnyx/resources/phone_number_blocks/jobs.py +13 -13
- telnyx/resources/phone_number_campaigns.py +19 -19
- telnyx/resources/phone_numbers/actions.py +7 -7
- telnyx/resources/phone_numbers/csv_downloads.py +13 -13
- telnyx/resources/phone_numbers/jobs.py +35 -35
- telnyx/resources/phone_numbers/messaging.py +13 -13
- telnyx/resources/phone_numbers/phone_numbers.py +39 -39
- telnyx/resources/phone_numbers/voice.py +31 -31
- telnyx/resources/phone_numbers/voicemail.py +15 -15
- telnyx/resources/phone_numbers_regulatory_requirements.py +5 -5
- telnyx/resources/portability_checks.py +5 -5
- telnyx/resources/porting/events.py +11 -11
- telnyx/resources/porting/loa_configurations.py +17 -17
- telnyx/resources/porting/porting.py +3 -3
- telnyx/resources/porting/reports.py +11 -11
- telnyx/resources/porting_orders/action_requirements.py +11 -11
- telnyx/resources/porting_orders/actions.py +13 -13
- telnyx/resources/porting_orders/activation_jobs.py +11 -11
- telnyx/resources/porting_orders/additional_documents.py +15 -15
- telnyx/resources/porting_orders/associated_phone_numbers.py +13 -13
- telnyx/resources/porting_orders/comments.py +9 -9
- telnyx/resources/porting_orders/phone_number_blocks.py +13 -13
- telnyx/resources/porting_orders/phone_number_configurations.py +13 -13
- telnyx/resources/porting_orders/phone_number_extensions.py +13 -13
- telnyx/resources/porting_orders/porting_orders.py +59 -59
- telnyx/resources/porting_orders/verification_codes.py +19 -19
- telnyx/resources/porting_phone_numbers.py +7 -7
- telnyx/resources/portouts/comments.py +7 -7
- telnyx/resources/portouts/events.py +11 -11
- telnyx/resources/portouts/portouts.py +17 -17
- telnyx/resources/portouts/reports.py +11 -11
- telnyx/resources/portouts/supporting_documents.py +7 -7
- telnyx/resources/private_wireless_gateways.py +25 -25
- telnyx/resources/public_internet_gateways.py +19 -19
- telnyx/resources/queues/calls.py +7 -7
- telnyx/resources/queues/queues.py +3 -3
- telnyx/resources/recording_transcriptions.py +7 -7
- telnyx/resources/recordings/actions.py +3 -3
- telnyx/resources/recordings/recordings.py +11 -11
- telnyx/resources/regions.py +3 -3
- telnyx/resources/regulatory_requirements.py +5 -5
- telnyx/resources/reports/cdr_usage_reports.py +9 -9
- telnyx/resources/reports/mdr_usage_reports.py +21 -21
- telnyx/resources/reports/reports.py +47 -47
- telnyx/resources/requirement_groups.py +23 -23
- telnyx/resources/requirement_types.py +9 -11
- telnyx/resources/requirements.py +11 -11
- telnyx/resources/room_compositions.py +27 -27
- telnyx/resources/room_participants.py +9 -9
- telnyx/resources/room_recordings.py +17 -17
- telnyx/resources/rooms/actions.py +11 -11
- telnyx/resources/rooms/rooms.py +43 -43
- telnyx/resources/rooms/sessions/actions.py +21 -21
- telnyx/resources/rooms/sessions/sessions.py +27 -27
- telnyx/resources/seti.py +5 -5
- telnyx/resources/short_codes.py +11 -11
- telnyx/resources/sim_card_data_usage_notifications.py +21 -21
- telnyx/resources/sim_card_groups/actions.py +23 -23
- telnyx/resources/sim_card_groups/sim_card_groups.py +29 -29
- telnyx/resources/sim_card_order_preview.py +3 -3
- telnyx/resources/sim_card_orders.py +11 -11
- telnyx/resources/sim_cards/actions.py +27 -27
- telnyx/resources/sim_cards/sim_cards.py +47 -47
- telnyx/resources/siprec_connectors.py +13 -13
- telnyx/resources/storage/buckets/buckets.py +5 -5
- telnyx/resources/storage/buckets/ssl_certificate.py +11 -11
- telnyx/resources/storage/buckets/usage.py +5 -5
- telnyx/resources/storage/migration_sources.py +11 -11
- telnyx/resources/storage/migrations/actions.py +3 -3
- telnyx/resources/storage/migrations/migrations.py +9 -9
- telnyx/resources/storage/storage.py +3 -3
- telnyx/resources/sub_number_orders.py +17 -17
- telnyx/resources/sub_number_orders_report.py +19 -19
- telnyx/resources/telephony_credentials.py +31 -31
- telnyx/resources/texml/accounts/accounts.py +15 -15
- telnyx/resources/texml/accounts/calls/calls.py +145 -145
- telnyx/resources/texml/accounts/calls/recordings.py +5 -5
- telnyx/resources/texml/accounts/calls/recordings_json.py +19 -19
- telnyx/resources/texml/accounts/calls/siprec.py +5 -5
- telnyx/resources/texml/accounts/calls/streams.py +5 -5
- telnyx/resources/texml/accounts/conferences/conferences.py +31 -31
- telnyx/resources/texml/accounts/conferences/participants.py +123 -123
- telnyx/resources/texml/accounts/recordings/json.py +5 -5
- telnyx/resources/texml/accounts/transcriptions/json.py +5 -5
- telnyx/resources/texml/calls.py +79 -79
- telnyx/resources/texml/texml.py +3 -3
- telnyx/resources/texml_applications.py +65 -65
- telnyx/resources/text_to_speech.py +9 -9
- telnyx/resources/usage_reports.py +27 -27
- telnyx/resources/user_addresses.py +29 -31
- telnyx/resources/user_tags.py +5 -5
- telnyx/resources/verifications/actions.py +7 -7
- telnyx/resources/verifications/by_phone_number/actions.py +3 -3
- telnyx/resources/verifications/by_phone_number/by_phone_number.py +3 -3
- telnyx/resources/verifications/verifications.py +19 -19
- telnyx/resources/verified_numbers/actions.py +3 -3
- telnyx/resources/verified_numbers/verified_numbers.py +11 -11
- telnyx/resources/verify_profiles.py +43 -43
- telnyx/resources/virtual_cross_connects.py +45 -45
- telnyx/resources/virtual_cross_connects_coverage.py +9 -9
- telnyx/resources/webhook_deliveries.py +9 -9
- telnyx/resources/wireguard_interfaces.py +17 -17
- telnyx/resources/wireguard_peers.py +21 -21
- telnyx/resources/wireless/detail_records_reports.py +17 -17
- telnyx/resources/wireless/wireless.py +3 -3
- telnyx/resources/wireless_blocklist_values.py +3 -3
- telnyx/resources/wireless_blocklists.py +27 -27
- telnyx/types/global_ip_latency_retrieve_response.py +7 -7
- {telnyx-3.4.0a0.dist-info → telnyx-3.5.0a0.dist-info}/METADATA +58 -17
- {telnyx-3.4.0a0.dist-info → telnyx-3.5.0a0.dist-info}/RECORD +257 -257
- {telnyx-3.4.0a0.dist-info → telnyx-3.5.0a0.dist-info}/WHEEL +0 -0
- {telnyx-3.4.0a0.dist-info → telnyx-3.5.0a0.dist-info}/licenses/LICENSE +0 -0
telnyx/__init__.py
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import typing as _t
|
|
4
4
|
|
|
5
5
|
from . import types
|
|
6
|
-
from ._types import NOT_GIVEN, Omit, NoneType, NotGiven, Transport, ProxiesTypes
|
|
6
|
+
from ._types import NOT_GIVEN, Omit, NoneType, NotGiven, Transport, ProxiesTypes, omit, not_given
|
|
7
7
|
from ._utils import file_from_path
|
|
8
8
|
from ._client import Client, Stream, Telnyx, Timeout, Transport, AsyncClient, AsyncStream, AsyncTelnyx, RequestOptions
|
|
9
9
|
from ._models import BaseModel
|
|
@@ -38,7 +38,9 @@ __all__ = [
|
|
|
38
38
|
"ProxiesTypes",
|
|
39
39
|
"NotGiven",
|
|
40
40
|
"NOT_GIVEN",
|
|
41
|
+
"not_given",
|
|
41
42
|
"Omit",
|
|
43
|
+
"omit",
|
|
42
44
|
"TelnyxError",
|
|
43
45
|
"APIError",
|
|
44
46
|
"APIStatusError",
|
telnyx/_base_client.py
CHANGED
|
@@ -42,7 +42,6 @@ from . import _exceptions
|
|
|
42
42
|
from ._qs import Querystring
|
|
43
43
|
from ._files import to_httpx_files, async_to_httpx_files
|
|
44
44
|
from ._types import (
|
|
45
|
-
NOT_GIVEN,
|
|
46
45
|
Body,
|
|
47
46
|
Omit,
|
|
48
47
|
Query,
|
|
@@ -57,6 +56,7 @@ from ._types import (
|
|
|
57
56
|
RequestOptions,
|
|
58
57
|
HttpxRequestFiles,
|
|
59
58
|
ModelBuilderProtocol,
|
|
59
|
+
not_given,
|
|
60
60
|
)
|
|
61
61
|
from ._utils import is_dict, is_list, asyncify, is_given, lru_cache, is_mapping
|
|
62
62
|
from ._compat import PYDANTIC_V1, model_copy, model_dump
|
|
@@ -145,9 +145,9 @@ class PageInfo:
|
|
|
145
145
|
def __init__(
|
|
146
146
|
self,
|
|
147
147
|
*,
|
|
148
|
-
url: URL | NotGiven =
|
|
149
|
-
json: Body | NotGiven =
|
|
150
|
-
params: Query | NotGiven =
|
|
148
|
+
url: URL | NotGiven = not_given,
|
|
149
|
+
json: Body | NotGiven = not_given,
|
|
150
|
+
params: Query | NotGiven = not_given,
|
|
151
151
|
) -> None:
|
|
152
152
|
self.url = url
|
|
153
153
|
self.json = json
|
|
@@ -595,7 +595,7 @@ class BaseClient(Generic[_HttpxClientT, _DefaultStreamT]):
|
|
|
595
595
|
# we internally support defining a temporary header to override the
|
|
596
596
|
# default `cast_to` type for use with `.with_raw_response` and `.with_streaming_response`
|
|
597
597
|
# see _response.py for implementation details
|
|
598
|
-
override_cast_to = headers.pop(OVERRIDE_CAST_TO_HEADER,
|
|
598
|
+
override_cast_to = headers.pop(OVERRIDE_CAST_TO_HEADER, not_given)
|
|
599
599
|
if is_given(override_cast_to):
|
|
600
600
|
options.headers = headers
|
|
601
601
|
return cast(Type[ResponseT], override_cast_to)
|
|
@@ -825,7 +825,7 @@ class SyncAPIClient(BaseClient[httpx.Client, Stream[Any]]):
|
|
|
825
825
|
version: str,
|
|
826
826
|
base_url: str | URL,
|
|
827
827
|
max_retries: int = DEFAULT_MAX_RETRIES,
|
|
828
|
-
timeout: float | Timeout | None | NotGiven =
|
|
828
|
+
timeout: float | Timeout | None | NotGiven = not_given,
|
|
829
829
|
http_client: httpx.Client | None = None,
|
|
830
830
|
custom_headers: Mapping[str, str] | None = None,
|
|
831
831
|
custom_query: Mapping[str, object] | None = None,
|
|
@@ -1356,7 +1356,7 @@ class AsyncAPIClient(BaseClient[httpx.AsyncClient, AsyncStream[Any]]):
|
|
|
1356
1356
|
base_url: str | URL,
|
|
1357
1357
|
_strict_response_validation: bool,
|
|
1358
1358
|
max_retries: int = DEFAULT_MAX_RETRIES,
|
|
1359
|
-
timeout: float | Timeout | None | NotGiven =
|
|
1359
|
+
timeout: float | Timeout | None | NotGiven = not_given,
|
|
1360
1360
|
http_client: httpx.AsyncClient | None = None,
|
|
1361
1361
|
custom_headers: Mapping[str, str] | None = None,
|
|
1362
1362
|
custom_query: Mapping[str, object] | None = None,
|
|
@@ -1818,8 +1818,8 @@ def make_request_options(
|
|
|
1818
1818
|
extra_query: Query | None = None,
|
|
1819
1819
|
extra_body: Body | None = None,
|
|
1820
1820
|
idempotency_key: str | None = None,
|
|
1821
|
-
timeout: float | httpx.Timeout | None | NotGiven =
|
|
1822
|
-
post_parser: PostParser | NotGiven =
|
|
1821
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
1822
|
+
post_parser: PostParser | NotGiven = not_given,
|
|
1823
1823
|
) -> RequestOptions:
|
|
1824
1824
|
"""Create a dict of type RequestOptions without keys of NotGiven values."""
|
|
1825
1825
|
options: RequestOptions = {}
|
telnyx/_client.py
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
5
|
import os
|
|
6
|
-
from typing import Any,
|
|
6
|
+
from typing import Any, Mapping, Iterable
|
|
7
7
|
from typing_extensions import Self, Literal, override
|
|
8
8
|
|
|
9
9
|
import httpx
|
|
@@ -18,7 +18,6 @@ from .types import (
|
|
|
18
18
|
client_delete_objects_params,
|
|
19
19
|
)
|
|
20
20
|
from ._types import (
|
|
21
|
-
NOT_GIVEN,
|
|
22
21
|
Body,
|
|
23
22
|
Omit,
|
|
24
23
|
Query,
|
|
@@ -30,6 +29,8 @@ from ._types import (
|
|
|
30
29
|
Transport,
|
|
31
30
|
ProxiesTypes,
|
|
32
31
|
RequestOptions,
|
|
32
|
+
omit,
|
|
33
|
+
not_given,
|
|
33
34
|
)
|
|
34
35
|
from ._utils import (
|
|
35
36
|
is_given,
|
|
@@ -376,7 +377,7 @@ class Telnyx(SyncAPIClient):
|
|
|
376
377
|
*,
|
|
377
378
|
api_key: str | None = None,
|
|
378
379
|
base_url: str | httpx.URL | None = None,
|
|
379
|
-
timeout:
|
|
380
|
+
timeout: float | Timeout | None | NotGiven = not_given,
|
|
380
381
|
max_retries: int = DEFAULT_MAX_RETRIES,
|
|
381
382
|
default_headers: Mapping[str, str] | None = None,
|
|
382
383
|
default_query: Mapping[str, object] | None = None,
|
|
@@ -605,9 +606,9 @@ class Telnyx(SyncAPIClient):
|
|
|
605
606
|
*,
|
|
606
607
|
api_key: str | None = None,
|
|
607
608
|
base_url: str | httpx.URL | None = None,
|
|
608
|
-
timeout: float | Timeout | None | NotGiven =
|
|
609
|
+
timeout: float | Timeout | None | NotGiven = not_given,
|
|
609
610
|
http_client: httpx.Client | None = None,
|
|
610
|
-
max_retries: int | NotGiven =
|
|
611
|
+
max_retries: int | NotGiven = not_given,
|
|
611
612
|
default_headers: Mapping[str, str] | None = None,
|
|
612
613
|
set_default_headers: Mapping[str, str] | None = None,
|
|
613
614
|
default_query: Mapping[str, object] | None = None,
|
|
@@ -655,13 +656,13 @@ class Telnyx(SyncAPIClient):
|
|
|
655
656
|
self,
|
|
656
657
|
bucket_name: str,
|
|
657
658
|
*,
|
|
658
|
-
location_constraint: str |
|
|
659
|
+
location_constraint: str | Omit = omit,
|
|
659
660
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
660
661
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
661
662
|
extra_headers: Headers | None = None,
|
|
662
663
|
extra_query: Query | None = None,
|
|
663
664
|
extra_body: Body | None = None,
|
|
664
|
-
timeout: float | httpx.Timeout | None | NotGiven =
|
|
665
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
665
666
|
) -> None:
|
|
666
667
|
"""
|
|
667
668
|
Create a bucket.
|
|
@@ -698,7 +699,7 @@ class Telnyx(SyncAPIClient):
|
|
|
698
699
|
extra_headers: Headers | None = None,
|
|
699
700
|
extra_query: Query | None = None,
|
|
700
701
|
extra_body: Body | None = None,
|
|
701
|
-
timeout: float | httpx.Timeout | None | NotGiven =
|
|
702
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
702
703
|
) -> None:
|
|
703
704
|
"""Deletes a bucket.
|
|
704
705
|
|
|
@@ -734,7 +735,7 @@ class Telnyx(SyncAPIClient):
|
|
|
734
735
|
extra_headers: Headers | None = None,
|
|
735
736
|
extra_query: Query | None = None,
|
|
736
737
|
extra_body: Body | None = None,
|
|
737
|
-
timeout: float | httpx.Timeout | None | NotGiven =
|
|
738
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
738
739
|
) -> None:
|
|
739
740
|
"""
|
|
740
741
|
Delete an object from a given bucket.
|
|
@@ -772,7 +773,7 @@ class Telnyx(SyncAPIClient):
|
|
|
772
773
|
extra_headers: Headers | None = None,
|
|
773
774
|
extra_query: Query | None = None,
|
|
774
775
|
extra_body: Body | None = None,
|
|
775
|
-
timeout: float | httpx.Timeout | None | NotGiven =
|
|
776
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
776
777
|
) -> object:
|
|
777
778
|
"""
|
|
778
779
|
Deletes one or multiple objects from a given bucket.
|
|
@@ -807,13 +808,13 @@ class Telnyx(SyncAPIClient):
|
|
|
807
808
|
object_name: str,
|
|
808
809
|
*,
|
|
809
810
|
bucket_name: str,
|
|
810
|
-
upload_id: str |
|
|
811
|
+
upload_id: str | Omit = omit,
|
|
811
812
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
812
813
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
813
814
|
extra_headers: Headers | None = None,
|
|
814
815
|
extra_query: Query | None = None,
|
|
815
816
|
extra_body: Body | None = None,
|
|
816
|
-
timeout: float | httpx.Timeout | None | NotGiven =
|
|
817
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
817
818
|
) -> BinaryAPIResponse:
|
|
818
819
|
"""
|
|
819
820
|
Retrieves an object from a given bucket.
|
|
@@ -852,7 +853,7 @@ class Telnyx(SyncAPIClient):
|
|
|
852
853
|
extra_headers: Headers | None = None,
|
|
853
854
|
extra_query: Query | None = None,
|
|
854
855
|
extra_body: Body | None = None,
|
|
855
|
-
timeout: float | httpx.Timeout | None | NotGiven =
|
|
856
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
856
857
|
) -> ListBucketsResponse:
|
|
857
858
|
"""List all Buckets."""
|
|
858
859
|
extra_headers = {"Accept": "application/xml", **(extra_headers or {})}
|
|
@@ -868,13 +869,13 @@ class Telnyx(SyncAPIClient):
|
|
|
868
869
|
self,
|
|
869
870
|
bucket_name: str,
|
|
870
871
|
*,
|
|
871
|
-
list_type: Literal[2] |
|
|
872
|
+
list_type: Literal[2] | Omit = omit,
|
|
872
873
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
873
874
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
874
875
|
extra_headers: Headers | None = None,
|
|
875
876
|
extra_query: Query | None = None,
|
|
876
877
|
extra_body: Body | None = None,
|
|
877
|
-
timeout: float | httpx.Timeout | None | NotGiven =
|
|
878
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
878
879
|
) -> ListObjectsResponse:
|
|
879
880
|
"""
|
|
880
881
|
List all objects contained in a given bucket.
|
|
@@ -909,14 +910,14 @@ class Telnyx(SyncAPIClient):
|
|
|
909
910
|
*,
|
|
910
911
|
bucket_name: str,
|
|
911
912
|
body: FileTypes,
|
|
912
|
-
part_number: str |
|
|
913
|
-
upload_id: str |
|
|
913
|
+
part_number: str | Omit = omit,
|
|
914
|
+
upload_id: str | Omit = omit,
|
|
914
915
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
915
916
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
916
917
|
extra_headers: Headers | None = None,
|
|
917
918
|
extra_query: Query | None = None,
|
|
918
919
|
extra_body: Body | None = None,
|
|
919
|
-
timeout: float | httpx.Timeout | None | NotGiven =
|
|
920
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
920
921
|
) -> None:
|
|
921
922
|
"""
|
|
922
923
|
Add an object to a bucket.
|
|
@@ -1149,7 +1150,7 @@ class AsyncTelnyx(AsyncAPIClient):
|
|
|
1149
1150
|
*,
|
|
1150
1151
|
api_key: str | None = None,
|
|
1151
1152
|
base_url: str | httpx.URL | None = None,
|
|
1152
|
-
timeout:
|
|
1153
|
+
timeout: float | Timeout | None | NotGiven = not_given,
|
|
1153
1154
|
max_retries: int = DEFAULT_MAX_RETRIES,
|
|
1154
1155
|
default_headers: Mapping[str, str] | None = None,
|
|
1155
1156
|
default_query: Mapping[str, object] | None = None,
|
|
@@ -1384,9 +1385,9 @@ class AsyncTelnyx(AsyncAPIClient):
|
|
|
1384
1385
|
*,
|
|
1385
1386
|
api_key: str | None = None,
|
|
1386
1387
|
base_url: str | httpx.URL | None = None,
|
|
1387
|
-
timeout: float | Timeout | None | NotGiven =
|
|
1388
|
+
timeout: float | Timeout | None | NotGiven = not_given,
|
|
1388
1389
|
http_client: httpx.AsyncClient | None = None,
|
|
1389
|
-
max_retries: int | NotGiven =
|
|
1390
|
+
max_retries: int | NotGiven = not_given,
|
|
1390
1391
|
default_headers: Mapping[str, str] | None = None,
|
|
1391
1392
|
set_default_headers: Mapping[str, str] | None = None,
|
|
1392
1393
|
default_query: Mapping[str, object] | None = None,
|
|
@@ -1434,13 +1435,13 @@ class AsyncTelnyx(AsyncAPIClient):
|
|
|
1434
1435
|
self,
|
|
1435
1436
|
bucket_name: str,
|
|
1436
1437
|
*,
|
|
1437
|
-
location_constraint: str |
|
|
1438
|
+
location_constraint: str | Omit = omit,
|
|
1438
1439
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
1439
1440
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
1440
1441
|
extra_headers: Headers | None = None,
|
|
1441
1442
|
extra_query: Query | None = None,
|
|
1442
1443
|
extra_body: Body | None = None,
|
|
1443
|
-
timeout: float | httpx.Timeout | None | NotGiven =
|
|
1444
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
1444
1445
|
) -> None:
|
|
1445
1446
|
"""
|
|
1446
1447
|
Create a bucket.
|
|
@@ -1477,7 +1478,7 @@ class AsyncTelnyx(AsyncAPIClient):
|
|
|
1477
1478
|
extra_headers: Headers | None = None,
|
|
1478
1479
|
extra_query: Query | None = None,
|
|
1479
1480
|
extra_body: Body | None = None,
|
|
1480
|
-
timeout: float | httpx.Timeout | None | NotGiven =
|
|
1481
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
1481
1482
|
) -> None:
|
|
1482
1483
|
"""Deletes a bucket.
|
|
1483
1484
|
|
|
@@ -1513,7 +1514,7 @@ class AsyncTelnyx(AsyncAPIClient):
|
|
|
1513
1514
|
extra_headers: Headers | None = None,
|
|
1514
1515
|
extra_query: Query | None = None,
|
|
1515
1516
|
extra_body: Body | None = None,
|
|
1516
|
-
timeout: float | httpx.Timeout | None | NotGiven =
|
|
1517
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
1517
1518
|
) -> None:
|
|
1518
1519
|
"""
|
|
1519
1520
|
Delete an object from a given bucket.
|
|
@@ -1551,7 +1552,7 @@ class AsyncTelnyx(AsyncAPIClient):
|
|
|
1551
1552
|
extra_headers: Headers | None = None,
|
|
1552
1553
|
extra_query: Query | None = None,
|
|
1553
1554
|
extra_body: Body | None = None,
|
|
1554
|
-
timeout: float | httpx.Timeout | None | NotGiven =
|
|
1555
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
1555
1556
|
) -> object:
|
|
1556
1557
|
"""
|
|
1557
1558
|
Deletes one or multiple objects from a given bucket.
|
|
@@ -1588,13 +1589,13 @@ class AsyncTelnyx(AsyncAPIClient):
|
|
|
1588
1589
|
object_name: str,
|
|
1589
1590
|
*,
|
|
1590
1591
|
bucket_name: str,
|
|
1591
|
-
upload_id: str |
|
|
1592
|
+
upload_id: str | Omit = omit,
|
|
1592
1593
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
1593
1594
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
1594
1595
|
extra_headers: Headers | None = None,
|
|
1595
1596
|
extra_query: Query | None = None,
|
|
1596
1597
|
extra_body: Body | None = None,
|
|
1597
|
-
timeout: float | httpx.Timeout | None | NotGiven =
|
|
1598
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
1598
1599
|
) -> AsyncBinaryAPIResponse:
|
|
1599
1600
|
"""
|
|
1600
1601
|
Retrieves an object from a given bucket.
|
|
@@ -1635,7 +1636,7 @@ class AsyncTelnyx(AsyncAPIClient):
|
|
|
1635
1636
|
extra_headers: Headers | None = None,
|
|
1636
1637
|
extra_query: Query | None = None,
|
|
1637
1638
|
extra_body: Body | None = None,
|
|
1638
|
-
timeout: float | httpx.Timeout | None | NotGiven =
|
|
1639
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
1639
1640
|
) -> ListBucketsResponse:
|
|
1640
1641
|
"""List all Buckets."""
|
|
1641
1642
|
extra_headers = {"Accept": "application/xml", **(extra_headers or {})}
|
|
@@ -1651,13 +1652,13 @@ class AsyncTelnyx(AsyncAPIClient):
|
|
|
1651
1652
|
self,
|
|
1652
1653
|
bucket_name: str,
|
|
1653
1654
|
*,
|
|
1654
|
-
list_type: Literal[2] |
|
|
1655
|
+
list_type: Literal[2] | Omit = omit,
|
|
1655
1656
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
1656
1657
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
1657
1658
|
extra_headers: Headers | None = None,
|
|
1658
1659
|
extra_query: Query | None = None,
|
|
1659
1660
|
extra_body: Body | None = None,
|
|
1660
|
-
timeout: float | httpx.Timeout | None | NotGiven =
|
|
1661
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
1661
1662
|
) -> ListObjectsResponse:
|
|
1662
1663
|
"""
|
|
1663
1664
|
List all objects contained in a given bucket.
|
|
@@ -1694,14 +1695,14 @@ class AsyncTelnyx(AsyncAPIClient):
|
|
|
1694
1695
|
*,
|
|
1695
1696
|
bucket_name: str,
|
|
1696
1697
|
body: FileTypes,
|
|
1697
|
-
part_number: str |
|
|
1698
|
-
upload_id: str |
|
|
1698
|
+
part_number: str | Omit = omit,
|
|
1699
|
+
upload_id: str | Omit = omit,
|
|
1699
1700
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
1700
1701
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
1701
1702
|
extra_headers: Headers | None = None,
|
|
1702
1703
|
extra_query: Query | None = None,
|
|
1703
1704
|
extra_body: Body | None = None,
|
|
1704
|
-
timeout: float | httpx.Timeout | None | NotGiven =
|
|
1705
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
1705
1706
|
) -> None:
|
|
1706
1707
|
"""
|
|
1707
1708
|
Add an object to a bucket.
|
telnyx/_models.py
CHANGED
|
@@ -256,7 +256,7 @@ class BaseModel(pydantic.BaseModel):
|
|
|
256
256
|
mode: Literal["json", "python"] | str = "python",
|
|
257
257
|
include: IncEx | None = None,
|
|
258
258
|
exclude: IncEx | None = None,
|
|
259
|
-
by_alias: bool =
|
|
259
|
+
by_alias: bool | None = None,
|
|
260
260
|
exclude_unset: bool = False,
|
|
261
261
|
exclude_defaults: bool = False,
|
|
262
262
|
exclude_none: bool = False,
|
|
@@ -264,6 +264,7 @@ class BaseModel(pydantic.BaseModel):
|
|
|
264
264
|
warnings: bool | Literal["none", "warn", "error"] = True,
|
|
265
265
|
context: dict[str, Any] | None = None,
|
|
266
266
|
serialize_as_any: bool = False,
|
|
267
|
+
fallback: Callable[[Any], Any] | None = None,
|
|
267
268
|
) -> dict[str, Any]:
|
|
268
269
|
"""Usage docs: https://docs.pydantic.dev/2.4/concepts/serialization/#modelmodel_dump
|
|
269
270
|
|
|
@@ -295,10 +296,12 @@ class BaseModel(pydantic.BaseModel):
|
|
|
295
296
|
raise ValueError("context is only supported in Pydantic v2")
|
|
296
297
|
if serialize_as_any != False:
|
|
297
298
|
raise ValueError("serialize_as_any is only supported in Pydantic v2")
|
|
299
|
+
if fallback is not None:
|
|
300
|
+
raise ValueError("fallback is only supported in Pydantic v2")
|
|
298
301
|
dumped = super().dict( # pyright: ignore[reportDeprecated]
|
|
299
302
|
include=include,
|
|
300
303
|
exclude=exclude,
|
|
301
|
-
by_alias=by_alias,
|
|
304
|
+
by_alias=by_alias if by_alias is not None else False,
|
|
302
305
|
exclude_unset=exclude_unset,
|
|
303
306
|
exclude_defaults=exclude_defaults,
|
|
304
307
|
exclude_none=exclude_none,
|
|
@@ -313,13 +316,14 @@ class BaseModel(pydantic.BaseModel):
|
|
|
313
316
|
indent: int | None = None,
|
|
314
317
|
include: IncEx | None = None,
|
|
315
318
|
exclude: IncEx | None = None,
|
|
316
|
-
by_alias: bool =
|
|
319
|
+
by_alias: bool | None = None,
|
|
317
320
|
exclude_unset: bool = False,
|
|
318
321
|
exclude_defaults: bool = False,
|
|
319
322
|
exclude_none: bool = False,
|
|
320
323
|
round_trip: bool = False,
|
|
321
324
|
warnings: bool | Literal["none", "warn", "error"] = True,
|
|
322
325
|
context: dict[str, Any] | None = None,
|
|
326
|
+
fallback: Callable[[Any], Any] | None = None,
|
|
323
327
|
serialize_as_any: bool = False,
|
|
324
328
|
) -> str:
|
|
325
329
|
"""Usage docs: https://docs.pydantic.dev/2.4/concepts/serialization/#modelmodel_dump_json
|
|
@@ -348,11 +352,13 @@ class BaseModel(pydantic.BaseModel):
|
|
|
348
352
|
raise ValueError("context is only supported in Pydantic v2")
|
|
349
353
|
if serialize_as_any != False:
|
|
350
354
|
raise ValueError("serialize_as_any is only supported in Pydantic v2")
|
|
355
|
+
if fallback is not None:
|
|
356
|
+
raise ValueError("fallback is only supported in Pydantic v2")
|
|
351
357
|
return super().json( # type: ignore[reportDeprecated]
|
|
352
358
|
indent=indent,
|
|
353
359
|
include=include,
|
|
354
360
|
exclude=exclude,
|
|
355
|
-
by_alias=by_alias,
|
|
361
|
+
by_alias=by_alias if by_alias is not None else False,
|
|
356
362
|
exclude_unset=exclude_unset,
|
|
357
363
|
exclude_defaults=exclude_defaults,
|
|
358
364
|
exclude_none=exclude_none,
|
telnyx/_qs.py
CHANGED
|
@@ -4,7 +4,7 @@ from typing import Any, List, Tuple, Union, Mapping, TypeVar
|
|
|
4
4
|
from urllib.parse import parse_qs, urlencode
|
|
5
5
|
from typing_extensions import Literal, get_args
|
|
6
6
|
|
|
7
|
-
from ._types import
|
|
7
|
+
from ._types import NotGiven, not_given
|
|
8
8
|
from ._utils import flatten
|
|
9
9
|
|
|
10
10
|
_T = TypeVar("_T")
|
|
@@ -41,8 +41,8 @@ class Querystring:
|
|
|
41
41
|
self,
|
|
42
42
|
params: Params,
|
|
43
43
|
*,
|
|
44
|
-
array_format:
|
|
45
|
-
nested_format:
|
|
44
|
+
array_format: ArrayFormat | NotGiven = not_given,
|
|
45
|
+
nested_format: NestedFormat | NotGiven = not_given,
|
|
46
46
|
) -> str:
|
|
47
47
|
return urlencode(
|
|
48
48
|
self.stringify_items(
|
|
@@ -56,8 +56,8 @@ class Querystring:
|
|
|
56
56
|
self,
|
|
57
57
|
params: Params,
|
|
58
58
|
*,
|
|
59
|
-
array_format:
|
|
60
|
-
nested_format:
|
|
59
|
+
array_format: ArrayFormat | NotGiven = not_given,
|
|
60
|
+
nested_format: NestedFormat | NotGiven = not_given,
|
|
61
61
|
) -> list[tuple[str, str]]:
|
|
62
62
|
opts = Options(
|
|
63
63
|
qs=self,
|
|
@@ -143,8 +143,8 @@ class Options:
|
|
|
143
143
|
self,
|
|
144
144
|
qs: Querystring = _qs,
|
|
145
145
|
*,
|
|
146
|
-
array_format:
|
|
147
|
-
nested_format:
|
|
146
|
+
array_format: ArrayFormat | NotGiven = not_given,
|
|
147
|
+
nested_format: NestedFormat | NotGiven = not_given,
|
|
148
148
|
) -> None:
|
|
149
149
|
self.array_format = qs.array_format if isinstance(array_format, NotGiven) else array_format
|
|
150
150
|
self.nested_format = qs.nested_format if isinstance(nested_format, NotGiven) else nested_format
|
telnyx/_types.py
CHANGED
|
@@ -117,18 +117,21 @@ class RequestOptions(TypedDict, total=False):
|
|
|
117
117
|
# Sentinel class used until PEP 0661 is accepted
|
|
118
118
|
class NotGiven:
|
|
119
119
|
"""
|
|
120
|
-
|
|
121
|
-
|
|
120
|
+
For parameters with a meaningful None value, we need to distinguish between
|
|
121
|
+
the user explicitly passing None, and the user not passing the parameter at
|
|
122
|
+
all.
|
|
123
|
+
|
|
124
|
+
User code shouldn't need to use not_given directly.
|
|
122
125
|
|
|
123
126
|
For example:
|
|
124
127
|
|
|
125
128
|
```py
|
|
126
|
-
def
|
|
129
|
+
def create(timeout: Timeout | None | NotGiven = not_given): ...
|
|
127
130
|
|
|
128
131
|
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
+
create(timeout=1) # 1s timeout
|
|
133
|
+
create(timeout=None) # No timeout
|
|
134
|
+
create() # Default timeout behavior
|
|
132
135
|
```
|
|
133
136
|
"""
|
|
134
137
|
|
|
@@ -140,13 +143,14 @@ class NotGiven:
|
|
|
140
143
|
return "NOT_GIVEN"
|
|
141
144
|
|
|
142
145
|
|
|
143
|
-
|
|
146
|
+
not_given = NotGiven()
|
|
147
|
+
# for backwards compatibility:
|
|
144
148
|
NOT_GIVEN = NotGiven()
|
|
145
149
|
|
|
146
150
|
|
|
147
151
|
class Omit:
|
|
148
|
-
"""
|
|
149
|
-
|
|
152
|
+
"""
|
|
153
|
+
To explicitly omit something from being sent in a request, use `omit`.
|
|
150
154
|
|
|
151
155
|
```py
|
|
152
156
|
# as the default `Content-Type` header is `application/json` that will be sent
|
|
@@ -156,8 +160,8 @@ class Omit:
|
|
|
156
160
|
# to look something like: 'multipart/form-data; boundary=0d8382fcf5f8c3be01ca2e11002d2983'
|
|
157
161
|
client.post(..., headers={"Content-Type": "multipart/form-data"})
|
|
158
162
|
|
|
159
|
-
# instead you can remove the default `application/json` header by passing
|
|
160
|
-
client.post(..., headers={"Content-Type":
|
|
163
|
+
# instead you can remove the default `application/json` header by passing omit
|
|
164
|
+
client.post(..., headers={"Content-Type": omit})
|
|
161
165
|
```
|
|
162
166
|
"""
|
|
163
167
|
|
|
@@ -165,6 +169,9 @@ class Omit:
|
|
|
165
169
|
return False
|
|
166
170
|
|
|
167
171
|
|
|
172
|
+
omit = Omit()
|
|
173
|
+
|
|
174
|
+
|
|
168
175
|
@runtime_checkable
|
|
169
176
|
class ModelBuilderProtocol(Protocol):
|
|
170
177
|
@classmethod
|
telnyx/_utils/_transform.py
CHANGED
|
@@ -268,7 +268,7 @@ def _transform_typeddict(
|
|
|
268
268
|
annotations = get_type_hints(expected_type, include_extras=True)
|
|
269
269
|
for key, value in data.items():
|
|
270
270
|
if not is_given(value):
|
|
271
|
-
# we don't need to include
|
|
271
|
+
# we don't need to include omitted values here as they'll
|
|
272
272
|
# be stripped out before the request is sent anyway
|
|
273
273
|
continue
|
|
274
274
|
|
|
@@ -434,7 +434,7 @@ async def _async_transform_typeddict(
|
|
|
434
434
|
annotations = get_type_hints(expected_type, include_extras=True)
|
|
435
435
|
for key, value in data.items():
|
|
436
436
|
if not is_given(value):
|
|
437
|
-
# we don't need to include
|
|
437
|
+
# we don't need to include omitted values here as they'll
|
|
438
438
|
# be stripped out before the request is sent anyway
|
|
439
439
|
continue
|
|
440
440
|
|
telnyx/_utils/_utils.py
CHANGED
|
@@ -21,7 +21,7 @@ from typing_extensions import TypeGuard
|
|
|
21
21
|
|
|
22
22
|
import sniffio
|
|
23
23
|
|
|
24
|
-
from .._types import NotGiven, FileTypes,
|
|
24
|
+
from .._types import Omit, NotGiven, FileTypes, HeadersLike
|
|
25
25
|
|
|
26
26
|
_T = TypeVar("_T")
|
|
27
27
|
_TupleT = TypeVar("_TupleT", bound=Tuple[object, ...])
|
|
@@ -63,7 +63,7 @@ def _extract_items(
|
|
|
63
63
|
try:
|
|
64
64
|
key = path[index]
|
|
65
65
|
except IndexError:
|
|
66
|
-
if
|
|
66
|
+
if not is_given(obj):
|
|
67
67
|
# no value was provided - we can safely ignore
|
|
68
68
|
return []
|
|
69
69
|
|
|
@@ -126,8 +126,8 @@ def _extract_items(
|
|
|
126
126
|
return []
|
|
127
127
|
|
|
128
128
|
|
|
129
|
-
def is_given(obj:
|
|
130
|
-
return not isinstance(obj, NotGiven)
|
|
129
|
+
def is_given(obj: _T | NotGiven | Omit) -> TypeGuard[_T]:
|
|
130
|
+
return not isinstance(obj, NotGiven) and not isinstance(obj, Omit)
|
|
131
131
|
|
|
132
132
|
|
|
133
133
|
# Type safe methods for narrowing types with TypeVars.
|
telnyx/_version.py
CHANGED