fal 0.12.1__py3-none-any.whl → 0.12.3__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 fal might be problematic. Click here for more details.

Files changed (116) hide show
  1. fal/__init__.py +12 -3
  2. fal/_serialization.py +18 -0
  3. fal/api.py +140 -59
  4. fal/app.py +309 -86
  5. fal/apps.py +92 -8
  6. fal/auth/__init__.py +20 -1
  7. fal/auth/auth0.py +32 -22
  8. fal/cli.py +34 -52
  9. fal/env.py +0 -4
  10. fal/exceptions/handlers.py +3 -2
  11. fal/flags.py +5 -0
  12. fal/logging/__init__.py +0 -2
  13. fal/logging/trace.py +8 -1
  14. fal/logging/user.py +2 -1
  15. fal/rest_client.py +2 -2
  16. fal/sdk.py +46 -31
  17. fal/sync.py +3 -3
  18. fal/toolkit/__init__.py +18 -1
  19. fal/toolkit/file/file.py +98 -11
  20. fal/toolkit/file/providers/fal.py +43 -2
  21. fal/toolkit/file/types.py +1 -1
  22. fal/toolkit/image/image.py +26 -4
  23. fal/toolkit/optimize.py +50 -0
  24. fal/toolkit/utils/download_utils.py +59 -13
  25. {fal-0.12.1.dist-info → fal-0.12.3.dist-info}/METADATA +7 -7
  26. fal-0.12.3.dist-info/RECORD +66 -0
  27. openapi_fal_rest/models/__init__.py +2 -70
  28. openapi_fal_rest/models/customer_details.py +26 -0
  29. openapi_fal_rest/models/lock_reason.py +16 -0
  30. fal/logging/datadog.py +0 -77
  31. fal-0.12.1.dist-info/RECORD +0 -147
  32. openapi_fal_rest/api/admin/get_invoice_users.py +0 -142
  33. openapi_fal_rest/api/admin/get_usage_per_user.py +0 -199
  34. openapi_fal_rest/api/admin/handle_user_lock.py +0 -191
  35. openapi_fal_rest/api/admin/set_billing_type.py +0 -186
  36. openapi_fal_rest/api/applications/get_status_applications_app_user_id_app_alias_or_id_status_get.py +0 -179
  37. openapi_fal_rest/api/billing/delete_payment_method.py +0 -162
  38. openapi_fal_rest/api/billing/get_checkout_page.py +0 -198
  39. openapi_fal_rest/api/billing/get_setup_intent_key.py +0 -141
  40. openapi_fal_rest/api/billing/get_user_invoices.py +0 -152
  41. openapi_fal_rest/api/billing/get_user_payment_methods.py +0 -152
  42. openapi_fal_rest/api/billing/get_user_price.py +0 -186
  43. openapi_fal_rest/api/billing/get_user_spending.py +0 -192
  44. openapi_fal_rest/api/billing/handle_stripe_webhook.py +0 -173
  45. openapi_fal_rest/api/billing/upcoming_invoice.py +0 -143
  46. openapi_fal_rest/api/billing/update_customer_budget.py +0 -183
  47. openapi_fal_rest/api/files/delete.py +0 -162
  48. openapi_fal_rest/api/files/download.py +0 -162
  49. openapi_fal_rest/api/files/file_exists.py +0 -183
  50. openapi_fal_rest/api/files/list_directory.py +0 -173
  51. openapi_fal_rest/api/files/list_root.py +0 -152
  52. openapi_fal_rest/api/files/upload_from_url.py +0 -179
  53. openapi_fal_rest/api/health/__init__.py +0 -0
  54. openapi_fal_rest/api/health/check.py +0 -136
  55. openapi_fal_rest/api/keys/__init__.py +0 -0
  56. openapi_fal_rest/api/keys/create_key.py +0 -188
  57. openapi_fal_rest/api/keys/delete_key.py +0 -162
  58. openapi_fal_rest/api/keys/list_keys.py +0 -152
  59. openapi_fal_rest/api/logs/__init__.py +0 -0
  60. openapi_fal_rest/api/logs/list_since.py +0 -224
  61. openapi_fal_rest/api/requests/__init__.py +0 -0
  62. openapi_fal_rest/api/requests/requests.py +0 -247
  63. openapi_fal_rest/api/storage/__init__.py +0 -0
  64. openapi_fal_rest/api/storage/get_file_link.py +0 -200
  65. openapi_fal_rest/api/storage/initiate_upload.py +0 -172
  66. openapi_fal_rest/api/storage/upload_file.py +0 -172
  67. openapi_fal_rest/api/tokens/__init__.py +0 -0
  68. openapi_fal_rest/api/tokens/create_token.py +0 -166
  69. openapi_fal_rest/api/usage/__init__.py +0 -0
  70. openapi_fal_rest/api/usage/get_custom_usage_per_machine.py +0 -203
  71. openapi_fal_rest/api/usage/get_gateway_request_stats.py +0 -247
  72. openapi_fal_rest/api/usage/get_gateway_request_stats_by_time.py +0 -236
  73. openapi_fal_rest/api/usage/get_gateway_stats_for_yesterday.py +0 -152
  74. openapi_fal_rest/api/usage/get_shared_usage_per_app.py +0 -203
  75. openapi_fal_rest/api/usage/get_usage_records.py +0 -253
  76. openapi_fal_rest/api/usage/per_machine_usage.py +0 -218
  77. openapi_fal_rest/api/usage/per_machine_usage_details.py +0 -173
  78. openapi_fal_rest/api/users/__init__.py +0 -0
  79. openapi_fal_rest/api/users/handle_user_registration.py +0 -228
  80. openapi_fal_rest/models/billing_type.py +0 -9
  81. openapi_fal_rest/models/body_create_token.py +0 -68
  82. openapi_fal_rest/models/body_upload_file.py +0 -75
  83. openapi_fal_rest/models/file_spec.py +0 -110
  84. openapi_fal_rest/models/gateway_stats_by_time.py +0 -115
  85. openapi_fal_rest/models/gateway_usage_stats.py +0 -147
  86. openapi_fal_rest/models/get_gateway_request_stats_by_time_response_get_gateway_request_stats_by_time.py +0 -70
  87. openapi_fal_rest/models/grouped_usage_detail.py +0 -85
  88. openapi_fal_rest/models/handle_stripe_webhook_response_handle_stripe_webhook.py +0 -43
  89. openapi_fal_rest/models/initiate_upload_info.py +0 -64
  90. openapi_fal_rest/models/invoice.py +0 -129
  91. openapi_fal_rest/models/invoice_item.py +0 -85
  92. openapi_fal_rest/models/key_scope.py +0 -9
  93. openapi_fal_rest/models/log_entry.py +0 -104
  94. openapi_fal_rest/models/log_entry_labels.py +0 -43
  95. openapi_fal_rest/models/new_user_key.py +0 -64
  96. openapi_fal_rest/models/payment_method.py +0 -96
  97. openapi_fal_rest/models/per_app_usage_detail.py +0 -88
  98. openapi_fal_rest/models/persisted_usage_record.py +0 -118
  99. openapi_fal_rest/models/persisted_usage_record_meta.py +0 -43
  100. openapi_fal_rest/models/presigned_upload_url.py +0 -64
  101. openapi_fal_rest/models/request_io.py +0 -112
  102. openapi_fal_rest/models/request_io_json_input.py +0 -43
  103. openapi_fal_rest/models/request_io_json_output.py +0 -43
  104. openapi_fal_rest/models/run_type.py +0 -9
  105. openapi_fal_rest/models/stats_timeframe.py +0 -12
  106. openapi_fal_rest/models/status.py +0 -82
  107. openapi_fal_rest/models/status_health.py +0 -10
  108. openapi_fal_rest/models/uploaded_file_result.py +0 -64
  109. openapi_fal_rest/models/url_file_upload.py +0 -57
  110. openapi_fal_rest/models/usage_per_machine_type.py +0 -115
  111. openapi_fal_rest/models/usage_per_user.py +0 -71
  112. openapi_fal_rest/models/usage_run_detail.py +0 -73
  113. openapi_fal_rest/models/user_key_info.py +0 -84
  114. /openapi_fal_rest/api/admin/__init__.py → /fal/py.typed +0 -0
  115. {fal-0.12.1.dist-info → fal-0.12.3.dist-info}/WHEEL +0 -0
  116. {fal-0.12.1.dist-info → fal-0.12.3.dist-info}/entry_points.txt +0 -0
