fal 0.11.1__py3-none-any.whl → 0.11.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 (58) hide show
  1. fal/api.py +51 -19
  2. fal/auth/__init__.py +1 -2
  3. fal/auth/auth0.py +2 -5
  4. fal/cli.py +92 -108
  5. fal/rest_client.py +1 -0
  6. fal/sdk.py +49 -129
  7. fal/sync.py +3 -2
  8. fal/toolkit/file/file.py +6 -5
  9. fal/toolkit/file/providers/gcp.py +4 -1
  10. fal/toolkit/file/providers/r2.py +83 -0
  11. fal/toolkit/file/types.py +1 -1
  12. fal/toolkit/image/image.py +2 -2
  13. fal/toolkit/utils/download_utils.py +1 -1
  14. {fal-0.11.1.dist-info → fal-0.11.3.dist-info}/METADATA +40 -3
  15. {fal-0.11.1.dist-info → fal-0.11.3.dist-info}/RECORD +58 -44
  16. openapi_fal_rest/api/admin/get_usage_per_user.py +199 -0
  17. openapi_fal_rest/api/admin/handle_user_lock.py +6 -2
  18. openapi_fal_rest/api/applications/get_status_applications_app_user_id_app_alias_or_id_status_get.py +6 -2
  19. openapi_fal_rest/api/billing/delete_payment_method.py +9 -3
  20. openapi_fal_rest/api/billing/get_setup_intent_key.py +6 -2
  21. openapi_fal_rest/api/billing/get_user_price.py +6 -2
  22. openapi_fal_rest/api/billing/get_user_spending.py +6 -2
  23. openapi_fal_rest/api/billing/handle_stripe_webhook.py +21 -7
  24. openapi_fal_rest/api/billing/upcoming_invoice.py +6 -2
  25. openapi_fal_rest/api/billing/update_customer_budget.py +6 -2
  26. openapi_fal_rest/api/files/check_dir_hash.py +9 -3
  27. openapi_fal_rest/api/files/delete.py +6 -2
  28. openapi_fal_rest/api/files/download.py +6 -2
  29. openapi_fal_rest/api/files/file_exists.py +6 -2
  30. openapi_fal_rest/api/files/upload_from_url.py +6 -2
  31. openapi_fal_rest/api/files/upload_local_file.py +9 -3
  32. openapi_fal_rest/api/keys/create_key.py +6 -2
  33. openapi_fal_rest/api/keys/delete_key.py +6 -2
  34. openapi_fal_rest/api/{usage/get_request_stats_by_time.py → requests/requests.py} +33 -18
  35. openapi_fal_rest/api/storage/get_file_link.py +200 -0
  36. openapi_fal_rest/api/storage/initiate_upload.py +172 -0
  37. openapi_fal_rest/api/tokens/__init__.py +0 -0
  38. openapi_fal_rest/api/{application/get_status_application_status_user_id_alias_get.py → tokens/create_token.py} +41 -48
  39. openapi_fal_rest/api/usage/get_gateway_request_stats.py +49 -1
  40. openapi_fal_rest/api/usage/get_gateway_request_stats_by_time.py +270 -0
  41. openapi_fal_rest/api/usage/per_machine_usage_details.py +3 -1
  42. openapi_fal_rest/models/__init__.py +18 -0
  43. openapi_fal_rest/models/body_create_token.py +68 -0
  44. openapi_fal_rest/models/body_upload_file.py +4 -1
  45. openapi_fal_rest/models/body_upload_local_file.py +4 -1
  46. openapi_fal_rest/models/gateway_stats_by_time.py +27 -27
  47. openapi_fal_rest/models/gateway_usage_stats.py +58 -31
  48. openapi_fal_rest/models/get_gateway_request_stats_by_time_response_get_gateway_request_stats_by_time.py +80 -0
  49. openapi_fal_rest/models/initiate_upload_info.py +64 -0
  50. openapi_fal_rest/models/presigned_upload_url.py +64 -0
  51. openapi_fal_rest/models/request_io.py +112 -0
  52. openapi_fal_rest/models/request_io_json_input.py +43 -0
  53. openapi_fal_rest/models/request_io_json_output.py +43 -0
  54. openapi_fal_rest/models/stats_timeframe.py +1 -0
  55. openapi_fal_rest/models/usage_per_user.py +71 -0
  56. {fal-0.11.1.dist-info → fal-0.11.3.dist-info}/WHEEL +0 -0
  57. {fal-0.11.1.dist-info → fal-0.11.3.dist-info}/entry_points.txt +0 -0
  58. /openapi_fal_rest/api/{application → requests}/__init__.py +0 -0
@@ -1,64 +1,72 @@
1
1
  openapi_fal_rest/__init__.py,sha256=sqsyB55QptrijXTCVFQfIJ6uC__vXez1i5KNvYplk5w,151
2
2
  openapi_fal_rest/api/__init__.py,sha256=87ApBzKyGb5zsgTMOkQXDqsLZCmaSFoJMwbGzCDQZMw,47
3
3
  openapi_fal_rest/api/admin/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
- openapi_fal_rest/api/admin/handle_user_lock.py,sha256=Ao7QdzH-pnJLBOZrEQH9md_Gy_PbKrIIfJXRDmCUHz8,4847
5
- openapi_fal_rest/api/application/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
- openapi_fal_rest/api/application/get_status_application_status_user_id_alias_get.py,sha256=MiwzvghkcPCnPk9fBH4ZTaJMwd41_I2H81Pv4LFyOJM,4487
4
+ openapi_fal_rest/api/admin/get_usage_per_user.py,sha256=OcNSsJvq7HGifCmstRgHytY_w_g1uXzkIQr11JpIo-A,5526
5
+ openapi_fal_rest/api/admin/handle_user_lock.py,sha256=0wzLd5kk1mHAoFuzkh0MOujI_OkBeeSn_bLQlQZh8fc,4859
7
6
  openapi_fal_rest/api/applications/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
7
  openapi_fal_rest/api/applications/app_metadata.py,sha256=GqG6Q7jt8Jcyhb3ms_6i0M1B3cy205y3_A8W-AGEapY,5120
9
- openapi_fal_rest/api/applications/get_status_applications_app_user_id_app_alias_or_id_status_get.py,sha256=LjByaJtBilaaGuPpU4jbShUTxcd5RW7dxDSs5W8fr3E,4782
8
+ openapi_fal_rest/api/applications/get_status_applications_app_user_id_app_alias_or_id_status_get.py,sha256=a0963hkWscWX1FaAImuOEQTnOWbwakFtlSYZD3JMwAc,4794
10
9
  openapi_fal_rest/api/billing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
