fal 1.36.1__py3-none-any.whl → 1.37.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.36.1'
32
- __version_tuple__ = version_tuple = (1, 36, 1)
31
+ __version__ = version = '1.37.0'
32
+ __version_tuple__ = version_tuple = (1, 37, 0)
33
33
 
34
34
  __commit_id__ = commit_id = None
fal/cli/apps.py CHANGED
@@ -292,26 +292,30 @@ def _runners(args):
292
292
  client = get_client(args.host, args.team)
293
293
  with client.connect() as connection:
294
294
  alias_runners = connection.list_alias_runners(alias=args.app_name)
295
+ if args.output == "pretty":
296
+ runners_table = runners.runners_table(alias_runners)
297
+ pending_runners = [
298
+ runner for runner in alias_runners if runner.state == RunnerState.PENDING
299
+ ]
300
+ setup_runners = [
301
+ runner for runner in alias_runners if runner.state == RunnerState.SETUP
302
+ ]
303
+ args.console.print(
304
+ f"Runners: {len(alias_runners) - len(pending_runners) - len(setup_runners)}"
305
+ )
306
+ args.console.print(f"Runners Pending: {len(pending_runners)}")
307
+ args.console.print(f"Runners Setting Up: {len(setup_runners)}")
308
+ # Drop the alias column, which is the first column
309
+ runners_table.columns.pop(0)
310
+ args.console.print(runners_table)
295
311
 
296
- runners_table = runners.runners_table(alias_runners)
297
- pending_runners = [
298
- runner for runner in alias_runners if runner.state == RunnerState.PENDING
299
- ]
300
- setup_runners = [
301
- runner for runner in alias_runners if runner.state == RunnerState.SETUP
302
- ]
303
- args.console.print(
304
- f"Runners: {len(alias_runners) - len(pending_runners) - len(setup_runners)}"
305
- )
306
- args.console.print(f"Runners Pending: {len(pending_runners)}")
307
- args.console.print(f"Runners Setting Up: {len(setup_runners)}")
308
- # Drop the alias column, which is the first column
309
- runners_table.columns.pop(0)
310
- args.console.print(runners_table)
311
-
312
- requests_table = runners.runners_requests_table(alias_runners)
313
- args.console.print(f"Requests: {len(requests_table.rows)}")
314
- args.console.print(requests_table)
312
+ requests_table = runners.runners_requests_table(alias_runners)
313
+ args.console.print(f"Requests: {len(requests_table.rows)}")
314
+ args.console.print(requests_table)
315
+ elif args.output == "json":
316
+ runners._list_json(args, alias_runners)
317
+ else:
318
+ raise AssertionError(f"Invalid output format: {args.output}")
315
319
 
316
320
 
317
321
  def _add_runners_parser(subparsers, parents):
@@ -320,7 +324,7 @@ def _add_runners_parser(subparsers, parents):
320
324
  "runners",
321
325
  description=runners_help,
322
326
  help=runners_help,
323
- parents=parents,
327
+ parents=[*parents, get_output_parser()],
324
328
  )
325
329
  parser.add_argument(
326
330
  "app_name",
fal/cli/runners.py CHANGED
@@ -15,8 +15,7 @@ def runners_table(runners: List[RunnerInfo]):
15
15
  table = Table()
16
16
  table.add_column("Alias")
17
17
  table.add_column("Runner ID")
18
- table.add_column("In Flight Requests")
19
- table.add_column("Missing Leases")
18
+ table.add_column("In Flight\nRequests")
20
19
  table.add_column("Expires In")
21
20
  table.add_column("Uptime")
22
21
  table.add_column("Revision")
@@ -34,12 +33,20 @@ def runners_table(runners: List[RunnerInfo]):
34
33
  ]
35
34
  )
36
35
 
