fal 1.28.3__py3-none-any.whl → 1.29.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of fal might be problematic. Click here for more details.

fal/_fal_version.py CHANGED
@@ -1,7 +1,14 @@
1
1
  # file generated by setuptools-scm
2
2
  # don't change, don't track in version control
3
3
 
4
- __all__ = ["__version__", "__version_tuple__", "version", "version_tuple"]
4
+ __all__ = [
5
+ "__version__",
6
+ "__version_tuple__",
7
+ "version",
8
+ "version_tuple",
9
+ "__commit_id__",
10
+ "commit_id",
11
+ ]
5
12
 
6
13
  TYPE_CHECKING = False
7
14
  if TYPE_CHECKING:
@@ -9,13 +16,19 @@ if TYPE_CHECKING:
9
16
  from typing import Union
10
17
 
11
18
  VERSION_TUPLE = Tuple[Union[int, str], ...]
19
+ COMMIT_ID = Union[str, None]
12
20
  else:
13
21
  VERSION_TUPLE = object
22
+ COMMIT_ID = object
14
23
 
15
24
  version: str
16
25
  __version__: str
17
26
  __version_tuple__: VERSION_TUPLE
18
27
  version_tuple: VERSION_TUPLE
28
+ commit_id: COMMIT_ID
29
+ __commit_id__: COMMIT_ID
19
30
 
20
- __version__ = version = '1.28.3'
21
- __version_tuple__ = version_tuple = (1, 28, 3)
31
+ __version__ = version = '1.29.0'
32
+ __version_tuple__ = version_tuple = (1, 29, 0)
33
+
34
+ __commit_id__ = commit_id = None
fal/cli/apps.py CHANGED
@@ -69,8 +69,8 @@ def _list(args):
69
69
  args.console.print(table)
70
70
  elif args.output == "json":
71
71
  apps_as_dicts = [asdict(a) for a in apps]
72
- res = json.dumps(apps_as_dicts)
73
- args.console.print({"apps": res})
72
+ res = json.dumps({"apps": apps_as_dicts})
73
+ args.console.print(res)
74
74
 
75
75
 
76
76
  def _add_list_parser(subparsers, parents):
fal/cli/deploy.py CHANGED
@@ -1,4 +1,5 @@
1
1
  import argparse
2
+ import json
2
3
  from collections import namedtuple
3
4
  from pathlib import Path
4
5
  from typing import Literal, Optional, Tuple, Union