- openapi_fal_rest/api/billing/delete_payment_method.py,sha256=sZyVmBbZAw5PDKxa0iSRxNSDAIzwNjUKdrYf8xz1fgA,4409
12
- openapi_fal_rest/api/billing/get_setup_intent_key.py,sha256=3qlpnM1LEYK1q8hl8f7EmyBfTM0kWXWC0h5fOS08qzo,3835
10
+ openapi_fal_rest/api/billing/delete_payment_method.py,sha256=2-x2GZrWGaBh_WoMC0xwEPLcv1X0Li11cDoFfHoIvz0,4435
11
+ openapi_fal_rest/api/billing/get_setup_intent_key.py,sha256=4gA_5au8e7SSqPvuFq8_dRxdaUezez0wibUTtewJTXw,3847
13
12
  openapi_fal_rest/api/billing/get_user_details.py,sha256=2HQHRUQj8QwqSKgiV_USBdXCxGlfaVTBbLiPaDsMBUM,4013
14
13
  openapi_fal_rest/api/billing/get_user_invoices.py,sha256=0gvv6QTaiEmN34b9CSFq_cXTjDTPdmbLUzV3UADEw9s,4161
15
14
  openapi_fal_rest/api/billing/get_user_payment_methods.py,sha256=PWgy2dKIxZNI0VFMXPejQyLA1SNvrRjeCsw90TUqduA,4275
16
- openapi_fal_rest/api/billing/get_user_price.py,sha256=422ZOVAqTyNDyK-6V7GW0YnaBIBQeaCz77s0NEthDVA,4952
17
- openapi_fal_rest/api/billing/get_user_spending.py,sha256=uzzchsBblhpUqwOs_zjzRZF_kxyPw9-FfFiPApIRNqE,5730
18
- openapi_fal_rest/api/billing/handle_stripe_webhook.py,sha256=q_sitz9nXFiSYJNV305r1SULTQkLUC6FiI6jIsqwlSQ,5213
19
- openapi_fal_rest/api/billing/upcoming_invoice.py,sha256=5fVCpvoPOFZvl8fAmy3BHrrIDDF0-tPe0AMr_EysweI,3932
20
- openapi_fal_rest/api/billing/update_customer_budget.py,sha256=JnTfj3xcev4ImtbwX_IfolpkmVijPGCgeLMxMrgh7ig,5130
15
+ openapi_fal_rest/api/billing/get_user_price.py,sha256=QN9xNIGdfgxcGWK331Rn23z0jzUjyEzrRHE1-U7z4lg,4964
16
+ openapi_fal_rest/api/billing/get_user_spending.py,sha256=Zy6OqZfHYGyD6F1n9FoIHQI0plBfr7duJr7XlKXrCWA,5742
17
+ openapi_fal_rest/api/billing/handle_stripe_webhook.py,sha256=PfsxfEtJsyurYP6dSrGKEEoz7f-pLd1qlbkh0VsaE8s,5271
18
+ openapi_fal_rest/api/billing/upcoming_invoice.py,sha256=UnRSCmiWjGP7ip8m4lbesC7UVVz8G1z62GKS4MbLprw,3944
19
+ openapi_fal_rest/api/billing/update_customer_budget.py,sha256=-tYslAHac3jsyl6D1uknvYnJyZO-bK20GBnKunuggrc,5142
21
20
  openapi_fal_rest/api/files/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
22
- openapi_fal_rest/api/files/check_dir_hash.py,sha256=zPNlOwG4YVvnhgfrleQtYLhI1lG0t8YQ1CU3TyvXvfk,4747
23
- openapi_fal_rest/api/files/delete.py,sha256=wiLr0mvwPwVtXsrmvsCBC-dtZjNQEbleETwLwKtIxbg,4096
24
- openapi_fal_rest/api/files/download.py,sha256=LYZXAYjZ3nXFcIp-vphRKHzkmpRz-xTD5QN2FPFtJaE,4090
25
- openapi_fal_rest/api/files/file_exists.py,sha256=dZyDh2JvzRQdnsMeJfegnR7rJshFPHhz4C9F3iklLN8,5098
21
+ openapi_fal_rest/api/files/check_dir_hash.py,sha256=MFQcGLsoR0ez7YwVDuJra5SKCBi7q2JZ2dg-k-nHAaw,4773
22
+ openapi_fal_rest/api/files/delete.py,sha256=B5-GE0j_W_QeE7K0WtWlOEK6jrhlqP0hCTx1xt04_W4,4108
23
+ openapi_fal_rest/api/files/download.py,sha256=KxI1nsT71vYZkcPgDU5Qe3J9SiBBXmxjcUvofqidCsM,4102
24
+ openapi_fal_rest/api/files/file_exists.py,sha256=xewVU3yrR3DnmaapWhIVCyYOFbuXa2fV8FKQKUIYvzk,5110
26
25
  openapi_fal_rest/api/files/list_directory.py,sha256=xFxKuSHKoh3MJW80c2QPKuby_RFJqdI003XuuHw7B3I,4472
27
26
  openapi_fal_rest/api/files/list_root.py,sha256=4S_UF4hNXjrFbenBHQzaDgXQ6WKjmysLqeGe3GR8xXo,4161
28
- openapi_fal_rest/api/files/upload_from_url.py,sha256=OvjrLxbeIoJMvSZ_KHFjM9SF37wUPHlbhepEiUvc55M,4650
29
- openapi_fal_rest/api/files/upload_local_file.py,sha256=p2lM7hswGbs8KNLg1Pp6vwV7x-1PKtWX-aYmaHUHSDU,5649
27
+ openapi_fal_rest/api/files/upload_from_url.py,sha256=EPJciVtnwKGsNXUDnnXf_yUe1Ie90ZqfFuohJB7h14w,4662
28
+ openapi_fal_rest/api/files/upload_local_file.py,sha256=Bbjb-iGatzbmugLt-Bmzdwqx3b8ST1sgbvfO6FKcxcU,5675
30
29
  openapi_fal_rest/api/health/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
31
30
  openapi_fal_rest/api/health/check.py,sha256=jX6rC1D_DVRDZqUWCb6zoE1KqQU7Yy0BeUOqfaaLPmQ,3244
32
31
  openapi_fal_rest/api/keys/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
