fal 1.5.17__py3-none-any.whl → 1.6.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 +2 -2
- fal/app.py +2 -2
- fal/cli/main.py +2 -2
- fal/cli/{machine.py → runners.py} +6 -5
- fal/toolkit/file/file.py +3 -3
- {fal-1.5.17.dist-info → fal-1.6.0.dist-info}/METADATA +2 -2
- {fal-1.5.17.dist-info → fal-1.6.0.dist-info}/RECORD +10 -10
- {fal-1.5.17.dist-info → fal-1.6.0.dist-info}/WHEEL +0 -0
- {fal-1.5.17.dist-info → fal-1.6.0.dist-info}/entry_points.txt +0 -0
- {fal-1.5.17.dist-info → fal-1.6.0.dist-info}/top_level.txt +0 -0
fal/_fal_version.py
CHANGED
fal/app.py
CHANGED
|
@@ -23,7 +23,7 @@ from fal._serialization import include_modules_from
|
|
|
23
23
|
from fal.api import RouteSignature
|
|
24
24
|
from fal.exceptions import FalServerlessException, RequestCancelledException
|
|
25
25
|
from fal.logging import get_logger
|
|
26
|
-
from fal.toolkit.file import
|
|
26
|
+
from fal.toolkit.file import request_lifecycle_preference
|
|
27
27
|
from fal.toolkit.file.providers.fal import LIFECYCLE_PREFERENCE
|
|
28
28
|
|
|
29
29
|
REALTIME_APP_REQUIREMENTS = ["websockets", "msgpack"]
|
|
@@ -342,7 +342,7 @@ class App(fal.api.BaseServable):
|
|
|
342
342
|
@app.middleware("http")
|
|
343
343
|
async def set_global_object_preference(request, call_next):
|
|
344
344
|
try:
|
|
345
|
-
preference_dict =
|
|
345
|
+
preference_dict = request_lifecycle_preference(request)
|
|
346
346
|
if preference_dict is not None:
|
|
347
347
|
# This will not work properly for apps with multiplexing enabled
|
|
348
348
|
# we may mix up the preferences between requests
|
fal/cli/main.py
CHANGED
|
@@ -6,7 +6,7 @@ from fal import __version__
|
|
|
6
6
|
from fal.console import console
|
|
7
7
|
from fal.console.icons import CROSS_ICON
|
|
8
8
|
|
|
9
|
-
from . import apps, auth, create, deploy, doctor, keys,
|
|
9
|
+
from . import apps, auth, create, deploy, doctor, keys, run, runners, secrets
|
|
10
10
|
from .debug import debugtools, get_debug_parser
|
|
11
11
|
from .parser import FalParser, FalParserExit
|
|
12
12
|
|
|
@@ -31,7 +31,7 @@ def _get_main_parser() -> argparse.ArgumentParser:
|
|
|
31
31
|
required=True,
|
|
32
32
|
)
|
|
33
33
|
|
|
34
|
-
for cmd in [auth, apps, deploy, run, keys, secrets, doctor, create,
|
|
34
|
+
for cmd in [auth, apps, deploy, run, keys, secrets, doctor, create, runners]:
|
|
35
35
|
cmd.add_parser(subparsers, parents)
|
|
36
36
|
|
|
37
37
|
return parser
|
|
@@ -10,7 +10,7 @@ def _kill(args):
|
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
def _add_kill_parser(subparsers, parents):
|
|
13
|
-
kill_help = "Kill a
|
|
13
|
+
kill_help = "Kill a runner."
|
|
14
14
|
parser = subparsers.add_parser(
|
|
15
15
|
"kill",
|
|
16
16
|
description=kill_help,
|
|
@@ -25,12 +25,13 @@ def _add_kill_parser(subparsers, parents):
|
|
|
25
25
|
|
|
26
26
|
|
|
27
27
|
def add_parser(main_subparsers, parents):
|
|
28
|
-
|
|
28
|
+
runners_help = "Manage fal runners."
|
|
29
29
|
parser = main_subparsers.add_parser(
|
|
30
|
-
"
|
|
31
|
-
description=
|
|
32
|
-
help=
|
|
30
|
+
"runners",
|
|
31
|
+
description=runners_help,
|
|
32
|
+
help=runners_help,
|
|
33
33
|
parents=parents,
|
|
34
|
+
aliases=["machine"], # backwards compatibility
|
|
34
35
|
)
|
|
35
36
|
|
|
36
37
|
subparsers = parser.add_subparsers(
|
fal/toolkit/file/file.py
CHANGED
|
@@ -151,7 +151,7 @@ class File(BaseModel):
|
|
|
151
151
|
fdata = FileData(data, content_type, file_name)
|
|
152
152
|
|
|
153
153
|
object_lifecycle_preference = (
|
|
154
|
-
|
|
154
|
+
request_lifecycle_preference(request) or LIFECYCLE_PREFERENCE.get()
|
|
155
155
|
)
|
|
156
156
|
|
|
157
157
|
try:
|
|
@@ -207,7 +207,7 @@ class File(BaseModel):
|
|
|
207
207
|
|
|
208
208
|
content_type = content_type or "application/octet-stream"
|
|
209
209
|
object_lifecycle_preference = (
|
|
210
|
-
|
|
210
|
+
request_lifecycle_preference(request) or LIFECYCLE_PREFERENCE.get()
|
|
211
211
|
)
|
|
212
212
|
|
|
213
213
|
try:
|
|
@@ -293,7 +293,7 @@ class CompressedFile(File):
|
|
|
293
293
|
shutil.rmtree(self.extract_dir)
|
|
294
294
|
|
|
295
295
|
|
|
296
|
-
def
|
|
296
|
+
def request_lifecycle_preference(request: Optional[Request]) -> dict[str, str] | None:
|
|
297
297
|
import json
|
|
298
298
|
|
|
299
299
|
if request is None:
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: fal
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.6.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
|
|
7
7
|
Description-Content-Type: text/markdown
|
|
8
|
-
Requires-Dist: isolate[build]<0.
|
|
8
|
+
Requires-Dist: isolate[build]<0.16.0,>=0.15.0
|
|
9
9
|
Requires-Dist: isolate-proto<0.7.0,>=0.6.0
|
|
10
10
|
Requires-Dist: grpcio==1.64.0
|
|
11
11
|
Requires-Dist: dill==0.3.7
|
|
@@ -1,10 +1,10 @@
|
|
|
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=
|
|
3
|
+
fal/_fal_version.py,sha256=Ry70pc5l-IBhT9gahlkNwZPp4g0CzVEWqsat9H-UASY,411
|
|
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
|
|
7
|
-
fal/app.py,sha256=
|
|
7
|
+
fal/app.py,sha256=ksp9Xv5EY3mL5FMfWLrIgVUQehm1o89RfW-8HeJpGzQ,22636
|
|
8
8
|
fal/apps.py,sha256=RpmElElJnDYjsTRQOdNYiJwd74GEOGYA38L5O5GzNEg,11068
|
|
9
9
|
fal/container.py,sha256=V7riyyq8AZGwEX9QaqRQDZyDN_bUKeRKV1OOZArXjL0,622
|
|
10
10
|
fal/files.py,sha256=QgfYfMKmNobMPufrAP_ga1FKcIAlSbw18Iar1-0qepo,2650
|
|
@@ -27,10 +27,10 @@ fal/cli/debug.py,sha256=u_urnyFzSlNnrq93zz_GXE9FX4VyVxDoamJJyrZpFI0,1312
|
|
|
27
27
|
fal/cli/deploy.py,sha256=ZBM4pLDDj9ZntlSoFvK_-ZGO-lAOHoZFkYXS-OAxXT0,7461
|
|
28
28
|
fal/cli/doctor.py,sha256=U4ne9LX5gQwNblsYQ27XdO8AYDgbYjTO39EtxhwexRM,983
|
|
29
29
|
fal/cli/keys.py,sha256=trDpA3LJu9S27qE_K8Hr6fKLK4vwVzbxUHq8TFrV4pw,3157
|
|
30
|
-
fal/cli/
|
|
31
|
-
fal/cli/main.py,sha256=ivLtV5XYDUNB5FydVjBTL_yZCwFSYekODYh9RGDwYG0,2027
|
|
30
|
+
fal/cli/main.py,sha256=O0i9wdLPxcd1u4CvXit-ufkT_UnON-baTN6v9HaHPmw,2027
|
|
32
31
|
fal/cli/parser.py,sha256=edCqFWYAQSOhrxeEK9BtFRlTEUAlG2JUDjS_vhZ_nHE,2868
|
|
33
32
|
fal/cli/run.py,sha256=J1lSZ_wJIhrygSduMr0Wf2pQ8OUJlFbyH5KKUjxDF6w,1204
|
|
33
|
+
fal/cli/runners.py,sha256=5pXuKq7nSkf0VpnppNnvxwP8XDq0SWkc6mkfizDwWMQ,1046
|
|
34
34
|
fal/cli/secrets.py,sha256=740msFm7d41HruudlcfqUXlFl53N-WmChsQP9B9M9Po,2572
|
|
35
35
|
fal/console/__init__.py,sha256=ernZ4bzvvliQh5SmrEqQ7lA5eVcbw6Ra2jalKtA7dxg,132
|
|
36
36
|
fal/console/icons.py,sha256=De9MfFaSkO2Lqfne13n3PrYfTXJVIzYZVqYn5BWsdrA,108
|
|
@@ -48,7 +48,7 @@ fal/toolkit/__init__.py,sha256=sV95wiUzKoiDqF9vDgq4q-BLa2sD6IpuKSqp5kdTQNE,658
|
|
|
48
48
|
fal/toolkit/exceptions.py,sha256=elHZ7dHCJG5zlHGSBbz-ilkZe9QUvQMomJFi8Pt91LA,198
|
|
49
49
|
fal/toolkit/optimize.py,sha256=p75sovF0SmRP6zxzpIaaOmqlxvXB_xEz3XPNf59EF7w,1339
|
|
50
50
|
fal/toolkit/file/__init__.py,sha256=FbNl6wD-P0aSSTUwzHt4HujBXrbC3ABmaigPQA4hRfg,70
|
|
51
|
-
fal/toolkit/file/file.py,sha256=
|
|
51
|
+
fal/toolkit/file/file.py,sha256=fJpvydwefQ5CT_3q8YYfckH_6MdSFLF-se6jNOWGGxc,9475
|
|
52
52
|
fal/toolkit/file/types.py,sha256=MjZ6xAhKPv4rowLo2Vcbho0sX7AQ3lm3KFyYDcw0dL4,1845
|
|
53
53
|
fal/toolkit/file/providers/fal.py,sha256=V5CZz6EKmIs2-nm_mWeN9YxUOZCKIuPsZFjkZyazrgk,22375
|
|
54
54
|
fal/toolkit/file/providers/gcp.py,sha256=iQtkoYUqbmKKpC5srVOYtrruZ3reGRm5lz4kM8bshgk,2247
|
|
@@ -128,8 +128,8 @@ openapi_fal_rest/models/workflow_node_type.py,sha256=-FzyeY2bxcNmizKbJI8joG7byRi
|
|
|
128
128
|
openapi_fal_rest/models/workflow_schema.py,sha256=4K5gsv9u9pxx2ItkffoyHeNjBBYf6ur5bN4m_zePZNY,2019
|
|
129
129
|
openapi_fal_rest/models/workflow_schema_input.py,sha256=2OkOXWHTNsCXHWS6EGDFzcJKkW5FIap-2gfO233EvZQ,1191
|
|
130
130
|
openapi_fal_rest/models/workflow_schema_output.py,sha256=EblwSPAGfWfYVWw_WSSaBzQVju296is9o28rMBAd0mc,1196
|
|
131
|
-
fal-1.
|
|
132
|
-
fal-1.
|
|
133
|
-
fal-1.
|
|
134
|
-
fal-1.
|
|
135
|
-
fal-1.
|
|
131
|
+
fal-1.6.0.dist-info/METADATA,sha256=xCN7CJgGzbkaqcRtoA0HcirBCGV-I8qWFFNvZr5rE0U,3996
|
|
132
|
+
fal-1.6.0.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
|
|
133
|
+
fal-1.6.0.dist-info/entry_points.txt,sha256=32zwTUC1U1E7nSTIGCoANQOQ3I7-qHG5wI6gsVz5pNU,37
|
|
134
|
+
fal-1.6.0.dist-info/top_level.txt,sha256=r257X1L57oJL8_lM0tRrfGuXFwm66i1huwQygbpLmHw,21
|
|
135
|
+
fal-1.6.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|