fal 1.6.0__py3-none-any.whl → 1.6.1__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.6.0'
16
- __version_tuple__ = version_tuple = (1, 6, 0)
15
+ __version__ = version = '1.6.1'
16
+ __version_tuple__ = version_tuple = (1, 6, 1)
fal/app.py CHANGED
@@ -248,6 +248,14 @@ def _to_fal_app_name(name: str) -> str:
248
248
  return "-".join(part.lower() for part in PART_FINDER_RE.findall(name))
249
249
 
250
250
 
251
+ def _print_python_packages() -> None:
252
+ from pkg_resources import working_set
253
+
254
+ packages = [f"{package.key}=={package.version}" for package in working_set]
255
+
256
+ print("[debug] Python packages installed:", ", ".join(packages))
257
+
258
+
251
259
  class App(fal.api.BaseServable):
252
260
  requirements: ClassVar[list[str]] = []
253
261
  machine_type: ClassVar[str] = "S"
@@ -305,6 +313,7 @@ class App(fal.api.BaseServable):
305
313
 
306
314
  @asynccontextmanager
307
315
  async def lifespan(self, app: fastapi.FastAPI):
316
+ _print_python_packages()
308
317
  await _call_any_fn(self.setup)
309
318
  try:
310
319
  yield
fal/cli/_utils.py CHANGED
@@ -35,5 +35,6 @@ def get_app_data_from_toml(app_name):
35
35
 
36
36
  app_auth = app_data.get("auth", "private")
37
37
  app_deployment_strategy = app_data.get("deployment_strategy", "recreate")
38
+ app_no_scale = app_data.get("no_scale", False)
38
39
 
39
- return app_ref, app_auth, app_deployment_strategy
40
+ return app_ref, app_auth, app_deployment_strategy, app_no_scale
fal/cli/deploy.py CHANGED
@@ -68,6 +68,7 @@ def _deploy_from_reference(
68
68
  args,
69
69
  auth: Optional[Literal["public", "shared", "private"]] = None,
70
70
  deployment_strategy: Optional[Literal["recreate", "rolling"]] = None,
71
+ no_scale: bool = False,
71
72
  ):
72
73
  from fal.api import FalServerlessError, FalServerlessHost
73
74
  from fal.utils import load_function_from
@@ -106,7 +107,7 @@ def _deploy_from_reference(
106
107
  application_auth_mode=app_auth,
107
108
  metadata=isolated_function.options.host.get("metadata", {}),
108
109
  deployment_strategy=deployment_strategy,
109
- scale=not args.no_scale,
110
+ scale=not no_scale,
110
111
  )
111
112
 
112
113
  if app_id:
@@ -139,7 +140,9 @@ def _deploy(args):
139
140
  raise ValueError("Cannot use --app-name or --auth with app name reference.")
140
141
 
141
142
  app_name = args.app_ref[0]
142
- app_ref, app_auth, app_deployment_strategy = get_app_data_from_toml(app_name)
143
+ app_ref, app_auth, app_deployment_strategy, app_no_scale = (
144
+ get_app_data_from_toml(app_name)
145
+ )
143
146
  file_path, func_name = RefAction.split_ref(app_ref)
144
147
 
145
148
  # path/to/myfile.py::MyApp
@@ -148,6 +151,7 @@ def _deploy(args):
148
151
  app_name = args.app_name
149
152
  app_auth = args.auth
150
153
  app_deployment_strategy = args.strategy
154
+ app_no_scale = args.no_scale
151
155
 
152
156
  _deploy_from_reference(
153
157
  (file_path, func_name),
@@ -155,6 +159,7 @@ def _deploy(args):
155
159
  args,
156
160
  app_auth,
157
161
  app_deployment_strategy,
162
+ app_no_scale,
158
163
  )
159
164
 
160
165
 
fal/cli/run.py CHANGED
@@ -10,7 +10,7 @@ def _run(args):
10
10
 
11
11
  if is_app_name(args.func_ref):
12
12
  app_name = args.func_ref[0]
13
- app_ref, _, _ = get_app_data_from_toml(app_name)
13
+ app_ref, *_ = get_app_data_from_toml(app_name)
14
14
  file_path, func_name = RefAction.split_ref(app_ref)
15
15
  else:
16
16
  file_path, func_name = args.func_ref
fal/container.py CHANGED
@@ -3,7 +3,7 @@ class ContainerImage:
3
3
  from a Dockerfile.