33
- openapi_fal_rest/api/keys/create_key.py,sha256=wVB5yjz0gaDVD6npJc7MKFR5O4PqUy8UEWN5Dws636Y,5096
34
- openapi_fal_rest/api/keys/delete_key.py,sha256=Lnd0of-OQ6o9vswNxrx-8ZzkakWX-PnqlVj2CxESK9s,4016
32
+ openapi_fal_rest/api/keys/create_key.py,sha256=vMrYqJgUtvw3W02wy3tB_NlDCVVdbA_9Rkdp0x1HOD4,5108
33
+ openapi_fal_rest/api/keys/delete_key.py,sha256=AN3uaCZAsNLb0RXQ-oh9pJnprR1-gJuxsa_SyNJoGbE,4028
35
34
  openapi_fal_rest/api/keys/list_keys.py,sha256=HwIf1HHNo52HURkFVNGVIfCJhbtW06iU8VHOLuc92ho,4192
36
35
  openapi_fal_rest/api/logs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
37
36
  openapi_fal_rest/api/logs/list_since.py,sha256=_59g5rX4fZa1YuSXI-Dg_XYldIVAPiGU-pGMbScOPio,6499
37
+ openapi_fal_rest/api/requests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
38
+ openapi_fal_rest/api/requests/requests.py,sha256=C7zF5QebbZ2IUCsl4b5z5bsdR4wq2c7SKutS437BeW0,7005
38
39
  openapi_fal_rest/api/storage/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
40
+ openapi_fal_rest/api/storage/get_file_link.py,sha256=Mvj5vf3XgKBRWfhP5xmzN3dgd7tVWPbT22J9YqrkAEw,5726
41
+ openapi_fal_rest/api/storage/initiate_upload.py,sha256=CJqfXoj0i4a9Mbs2AyNm4QD1dbEScpWftSa8Lw_lCCs,4688
39
42
  openapi_fal_rest/api/storage/upload_file.py,sha256=e3ipo8LoOihlJDCdBTvNryMxkwb1lwDyj4Stef75gyc,4787
43
+ openapi_fal_rest/api/tokens/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
44
+ openapi_fal_rest/api/tokens/create_token.py,sha256=dUl9NrGGyV_4TlkdZ5dJ9H0yieceVblsbnbUKT7o78I,4406
40
45
  openapi_fal_rest/api/usage/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
41
46
  openapi_fal_rest/api/usage/get_custom_usage_per_machine.py,sha256=okU_8B0a7xHA9ulmgl6WEoVODzz7bOlo4XhBRH6fa5M,6272
42
- openapi_fal_rest/api/usage/get_gateway_request_stats.py,sha256=7jKFo-5_ygUs_P5_I1_MoUw5gADb9NUoN0p1MimjiX0,5617
43
- openapi_fal_rest/api/usage/get_request_stats_by_time.py,sha256=2pZlv0ShqWE-0ROC2_TzyHxGvqCzOtMyRJ2qJOvqAaQ,6608
47
+ openapi_fal_rest/api/usage/get_gateway_request_stats.py,sha256=xOJYM0OpRyX_buZJQtXfT2CHLjCb6-yPv7OP7z7kYnk,7614
48
+ openapi_fal_rest/api/usage/get_gateway_request_stats_by_time.py,sha256=CB9MGjWcuMWtSIjbkAqjqqpEtxxFlQdWQ3AbsWzEqok,7771
44
49
  openapi_fal_rest/api/usage/get_shared_usage_per_app.py,sha256=tB09GnrwjH81uz-eODTiHl0qNauCR6xj3oa02WEKg4Q,6252
45
50
  openapi_fal_rest/api/usage/get_usage_records.py,sha256=PoRYvdXwEvOYQxVhcqNIplVjPut1yo-9gFwnd47XNMw,8366
46
51
  openapi_fal_rest/api/usage/per_machine_usage.py,sha256=MRMxYP1A-88hFPnEEI0TfCujrsJpaDAlJwue_wCaaGU,6778
47
- openapi_fal_rest/api/usage/per_machine_usage_details.py,sha256=nvXp_Df2KtTDJA4D8KA9NbMY_WIGNn7VLoKQrEPPI9g,4765
52
+ openapi_fal_rest/api/usage/per_machine_usage_details.py,sha256=1trqk3c3NDfUaQvsu-qmeorflPbrSdHuB9CTNpgvM_Q,4779
48
53
  openapi_fal_rest/client.py,sha256=G6BpJg9j7-JsrAUGddYwkzeWRYickBjPdcVgXoPzxuE,2817
49
54
  openapi_fal_rest/errors.py,sha256=8mXSxdfSGzxT82srdhYbR0fHfgenxJXaUtMkaGgb6iU,470
50
- openapi_fal_rest/models/__init__.py,sha256=Q2WS5P60kyAcfFAcByfJPYJrOa5HLGooK_o8MELjNHk,2192
55
+ openapi_fal_rest/models/__init__.py,sha256=6CLCG50sd_eBvivvI4GUSaApsnJM3vJQ6W8C4Eo-jO8,2931
51
56
  openapi_fal_rest/models/app_metadata_response_app_metadata.py,sha256=swJMfWvbjlMF8dmv-KEqcR9If0UjsRogwj9UqBBlkpc,1251
52
- openapi_fal_rest/models/body_upload_file.py,sha256=aqOj2Y-ij_tVZa4KC1VqOUrxMyiZLVUKj4XDUvLtGQ0,1854
53
- openapi_fal_rest/models/body_upload_local_file.py,sha256=rOTEbYBXfwZk8TsywZWSPPQQEfJgvsLIufT6A40RJZs,1980
57
+ openapi_fal_rest/models/body_create_token.py,sha256=GBiwnz4US7VqD7Y6uM4Vy4P89aymRo9etU5WJ1NNl68,1902
58
+ openapi_fal_rest/models/body_upload_file.py,sha256=QD2KgOE-YYQi3ktU94OMKua2V0NLkxLa01YdVLnty9g,1900
59
+ openapi_fal_rest/models/body_upload_local_file.py,sha256=xaQJwECSFSP_aQyRhGWYpSGGpDjNpn_X7Fa6gdjE0LE,2026
54
60
  openapi_fal_rest/models/customer_details.py,sha256=kJ1_Ayf_Km00eSgQzmaf_dwCL7sr0kIa-08Y9i6bliI,2561
55
61
  openapi_fal_rest/models/file_spec.py,sha256=cd56WUz3VbeBv-1s6YRn7blPQxGyH0SBVlAld7gIWcc,2945