@@ -1,87 +1,19 @@
1
1
  """ Contains all the data models used in inputs/outputs """
2
2
 
3
3
  from .app_metadata_response_app_metadata import AppMetadataResponseAppMetadata
4
- from .billing_type import BillingType
5
- from .body_create_token import BodyCreateToken
6
- from .body_upload_file import BodyUploadFile
7
4
  from .body_upload_local_file import BodyUploadLocalFile
8
5
  from .customer_details import CustomerDetails
9
- from .file_spec import FileSpec
10
- from .gateway_stats_by_time import GatewayStatsByTime
11
- from .gateway_usage_stats import GatewayUsageStats
12
- from .get_gateway_request_stats_by_time_response_get_gateway_request_stats_by_time import (
13
- GetGatewayRequestStatsByTimeResponseGetGatewayRequestStatsByTime,
14
- )
15
- from .grouped_usage_detail import GroupedUsageDetail
16
- from .handle_stripe_webhook_response_handle_stripe_webhook import HandleStripeWebhookResponseHandleStripeWebhook
17
6
  from .hash_check import HashCheck
18
7
  from .http_validation_error import HTTPValidationError
19
- from .initiate_upload_info import InitiateUploadInfo
20
- from .invoice import Invoice
21
- from .invoice_item import InvoiceItem
22
- from .key_scope import KeyScope
23
- from .log_entry import LogEntry
24
- from .log_entry_labels import LogEntryLabels
25
- from .new_user_key import NewUserKey
26
- from .payment_method import PaymentMethod
27
- from .per_app_usage_detail import PerAppUsageDetail
28
- from .persisted_usage_record import PersistedUsageRecord
29
- from .persisted_usage_record_meta import PersistedUsageRecordMeta
30
- from .presigned_upload_url import PresignedUploadUrl
31
- from .request_io import RequestIO
32
- from .request_io_json_input import RequestIOJsonInput
33
- from .request_io_json_output import RequestIOJsonOutput
34
- from .run_type import RunType
35
- from .stats_timeframe import StatsTimeframe
36
- from .status import Status
37
- from .status_health import StatusHealth
38
- from .uploaded_file_result import UploadedFileResult
39
- from .url_file_upload import UrlFileUpload
40
- from .usage_per_machine_type import UsagePerMachineType
41
- from .usage_per_user import UsagePerUser
42
- from .usage_run_detail import UsageRunDetail
43
- from .user_key_info import UserKeyInfo
8
+ from .lock_reason import LockReason
44
9
  from .validation_error import ValidationError
45
10
 
46
11
  __all__ = (
47
12
  "AppMetadataResponseAppMetadata",
48
- "BillingType",
49
- "BodyCreateToken",
50
- "BodyUploadFile",
51
13
  "BodyUploadLocalFile",
52
14
  "CustomerDetails",
53
- "FileSpec",
54
- "GatewayStatsByTime",
55
- "GatewayUsageStats",
56
- "GetGatewayRequestStatsByTimeResponseGetGatewayRequestStatsByTime",
57
- "GroupedUsageDetail",
58
- "HandleStripeWebhookResponseHandleStripeWebhook",
59
15
  "HashCheck",
60
16
  "HTTPValidationError",
61
- "InitiateUploadInfo",
62
- "Invoice",
63
- "InvoiceItem",
64
- "KeyScope",
65
- "LogEntry",
66
- "LogEntryLabels",
67
- "NewUserKey",
68
- "PaymentMethod",
69
- "PerAppUsageDetail",
70
- "PersistedUsageRecord",
71
- "PersistedUsageRecordMeta",
72
- "PresignedUploadUrl",
73
- "RequestIO",
74
- "RequestIOJsonInput",
75
- "RequestIOJsonOutput",
76
- "RunType",
77
- "StatsTimeframe",
78
- "Status",
79
- "StatusHealth",
80
- "UploadedFileResult",
81
- "UrlFileUpload",
82
- "UsagePerMachineType",
83
- "UsagePerUser",
84
- "UsageRunDetail",
85
- "UserKeyInfo",
17
+ "LockReason",
86
18
  "ValidationError",
87
19
  )
