fal 1.47.0__py3-none-any.whl → 1.49.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
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
28
28
  commit_id: COMMIT_ID
29
29
  __commit_id__: COMMIT_ID
30
30
 
31
- __version__ = version = '1.47.0'
32
- __version_tuple__ = version_tuple = (1, 47, 0)
31
+ __version__ = version = '1.49.0'
32
+ __version_tuple__ = version_tuple = (1, 49, 0)
33
33
 
34
34
  __commit_id__ = commit_id = None
fal/api/client.py CHANGED
@@ -4,7 +4,7 @@ import os
4
4
  from dataclasses import dataclass
5
5
  from typing import List, Optional
6
6
 
7
- from fal.api import FAL_SERVERLESS_DEFAULT_URL
7
+ from fal.api import FAL_SERVERLESS_DEFAULT_URL, FalServerlessHost
8
8
  from fal.sdk import (
9
9
  AliasInfo,
10
10
  Credentials,
@@ -114,3 +114,10 @@ class SyncServerlessClient:
114
114
  os.environ["FAL_PROFILE"] = prev
115
115
 
116
116
  return get_default_credentials(team=self.team)
117
+
118
+ def _create_host(self, *, local_file_path: str = "") -> FalServerlessHost:
119
+ return FalServerlessHost(
120
+ self._grpc_host,
121
+ local_file_path=local_file_path,
122
+ credentials=self._credentials,
123
+ )
fal/api/deploy.py CHANGED
@@ -87,7 +87,7 @@ def _deploy_from_reference(
87
87
  strategy: Optional[DeploymentStrategyLiteral],
88
88
  scale: bool,
89
89
  ) -> DeploymentResult:
90
- from fal.api import FalServerlessError, FalServerlessHost
90
+ from fal.api import FalServerlessError
91
91
  from fal.utils import load_function_from
92
92
 
93
93
  file_path, func_name = app_ref
@@ -106,7 +106,7 @@ def _deploy_from_reference(
106
106
  file_path = str(file_path) # type: ignore
107
107
 
108
108
  user = _get_user()
109
- host = FalServerlessHost(client._grpc_host, local_file_path=str(file_path))
109
+ host = client._create_host(local_file_path=str(file_path))
110
110
  loaded = load_function_from(
111
111
  host,
112
112
  file_path, # type: ignore
fal/cli/files.py CHANGED
@@ -42,6 +42,13 @@ def _mv(args):
42
42
  fs.mv(args.source, args.destination)
43
43
 
44
44
 
45
+ def _rm(args):
46
+ from fal.files import FalFileSystem
47
+
48
+ fs = FalFileSystem()
49
+ fs.rm(args.path)
50
+
51
+
45
52
  def add_parser(main_subparsers, parents):
46
53
  files_help = "Manage fal files."
47
54
  parser = main_subparsers.add_parser(
@@ -126,3 +133,13 @@ def add_parser(main_subparsers, parents):
126
133
  mv_parser.add_argument("source", type=str, help="Remote source path")
127
134
  mv_parser.add_argument("destination", type=str, help="Remote destination path")
128
135
  mv_parser.set_defaults(func=_mv)
136
+
137
+ rm_help = "Recursively remove a remote file or directory."
138
+ rm_parser = subparsers.add_parser(
139
+ "rm",
140
+ description=rm_help,
141
+ help=rm_help,
142
+ parents=parents,
143
+ )
144
+ rm_parser.add_argument("path", type=str, help="Remote path")
145
+ rm_parser.set_defaults(func=_rm)
fal/cli/run.py CHANGED
@@ -5,7 +5,7 @@ from .parser import FalClientParser, RefAction
5
5
 
6
6
 
7
7
  def _run(args):
8
- from fal.api import FalServerlessHost
8
+ from fal.api.client import SyncServerlessClient
9
9
  from fal.utils import load_function_from
10
10
 
11
11
  if is_app_name(args.func_ref):
@@ -17,7 +17,8 @@ def _run(args):
17
17
  # Turn relative path into absolute path for files
18
18
  file_path = str(Path(file_path).absolute())
19
19
 
20
- host = FalServerlessHost(args.host, local_file_path=file_path)
20
+ client = SyncServerlessClient(host=args.host, team=args.team)
21
+ host = client._create_host(local_file_path=file_path)
21
22
 
22
23
  loaded = load_function_from(host, file_path, func_name)
23
24
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fal
3
- Version: 1.47.0
3
+ Version: 1.49.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
@@ -42,6 +42,7 @@ Requires-Dist: cookiecutter
42
42
  Requires-Dist: tomli<3,>2
43
43
  Requires-Dist: tomli-w<2,>=1
44
44
  Requires-Dist: fsspec
45
+ Requires-Dist: tblib<3.2.0
45
46
  Provides-Extra: docs
46
47
  Requires-Dist: sphinx<8.2.0; extra == "docs"
47
48
  Requires-Dist: sphinx-rtd-theme; extra == "docs"
@@ -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=AC7UG3sxgeLuYPm4PsUGj8NvnIK0NBQ2MrOYq5BiW-E,706
3
+ fal/_fal_version.py,sha256=fJg5iqaJkFhIUzhrAciozEntBLircOozY9YPipAKO6w,706
4
4
  fal/_serialization.py,sha256=npXNsFJ5G7jzBeBIyVMH01Ww34mGY4XWhHpRbSrTtnQ,7598
5
5
  fal/_version.py,sha256=1BbTFnucNC_6ldKJ_ZoC722_UkW4S9aDBSW9L0fkKAw,2315
6
6
  fal/app.py,sha256=mW7H2k41y4-BTEyvVmwTMEfVy2a5_ctAHTZEtQCn2ig,31061
@@ -20,8 +20,8 @@ fal/workflows.py,sha256=Zl4f6Bs085hY40zmqScxDUyCu7zXkukDbW02iYOLTTI,14805
20
20
  fal/api/__init__.py,sha256=N8FaQCgKU05WTvxYBB8PYzkDJ34p3w8AsloRM2-q4SA,33
21
21
  fal/api/api.py,sha256=m67EqjDcCiCHFdBDkVpCqFEgiW2panqKXay-JZxpXzo,51940
22
22
  fal/api/apps.py,sha256=YSy2RUvFGBmXp8OrtWf49FMLvzwS79e0LD426naaMx0,2219
23
- fal/api/client.py,sha256=TYTaCz0mh5fnLcV37JUqDhWFYU6rqaqbfVli_jpaq_g,3665
24
- fal/api/deploy.py,sha256=dJaGP3ndafTI8f2SpTjA17ZZgDY_-P27rwdlg2Pycfo,6475
23
+ fal/api/client.py,sha256=DGKL-FAc_JNTacZ7MW6zDWkozTbECQSeo3lQQoaFIRY,3925
24
+ fal/api/deploy.py,sha256=vNxChrKn3sbEqMymQJw25UE_QeglMIUJRmPyfvZAXP8,6439
25
25
  fal/api/runners.py,sha256=4P1llGDhcl0xM5UayK8XvxGMU-o07gzZaAchkUUKREY,484
26
26
  fal/auth/__init__.py,sha256=mtyQou8DGHC-COjW9WbtRyyzjyt7fMlhVmsB4U-CBh4,6509
27
27
  fal/auth/auth0.py,sha256=g5OgEKe4rsbkLQp6l7EauOAVL6WsmKjuA1wmzmyvvhc,5354
@@ -36,13 +36,13 @@ fal/cli/create.py,sha256=a8WDq-nJLFTeoIXqpb5cr7GR7YR9ZZrQCawNm34KXXE,627
36
36
  fal/cli/debug.py,sha256=mTCjSpEZaNKcX225VZtry-BspFKSHURUuxUFuX6x5Cc,1488
37
37
  fal/cli/deploy.py,sha256=wTpMn1J9X8fytfeLKvJjwLN8sqcPKzWG0loin8ymqZ4,3890
38
38
  fal/cli/doctor.py,sha256=8SZrYG9Ku0F6LLUHtFdKopdIgZfFkw5E3Mwrxa9KOSk,1613
39
- fal/cli/files.py,sha256=-j0q4g53A7CWSczGLdfeUCTSd4zXoV3pfZFdman7JOw,3450
39
+ fal/cli/files.py,sha256=8p_xqJJaimC3ezrw-d8Ybxb21iGC2DgRFyCF1nGhpPY,3855
40
40
  fal/cli/keys.py,sha256=iQVMr3WT8CUqSQT3qeCCiy6rRwoux9F-UEaC4bCwMWo,3754
41
41
  fal/cli/main.py,sha256=LDy3gze9TRsvGa4uSNc8NMFmWMLpsyoC-msteICNiso,3371
42
42
  fal/cli/parser.py,sha256=siSY1kxqczZIs3l_jLwug_BpVzY_ZqHpewON3am83Ow,6658
43
43
  fal/cli/profile.py,sha256=PAY_ffifCT71VJ8VxfDVaXPT0U1oN8drvWZDFRXwvek,6678
44
44
  fal/cli/queue.py,sha256=YhcD0URGeqaJXqTl1hPEV9-UqdWsQ-4beG5xE9AGLJI,2727
45
- fal/cli/run.py,sha256=xFcNxBWD60PTbW51R4qqLifUL7dqgYYvw38Nz-18ZWc,1365
45
+ fal/cli/run.py,sha256=l3wq-Fa3bCznKrdsC-4ouAU_74rAjrb-SqRCWEuGJQM,1432
46
46
  fal/cli/runners.py,sha256=29SQqBQQidABiDYaW-SA68HjxVw4tbxfXwimevX_xkw,17282
47
47
  fal/cli/secrets.py,sha256=HfIeO2IZpCEiBC6Cs5Kpi3zckfDnc7GsLwLdgj3NnPU,3085
48
48
  fal/cli/teams.py,sha256=_JcNcf659ZoLBFOxKnVP5A6Pyk1jY1vh4_xzMweYIDo,1285
@@ -152,8 +152,8 @@ openapi_fal_rest/models/workflow_node_type.py,sha256=-FzyeY2bxcNmizKbJI8joG7byRi
152
152
  openapi_fal_rest/models/workflow_schema.py,sha256=4K5gsv9u9pxx2ItkffoyHeNjBBYf6ur5bN4m_zePZNY,2019
153
153
  openapi_fal_rest/models/workflow_schema_input.py,sha256=2OkOXWHTNsCXHWS6EGDFzcJKkW5FIap-2gfO233EvZQ,1191
154
154
  openapi_fal_rest/models/workflow_schema_output.py,sha256=EblwSPAGfWfYVWw_WSSaBzQVju296is9o28rMBAd0mc,1196
155
- fal-1.47.0.dist-info/METADATA,sha256=bvggcAXgYK1uoCW0kF4_mZxZ8eeu4haFvmuVRp9QdVE,4223
156
- fal-1.47.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
157
- fal-1.47.0.dist-info/entry_points.txt,sha256=32zwTUC1U1E7nSTIGCoANQOQ3I7-qHG5wI6gsVz5pNU,37
158
- fal-1.47.0.dist-info/top_level.txt,sha256=r257X1L57oJL8_lM0tRrfGuXFwm66i1huwQygbpLmHw,21
159
- fal-1.47.0.dist-info/RECORD,,
155
+ fal-1.49.0.dist-info/METADATA,sha256=BAfdnjxObX7clbLuf6iX1GJ7IA9OVipE4H0OnWxwbws,4250
156
+ fal-1.49.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
157
+ fal-1.49.0.dist-info/entry_points.txt,sha256=32zwTUC1U1E7nSTIGCoANQOQ3I7-qHG5wI6gsVz5pNU,37
158
+ fal-1.49.0.dist-info/top_level.txt,sha256=r257X1L57oJL8_lM0tRrfGuXFwm66i1huwQygbpLmHw,21
159
+ fal-1.49.0.dist-info/RECORD,,
File without changes