56
- openapi_fal_rest/models/gateway_stats_by_time.py,sha256=kWUsIlJ_lmK4W46PFPKcM3RjRlhLQQ44ymh8hXeHLUQ,3458
57
- openapi_fal_rest/models/gateway_usage_stats.py,sha256=XdF5L6MTGko6H17Sebgfv0z0hN_wjzvySDMg0LfYutQ,3671
62
+ openapi_fal_rest/models/gateway_stats_by_time.py,sha256=XcX8C9lh0vn3yEm94umaPVTZKXFUNt3afF1BErHD4mc,3572
63
+ openapi_fal_rest/models/gateway_usage_stats.py,sha256=OlBVAzkNwy-rtP4-KRfnGHF8eV6K3a1QCJJImhjHSoA,4989
64
+ openapi_fal_rest/models/get_gateway_request_stats_by_time_response_get_gateway_request_stats_by_time.py,sha256=qIf5EVyDLG9YjxC4BWNZm3DHTiNwiq5s4_wN1nUlnKw,2590
58
65
  openapi_fal_rest/models/grouped_usage_detail.py,sha256=S2YP_SF64mN1lvuD-jScAWKj8CQbuZUN9eBPG0QeDTo,2358
59
66
  openapi_fal_rest/models/handle_stripe_webhook_response_handle_stripe_webhook.py,sha256=Nsw1G8WDub678G2Rl_AcOLZc6uzhQCJTSox3UFLIbq8,1340
60
67
  openapi_fal_rest/models/hash_check.py,sha256=T9R7n4EdadCxbFUZvresZZFPYwDfyJMZVNxY6wIJEE8,1352
61
68
  openapi_fal_rest/models/http_validation_error.py,sha256=2nhqlv8RX2qp6VR7hb8-SKtzJWXSZ0J95ThW9J4agJo,2131
69
+ openapi_fal_rest/models/initiate_upload_info.py,sha256=EXohNWr0upNIPHzw-EWunGW0ruNm0XhD6Emnl1HFujQ,1664
62
70
  openapi_fal_rest/models/invoice.py,sha256=dCU-k5xdk47BhPklXN-bCqy7zW9_W04Fm_c6Zh9X0uo,3315
63
71
  openapi_fal_rest/models/invoice_item.py,sha256=ZxBhvGI42LSqWenaZaT3HEfwdPKNPkGtyyN9v7F6AWA,2102
64
72
  openapi_fal_rest/models/key_scope.py,sha256=g2aVNJ1z7hqy7lwi0qF6_WSVlOsAGSX8IdQrKzktbY0,149
@@ -68,13 +76,18 @@ openapi_fal_rest/models/new_user_key.py,sha256=1sZY3ZyR3XTlFeji7FTtNsL5H_MhiKdjX
68
76
  openapi_fal_rest/models/payment_method.py,sha256=eobtXFp8cmLa8vwU1iVfcZPWTEWZy3dehpM4_7DTQUI,2376
69
77
  openapi_fal_rest/models/persisted_usage_record.py,sha256=qKGWTgzjmbY5N_8QArEHGSvZEqyapC3pkBVD_gOr4NU,3325
70
78
  openapi_fal_rest/models/persisted_usage_record_meta.py,sha256=XCnzjXEKvnuS4QQ-TdJ_4M6Y03fpIQ0ph1tMyVJgYuI,1218
79
+ openapi_fal_rest/models/presigned_upload_url.py,sha256=3xyHPArnChANNADmG9TpQJeMg_GcPbHXA3VhQVFk-UU,1634
80
+ openapi_fal_rest/models/request_io.py,sha256=CW5ZJu1lqhcPoRJYkjdxuO2cK2ZfcBiBSQXzTSiRnAE,3171
81
+ openapi_fal_rest/models/request_io_json_input.py,sha256=24qrYIwebDhauqnkMPIPEcUovgUZ97DfybT9xOJ-yUQ,1188
82
+ openapi_fal_rest/models/request_io_json_output.py,sha256=Se1M2mq6tRBESvvcoeM8qNR82K_C6WwgJFrfDK3XaK4,1193
71
83
  openapi_fal_rest/models/run_type.py,sha256=h6VbZO5Gsha8QKhfh87h3aPkcvfiO3G67eEwFSa65ZI,156
72
- openapi_fal_rest/models/stats_timeframe.py,sha256=ika2CkhiY8OEwR_Z1y4pKMP-Ibqz_RzEkZ2mcMtVdsw,191
84
+ openapi_fal_rest/models/stats_timeframe.py,sha256=-DFHI1n1vpQjcBIwkeIZ5q3od6wCwb_Zr_rCoGA3oCU,213
73
85
  openapi_fal_rest/models/status.py,sha256=kWPRJBvNCK7E56Bk463A1rs9vrkxb-7Ma1NKUXa3NEM,2523
74
86
  openapi_fal_rest/models/status_health.py,sha256=dN99z7vXne5hoSj48k953NZA3z8PvNjeU4Ig-BxNuj0,195
75
87
  openapi_fal_rest/models/uploaded_file_result.py,sha256=MchKqHfDAHEK6WZM-D80D0Pq5vDWJ9j85CDf7JypZWA,1574
76
88
  openapi_fal_rest/models/url_file_upload.py,sha256=KgNG_b-AziykkBT-HcjV9s3mrzayCmJmnx5wBrS_91A,1357
77
89
  openapi_fal_rest/models/usage_per_machine_type.py,sha256=lVReyk9eH_GjmZ2GQkIGCFghkU-JqdJ0maXQrG-s0fA,3558
90
+ openapi_fal_rest/models/usage_per_user.py,sha256=GJColrlIBCFvTaJXcl6zhkliy42MtFT5PR3sXKiYy34,1946
78
91
  openapi_fal_rest/models/usage_run_detail.py,sha256=2D4o7XI1t3ea5BiOKxxbyxiWPGCKs1C_BmfFD9H_1L0,1918
79
92
  openapi_fal_rest/models/user_key_info.py,sha256=4JJ3Bc5YOX--aJgk3PrqPI-TQMXBi8ge3905tLD9yQs,2071
80
93
  openapi_fal_rest/models/validation_error.py,sha256=I6tB-HbEOmE0ua27erDX5PX5YUynENv_dgPN3SrwTrQ,2091
@@ -82,12 +95,12 @@ openapi_fal_rest/py.typed,sha256=8ZJUsxZiuOy1oJeVhsTWQhTG_6pTVHVXk5hJL79ebTk,25
82
95
  openapi_fal_rest/types.py,sha256=4xaUIOliefW-5jz_p-JT2LO7-V0wKWaniHGtjPBQfvQ,993
83
96
  fal/__init__.py,sha256=WE0JWoOFjzLVQPnj4tXRPgH1y5fZW0GLXPGEyORgAFg,1677
84
97
  fal/_serialization.py,sha256=GD3iXh-noBr0S33eLRaaj9dupo0OclTiyYPiYIMHBuU,3695
85
- fal/api.py,sha256=2732JscFNbzf9A502yle8YC6EKuuiK6GEa7lWPKC_CE,28086
98
+ fal/api.py,sha256=CZm-h1b1CmGTPmecHAPvL8_PZdoxhz-ykufm927Pmv4,29613
86
99
  fal/apps.py,sha256=j8c4mR-kpRKnZ6wfcuvdgrjuAse7NGD9QR_ZRYan3m4,4121
