fal 1.5.13__py3-none-any.whl → 1.5.14__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
@@ -12,5 +12,5 @@ __version__: str
12
12
  __version_tuple__: VERSION_TUPLE
13
13
  version_tuple: VERSION_TUPLE
14
14
 
15
- __version__ = version = '1.5.13'
16
- __version_tuple__ = version_tuple = (1, 5, 13)
15
+ __version__ = version = '1.5.14'
16
+ __version_tuple__ = version_tuple = (1, 5, 14)
@@ -180,6 +180,14 @@ class FalFileRepository(FalFileRepositoryBase):
180
180
  return self._save(file, "gcs")
181
181
 
182
182
 
183
+ @dataclass
184
+ class FalFileRepositoryV3(FalFileRepositoryBase):
185
+ def save(
186
+ self, file: FileData, object_lifecycle_preference: dict[str, str] | None = None
187
+ ) -> str:
188
+ return self._save(file, "fal-cdn-v3")
189
+
190
+
183
191
  class MultipartUpload:
184
192
  MULTIPART_THRESHOLD = 100 * 1024 * 1024
185
193
  MULTIPART_CHUNK_SIZE = 100 * 1024 * 1024
@@ -548,8 +556,15 @@ class FalCDNFileRepository(FileRepository):
548
556
  }
549
557
 
550
558
 
559
+ # This is only available for internal users to have long-lived access tokens
551
560
  @dataclass
552
- class FalFileRepositoryV3(FileRepository):
561
+ class InternalFalFileRepositoryV3(FileRepository):
562
+ """
563
+ InternalFalFileRepositoryV3 is a file repository that uses the FAL CDN V3.
564
+ But generates and uses long-lived access tokens.
565
+ That way it can avoid the need to refresh the token for every upload.
566
+ """
567
+
553
568
  @retry(max_retries=3, base_delay=1, backoff_type="exponential", jitter=True)