@@ -2,6 +2,7 @@ from typing import Any, Dict, List, Type, TypeVar, Union
2
2
 
3
3
  import attr
4
4
 
5
+ from ..models.lock_reason import LockReason
5
6
  from ..types import UNSET, Unset
6
7
 
7
8
  T = TypeVar("T", bound="CustomerDetails")
@@ -16,6 +17,8 @@ class CustomerDetails:
16
17
  hard_monthly_budget (Union[Unset, int]):
17
18
  current_balance (Union[Unset, int]):
18
19
  is_paying (Union[Unset, bool]):
20
+ is_locked (Union[Unset, bool]):
21
+ lock_reason (Union[Unset, None, LockReason]): An enumeration.
19
22
  """
20
23
 
21
24
  user_id: str
@@ -23,6 +26,8 @@ class CustomerDetails:
23
26
  hard_monthly_budget: Union[Unset, int] = UNSET
24
27
  current_balance: Union[Unset, int] = 0
25
28
  is_paying: Union[Unset, bool] = False
29
+ is_locked: Union[Unset, bool] = False
30
+ lock_reason: Union[Unset, None, LockReason] = UNSET
26
31
  additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict)
27
32
 
28
33
  def to_dict(self) -> Dict[str, Any]:
@@ -31,6 +36,10 @@ class CustomerDetails:
31
36
  hard_monthly_budget = self.hard_monthly_budget
32
37
  current_balance = self.current_balance
33
38
  is_paying = self.is_paying
39
+ is_locked = self.is_locked
40
+ lock_reason: Union[Unset, None, str] = UNSET
41
+ if not isinstance(self.lock_reason, Unset):
42
+ lock_reason = self.lock_reason.value if self.lock_reason else None
34
43
 
35
44
  field_dict: Dict[str, Any] = {}
36
45
  field_dict.update(self.additional_properties)
@@ -47,6 +56,10 @@ class CustomerDetails:
47
56
  field_dict["current_balance"] = current_balance
48
57
  if is_paying is not UNSET:
49
58
  field_dict["is_paying"] = is_paying
59
+ if is_locked is not UNSET:
60
+ field_dict["is_locked"] = is_locked
61
+ if lock_reason is not UNSET:
62
+ field_dict["lock_reason"] = lock_reason
50
63
 
51
64
  return field_dict
52
65
 
@@ -63,12 +76,25 @@ class CustomerDetails:
63
76
 
64
77
  is_paying = d.pop("is_paying", UNSET)
65
78
 
79
+ is_locked = d.pop("is_locked", UNSET)
80
+
81
+ _lock_reason = d.pop("lock_reason", UNSET)
82
+ lock_reason: Union[Unset, None, LockReason]
83
+ if _lock_reason is None:
84
+ lock_reason = None
85
+ elif isinstance(_lock_reason, Unset):
86
+ lock_reason = UNSET
87
+ else:
88
+ lock_reason = LockReason(_lock_reason)
89
+
66
90
  customer_details = cls(
67
91
  user_id=user_id,
68
92
  soft_monthly_budget=soft_monthly_budget,
69
93
  hard_monthly_budget=hard_monthly_budget,
70
94
  current_balance=current_balance,
71
95
  is_paying=is_paying,
96
+ is_locked=is_locked,
97
+ lock_reason=lock_reason,
72
98
  )
73
99
 
74
100
  customer_details.additional_properties = d
@@ -0,0 +1,16 @@
1
+ from enum import Enum
2
+
3
+
4
+ class LockReason(str, Enum):
5
+ ADMIN_LOCK_PLEASE_CONTACT_HELLOFAL_AI = "Admin lock. Please contact hello@fal.ai."
6
+ EXHAUSTED_BALANCE_TOP_UP_YOUR_BALANCE_AT_FAL_AIDASHBOARDBILLING = (
7
+ "Exhausted balance. Top up your balance at fal.ai/dashboard/billing"
8
+ )
9
+ PLEASE_ADD_A_PAYMENT_METHOD_AT_FAL_AIDASHBOARDBILLING = "Please add a payment method at fal.ai/dashboard/billing"
10
+ UNKNOWN_PLEASE_CONTACT_HELLOFAL_AI = "Unknown. Please contact hello@fal.ai."
11
+ USER_BUDGET_IS_EXCEEDED_ADJUST_IT_AT_FAL_AIDASHBOARDBILLING = (
12
+ "User budget is exceeded. Adjust it at fal.ai/dashboard/billing"
13
+ )
14
+
15
+ def __str__(self) -> str:
16
+ return str(self.value)
fal/logging/datadog.py DELETED
@@ -1,77 +0,0 @@
1
- from __future__ import annotations
2
-
3
- import sys
4
- import traceback
5
- import warnings
6
-
7
- from datadog_api_client import Configuration, ThreadedApiClient
8
- from datadog_api_client.v2.api.logs_api import LogsApi
9
- from datadog_api_client.v2.model.http_log import HTTPLog
10
- from datadog_api_client.v2.model.http_log_item import HTTPLogItem
11
- from fal.env import CLI_ENV, DATADOG_API_KEY, DATADOG_APP_KEY
12
- from fal.logging.trace import get_current_span_context
13
- from structlog.typing import EventDict, WrappedLogger
14
-
15
- if sys.version_info >= (3, 10):
16
- import importlib.metadata as importlib_metadata
17
- else:
18
- import importlib_metadata
19
-
20
-
21
- configuration = Configuration()
22
- configuration.api_key["apiKeyAuth"] = DATADOG_API_KEY
23
- configuration.api_key["appKeyAuth"] = DATADOG_APP_KEY
24
-
25
-
26
- def _is_error_level(level: str) -> bool:
27
- return level in ["error", "exception", "critical"]
28
-
29
-
30
- def submit_to_datadog(
31
- logger: WrappedLogger, method_name: str, event_dict: EventDict
32
- ) -> EventDict:
33
- if configuration.api_key["apiKeyAuth"] is None:
34
- return event_dict
35
-
36
- log_data = dict(event_dict)
37
- event = log_data.pop("event")
38
- level = log_data.pop("level")
39
-
40
- current_span = get_current_span_context()
41
- attributes = log_data.copy()
42
- tags: dict[str, str] = {}
43
- if current_span is not None:
44
- tags["invocation_id"] = current_span.invocation_id
45
- attributes["dd.trace_id"] = current_span.trace_id
46
- attributes["dd.span_id"] = current_span.span_id
47
-
48
- stack = None
49
- if _is_error_level(method_name):
50
- attributes["error.message"] = str(event)
51
- attributes["error.kind"] = type(event).__name__
52
- stack = traceback.format_exc()
53
-
54
- ddtags = ",".join([f"{key}:{value}" for (key, value) in tags.items()])
55
- log_item = HTTPLogItem(
56
- message=str(event),
57
- level=level,
58
- hostname="client",
59
- service="fal-serverless-cli",
60
- env=CLI_ENV,
61
- version=importlib_metadata.version("fal"),
62
- ddsource="python",
63
- ddtags=ddtags,
64
- traceback=stack,
65
- **attributes,
66
- )
67
- with ThreadedApiClient(configuration) as api_client:
68
- # Deprecation warning of underlying dependencies should not be shown to users
69
- # TODO enable it only in the prod distribution (better: remove when fixed)
70
- warnings.filterwarnings("ignore", category=DeprecationWarning)
71
-
72
- # TODO improve this - add batching
73
- api_instance = LogsApi(api_client)
74
- _ = api_instance.submit_log(HTTPLog([log_item]))
75
- api_client.close()
76
-
77
- return event_dict
@@ -1,147 +0,0 @@
1
- openapi_fal_rest/__init__.py,sha256=sqsyB55QptrijXTCVFQfIJ6uC__vXez1i5KNvYplk5w,151
2
- openapi_fal_rest/api/__init__.py,sha256=87ApBzKyGb5zsgTMOkQXDqsLZCmaSFoJMwbGzCDQZMw,47
3
- openapi_fal_rest/api/admin/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
- openapi_fal_rest/api/admin/get_invoice_users.py,sha256=TaJ6Q-gPv5UnAaBjPmsu_OoaPHJYWhh9ZgkV723o0TI,3897
5
- openapi_fal_rest/api/admin/get_usage_per_user.py,sha256=OcNSsJvq7HGifCmstRgHytY_w_g1uXzkIQr11JpIo-A,5526
6
- openapi_fal_rest/api/admin/handle_user_lock.py,sha256=Ao7QdzH-pnJLBOZrEQH9md_Gy_PbKrIIfJXRDmCUHz8,4847
7
- openapi_fal_rest/api/admin/set_billing_type.py,sha256=vw9yuH4KVN7WKXgPgE3XoYWGRhBHR6RIR3ncDoCsgp4,4993
8
- openapi_fal_rest/api/applications/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
- openapi_fal_rest/api/applications/app_metadata.py,sha256=GqG6Q7jt8Jcyhb3ms_6i0M1B3cy205y3_A8W-AGEapY,5120
10
- openapi_fal_rest/api/applications/get_status_applications_app_user_id_app_alias_or_id_status_get.py,sha256=LjByaJtBilaaGuPpU4jbShUTxcd5RW7dxDSs5W8fr3E,4782
11
- openapi_fal_rest/api/billing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
12
- openapi_fal_rest/api/billing/delete_payment_method.py,sha256=sZyVmBbZAw5PDKxa0iSRxNSDAIzwNjUKdrYf8xz1fgA,4409
13
- openapi_fal_rest/api/billing/get_checkout_page.py,sha256=Lgb9KbYPb4aFr0aLu4m88HMR4715Y6VC8-OfrqAzoxU,5977
14
- openapi_fal_rest/api/billing/get_setup_intent_key.py,sha256=3qlpnM1LEYK1q8hl8f7EmyBfTM0kWXWC0h5fOS08qzo,3835
15
- openapi_fal_rest/api/billing/get_user_details.py,sha256=2HQHRUQj8QwqSKgiV_USBdXCxGlfaVTBbLiPaDsMBUM,4013
16
- openapi_fal_rest/api/billing/get_user_invoices.py,sha256=0gvv6QTaiEmN34b9CSFq_cXTjDTPdmbLUzV3UADEw9s,4161
17
- openapi_fal_rest/api/billing/get_user_payment_methods.py,sha256=PWgy2dKIxZNI0VFMXPejQyLA1SNvrRjeCsw90TUqduA,4275
18
- openapi_fal_rest/api/billing/get_user_price.py,sha256=422ZOVAqTyNDyK-6V7GW0YnaBIBQeaCz77s0NEthDVA,4952
19
- openapi_fal_rest/api/billing/get_user_spending.py,sha256=uzzchsBblhpUqwOs_zjzRZF_kxyPw9-FfFiPApIRNqE,5730
20
- openapi_fal_rest/api/billing/handle_stripe_webhook.py,sha256=q_sitz9nXFiSYJNV305r1SULTQkLUC6FiI6jIsqwlSQ,5213
21
- openapi_fal_rest/api/billing/upcoming_invoice.py,sha256=5fVCpvoPOFZvl8fAmy3BHrrIDDF0-tPe0AMr_EysweI,3932
22
- openapi_fal_rest/api/billing/update_customer_budget.py,sha256=JnTfj3xcev4ImtbwX_IfolpkmVijPGCgeLMxMrgh7ig,5130
23
- openapi_fal_rest/api/files/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
24
- openapi_fal_rest/api/files/check_dir_hash.py,sha256=zPNlOwG4YVvnhgfrleQtYLhI1lG0t8YQ1CU3TyvXvfk,4747
25
- openapi_fal_rest/api/files/delete.py,sha256=wiLr0mvwPwVtXsrmvsCBC-dtZjNQEbleETwLwKtIxbg,4096
26
- openapi_fal_rest/api/files/download.py,sha256=LYZXAYjZ3nXFcIp-vphRKHzkmpRz-xTD5QN2FPFtJaE,4090
27
- openapi_fal_rest/api/files/file_exists.py,sha256=dZyDh2JvzRQdnsMeJfegnR7rJshFPHhz4C9F3iklLN8,5098
28
- openapi_fal_rest/api/files/list_directory.py,sha256=xFxKuSHKoh3MJW80c2QPKuby_RFJqdI003XuuHw7B3I,4472
29
- openapi_fal_rest/api/files/list_root.py,sha256=4S_UF4hNXjrFbenBHQzaDgXQ6WKjmysLqeGe3GR8xXo,4161
30
- openapi_fal_rest/api/files/upload_from_url.py,sha256=OvjrLxbeIoJMvSZ_KHFjM9SF37wUPHlbhepEiUvc55M,4650
31
- openapi_fal_rest/api/files/upload_local_file.py,sha256=p2lM7hswGbs8KNLg1Pp6vwV7x-1PKtWX-aYmaHUHSDU,5649
32
- openapi_fal_rest/api/health/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
33
- openapi_fal_rest/api/health/check.py,sha256=jX6rC1D_DVRDZqUWCb6zoE1KqQU7Yy0BeUOqfaaLPmQ,3244
34
- openapi_fal_rest/api/keys/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
35
- openapi_fal_rest/api/keys/create_key.py,sha256=wVB5yjz0gaDVD6npJc7MKFR5O4PqUy8UEWN5Dws636Y,5096
36
- openapi_fal_rest/api/keys/delete_key.py,sha256=Lnd0of-OQ6o9vswNxrx-8ZzkakWX-PnqlVj2CxESK9s,4016
37
- openapi_fal_rest/api/keys/list_keys.py,sha256=HwIf1HHNo52HURkFVNGVIfCJhbtW06iU8VHOLuc92ho,4192
38
- openapi_fal_rest/api/logs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
39
- openapi_fal_rest/api/logs/list_since.py,sha256=_59g5rX4fZa1YuSXI-Dg_XYldIVAPiGU-pGMbScOPio,6499
40
- openapi_fal_rest/api/requests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
41
- openapi_fal_rest/api/requests/requests.py,sha256=C7zF5QebbZ2IUCsl4b5z5bsdR4wq2c7SKutS437BeW0,7005
42
- openapi_fal_rest/api/storage/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
43
- openapi_fal_rest/api/storage/get_file_link.py,sha256=Mvj5vf3XgKBRWfhP5xmzN3dgd7tVWPbT22J9YqrkAEw,5726
44
- openapi_fal_rest/api/storage/initiate_upload.py,sha256=CJqfXoj0i4a9Mbs2AyNm4QD1dbEScpWftSa8Lw_lCCs,4688
45
- openapi_fal_rest/api/storage/upload_file.py,sha256=e3ipo8LoOihlJDCdBTvNryMxkwb1lwDyj4Stef75gyc,4787
46
- openapi_fal_rest/api/tokens/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
47
- openapi_fal_rest/api/tokens/create_token.py,sha256=qjx7nP3jk7n4GkpfnwTUyqZcg8RbhSLm9vIxEZH2IF0,4394
48
- openapi_fal_rest/api/usage/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
49
- openapi_fal_rest/api/usage/get_custom_usage_per_machine.py,sha256=okU_8B0a7xHA9ulmgl6WEoVODzz7bOlo4XhBRH6fa5M,6272
50
- openapi_fal_rest/api/usage/get_gateway_request_stats.py,sha256=xOJYM0OpRyX_buZJQtXfT2CHLjCb6-yPv7OP7z7kYnk,7614
51
- openapi_fal_rest/api/usage/get_gateway_request_stats_by_time.py,sha256=qqBZRKk8jQRSyn2l0CJz0_9Ecah88mcXtE1mJvRs084,7543
52
- openapi_fal_rest/api/usage/get_gateway_stats_for_yesterday.py,sha256=TNsDHFtpBQ80ixEVPXFiJj6PvGwzCl5gUpxeKCMC2sY,4375
53
- openapi_fal_rest/api/usage/get_shared_usage_per_app.py,sha256=tB09GnrwjH81uz-eODTiHl0qNauCR6xj3oa02WEKg4Q,6252
54
- openapi_fal_rest/api/usage/get_usage_records.py,sha256=PoRYvdXwEvOYQxVhcqNIplVjPut1yo-9gFwnd47XNMw,8366
55
- openapi_fal_rest/api/usage/per_machine_usage.py,sha256=MRMxYP1A-88hFPnEEI0TfCujrsJpaDAlJwue_wCaaGU,6778
56
- openapi_fal_rest/api/usage/per_machine_usage_details.py,sha256=nvXp_Df2KtTDJA4D8KA9NbMY_WIGNn7VLoKQrEPPI9g,4765
57
- openapi_fal_rest/api/users/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
58
- openapi_fal_rest/api/users/handle_user_registration.py,sha256=lCNHpvq_CDGJriAPf4eAxy5yOGN0aXP5yrWnS3apoXY,5820
59
- openapi_fal_rest/client.py,sha256=G6BpJg9j7-JsrAUGddYwkzeWRYickBjPdcVgXoPzxuE,2817
60
- openapi_fal_rest/errors.py,sha256=8mXSxdfSGzxT82srdhYbR0fHfgenxJXaUtMkaGgb6iU,470
61
- openapi_fal_rest/models/__init__.py,sha256=V-ARt7oIf0r2OGAwt5u7TuFWOGp7TssJniKGe-2PUss,3065
62
- openapi_fal_rest/models/app_metadata_response_app_metadata.py,sha256=swJMfWvbjlMF8dmv-KEqcR9If0UjsRogwj9UqBBlkpc,1251
63
- openapi_fal_rest/models/billing_type.py,sha256=PI5yn_je2_pXE1IVgGpd0ko_6PhJGAg9n7t-J_pFJ0Q,162
64
- openapi_fal_rest/models/body_create_token.py,sha256=GBiwnz4US7VqD7Y6uM4Vy4P89aymRo9etU5WJ1NNl68,1902
65
- openapi_fal_rest/models/body_upload_file.py,sha256=aqOj2Y-ij_tVZa4KC1VqOUrxMyiZLVUKj4XDUvLtGQ0,1854
66
- openapi_fal_rest/models/body_upload_local_file.py,sha256=rOTEbYBXfwZk8TsywZWSPPQQEfJgvsLIufT6A40RJZs,1980
67
- openapi_fal_rest/models/customer_details.py,sha256=TQutgEX1W_ybMC7yIKD9zg8FgZ4shEBnsA0nf6siJvY,2841
68
- openapi_fal_rest/models/file_spec.py,sha256=cd56WUz3VbeBv-1s6YRn7blPQxGyH0SBVlAld7gIWcc,2945
69
- openapi_fal_rest/models/gateway_stats_by_time.py,sha256=XcX8C9lh0vn3yEm94umaPVTZKXFUNt3afF1BErHD4mc,3572
70
- openapi_fal_rest/models/gateway_usage_stats.py,sha256=OlBVAzkNwy-rtP4-KRfnGHF8eV6K3a1QCJJImhjHSoA,4989
71
- openapi_fal_rest/models/get_gateway_request_stats_by_time_response_get_gateway_request_stats_by_time.py,sha256=V2lHD90uwmyMRWpyG24I5ihQ64KC8YefOMvge15kxcU,2484
72
- openapi_fal_rest/models/grouped_usage_detail.py,sha256=nKZX50iuqsV2Gey_xwzO5qMzRlqbIzOaN9VC6toF5cc,2388
73
- openapi_fal_rest/models/handle_stripe_webhook_response_handle_stripe_webhook.py,sha256=Nsw1G8WDub678G2Rl_AcOLZc6uzhQCJTSox3UFLIbq8,1340
74
- openapi_fal_rest/models/hash_check.py,sha256=T9R7n4EdadCxbFUZvresZZFPYwDfyJMZVNxY6wIJEE8,1352
75
- openapi_fal_rest/models/http_validation_error.py,sha256=2nhqlv8RX2qp6VR7hb8-SKtzJWXSZ0J95ThW9J4agJo,2131
76
- openapi_fal_rest/models/initiate_upload_info.py,sha256=EXohNWr0upNIPHzw-EWunGW0ruNm0XhD6Emnl1HFujQ,1664
77
- openapi_fal_rest/models/invoice.py,sha256=dCU-k5xdk47BhPklXN-bCqy7zW9_W04Fm_c6Zh9X0uo,3315
78
- openapi_fal_rest/models/invoice_item.py,sha256=ZxBhvGI42LSqWenaZaT3HEfwdPKNPkGtyyN9v7F6AWA,2102
79
- openapi_fal_rest/models/key_scope.py,sha256=g2aVNJ1z7hqy7lwi0qF6_WSVlOsAGSX8IdQrKzktbY0,149
80
- openapi_fal_rest/models/log_entry.py,sha256=lcRvGtMqwn6gOMHCH4SnIqkvU3-mW_A-yB_cB6oSjdE,2708
81
- openapi_fal_rest/models/log_entry_labels.py,sha256=1QWQ0Pz3_yT2-8kjGnEel-djsxTukt0aEpkPdkTGGyA,1165
82
- openapi_fal_rest/models/new_user_key.py,sha256=1sZY3ZyR3XTlFeji7FTtNsL5H_MhiKdjXzQHWBcgcCQ,1574
83
- openapi_fal_rest/models/payment_method.py,sha256=eobtXFp8cmLa8vwU1iVfcZPWTEWZy3dehpM4_7DTQUI,2376
84
- openapi_fal_rest/models/per_app_usage_detail.py,sha256=LyLPUs2sj56JXZkn0LT6hy4CMl1Y6MQJr5RMZov6WQQ,2552
85
- openapi_fal_rest/models/persisted_usage_record.py,sha256=qKGWTgzjmbY5N_8QArEHGSvZEqyapC3pkBVD_gOr4NU,3325
86
- openapi_fal_rest/models/persisted_usage_record_meta.py,sha256=XCnzjXEKvnuS4QQ-TdJ_4M6Y03fpIQ0ph1tMyVJgYuI,1218
87
- openapi_fal_rest/models/presigned_upload_url.py,sha256=3xyHPArnChANNADmG9TpQJeMg_GcPbHXA3VhQVFk-UU,1634
88
- openapi_fal_rest/models/request_io.py,sha256=CW5ZJu1lqhcPoRJYkjdxuO2cK2ZfcBiBSQXzTSiRnAE,3171
89
- openapi_fal_rest/models/request_io_json_input.py,sha256=24qrYIwebDhauqnkMPIPEcUovgUZ97DfybT9xOJ-yUQ,1188
90
- openapi_fal_rest/models/request_io_json_output.py,sha256=Se1M2mq6tRBESvvcoeM8qNR82K_C6WwgJFrfDK3XaK4,1193
91
- openapi_fal_rest/models/run_type.py,sha256=h6VbZO5Gsha8QKhfh87h3aPkcvfiO3G67eEwFSa65ZI,156
92
- openapi_fal_rest/models/stats_timeframe.py,sha256=-DFHI1n1vpQjcBIwkeIZ5q3od6wCwb_Zr_rCoGA3oCU,213
93
- openapi_fal_rest/models/status.py,sha256=kWPRJBvNCK7E56Bk463A1rs9vrkxb-7Ma1NKUXa3NEM,2523
94
- openapi_fal_rest/models/status_health.py,sha256=dN99z7vXne5hoSj48k953NZA3z8PvNjeU4Ig-BxNuj0,195
95
- openapi_fal_rest/models/uploaded_file_result.py,sha256=MchKqHfDAHEK6WZM-D80D0Pq5vDWJ9j85CDf7JypZWA,1574
96
- openapi_fal_rest/models/url_file_upload.py,sha256=KgNG_b-AziykkBT-HcjV9s3mrzayCmJmnx5wBrS_91A,1357
97
- openapi_fal_rest/models/usage_per_machine_type.py,sha256=lVReyk9eH_GjmZ2GQkIGCFghkU-JqdJ0maXQrG-s0fA,3558
98
- openapi_fal_rest/models/usage_per_user.py,sha256=GJColrlIBCFvTaJXcl6zhkliy42MtFT5PR3sXKiYy34,1946
99
- openapi_fal_rest/models/usage_run_detail.py,sha256=2D4o7XI1t3ea5BiOKxxbyxiWPGCKs1C_BmfFD9H_1L0,1918
100
- openapi_fal_rest/models/user_key_info.py,sha256=4JJ3Bc5YOX--aJgk3PrqPI-TQMXBi8ge3905tLD9yQs,2071
101
- openapi_fal_rest/models/validation_error.py,sha256=I6tB-HbEOmE0ua27erDX5PX5YUynENv_dgPN3SrwTrQ,2091
102
- openapi_fal_rest/py.typed,sha256=8ZJUsxZiuOy1oJeVhsTWQhTG_6pTVHVXk5hJL79ebTk,25
103
- openapi_fal_rest/types.py,sha256=4xaUIOliefW-5jz_p-JT2LO7-V0wKWaniHGtjPBQfvQ,993
104
- fal/__init__.py,sha256=oBfj8CzfWo-SYWRSEXsJDxCJXPc0ta3t96f1mjgO55o,1075
105
- fal/_serialization.py,sha256=GD3iXh-noBr0S33eLRaaj9dupo0OclTiyYPiYIMHBuU,3695
106
- fal/api.py,sha256=ksRWJeo8dnMNiTW0XIa8oKOjjCXr1kM5tjaQRYhktww,30354
107
- fal/app.py,sha256=v2K1-7piOL2poXPy5DBQqSuC4fjlbrSnNqhMBzFWooE,4761
108
- fal/apps.py,sha256=j8c4mR-kpRKnZ6wfcuvdgrjuAse7NGD9QR_ZRYan3m4,4121
109
- fal/auth/__init__.py,sha256=IzXoOgHaWkZvE2O0JUC9CL18whq8HILFW4oTrcrCJno,2547
110
- fal/auth/auth0.py,sha256=qFzCy-n9ptctIu3uj4zbx62WVdjjVw-tQSZEYga9IKY,5302
111
- fal/auth/local.py,sha256=lZqp4j32l2xFpY8zYvLoIHHyJrNAJDcm5MxgsLpY_pw,1786
112
- fal/cli.py,sha256=5i0cmHqTuFYsbf_Vd6uzKA4hl6X8RxhjQbKxqRSZkMI,17905
113
- fal/console/__init__.py,sha256=ernZ4bzvvliQh5SmrEqQ7lA5eVcbw6Ra2jalKtA7dxg,132
114
- fal/console/icons.py,sha256=De9MfFaSkO2Lqfne13n3PrYfTXJVIzYZVqYn5BWsdrA,108
115
- fal/console/ux.py,sha256=4vj1aGA3grRn-ebeMuDLR6u3YjMwUGpqtNgdTG9su5s,485
116
- fal/env.py,sha256=g_s2FAtY2-6zyTar_2NUmswHcab--3xozEJW4E6Y9iQ,172
117
- fal/exceptions/__init__.py,sha256=Q4LCSqIrJ8GFQZWH5BvWL5mDPR0HwYQuIhNvsdiOkEU,938
118
- fal/exceptions/_base.py,sha256=LeQmx-soL_-s1742WKN18VwTVjUuYP0L0BdQHPJBpM4,460
119
- fal/exceptions/auth.py,sha256=01Ro7SyGJpwchubdHe14Cl6-Al1jUj16Sy4BvakNWf4,384
120
- fal/exceptions/handlers.py,sha256=i_rFyYnfN2p5HmaUGEjxmKqdoixzsMy1tkWdOcqQNL4,1413
121
- fal/flags.py,sha256=Ib8cXVzbJZxjSDTYwlBt1brCTD1oqZijexkqZQHRTho,757
122
- fal/logging/__init__.py,sha256=tXFlHBtPFydL3Wgzhq72-EzCFKrnDYvZIF0pKYGVxac,1649
123
- fal/logging/datadog.py,sha256=faK3Qvb1LmL8G8MrkeZ3Mbt9wviRZPc-rtNqQnaKuAY,2541
124
- fal/logging/isolate.py,sha256=yDW_P4aR-t53IRmvD2Iprufv1Wn-xQXoBbMB2Ufr59s,2122
125
- fal/logging/style.py,sha256=ckIgHzvF4DShM5kQh8F133X53z_vF46snuDHVmo_h9g,386
126
- fal/logging/trace.py,sha256=-_ShrBsBl9jUlGC-Lwe2r-LIkfj21SETQAhSNrWxbGs,1807
127
- fal/logging/user.py,sha256=paWfeJWlzP3PE1vy7CjUip6hVBT9CKE1AzlSK27KUjA,631
128
- fal/rest_client.py,sha256=JcvUGAROq0SL0CTCi6PLGeM6qN18YsZK_lU0d6EXdOI,568
129
- fal/sdk.py,sha256=iVR5ZxGxu0Oo9JgELFTZLD9a4RZHiwYhbuNJOO6o6wE,18225
130
- fal/sync.py,sha256=6c36Mx3CZAtSbUcjwx4eCgoKtGOTXWmle8G6zFcG35o,4277
131
- fal/toolkit/__init__.py,sha256=G0KZVZ0hfBFDGYmv6Giqx_BSg5VD6thck2uH1jR2-h8,367
132
- fal/toolkit/exceptions.py,sha256=--WKKYxUop6WFy_vqAPXK6uH8C-JR98gnNXwhHNCb7E,258
133
- fal/toolkit/file/__init__.py,sha256=YpUU6YziZV1AMuq12L0EDWToS0sgpHSGWsARbiOEHWk,56
134
- fal/toolkit/file/file.py,sha256=0RNSJIiTDymxcQ4YnZSGNomIHJnIhO9BEmCY6RO5qGo,3408
135
- fal/toolkit/file/providers/fal.py,sha256=u7GQO6UuQNKmwUzHcJePPh6t4Lef_MikW2ogPV5kP0E,2154
136
- fal/toolkit/file/providers/gcp.py,sha256=Bq5SJSghXF8YfFnbZ83_mPdrWs2dFhi8ytODp92USgk,1962
137
- fal/toolkit/file/providers/r2.py,sha256=xJtZfX3cfzJgLXS3F8mHArbrHi0_QBpIMy5M4-tS8H8,2586
138
- fal/toolkit/file/types.py,sha256=aQMkFialtmoWaJms-rGMiWvX9OE7DtpiT1NX84GPlZs,1102
139
- fal/toolkit/image/__init__.py,sha256=liEq0CqkRqUQ1udnnyGVFBwCXUhR2f6o5ffbtbAlP8o,57
140
- fal/toolkit/image/image.py,sha256=zFCGKiGBzdlwq20ISY-olBqUDzUpQ84L5LbLepZteoo,3590
141
- fal/toolkit/mainify.py,sha256=E7gE45nZQZoaJdSlIq0mqajcH-IjcuPBWFmKm5hvhAU,406
142
- fal/toolkit/utils/__init__.py,sha256=b3zVpm50Upx1saXU7RiV9r9in6-Chs4OU9KRjBv7MYI,83
143
- fal/toolkit/utils/download_utils.py,sha256=OlAun9phis7LJtBvVjsQC9sQ6qcZMeZ1_ebdRHm7CLw,13921
144
- fal-0.12.1.dist-info/WHEEL,sha256=vVCvjcmxuUltf8cYhJ0sJMRDLr1XsPuxEId8YDzbyCY,88
145
- fal-0.12.1.dist-info/entry_points.txt,sha256=nE9GBVV3PdBosudFwbIzZQUe_9lfPR6EH8K_FdDASnM,62
146
- fal-0.12.1.dist-info/METADATA,sha256=LIPhda9-WweES9qmXmg6iAzg-AOVpIL_lCpapgr-D5w,2956
147
- fal-0.12.1.dist-info/RECORD,,
@@ -1,142 +0,0 @@
1
- from http import HTTPStatus
2
- from typing import Any, Dict, List, Optional, Union, cast
3
-
4
- import httpx
5
-
6
- from ... import errors
7
- from ...client import Client
8
- from ...models.http_validation_error import HTTPValidationError
9
- from ...types import Response
10
-
11
-
12
- def _get_kwargs(
13
- *,
14
- client: Client,
15
- ) -> Dict[str, Any]:
16
- url = "{}/admin/users/invoice_users".format(client.base_url)
17
-
18
- headers: Dict[str, str] = client.get_headers()
19
- cookies: Dict[str, Any] = client.get_cookies()
20
-
21
- return {
22
- "method": "get",
23
- "url": url,
24
- "headers": headers,
25
- "cookies": cookies,
26
- "timeout": client.get_timeout(),
27
- "follow_redirects": client.follow_redirects,
28
- }
29
-
30
-
31
- def _parse_response(*, client: Client, response: httpx.Response) -> Optional[Union[HTTPValidationError, List[str]]]:
32
- if response.status_code == HTTPStatus.OK:
33
- response_200 = cast(List[str], response.json())
34
-
35
- return response_200
36
- if response.status_code == HTTPStatus.UNPROCESSABLE_ENTITY:
37
- response_422 = HTTPValidationError.from_dict(response.json())
38
-
39
- return response_422
40
- if client.raise_on_unexpected_status:
41
- raise errors.UnexpectedStatus(response.status_code, response.content)
42
- else:
43
- return None
44
-
45
-
46
- def _build_response(*, client: Client, response: httpx.Response) -> Response[Union[HTTPValidationError, List[str]]]:
47
- return Response(
48
- status_code=HTTPStatus(response.status_code),
49
- content=response.content,
50
- headers=response.headers,
51
- parsed=_parse_response(client=client, response=response),
52
- )
53
-
54
-
55
- def sync_detailed(
56
- *,
57
- client: Client,
58
- ) -> Response[Union[HTTPValidationError, List[str]]]:
59
- """Get Invoice Users
60
-
61
- Raises:
62
- errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
63
- httpx.TimeoutException: If the request takes longer than Client.timeout.
64
-
65
- Returns:
66
- Response[Union[HTTPValidationError, List[str]]]
67
- """
68
-
69
- kwargs = _get_kwargs(
70
- client=client,
71
- )
72
-
73
- response = httpx.request(
74
- verify=client.verify_ssl,
75
- **kwargs,
76
- )
77
-
78
- return _build_response(client=client, response=response)
79
-
80
-
81
- def sync(
82
- *,
83
- client: Client,
84
- ) -> Optional[Union[HTTPValidationError, List[str]]]:
85
- """Get Invoice Users
86
-
87
- Raises:
88
- errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
89
- httpx.TimeoutException: If the request takes longer than Client.timeout.
90
-
91
- Returns:
92
- Union[HTTPValidationError, List[str]]
93
- """
94
-
95
- return sync_detailed(
96
- client=client,
97
- ).parsed
98
-
99
-
100
- async def asyncio_detailed(
101
- *,
102
- client: Client,
103
- ) -> Response[Union[HTTPValidationError, List[str]]]:
104
- """Get Invoice Users
105
-
106
- Raises:
107
- errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
108
- httpx.TimeoutException: If the request takes longer than Client.timeout.
109
-
110
- Returns:
111
- Response[Union[HTTPValidationError, List[str]]]
112
- """
113
-
114
- kwargs = _get_kwargs(
115
- client=client,
116
- )
117
-
118
- async with httpx.AsyncClient(verify=client.verify_ssl) as _client:
119
- response = await _client.request(**kwargs)
120
-
121
- return _build_response(client=client, response=response)
122
-
123
-
124
- async def asyncio(
125
- *,
126
- client: Client,
127
- ) -> Optional[Union[HTTPValidationError, List[str]]]:
128
- """Get Invoice Users
129
-
130
- Raises:
131
- errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
132
- httpx.TimeoutException: If the request takes longer than Client.timeout.
133
-
134
- Returns:
135
- Union[HTTPValidationError, List[str]]
136
- """
137
-
138
- return (
139
- await asyncio_detailed(
140
- client=client,
141
- )
142
- ).parsed