87
- fal/auth/__init__.py,sha256=PhbqBt0BrUHQ7xYnIHYvcNd0LKOWVxE1m0d3a6jUmwk,2608
88
- fal/auth/auth0.py,sha256=KxmKBCXKrv_f6AuekRzIHbu2Qj04Qi1_qYG48fC0CpI,5393
100
+ fal/auth/__init__.py,sha256=IzXoOgHaWkZvE2O0JUC9CL18whq8HILFW4oTrcrCJno,2547
101
+ fal/auth/auth0.py,sha256=qFzCy-n9ptctIu3uj4zbx62WVdjjVw-tQSZEYga9IKY,5302
89
102
  fal/auth/local.py,sha256=lZqp4j32l2xFpY8zYvLoIHHyJrNAJDcm5MxgsLpY_pw,1786
90
- fal/cli.py,sha256=0UeL0sUfw8LvlDDuw5DfnZGiLgUeL8IhpVIT74Bnhzc,18297
103
+ fal/cli.py,sha256=D0csuZOGATUUxwiwuoHy8IVfF_9zcquJMgBhyozjB8s,17134
91
104
  fal/console/__init__.py,sha256=ernZ4bzvvliQh5SmrEqQ7lA5eVcbw6Ra2jalKtA7dxg,132
92
105
  fal/console/icons.py,sha256=De9MfFaSkO2Lqfne13n3PrYfTXJVIzYZVqYn5BWsdrA,108
93
106
  fal/console/ux.py,sha256=4vj1aGA3grRn-ebeMuDLR6u3YjMwUGpqtNgdTG9su5s,485
@@ -103,22 +116,23 @@ fal/logging/isolate.py,sha256=yDW_P4aR-t53IRmvD2Iprufv1Wn-xQXoBbMB2Ufr59s,2122
103
116
  fal/logging/style.py,sha256=ckIgHzvF4DShM5kQh8F133X53z_vF46snuDHVmo_h9g,386
104
117
  fal/logging/trace.py,sha256=-_ShrBsBl9jUlGC-Lwe2r-LIkfj21SETQAhSNrWxbGs,1807
105
118
  fal/logging/user.py,sha256=paWfeJWlzP3PE1vy7CjUip6hVBT9CKE1AzlSK27KUjA,631
106
- fal/rest_client.py,sha256=Q00SKXxoFal2-_kdVgs7Vb4MarXrHr09_DyLnoFfgWY,567
107
- fal/sdk.py,sha256=B-n0DJDM-TGLNUCBlVRPeru7LPJZCZSKfKuGxUyvG_c,19397
108
- fal/sync.py,sha256=exRpYTHoad9oy5aXR6bTztkjmDRdzv_aEp7hD0hRge8,4276
119
+ fal/rest_client.py,sha256=JcvUGAROq0SL0CTCi6PLGeM6qN18YsZK_lU0d6EXdOI,568
120
+ fal/sdk.py,sha256=AXL6wWBS3hO-FNcp4mjAHkcYS_TNo8D2m7JZu4Lbz3E,17099
121
+ fal/sync.py,sha256=6c36Mx3CZAtSbUcjwx4eCgoKtGOTXWmle8G6zFcG35o,4277
109
122
  fal/toolkit/__init__.py,sha256=G0KZVZ0hfBFDGYmv6Giqx_BSg5VD6thck2uH1jR2-h8,367
110
123
  fal/toolkit/exceptions.py,sha256=--WKKYxUop6WFy_vqAPXK6uH8C-JR98gnNXwhHNCb7E,258
111
124
  fal/toolkit/file/__init__.py,sha256=YpUU6YziZV1AMuq12L0EDWToS0sgpHSGWsARbiOEHWk,56
112
- fal/toolkit/file/file.py,sha256=q_hsfOPDwL5EfKr-4oxqLfSs-b5XZH9oOPpysXe35cA,3414
125
+ fal/toolkit/file/file.py,sha256=0RNSJIiTDymxcQ4YnZSGNomIHJnIhO9BEmCY6RO5qGo,3408
113
126
  fal/toolkit/file/providers/fal.py,sha256=u7GQO6UuQNKmwUzHcJePPh6t4Lef_MikW2ogPV5kP0E,2154
114
- fal/toolkit/file/providers/gcp.py,sha256=Unr51RSU-RHRGfuPUnh9kLXKdOTgrCBAPS5c7uI7p0M,1869
115
- fal/toolkit/file/types.py,sha256=bVT6ite0ju7BxN-bO44zqOKSusEdAmLD8LSOQrLdZ_I,1096
127
+ fal/toolkit/file/providers/gcp.py,sha256=Bq5SJSghXF8YfFnbZ83_mPdrWs2dFhi8ytODp92USgk,1962
128
+ fal/toolkit/file/providers/r2.py,sha256=xJtZfX3cfzJgLXS3F8mHArbrHi0_QBpIMy5M4-tS8H8,2586
129
+ fal/toolkit/file/types.py,sha256=aQMkFialtmoWaJms-rGMiWvX9OE7DtpiT1NX84GPlZs,1102
116
130
  fal/toolkit/image/__init__.py,sha256=liEq0CqkRqUQ1udnnyGVFBwCXUhR2f6o5ffbtbAlP8o,57
117
- fal/toolkit/image/image.py,sha256=wLRqd2Syp5w3zIhpVp9-vQYelbL1CS8wkcMU893E1UA,3588
131
+ fal/toolkit/image/image.py,sha256=zFCGKiGBzdlwq20ISY-olBqUDzUpQ84L5LbLepZteoo,3590
118
132
  fal/toolkit/mainify.py,sha256=E7gE45nZQZoaJdSlIq0mqajcH-IjcuPBWFmKm5hvhAU,406
119
133
  fal/toolkit/utils/__init__.py,sha256=b3zVpm50Upx1saXU7RiV9r9in6-Chs4OU9KRjBv7MYI,83