4
4
  """
5
5
 
6
- _known_keys = {"dockerfile_str", "build_env", "build_args"}
6
+ _known_keys = {"dockerfile_str", "build_args", "registries"}
7
7
 
8
8
  @classmethod
9
9
  def from_dockerfile_str(cls, text: str, **kwargs):
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: fal
3
- Version: 1.6.0
3
+ Version: 1.6.1
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,12 +1,12 @@
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=Ry70pc5l-IBhT9gahlkNwZPp4g0CzVEWqsat9H-UASY,411
3
+ fal/_fal_version.py,sha256=edFVVa8HpVPfLqL2y6CKtViSqJREfmXxInA-HCy-134,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=ksp9Xv5EY3mL5FMfWLrIgVUQehm1o89RfW-8HeJpGzQ,22636
7
+ fal/app.py,sha256=qJZcGGxCD3-kijbsXx3pocSyiiRKERuF5rXtx5hVt_Q,22902
8
8
  fal/apps.py,sha256=RpmElElJnDYjsTRQOdNYiJwd74GEOGYA38L5O5GzNEg,11068
9
- fal/container.py,sha256=V7riyyq8AZGwEX9QaqRQDZyDN_bUKeRKV1OOZArXjL0,622
9
+ fal/container.py,sha256=X1DO5Ypb7oIDdDg_yqt4GCR8NogSvqSqa5hNdAPUx8A,623
10
10
  fal/files.py,sha256=QgfYfMKmNobMPufrAP_ga1FKcIAlSbw18Iar1-0qepo,2650
11
11
  fal/flags.py,sha256=oWN_eidSUOcE9wdPK_77si3A1fpgOC0UEERPsvNLIMc,842
12
12
  fal/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -19,17 +19,17 @@ fal/auth/__init__.py,sha256=r8iA2-5ih7-Fik3gEC4HEWNFbGoxpYnXpZu1icPIoS0,3561
19
19
  fal/auth/auth0.py,sha256=rSG1mgH-QGyKfzd7XyAaj1AYsWt-ho8Y_LZ-FUVWzh4,5421
20
20
  fal/auth/local.py,sha256=sndkM6vKpeVny6NHTacVlTbiIFqaksOmw0Viqs_RN1U,1790
21
21
  fal/cli/__init__.py,sha256=padK4o0BFqq61kxAA1qQ0jYr2SuhA2mf90B3AaRkmJA,37
22
- fal/cli/_utils.py,sha256=u__PSeNxSC_4Psi3ZwLjefgNQVkYRpVH--vmwK7ppro,1187
22
+ fal/cli/_utils.py,sha256=45G0LEz2bW-69MUQKPdatVE_CBC2644gC-V0qdNEsco,1252
23
23
  fal/cli/apps.py,sha256=Fo4iUpd6FGTUcIp22WcssE1CaEn_BLKzK_E4JPsXhVI,8179
24
24
  fal/cli/auth.py,sha256=--MhfHGwxmtHbRkGioyn1prKn_U-pBzbz0G_QeZou-U,1352
25
25
  fal/cli/create.py,sha256=a8WDq-nJLFTeoIXqpb5cr7GR7YR9ZZrQCawNm34KXXE,627
26
26
  fal/cli/debug.py,sha256=u_urnyFzSlNnrq93zz_GXE9FX4VyVxDoamJJyrZpFI0,1312
27
- fal/cli/deploy.py,sha256=ZBM4pLDDj9ZntlSoFvK_-ZGO-lAOHoZFkYXS-OAxXT0,7461
27
+ fal/cli/deploy.py,sha256=-woTZObzntUenPFmWJwDaeCmBl3Vb7jqSkhPCIfk2SM,7581
28
28
  fal/cli/doctor.py,sha256=U4ne9LX5gQwNblsYQ27XdO8AYDgbYjTO39EtxhwexRM,983
29
29
  fal/cli/keys.py,sha256=trDpA3LJu9S27qE_K8Hr6fKLK4vwVzbxUHq8TFrV4pw,3157
30
30
  fal/cli/main.py,sha256=O0i9wdLPxcd1u4CvXit-ufkT_UnON-baTN6v9HaHPmw,2027
31
31
  fal/cli/parser.py,sha256=edCqFWYAQSOhrxeEK9BtFRlTEUAlG2JUDjS_vhZ_nHE,2868
32
- fal/cli/run.py,sha256=J1lSZ_wJIhrygSduMr0Wf2pQ8OUJlFbyH5KKUjxDF6w,1204
32
+ fal/cli/run.py,sha256=nAC12Qss4Fg1XmV0qOS9RdGNLYcdoHeRgQMvbTN4P9I,1202
33
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
@@ -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.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,,
131
+ fal-1.6.1.dist-info/METADATA,sha256=eREr04PmVZ24cEVKPLaWj90uezt6pgvPCcb8UJAmvW4,3996
132
+ fal-1.6.1.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
133
+ fal-1.6.1.dist-info/entry_points.txt,sha256=32zwTUC1U1E7nSTIGCoANQOQ3I7-qHG5wI6gsVz5pNU,37
134
+ fal-1.6.1.dist-info/top_level.txt,sha256=r257X1L57oJL8_lM0tRrfGuXFwm66i1huwQygbpLmHw,21
135
+ fal-1.6.1.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.6.0)
2
+ Generator: setuptools (75.8.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5