554
569
  def save(
555
570
  self, file: FileData, object_lifecycle_preference: dict[str, str] | None
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: fal
3
- Version: 1.5.13
3
+ Version: 1.5.14
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
@@ -19,7 +19,7 @@ Requires-Dist: grpc-interceptor<1,>=0.15.0
19
19
  Requires-Dist: colorama<1,>=0.4.6
20
20
  Requires-Dist: portalocker<3,>=2.7.0
21
21
  Requires-Dist: rich<14,>=13.3.2
22
- Requires-Dist: rich-argparse
22
+ Requires-Dist: rich_argparse
23
23
  Requires-Dist: packaging>=21.3
24
24
  Requires-Dist: pathspec<1,>=0.11.1
25
25
  Requires-Dist: pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,<3
@@ -30,6 +30,7 @@ Requires-Dist: httpx>=0.15.4
30
30
  Requires-Dist: attrs>=21.3.0
31
31
  Requires-Dist: python-dateutil<3,>=2.8.0
32
32
  Requires-Dist: types-python-dateutil<3,>=2.8.0
33
+ Requires-Dist: importlib-metadata>=4.4; python_version < "3.10"
33
34
  Requires-Dist: msgpack<2,>=1.0.7
34
35
  Requires-Dist: websockets<13,>=12.0
35
36
  Requires-Dist: pillow<11,>=10.2.0
@@ -37,10 +38,6 @@ Requires-Dist: pyjwt[crypto]<3,>=2.8.0
37
38
  Requires-Dist: uvicorn<1,>=0.29.0
38
39
  Requires-Dist: cookiecutter
39
40
  Requires-Dist: tomli
40
- Requires-Dist: importlib-metadata>=4.4; python_version < "3.10"
41
- Provides-Extra: dev
42
- Requires-Dist: fal[docs,test]; extra == "dev"
43
- Requires-Dist: openapi-python-client<1,>=0.14.1; extra == "dev"
44
41
  Provides-Extra: docs
45
42
  Requires-Dist: sphinx; extra == "docs"
46
43
  Requires-Dist: sphinx-rtd-theme; extra == "docs"
@@ -51,6 +48,9 @@ Requires-Dist: pytest-asyncio; extra == "test"
51
48
  Requires-Dist: pytest-xdist; extra == "test"
52
49
  Requires-Dist: flaky; extra == "test"
53
50
  Requires-Dist: boto3; extra == "test"
51
+ Provides-Extra: dev
52
+ Requires-Dist: fal[docs,test]; extra == "dev"
53
+ Requires-Dist: openapi-python-client<1,>=0.14.1; extra == "dev"
54
54
 
55
55
  [![PyPI](https://img.shields.io/pypi/v/fal.svg?logo=PyPI)](https://pypi.org/project/fal)
56
56
  [![Tests](https://img.shields.io/github/actions/workflow/status/fal-ai/fal/integration_tests.yaml?label=Tests)](https://github.com/fal-ai/fal/actions)
@@ -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=FA7UTvfx0_o4BJaj2jDQirEbUZnaIJumpWncG7rF-Rs,413
3
+ fal/_fal_version.py,sha256=oG_gCDfdqQpBpru9Up8ucsA7xcxUMXQcBoHZ3jEU3jE,413
4
4
  fal/_serialization.py,sha256=rD2YiSa8iuzCaZohZwN_MPEB-PpSKbWRDeaIDpTEjyY,7653
5
5
  fal/_version.py,sha256=EBGqrknaf1WygENX-H4fBefLvHryvJBBGtVJetaB0NY,266
6
6
  fal/api.py,sha256=xTtPvDqaEHsq2lFsMwRZiHb4hzjVY3y6lV-xbzkSetI,43375
@@ -49,7 +49,7 @@ fal/toolkit/optimize.py,sha256=p75sovF0SmRP6zxzpIaaOmqlxvXB_xEz3XPNf59EF7w,1339
49
49
  fal/toolkit/file/__init__.py,sha256=FbNl6wD-P0aSSTUwzHt4HujBXrbC3ABmaigPQA4hRfg,70
50
50
  fal/toolkit/file/file.py,sha256=tq-zMoNLJ1NJc9g8_RTnoIZABnRhtTtQchyMULimMTY,9442
51
51
  fal/toolkit/file/types.py,sha256=MjZ6xAhKPv4rowLo2Vcbho0sX7AQ3lm3KFyYDcw0dL4,1845
52
- fal/toolkit/file/providers/fal.py,sha256=V93vQbbFevPPpPSGfgkWuaBCYZnSxjtK50Lhk-zQYi8,21016
52
+ fal/toolkit/file/providers/fal.py,sha256=9Rmbu_0XbMzzsfLuGJaCuRfVMFtdp2gS7ct1y7wqzVg,21549
53
53
  fal/toolkit/file/providers/gcp.py,sha256=iQtkoYUqbmKKpC5srVOYtrruZ3reGRm5lz4kM8bshgk,2247
54
54
  fal/toolkit/file/providers/r2.py,sha256=G2OHcCH2yWrVtXT4hWHEXUeEjFhbKO0koqHcd7hkczk,2871
55
55
  fal/toolkit/file/providers/s3.py,sha256=CfiA6rTBFfP-empp0cB9OW2c9F5iy0Z-kGwCs5HBICU,2524
@@ -127,8 +127,8 @@ openapi_fal_rest/models/workflow_node_type.py,sha256=-FzyeY2bxcNmizKbJI8joG7byRi
127
127
  openapi_fal_rest/models/workflow_schema.py,sha256=4K5gsv9u9pxx2ItkffoyHeNjBBYf6ur5bN4m_zePZNY,2019
128
128
  openapi_fal_rest/models/workflow_schema_input.py,sha256=2OkOXWHTNsCXHWS6EGDFzcJKkW5FIap-2gfO233EvZQ,1191
129
129
  openapi_fal_rest/models/workflow_schema_output.py,sha256=EblwSPAGfWfYVWw_WSSaBzQVju296is9o28rMBAd0mc,1196
130
- fal-1.5.13.dist-info/METADATA,sha256=KnN1wHCLlqb8yKwr5voS0_O4n92BUNrnRhtGh0mYbl8,3997
131
- fal-1.5.13.dist-info/WHEEL,sha256=a7TGlA-5DaHMRrarXjVbQagU3Man_dCnGIWMJr5kRWo,91
132
- fal-1.5.13.dist-info/entry_points.txt,sha256=32zwTUC1U1E7nSTIGCoANQOQ3I7-qHG5wI6gsVz5pNU,37
133
- fal-1.5.13.dist-info/top_level.txt,sha256=r257X1L57oJL8_lM0tRrfGuXFwm66i1huwQygbpLmHw,21
134
- fal-1.5.13.dist-info/RECORD,,
130
+ fal-1.5.14.dist-info/METADATA,sha256=ud8NQFdRYo9OwCPNFEkPYK9xSTgF-GFjDIAeQ4TbwVk,3997
131
+ fal-1.5.14.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
132
+ fal-1.5.14.dist-info/entry_points.txt,sha256=32zwTUC1U1E7nSTIGCoANQOQ3I7-qHG5wI6gsVz5pNU,37
133
+ fal-1.5.14.dist-info/top_level.txt,sha256=r257X1L57oJL8_lM0tRrfGuXFwm66i1huwQygbpLmHw,21
134
+ fal-1.5.14.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.4.0)
2
+ Generator: setuptools (75.6.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5