120
- fal/toolkit/utils/download_utils.py,sha256=hY3scvKnj4sx3r3Fq7f8nZSSm6a0_SsLIulyMPvczSc,13916
121
- fal-0.11.1.dist-info/WHEEL,sha256=vVCvjcmxuUltf8cYhJ0sJMRDLr1XsPuxEId8YDzbyCY,88
122
- fal-0.11.1.dist-info/entry_points.txt,sha256=nE9GBVV3PdBosudFwbIzZQUe_9lfPR6EH8K_FdDASnM,62
123
- fal-0.11.1.dist-info/METADATA,sha256=pMVpbzbNSNMbOcuSBPbMXJ6T0rfbCgy1u1dKPz4Knks,1888
124
- fal-0.11.1.dist-info/RECORD,,
134
+ fal/toolkit/utils/download_utils.py,sha256=OlAun9phis7LJtBvVjsQC9sQ6qcZMeZ1_ebdRHm7CLw,13921
135
+ fal-0.11.3.dist-info/WHEEL,sha256=vVCvjcmxuUltf8cYhJ0sJMRDLr1XsPuxEId8YDzbyCY,88
136
+ fal-0.11.3.dist-info/entry_points.txt,sha256=nE9GBVV3PdBosudFwbIzZQUe_9lfPR6EH8K_FdDASnM,62
137
+ fal-0.11.3.dist-info/METADATA,sha256=evOSg_iE5c-4cj5Bz4u02jNOWIcHSH_sXA5zxhSUJc4,2956
138
+ fal-0.11.3.dist-info/RECORD,,
@@ -0,0 +1,199 @@
1
+ import datetime
2
+ from http import HTTPStatus
3
+ from typing import Any, Dict, List, Optional, Union
4
+
5
+ import httpx
6
+
7
+ from ... import errors
8
+ from ...client import Client
9
+ from ...models.http_validation_error import HTTPValidationError
10
+ from ...models.usage_per_user import UsagePerUser
11
+ from ...types import UNSET, Response
12
+
13
+
14
+ def _get_kwargs(
15
+ *,
16
+ client: Client,
17
+ start_time: datetime.datetime,
18
+ end_time: datetime.datetime,
19
+ ) -> Dict[str, Any]:
20
+ url = "{}/admin/users/usage".format(client.base_url)
21
+
22
+ headers: Dict[str, str] = client.get_headers()
23
+ cookies: Dict[str, Any] = client.get_cookies()
24
+
25
+ params: Dict[str, Any] = {}
26
+ json_start_time = start_time.isoformat()
27
+
28
+ params["start_time"] = json_start_time
29
+
30
+ json_end_time = end_time.isoformat()
31
+
32
+ params["end_time"] = json_end_time
33
+
34
+ params = {k: v for k, v in params.items() if v is not UNSET and v is not None}
35
+
36
+ return {
37
+ "method": "get",
38
+ "url": url,
39
+ "headers": headers,
40
+ "cookies": cookies,
41
+ "timeout": client.get_timeout(),
42
+ "follow_redirects": client.follow_redirects,
43
+ "params": params,
44
+ }
45
+
46
+
47
+ def _parse_response(
48
+ *, client: Client, response: httpx.Response
49
+ ) -> Optional[Union[HTTPValidationError, List["UsagePerUser"]]]:
50
+ if response.status_code == HTTPStatus.OK:
51
+ response_200 = []
52
+ _response_200 = response.json()
53
+ for response_200_item_data in _response_200:
54
+ response_200_item = UsagePerUser.from_dict(response_200_item_data)
55
+
56
+ response_200.append(response_200_item)
57
+
58
+ return response_200
59
+ if response.status_code == HTTPStatus.UNPROCESSABLE_ENTITY:
60
+ response_422 = HTTPValidationError.from_dict(response.json())
61
+
62
+ return response_422
63
+ if client.raise_on_unexpected_status:
64
+ raise errors.UnexpectedStatus(response.status_code, response.content)
65
+ else:
66
+ return None
67
+
68
+
69
+ def _build_response(
70
+ *, client: Client, response: httpx.Response
71
+ ) -> Response[Union[HTTPValidationError, List["UsagePerUser"]]]:
72
+ return Response(
73
+ status_code=HTTPStatus(response.status_code),
74
+ content=response.content,
75
+ headers=response.headers,
76
+ parsed=_parse_response(client=client, response=response),
77
+ )
78
+
79
+
80
+ def sync_detailed(
81
+ *,
82
+ client: Client,
83
+ start_time: datetime.datetime,
84
+ end_time: datetime.datetime,
85
+ ) -> Response[Union[HTTPValidationError, List["UsagePerUser"]]]:
86
+ """Get Usage Per User
87
+
88
+ Args:
89
+ start_time (datetime.datetime):
90
+ end_time (datetime.datetime):
91
+
92
+ Raises:
93
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
94
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
95
+
96
+ Returns:
97
+ Response[Union[HTTPValidationError, List['UsagePerUser']]]
98
+ """
99
+
100
+ kwargs = _get_kwargs(
101
+ client=client,
102
+ start_time=start_time,
103
+ end_time=end_time,
104
+ )
105
+
106
+ response = httpx.request(
107
+ verify=client.verify_ssl,
108
+ **kwargs,
109
+ )
110
+
111
+ return _build_response(client=client, response=response)
112
+
113
+
114
+ def sync(
115
+ *,
116
+ client: Client,
117
+ start_time: datetime.datetime,
118
+ end_time: datetime.datetime,
119
+ ) -> Optional[Union[HTTPValidationError, List["UsagePerUser"]]]:
120
+ """Get Usage Per User
121
+
122
+ Args:
123
+ start_time (datetime.datetime):
124
+ end_time (datetime.datetime):
125
+
126
+ Raises:
127
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
128
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
129
+
130
+ Returns:
131
+ Union[HTTPValidationError, List['UsagePerUser']]
132
+ """
133
+
134
+ return sync_detailed(
135
+ client=client,
136
+ start_time=start_time,
137
+ end_time=end_time,
138
+ ).parsed
139
+
140
+
141
+ async def asyncio_detailed(
142
+ *,
143
+ client: Client,
144
+ start_time: datetime.datetime,
145
+ end_time: datetime.datetime,
146
+ ) -> Response[Union[HTTPValidationError, List["UsagePerUser"]]]:
147
+ """Get Usage Per User
148
+
149
+ Args:
150
+ start_time (datetime.datetime):
151
+ end_time (datetime.datetime):
152
+
153
+ Raises:
154
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
155
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
156
+
157
+ Returns:
158
+ Response[Union[HTTPValidationError, List['UsagePerUser']]]
159
+ """
160
+
161
+ kwargs = _get_kwargs(
162
+ client=client,
163
+ start_time=start_time,
164
+ end_time=end_time,
165
+ )
166
+
167
+ async with httpx.AsyncClient(verify=client.verify_ssl) as _client:
168
+ response = await _client.request(**kwargs)
169
+
170
+ return _build_response(client=client, response=response)
171
+
172
+
173
+ async def asyncio(
174
+ *,
175
+ client: Client,
176
+ start_time: datetime.datetime,
177
+ end_time: datetime.datetime,
178
+ ) -> Optional[Union[HTTPValidationError, List["UsagePerUser"]]]:
179
+ """Get Usage Per User
180
+
181
+ Args:
182
+ start_time (datetime.datetime):
183
+ end_time (datetime.datetime):
184
+
185
+ Raises:
186
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
187
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
188
+
189
+ Returns:
190
+ Union[HTTPValidationError, List['UsagePerUser']]
191
+ """
192
+
193
+ return (
194
+ await asyncio_detailed(
195
+ client=client,
196
+ start_time=start_time,
197
+ end_time=end_time,
198
+ )
199
+ ).parsed
@@ -38,7 +38,9 @@ def _get_kwargs(
38
38
  }