@@ -124,10 +125,12 @@ def _deploy_from_reference(
124
125
 
125
126
  if args.output == "json":
126
127
  args.console.print(
127
- {
128
- "revision": app_id,
129
- "app_name": app_name,
130
- }
128
+ json.dumps(
129
+ {
130
+ "revision": app_id,
131
+ "app_name": app_name,
132
+ }
133
+ )
131
134
  )
132
135
  elif args.output == "pretty":
133
136
  args.console.print(
@@ -10,7 +10,7 @@ from dataclasses import dataclass
10
10
  from datetime import datetime, timezone
11
11
  from pathlib import Path
12
12
  from typing import Any, Dict, Generator, Generic, TypeVar
13
- from urllib.error import HTTPError
13
+ from urllib.error import HTTPError, URLError
14
14
  from urllib.parse import urlparse, urlunparse
15
15
  from urllib.request import Request, urlopen
16
16
  from urllib.response import addinfourl
@@ -44,6 +44,11 @@ def _urlopen(
44
44
  def _should_retry(exc: Exception) -> bool:
45
45
  if isinstance(exc, HTTPError) and exc.code in RETRY_CODES:
46
46
  return True
47
+ elif type(exc) is URLError:
48
+ # URLError is a base class for other errors,
49
+ # but it can be raised directly, e.g.
50
+ # URLError: <urlopen error [Errno -3] Temporary failure in name resolution>
51
+ return True
47
52
 
48
53
  if isinstance(exc, TimeoutError):
49
54
  return True
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fal
3
- Version: 1.28.3
3
+ Version: 1.29.0
4
4
  Summary: fal is an easy-to-use Serverless Python Framework
5
5
  Author: Features & Labels <support@fal.ai>
6
6
  Requires-Python: >=3.8
@@ -1,6 +1,6 @@
1
1
  fal/__init__.py,sha256=wXs1G0gSc7ZK60-bHe-B2m0l_sA6TrFk4BxY0tMoLe8,784
2
2
  fal/__main__.py,sha256=4JMK66Wj4uLZTKbF-sT3LAxOsr6buig77PmOkJCRRxw,83
3
- fal/_fal_version.py,sha256=zl2Qa-ow_Xigp5Wrwp5UxpbNaPBnMse892EKHaAbzJs,513
3
+ fal/_fal_version.py,sha256=n_lSuEHJgb4rULoS5dvoiQp1WmyrS2tr5qmwqkMv_jI,706
4
4
  fal/_serialization.py,sha256=npXNsFJ5G7jzBeBIyVMH01Ww34mGY4XWhHpRbSrTtnQ,7598
5
5
  fal/_version.py,sha256=1BbTFnucNC_6ldKJ_ZoC722_UkW4S9aDBSW9L0fkKAw,2315
6
6
  fal/api.py,sha256=TWUpQICgsRO5aDdRP8A3sFI26P6QM93TobcW9M4E0lQ,47501
@@ -23,12 +23,12 @@ fal/auth/local.py,sha256=sndkM6vKpeVny6NHTacVlTbiIFqaksOmw0Viqs_RN1U,1790
23
23
  fal/cli/__init__.py,sha256=padK4o0BFqq61kxAA1qQ0jYr2SuhA2mf90B3AaRkmJA,37
24
24
  fal/cli/_utils.py,sha256=ulYezhr3G29nTIF8MDQ6tsW01Oj1zPo-YSqMoBi05Ic,1871
25
25
  fal/cli/api.py,sha256=ZuDE_PIC-czzneTAWMwvC7P7WnwIyluNZSuJqzCFhqI,2640
26
- fal/cli/apps.py,sha256=eRTrJTewXCcJMVDMusFEfsUf7C0ygsuTVpbw8j6FzkI,11008
26
+ fal/cli/apps.py,sha256=73vLbMTpgadd0p_S6RW8t7NKpTmIMO_W2mYoWbyZvcQ,11008
27
27
  fal/cli/auth.py,sha256=Qe-Z3ycXJnOzHimz5PjCQYoni8MF4csmdL19yGN7a1o,5171
28
28
  fal/cli/cli_nested_json.py,sha256=veSZU8_bYV3Iu1PAoxt-4BMBraNIqgH5nughbs2UKvE,13539
29
29
  fal/cli/create.py,sha256=a8WDq-nJLFTeoIXqpb5cr7GR7YR9ZZrQCawNm34KXXE,627
30
30
  fal/cli/debug.py,sha256=u_urnyFzSlNnrq93zz_GXE9FX4VyVxDoamJJyrZpFI0,1312
31
- fal/cli/deploy.py,sha256=He09liHnyIWEuDltZSin5_elH5Jyeeu-gUz7HRbkzuQ,8351
31
+ fal/cli/deploy.py,sha256=RB6UZCWE1Jp8rWkepfwQyuAy09Mq-O9rmXjWg7k5DEU,8425
32
32
  fal/cli/doctor.py,sha256=U4ne9LX5gQwNblsYQ27XdO8AYDgbYjTO39EtxhwexRM,983
33
33
  fal/cli/files.py,sha256=pSgAnTm2eHdP-IPkMIVfnK_Ii7mkSSOVgvbsiFUVBC0,2936
34
34
  fal/cli/keys.py,sha256=7Sf4DT4le89G42eAOt0ltRjbZAtE70AVQ62hmjZhUy0,3059
@@ -61,7 +61,7 @@ fal/toolkit/audio/audio.py,sha256=gt458h989iQ-EhQSH-mCuJuPBY4RneLJE05f_QWU1E0,57
61
61
  fal/toolkit/file/__init__.py,sha256=FbNl6wD-P0aSSTUwzHt4HujBXrbC3ABmaigPQA4hRfg,70
62
62
  fal/toolkit/file/file.py,sha256=_KCKmtmBkBIKD_gFOZALV10dCtOFZTC9MQw2qmdeevw,11013
63
63
  fal/toolkit/file/types.py,sha256=MMAH_AyLOhowQPesOv1V25wB4qgbJ3vYNlnTPbdSv1M,2304
64
- fal/toolkit/file/providers/fal.py,sha256=Ph8v3Cm_eFu1b1AXiPKZQ5r8AWUALD3Wk18uw3z8RDQ,46910
64
+ fal/toolkit/file/providers/fal.py,sha256=z2Htg7DJoBxq_y4Q71KOGM1mHvJzUQCGtz2_m2lqK6c,47155
65
65
  fal/toolkit/file/providers/gcp.py,sha256=DKeZpm1MjwbvEsYvkdXUtuLIJDr_UNbqXj_Mfv3NTeo,2437
66
66
  fal/toolkit/file/providers/r2.py,sha256=YqnYkkAo_ZKIa-xoSuDnnidUFwJWHdziAR34PE6irdI,3061
67
67
  fal/toolkit/file/providers/s3.py,sha256=EI45T54Mox7lHZKROss_O8o0DIn3CHP9k1iaNYVrxvg,2714
@@ -142,8 +142,8 @@ openapi_fal_rest/models/workflow_node_type.py,sha256=-FzyeY2bxcNmizKbJI8joG7byRi
142
142
  openapi_fal_rest/models/workflow_schema.py,sha256=4K5gsv9u9pxx2ItkffoyHeNjBBYf6ur5bN4m_zePZNY,2019
143
143
  openapi_fal_rest/models/workflow_schema_input.py,sha256=2OkOXWHTNsCXHWS6EGDFzcJKkW5FIap-2gfO233EvZQ,1191
144
144
  openapi_fal_rest/models/workflow_schema_output.py,sha256=EblwSPAGfWfYVWw_WSSaBzQVju296is9o28rMBAd0mc,1196
145
- fal-1.28.3.dist-info/METADATA,sha256=Kiu3zHQJmCNTMO1qEmsX-fypffI2zBIpX89ofxEkcf4,4089
146
- fal-1.28.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
147
- fal-1.28.3.dist-info/entry_points.txt,sha256=32zwTUC1U1E7nSTIGCoANQOQ3I7-qHG5wI6gsVz5pNU,37
148
- fal-1.28.3.dist-info/top_level.txt,sha256=r257X1L57oJL8_lM0tRrfGuXFwm66i1huwQygbpLmHw,21
149
- fal-1.28.3.dist-info/RECORD,,
145
+ fal-1.29.0.dist-info/METADATA,sha256=SiKSUGjpp9TXi3xwebvMXKLZXzUyzwG4BAwrNtX3sAs,4089
146
+ fal-1.29.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
147
+ fal-1.29.0.dist-info/entry_points.txt,sha256=32zwTUC1U1E7nSTIGCoANQOQ3I7-qHG5wI6gsVz5pNU,37
148
+ fal-1.29.0.dist-info/top_level.txt,sha256=r257X1L57oJL8_lM0tRrfGuXFwm66i1huwQygbpLmHw,21
149
+ fal-1.29.0.dist-info/RECORD,,
File without changes