36
+ in_flight = str(runner.in_flight_requests)
37
+ missing_leases = runner.in_flight_requests - num_leases_with_request
38
+ if missing_leases > 0:
39
+ # Show a small indicator of in flight requests that are not visible in the
40
+ # leases lists
41
+ # This can be due to race conditions, so only important to report if it's
42
+ # consistent
43
+ in_flight = f"{in_flight} [dim]({missing_leases})[/]"
44
+
37
45
  table.add_row(
38
46
  runner.alias,
39
47
  # Mark lost runners in red
40
48
  runner.runner_id if present else f"[red]{runner.runner_id}[/]",
41
- str(runner.in_flight_requests),
42
- str(runner.in_flight_requests - num_leases_with_request),
49
+ in_flight,
43
50
  (
44
51
  "N/A (active)"
45
52
  if runner.expiration_countdown is None
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fal
3
- Version: 1.36.1
3
+ Version: 1.37.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=3O5R5kfC2NAQSY39lwr4Di6e6T8ez4E255wTzoz-vaE,706
3
+ fal/_fal_version.py,sha256=7iM6FVCB7yNzIZ7z59U_U2d_x0RefLoRa1YrPtAszvk,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=oWSPxefwyYF93s54mtyYGKWYMax9ll9B-wxijOyARb4,49244
@@ -23,7 +23,7 @@ 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=v7Hgx5blO-YHfLnScq6QyDgBZQiumJ37tOppbtPn41Q,11411
26
+ fal/cli/apps.py,sha256=W66wBeq7ChtDsPuNjb0HXVe9zW3e1ORZkxbUTOF1CkQ,11698
27
27
  fal/cli/auth.py,sha256=ZLjxuF4LobETJ2CLGMj_QurE0PiJxzKdFJZkux8uLHM,5977
28
28
  fal/cli/cli_nested_json.py,sha256=veSZU8_bYV3Iu1PAoxt-4BMBraNIqgH5nughbs2UKvE,13539
29
29
  fal/cli/create.py,sha256=a8WDq-nJLFTeoIXqpb5cr7GR7YR9ZZrQCawNm34KXXE,627
@@ -36,7 +36,7 @@ fal/cli/main.py,sha256=s_LxEyz9z64dewk3oiGEI33_h3vJ3IVdu8aY3qydkMo,3345
36
36
  fal/cli/parser.py,sha256=WxbO5pgMhcerEFl4uUdaCoFlTQF14PJVctiWRo55jHQ,3459
37
37
  fal/cli/profile.py,sha256=PAY_ffifCT71VJ8VxfDVaXPT0U1oN8drvWZDFRXwvek,6678
38
38
  fal/cli/run.py,sha256=nAC12Qss4Fg1XmV0qOS9RdGNLYcdoHeRgQMvbTN4P9I,1202
39
- fal/cli/runners.py,sha256=ctAlD1C9tmVFZDvFFJ9tszjLcL972mm27GQ1AhY1WPk,5047
39
+ fal/cli/runners.py,sha256=INdIDk0Ro_33Zea3mDEFO2CiuqIM7qaU7hAr2tLXovI,5369
40
40
  fal/cli/secrets.py,sha256=HfIeO2IZpCEiBC6Cs5Kpi3zckfDnc7GsLwLdgj3NnPU,3085
41
41
  fal/cli/teams.py,sha256=_JcNcf659ZoLBFOxKnVP5A6Pyk1jY1vh4_xzMweYIDo,1285
42
42
  fal/console/__init__.py,sha256=lGPUuTqIM9IKTa1cyyA-MA2iZJKVHp2YydsITZVlb6g,148
@@ -143,8 +143,8 @@ openapi_fal_rest/models/workflow_node_type.py,sha256=-FzyeY2bxcNmizKbJI8joG7byRi
143
143
  openapi_fal_rest/models/workflow_schema.py,sha256=4K5gsv9u9pxx2ItkffoyHeNjBBYf6ur5bN4m_zePZNY,2019
144
144
  openapi_fal_rest/models/workflow_schema_input.py,sha256=2OkOXWHTNsCXHWS6EGDFzcJKkW5FIap-2gfO233EvZQ,1191
145
145
  openapi_fal_rest/models/workflow_schema_output.py,sha256=EblwSPAGfWfYVWw_WSSaBzQVju296is9o28rMBAd0mc,1196
146
- fal-1.36.1.dist-info/METADATA,sha256=i_q8gLTH7qG8Ps72_RUgBLFluBgH2cu3Eugx-HfxsTs,4054
147
- fal-1.36.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
148
- fal-1.36.1.dist-info/entry_points.txt,sha256=32zwTUC1U1E7nSTIGCoANQOQ3I7-qHG5wI6gsVz5pNU,37
149
- fal-1.36.1.dist-info/top_level.txt,sha256=r257X1L57oJL8_lM0tRrfGuXFwm66i1huwQygbpLmHw,21
150
- fal-1.36.1.dist-info/RECORD,,
146
+ fal-1.37.0.dist-info/METADATA,sha256=yU-eG6bbAOSUvjTxN-z8fB_9bHOR-DUg6aeB-uZ4tdQ,4054
147
+ fal-1.37.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
148
+ fal-1.37.0.dist-info/entry_points.txt,sha256=32zwTUC1U1E7nSTIGCoANQOQ3I7-qHG5wI6gsVz5pNU,37
149
+ fal-1.37.0.dist-info/top_level.txt,sha256=r257X1L57oJL8_lM0tRrfGuXFwm66i1huwQygbpLmHw,21
150
+ fal-1.37.0.dist-info/RECORD,,
File without changes