39
39
 
40
40
 
41
- def _parse_response(*, client: Client, response: httpx.Response) -> Optional[Union[HTTPValidationError, str]]:
41
+ def _parse_response(
42
+ *, client: Client, response: httpx.Response
43
+ ) -> Optional[Union[HTTPValidationError, str]]:
42
44
  if response.status_code == HTTPStatus.OK:
43
45
  response_200 = cast(str, response.json())
44
46
  return response_200
@@ -52,7 +54,9 @@ def _parse_response(*, client: Client, response: httpx.Response) -> Optional[Uni
52
54
  return None
53
55
 
54
56
 
55
- def _build_response(*, client: Client, response: httpx.Response) -> Response[Union[HTTPValidationError, str]]:
57
+ def _build_response(
58
+ *, client: Client, response: httpx.Response
59
+ ) -> Response[Union[HTTPValidationError, str]]:
56
60
  return Response(
57
61
  status_code=HTTPStatus(response.status_code),
58
62
  content=response.content,
@@ -33,7 +33,9 @@ def _get_kwargs(
33
33
  }
34
34
 
35
35
 
36
- def _parse_response(*, client: Client, response: httpx.Response) -> Optional[Union[HTTPValidationError, Status]]:
36
+ def _parse_response(
37
+ *, client: Client, response: httpx.Response
38
+ ) -> Optional[Union[HTTPValidationError, Status]]:
37
39
  if response.status_code == HTTPStatus.OK:
38
40
  response_200 = Status.from_dict(response.json())
39
41
 
@@ -48,7 +50,9 @@ def _parse_response(*, client: Client, response: httpx.Response) -> Optional[Uni
48
50
  return None
49
51
 
50
52
 
51
- def _build_response(*, client: Client, response: httpx.Response) -> Response[Union[HTTPValidationError, Status]]:
53
+ def _build_response(
54
+ *, client: Client, response: httpx.Response
55
+ ) -> Response[Union[HTTPValidationError, Status]]:
52
56
  return Response(
53
57
  status_code=HTTPStatus(response.status_code),
54
58
  content=response.content,
@@ -14,7 +14,9 @@ def _get_kwargs(
14
14
  *,
15
15
  client: Client,
16
16
  ) -> Dict[str, Any]:
17
- url = "{}/billing/payment_methods/{payment_method_id}".format(client.base_url, payment_method_id=payment_method_id)
17
+ url = "{}/billing/payment_methods/{payment_method_id}".format(
18
+ client.base_url, payment_method_id=payment_method_id
19
+ )
18
20
 
19
21
  headers: Dict[str, str] = client.get_headers()
20
22
  cookies: Dict[str, Any] = client.get_cookies()
@@ -29,7 +31,9 @@ def _get_kwargs(
29
31
  }
30
32
 
31
33
 
32
- def _parse_response(*, client: Client, response: httpx.Response) -> Optional[Union[HTTPValidationError, bool]]:
34
+ def _parse_response(
35
+ *, client: Client, response: httpx.Response
36
+ ) -> Optional[Union[HTTPValidationError, bool]]:
33
37
  if response.status_code == HTTPStatus.OK:
34
38
  response_200 = cast(bool, response.json())
35
39
  return response_200
@@ -43,7 +47,9 @@ def _parse_response(*, client: Client, response: httpx.Response) -> Optional[Uni
43
47
  return None
44
48
 
45
49
 
46
- def _build_response(*, client: Client, response: httpx.Response) -> Response[Union[HTTPValidationError, bool]]:
50
+ def _build_response(
51
+ *, client: Client, response: httpx.Response
52
+ ) -> Response[Union[HTTPValidationError, bool]]:
47
53
  return Response(
48
54
  status_code=HTTPStatus(response.status_code),
49
55
  content=response.content,
@@ -28,7 +28,9 @@ def _get_kwargs(
28
28
  }
29
29
 
30
30
 
31
- def _parse_response(*, client: Client, response: httpx.Response) -> Optional[Union[HTTPValidationError, str]]:
31
+ def _parse_response(
32
+ *, client: Client, response: httpx.Response
33
+ ) -> Optional[Union[HTTPValidationError, str]]:
32
34
  if response.status_code == HTTPStatus.OK:
33
35
  response_200 = cast(str, response.json())
34
36
  return response_200
@@ -42,7 +44,9 @@ def _parse_response(*, client: Client, response: httpx.Response) -> Optional[Uni
42
44
  return None
43
45
 
44
46
 
45
- def _build_response(*, client: Client, response: httpx.Response) -> Response[Union[HTTPValidationError, str]]:
47
+ def _build_response(
48
+ *, client: Client, response: httpx.Response
49
+ ) -> Response[Union[HTTPValidationError, str]]:
46
50
  return Response(
47
51
  status_code=HTTPStatus(response.status_code),
48
52
  content=response.content,
@@ -41,7 +41,9 @@ def _get_kwargs(
41
41
  }
42
42
 
43
43
 
44
- def _parse_response(*, client: Client, response: httpx.Response) -> Optional[Union[HTTPValidationError, float]]:
44
+ def _parse_response(
45
+ *, client: Client, response: httpx.Response
46
+ ) -> Optional[Union[HTTPValidationError, float]]:
45
47
  if response.status_code == HTTPStatus.OK:
46
48
  response_200 = cast(float, response.json())
47
49
  return response_200
@@ -55,7 +57,9 @@ def _parse_response(*, client: Client, response: httpx.Response) -> Optional[Uni
55
57
  return None
56
58
 
57
59
 
58
- def _build_response(*, client: Client, response: httpx.Response) -> Response[Union[HTTPValidationError, float]]:
60
+ def _build_response(
61
+ *, client: Client, response: httpx.Response
62
+ ) -> Response[Union[HTTPValidationError, float]]:
59
63
  return Response(
60
64
  status_code=HTTPStatus(response.status_code),
61
65
  content=response.content,
@@ -47,7 +47,9 @@ def _get_kwargs(
47
47
  }
48
48
 
49
49
 
50
- def _parse_response(*, client: Client, response: httpx.Response) -> Optional[Union[HTTPValidationError, float]]:
50
+ def _parse_response(
51
+ *, client: Client, response: httpx.Response
52
+ ) -> Optional[Union[HTTPValidationError, float]]:
51
53
  if response.status_code == HTTPStatus.OK:
52
54
  response_200 = cast(float, response.json())
53
55
  return response_200
@@ -61,7 +63,9 @@ def _parse_response(*, client: Client, response: httpx.Response) -> Optional[Uni
61
63
  return None
62
64
 
63
65
 
64
- def _build_response(*, client: Client, response: httpx.Response) -> Response[Union[HTTPValidationError, float]]:
66
+ def _build_response(
67
+ *, client: Client, response: httpx.Response
68
+ ) -> Response[Union[HTTPValidationError, float]]:
65
69
  return Response(
66
70
  status_code=HTTPStatus(response.status_code),
67
71
  content=response.content,
@@ -37,9 +37,13 @@ def _get_kwargs(
37
37
 
38
38
  def _parse_response(
39
39
  *, client: Client, response: httpx.Response
40
- ) -> Optional[Union[HTTPValidationError, HandleStripeWebhookResponseHandleStripeWebhook]]:
40
+ ) -> Optional[
41
+ Union[HTTPValidationError, HandleStripeWebhookResponseHandleStripeWebhook]
42
+ ]:
41
43
  if response.status_code == HTTPStatus.OK:
42
- response_200 = HandleStripeWebhookResponseHandleStripeWebhook.from_dict(response.json())
44
+ response_200 = HandleStripeWebhookResponseHandleStripeWebhook.from_dict(
45
+ response.json()
46
+ )
43
47
 
44
48
  return response_200
45
49
  if response.status_code == HTTPStatus.UNPROCESSABLE_ENTITY:
@@ -54,7 +58,9 @@ def _parse_response(
54
58
 
55
59
  def _build_response(
56
60
  *, client: Client, response: httpx.Response
57
- ) -> Response[Union[HTTPValidationError, HandleStripeWebhookResponseHandleStripeWebhook]]:
61
+ ) -> Response[
62
+ Union[HTTPValidationError, HandleStripeWebhookResponseHandleStripeWebhook]
63
+ ]:
58
64
  return Response(
59
65
  status_code=HTTPStatus(response.status_code),
60
66
  content=response.content,
@@ -67,7 +73,9 @@ def sync_detailed(
67
73
  *,
68
74
  client: Client,
69
75
  stripe_signature: Union[Unset, str] = UNSET,
70
- ) -> Response[Union[HTTPValidationError, HandleStripeWebhookResponseHandleStripeWebhook]]:
76
+ ) -> Response[
77
+ Union[HTTPValidationError, HandleStripeWebhookResponseHandleStripeWebhook]
78
+ ]:
71
79
  """Handle Stripe Webhook
72
80
 
73
81
  Args:
@@ -98,7 +106,9 @@ def sync(
98
106
  *,
99
107
  client: Client,
100
108
  stripe_signature: Union[Unset, str] = UNSET,
101
- ) -> Optional[Union[HTTPValidationError, HandleStripeWebhookResponseHandleStripeWebhook]]:
109
+ ) -> Optional[
110
+ Union[HTTPValidationError, HandleStripeWebhookResponseHandleStripeWebhook]
111
+ ]:
102
112
  """Handle Stripe Webhook
103
113
 
104
114
  Args:
@@ -122,7 +132,9 @@ async def asyncio_detailed(
122
132
  *,
123
133
  client: Client,
124
134
  stripe_signature: Union[Unset, str] = UNSET,
125
- ) -> Response[Union[HTTPValidationError, HandleStripeWebhookResponseHandleStripeWebhook]]:
135
+ ) -> Response[
136
+ Union[HTTPValidationError, HandleStripeWebhookResponseHandleStripeWebhook]
137
+ ]:
126
138
  """Handle Stripe Webhook
127
139
 
128
140
  Args:
@@ -151,7 +163,9 @@ async def asyncio(
151
163
  *,
152
164
  client: Client,
153
165
  stripe_signature: Union[Unset, str] = UNSET,
154
- ) -> Optional[Union[HTTPValidationError, HandleStripeWebhookResponseHandleStripeWebhook]]:
166
+ ) -> Optional[
167
+ Union[HTTPValidationError, HandleStripeWebhookResponseHandleStripeWebhook]
168
+ ]:
155
169
  """Handle Stripe Webhook
156
170
 
157
171
  Args:
@@ -29,7 +29,9 @@ def _get_kwargs(
29
29
  }
30
30
 
31
31
 
32
- def _parse_response(*, client: Client, response: httpx.Response) -> Optional[Union[HTTPValidationError, Invoice]]:
32
+ def _parse_response(
33
+ *, client: Client, response: httpx.Response
34
+ ) -> Optional[Union[HTTPValidationError, Invoice]]:
33
35
  if response.status_code == HTTPStatus.OK:
34
36
  response_200 = Invoice.from_dict(response.json())
35
37
 
@@ -44,7 +46,9 @@ def _parse_response(*, client: Client, response: httpx.Response) -> Optional[Uni
44
46
  return None
45
47
 
46
48
 
47
- def _build_response(*, client: Client, response: httpx.Response) -> Response[Union[HTTPValidationError, Invoice]]:
49
+ def _build_response(
50
+ *, client: Client, response: httpx.Response
51
+ ) -> Response[Union[HTTPValidationError, Invoice]]:
48
52
  return Response(
49
53
  status_code=HTTPStatus(response.status_code),
50
54
  content=response.content,
@@ -38,7 +38,9 @@ def _get_kwargs(
38
38
  }
39
39
 
40
40
 
41
- def _parse_response(*, client: Client, response: httpx.Response) -> Optional[Union[Any, HTTPValidationError]]:
41
+ def _parse_response(
42
+ *, client: Client, response: httpx.Response
43
+ ) -> Optional[Union[Any, HTTPValidationError]]:
42
44
  if response.status_code == HTTPStatus.OK:
43
45
  response_200 = cast(Any, response.json())
44
46
  return response_200
@@ -52,7 +54,9 @@ def _parse_response(*, client: Client, response: httpx.Response) -> Optional[Uni
52
54
  return None
53
55
 
54
56
 
55
- def _build_response(*, client: Client, response: httpx.Response) -> Response[Union[Any, HTTPValidationError]]:
57
+ def _build_response(
58
+ *, client: Client, response: httpx.Response
59
+ ) -> Response[Union[Any, HTTPValidationError]]:
56
60
  return Response(
57
61
  status_code=HTTPStatus(response.status_code),
58
62
  content=response.content,