fal 1.3.2__tar.gz → 1.3.4__tar.gz

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.

Files changed (160) hide show
  1. {fal-1.3.2 → fal-1.3.4}/PKG-INFO +1 -1
  2. {fal-1.3.2 → fal-1.3.4}/fal.egg-info/PKG-INFO +1 -1
  3. {fal-1.3.2 → fal-1.3.4}/src/fal/_fal_version.py +2 -2
  4. {fal-1.3.2 → fal-1.3.4}/src/fal/cli/deploy.py +8 -5
  5. {fal-1.3.2 → fal-1.3.4}/src/fal/toolkit/image/image.py +4 -0
  6. {fal-1.3.2 → fal-1.3.4}/.gitignore +0 -0
  7. {fal-1.3.2 → fal-1.3.4}/README.md +0 -0
  8. {fal-1.3.2 → fal-1.3.4}/fal.egg-info/SOURCES.txt +0 -0
  9. {fal-1.3.2 → fal-1.3.4}/fal.egg-info/dependency_links.txt +0 -0
  10. {fal-1.3.2 → fal-1.3.4}/fal.egg-info/entry_points.txt +0 -0
  11. {fal-1.3.2 → fal-1.3.4}/fal.egg-info/requires.txt +0 -0
  12. {fal-1.3.2 → fal-1.3.4}/fal.egg-info/top_level.txt +0 -0
  13. {fal-1.3.2 → fal-1.3.4}/openapi-fal-rest/README.md +0 -0
  14. {fal-1.3.2 → fal-1.3.4}/openapi-fal-rest/openapi_fal_rest/__init__.py +0 -0
  15. {fal-1.3.2 → fal-1.3.4}/openapi-fal-rest/openapi_fal_rest/api/__init__.py +0 -0
  16. {fal-1.3.2 → fal-1.3.4}/openapi-fal-rest/openapi_fal_rest/api/applications/__init__.py +0 -0
  17. {fal-1.3.2 → fal-1.3.4}/openapi-fal-rest/openapi_fal_rest/api/applications/app_metadata.py +0 -0
  18. {fal-1.3.2 → fal-1.3.4}/openapi-fal-rest/openapi_fal_rest/api/billing/__init__.py +0 -0
  19. {fal-1.3.2 → fal-1.3.4}/openapi-fal-rest/openapi_fal_rest/api/billing/get_user_details.py +0 -0
  20. {fal-1.3.2 → fal-1.3.4}/openapi-fal-rest/openapi_fal_rest/api/comfy/__init__.py +0 -0
  21. {fal-1.3.2 → fal-1.3.4}/openapi-fal-rest/openapi_fal_rest/api/comfy/create_workflow.py +0 -0
  22. {fal-1.3.2 → fal-1.3.4}/openapi-fal-rest/openapi_fal_rest/api/comfy/delete_workflow.py +0 -0
  23. {fal-1.3.2 → fal-1.3.4}/openapi-fal-rest/openapi_fal_rest/api/comfy/get_workflow.py +0 -0
  24. {fal-1.3.2 → fal-1.3.4}/openapi-fal-rest/openapi_fal_rest/api/comfy/list_user_workflows.py +0 -0
  25. {fal-1.3.2 → fal-1.3.4}/openapi-fal-rest/openapi_fal_rest/api/comfy/update_workflow.py +0 -0
  26. {fal-1.3.2 → fal-1.3.4}/openapi-fal-rest/openapi_fal_rest/api/files/__init__.py +0 -0
  27. {fal-1.3.2 → fal-1.3.4}/openapi-fal-rest/openapi_fal_rest/api/files/check_dir_hash.py +0 -0
  28. {fal-1.3.2 → fal-1.3.4}/openapi-fal-rest/openapi_fal_rest/api/files/upload_local_file.py +0 -0
  29. {fal-1.3.2 → fal-1.3.4}/openapi-fal-rest/openapi_fal_rest/api/users/__init__.py +0 -0
  30. {fal-1.3.2 → fal-1.3.4}/openapi-fal-rest/openapi_fal_rest/api/users/get_current_user.py +0 -0
  31. {fal-1.3.2 → fal-1.3.4}/openapi-fal-rest/openapi_fal_rest/api/workflows/__init__.py +0 -0
  32. {fal-1.3.2 → fal-1.3.4}/openapi-fal-rest/openapi_fal_rest/api/workflows/create_workflow.py +0 -0
  33. {fal-1.3.2 → fal-1.3.4}/openapi-fal-rest/openapi_fal_rest/api/workflows/delete_workflow.py +0 -0
  34. {fal-1.3.2 → fal-1.3.4}/openapi-fal-rest/openapi_fal_rest/api/workflows/get_workflow.py +0 -0
  35. {fal-1.3.2 → fal-1.3.4}/openapi-fal-rest/openapi_fal_rest/api/workflows/list_user_workflows.py +0 -0
  36. {fal-1.3.2 → fal-1.3.4}/openapi-fal-rest/openapi_fal_rest/api/workflows/update_workflow.py +0 -0
  37. {fal-1.3.2 → fal-1.3.4}/openapi-fal-rest/openapi_fal_rest/client.py +0 -0
  38. {fal-1.3.2 → fal-1.3.4}/openapi-fal-rest/openapi_fal_rest/errors.py +0 -0
  39. {fal-1.3.2 → fal-1.3.4}/openapi-fal-rest/openapi_fal_rest/models/__init__.py +0 -0
  40. {fal-1.3.2 → fal-1.3.4}/openapi-fal-rest/openapi_fal_rest/models/app_metadata_response_app_metadata.py +0 -0
  41. {fal-1.3.2 → fal-1.3.4}/openapi-fal-rest/openapi_fal_rest/models/body_upload_local_file.py +0 -0
  42. {fal-1.3.2 → fal-1.3.4}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_detail.py +0 -0
  43. {fal-1.3.2 → fal-1.3.4}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_item.py +0 -0
  44. {fal-1.3.2 → fal-1.3.4}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_schema.py +0 -0
  45. {fal-1.3.2 → fal-1.3.4}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_schema_extra_data.py +0 -0
  46. {fal-1.3.2 → fal-1.3.4}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_schema_fal_inputs.py +0 -0
  47. {fal-1.3.2 → fal-1.3.4}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_schema_fal_inputs_dev_info.py +0 -0
  48. {fal-1.3.2 → fal-1.3.4}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_schema_prompt.py +0 -0
  49. {fal-1.3.2 → fal-1.3.4}/openapi-fal-rest/openapi_fal_rest/models/current_user.py +0 -0
  50. {fal-1.3.2 → fal-1.3.4}/openapi-fal-rest/openapi_fal_rest/models/customer_details.py +0 -0
  51. {fal-1.3.2 → fal-1.3.4}/openapi-fal-rest/openapi_fal_rest/models/hash_check.py +0 -0
  52. {fal-1.3.2 → fal-1.3.4}/openapi-fal-rest/openapi_fal_rest/models/http_validation_error.py +0 -0
  53. {fal-1.3.2 → fal-1.3.4}/openapi-fal-rest/openapi_fal_rest/models/lock_reason.py +0 -0
  54. {fal-1.3.2 → fal-1.3.4}/openapi-fal-rest/openapi_fal_rest/models/page_comfy_workflow_item.py +0 -0
  55. {fal-1.3.2 → fal-1.3.4}/openapi-fal-rest/openapi_fal_rest/models/page_workflow_item.py +0 -0
  56. {fal-1.3.2 → fal-1.3.4}/openapi-fal-rest/openapi_fal_rest/models/team_role.py +0 -0
  57. {fal-1.3.2 → fal-1.3.4}/openapi-fal-rest/openapi_fal_rest/models/typed_comfy_workflow.py +0 -0
  58. {fal-1.3.2 → fal-1.3.4}/openapi-fal-rest/openapi_fal_rest/models/typed_comfy_workflow_update.py +0 -0
  59. {fal-1.3.2 → fal-1.3.4}/openapi-fal-rest/openapi_fal_rest/models/typed_workflow.py +0 -0
  60. {fal-1.3.2 → fal-1.3.4}/openapi-fal-rest/openapi_fal_rest/models/typed_workflow_update.py +0 -0
  61. {fal-1.3.2 → fal-1.3.4}/openapi-fal-rest/openapi_fal_rest/models/user_member.py +0 -0
  62. {fal-1.3.2 → fal-1.3.4}/openapi-fal-rest/openapi_fal_rest/models/validation_error.py +0 -0
  63. {fal-1.3.2 → fal-1.3.4}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents.py +0 -0
  64. {fal-1.3.2 → fal-1.3.4}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents_metadata.py +0 -0
  65. {fal-1.3.2 → fal-1.3.4}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents_nodes.py +0 -0
  66. {fal-1.3.2 → fal-1.3.4}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents_output.py +0 -0
  67. {fal-1.3.2 → fal-1.3.4}/openapi-fal-rest/openapi_fal_rest/models/workflow_detail.py +0 -0
  68. {fal-1.3.2 → fal-1.3.4}/openapi-fal-rest/openapi_fal_rest/models/workflow_detail_contents.py +0 -0
  69. {fal-1.3.2 → fal-1.3.4}/openapi-fal-rest/openapi_fal_rest/models/workflow_item.py +0 -0
  70. {fal-1.3.2 → fal-1.3.4}/openapi-fal-rest/openapi_fal_rest/models/workflow_node.py +0 -0
  71. {fal-1.3.2 → fal-1.3.4}/openapi-fal-rest/openapi_fal_rest/models/workflow_node_type.py +0 -0
  72. {fal-1.3.2 → fal-1.3.4}/openapi-fal-rest/openapi_fal_rest/models/workflow_schema.py +0 -0
  73. {fal-1.3.2 → fal-1.3.4}/openapi-fal-rest/openapi_fal_rest/models/workflow_schema_input.py +0 -0
  74. {fal-1.3.2 → fal-1.3.4}/openapi-fal-rest/openapi_fal_rest/models/workflow_schema_output.py +0 -0
  75. {fal-1.3.2 → fal-1.3.4}/openapi-fal-rest/openapi_fal_rest/py.typed +0 -0
  76. {fal-1.3.2 → fal-1.3.4}/openapi-fal-rest/openapi_fal_rest/types.py +0 -0
  77. {fal-1.3.2 → fal-1.3.4}/openapi-fal-rest/pyproject.toml +0 -0
  78. {fal-1.3.2 → fal-1.3.4}/openapi_rest.config.yaml +0 -0
  79. {fal-1.3.2 → fal-1.3.4}/pyproject.toml +0 -0
  80. {fal-1.3.2 → fal-1.3.4}/setup.cfg +0 -0
  81. {fal-1.3.2 → fal-1.3.4}/src/fal/__init__.py +0 -0
  82. {fal-1.3.2 → fal-1.3.4}/src/fal/__main__.py +0 -0
  83. {fal-1.3.2 → fal-1.3.4}/src/fal/_serialization.py +0 -0
  84. {fal-1.3.2 → fal-1.3.4}/src/fal/_version.py +0 -0
  85. {fal-1.3.2 → fal-1.3.4}/src/fal/api.py +0 -0
  86. {fal-1.3.2 → fal-1.3.4}/src/fal/app.py +0 -0
  87. {fal-1.3.2 → fal-1.3.4}/src/fal/apps.py +0 -0
  88. {fal-1.3.2 → fal-1.3.4}/src/fal/auth/__init__.py +0 -0
  89. {fal-1.3.2 → fal-1.3.4}/src/fal/auth/auth0.py +0 -0
  90. {fal-1.3.2 → fal-1.3.4}/src/fal/auth/local.py +0 -0
  91. {fal-1.3.2 → fal-1.3.4}/src/fal/cli/__init__.py +0 -0
  92. {fal-1.3.2 → fal-1.3.4}/src/fal/cli/_utils.py +0 -0
  93. {fal-1.3.2 → fal-1.3.4}/src/fal/cli/apps.py +0 -0
  94. {fal-1.3.2 → fal-1.3.4}/src/fal/cli/auth.py +0 -0
  95. {fal-1.3.2 → fal-1.3.4}/src/fal/cli/create.py +0 -0
  96. {fal-1.3.2 → fal-1.3.4}/src/fal/cli/debug.py +0 -0
  97. {fal-1.3.2 → fal-1.3.4}/src/fal/cli/doctor.py +0 -0
  98. {fal-1.3.2 → fal-1.3.4}/src/fal/cli/keys.py +0 -0
  99. {fal-1.3.2 → fal-1.3.4}/src/fal/cli/main.py +0 -0
  100. {fal-1.3.2 → fal-1.3.4}/src/fal/cli/parser.py +0 -0
  101. {fal-1.3.2 → fal-1.3.4}/src/fal/cli/run.py +0 -0
  102. {fal-1.3.2 → fal-1.3.4}/src/fal/cli/secrets.py +0 -0
  103. {fal-1.3.2 → fal-1.3.4}/src/fal/console/__init__.py +0 -0
  104. {fal-1.3.2 → fal-1.3.4}/src/fal/console/icons.py +0 -0
  105. {fal-1.3.2 → fal-1.3.4}/src/fal/console/ux.py +0 -0
  106. {fal-1.3.2 → fal-1.3.4}/src/fal/container.py +0 -0
  107. {fal-1.3.2 → fal-1.3.4}/src/fal/exceptions/__init__.py +0 -0
  108. {fal-1.3.2 → fal-1.3.4}/src/fal/exceptions/_base.py +0 -0
  109. {fal-1.3.2 → fal-1.3.4}/src/fal/exceptions/_cuda.py +0 -0
  110. {fal-1.3.2 → fal-1.3.4}/src/fal/exceptions/auth.py +0 -0
  111. {fal-1.3.2 → fal-1.3.4}/src/fal/files.py +0 -0
  112. {fal-1.3.2 → fal-1.3.4}/src/fal/flags.py +0 -0
  113. {fal-1.3.2 → fal-1.3.4}/src/fal/logging/__init__.py +0 -0
  114. {fal-1.3.2 → fal-1.3.4}/src/fal/logging/isolate.py +0 -0
  115. {fal-1.3.2 → fal-1.3.4}/src/fal/logging/style.py +0 -0
  116. {fal-1.3.2 → fal-1.3.4}/src/fal/logging/trace.py +0 -0
  117. {fal-1.3.2 → fal-1.3.4}/src/fal/logging/user.py +0 -0
  118. {fal-1.3.2 → fal-1.3.4}/src/fal/py.typed +0 -0
  119. {fal-1.3.2 → fal-1.3.4}/src/fal/rest_client.py +0 -0
  120. {fal-1.3.2 → fal-1.3.4}/src/fal/sdk.py +0 -0
  121. {fal-1.3.2 → fal-1.3.4}/src/fal/sync.py +0 -0
  122. {fal-1.3.2 → fal-1.3.4}/src/fal/toolkit/__init__.py +0 -0
  123. {fal-1.3.2 → fal-1.3.4}/src/fal/toolkit/exceptions.py +0 -0
  124. {fal-1.3.2 → fal-1.3.4}/src/fal/toolkit/file/__init__.py +0 -0
  125. {fal-1.3.2 → fal-1.3.4}/src/fal/toolkit/file/file.py +0 -0
  126. {fal-1.3.2 → fal-1.3.4}/src/fal/toolkit/file/providers/fal.py +0 -0
  127. {fal-1.3.2 → fal-1.3.4}/src/fal/toolkit/file/providers/gcp.py +0 -0
  128. {fal-1.3.2 → fal-1.3.4}/src/fal/toolkit/file/providers/r2.py +0 -0
  129. {fal-1.3.2 → fal-1.3.4}/src/fal/toolkit/file/types.py +0 -0
  130. {fal-1.3.2 → fal-1.3.4}/src/fal/toolkit/image/__init__.py +0 -0
  131. {fal-1.3.2 → fal-1.3.4}/src/fal/toolkit/image/nsfw_filter/__init__.py +0 -0
  132. {fal-1.3.2 → fal-1.3.4}/src/fal/toolkit/image/nsfw_filter/env.py +0 -0
  133. {fal-1.3.2 → fal-1.3.4}/src/fal/toolkit/image/nsfw_filter/inference.py +0 -0
  134. {fal-1.3.2 → fal-1.3.4}/src/fal/toolkit/image/nsfw_filter/model.py +0 -0
  135. {fal-1.3.2 → fal-1.3.4}/src/fal/toolkit/image/nsfw_filter/requirements.txt +0 -0
  136. {fal-1.3.2 → fal-1.3.4}/src/fal/toolkit/image/safety_checker.py +0 -0
  137. {fal-1.3.2 → fal-1.3.4}/src/fal/toolkit/optimize.py +0 -0
  138. {fal-1.3.2 → fal-1.3.4}/src/fal/toolkit/utils/__init__.py +0 -0
  139. {fal-1.3.2 → fal-1.3.4}/src/fal/toolkit/utils/download_utils.py +0 -0
  140. {fal-1.3.2 → fal-1.3.4}/src/fal/utils.py +0 -0
  141. {fal-1.3.2 → fal-1.3.4}/src/fal/workflows.py +0 -0
  142. {fal-1.3.2 → fal-1.3.4}/tests/__init__.py +0 -0
  143. {fal-1.3.2 → fal-1.3.4}/tests/cli/__init__.py +0 -0
  144. {fal-1.3.2 → fal-1.3.4}/tests/cli/test_apps.py +0 -0
  145. {fal-1.3.2 → fal-1.3.4}/tests/cli/test_auth.py +0 -0
  146. {fal-1.3.2 → fal-1.3.4}/tests/cli/test_deploy.py +0 -0
  147. {fal-1.3.2 → fal-1.3.4}/tests/cli/test_keys.py +0 -0
  148. {fal-1.3.2 → fal-1.3.4}/tests/cli/test_run.py +0 -0
  149. {fal-1.3.2 → fal-1.3.4}/tests/cli/test_secrets.py +0 -0
  150. {fal-1.3.2 → fal-1.3.4}/tests/conftest.py +0 -0
  151. {fal-1.3.2 → fal-1.3.4}/tests/integration_test.py +0 -0
  152. {fal-1.3.2 → fal-1.3.4}/tests/mainify_package/__init__.py +0 -0
  153. {fal-1.3.2 → fal-1.3.4}/tests/mainify_package/impl.py +0 -0
  154. {fal-1.3.2 → fal-1.3.4}/tests/mainify_package/utils.py +0 -0
  155. {fal-1.3.2 → fal-1.3.4}/tests/mainify_target.py +0 -0
  156. {fal-1.3.2 → fal-1.3.4}/tests/test_apps.py +0 -0
  157. {fal-1.3.2 → fal-1.3.4}/tests/test_stability.py +0 -0
  158. {fal-1.3.2 → fal-1.3.4}/tests/toolkit/file_test.py +0 -0
  159. {fal-1.3.2 → fal-1.3.4}/tests/toolkit/image_test.py +0 -0
  160. {fal-1.3.2 → fal-1.3.4}/tools/demo_script.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: fal
3
- Version: 1.3.2
3
+ Version: 1.3.4
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
  Metadata-Version: 2.1
2
2
  Name: fal
3
- Version: 1.3.2
3
+ Version: 1.3.4
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
@@ -12,5 +12,5 @@ __version__: str
12
12
  __version_tuple__: VERSION_TUPLE
13
13
  version_tuple: VERSION_TUPLE
14
14
 
15
- __version__ = version = '1.3.2'
16
- __version_tuple__ = version_tuple = (1, 3, 2)
15
+ __version__ = version = '1.3.4'
16
+ __version_tuple__ = version_tuple = (1, 3, 4)
@@ -1,7 +1,7 @@
1
1
  import argparse
2
2
  from collections import namedtuple
3
3
  from pathlib import Path
4
- from typing import Optional, Union
4
+ from typing import Literal, Optional, Tuple, Union
5
5
 
6
6
  from ._utils import get_app_data_from_toml, is_app_name
7
7
  from .parser import FalClientParser, RefAction
@@ -63,7 +63,10 @@ def _get_user() -> User:
63
63
 
64
64
 
65
65
  def _deploy_from_reference(
66
- app_ref: tuple[Optional[Union[Path, str]], ...], app_name: str, auth: str, args
66
+ app_ref: Tuple[Optional[Union[Path, str]], ...],
67
+ app_name: str,
68
+ auth: Literal["public", "shared", "private"],
69
+ args,
67
70
  ):
68
71
  from fal.api import FalServerlessError, FalServerlessHost
69
72
  from fal.utils import load_function_from
@@ -93,7 +96,7 @@ def _deploy_from_reference(
93
96
  isolated_function = loaded.function
94
97
  app_name = app_name or loaded.app_name # type: ignore
95
98
  app_auth = auth or loaded.app_auth or "private"
96
- deployment_strategy = args.strategy or "default"
99
+ deployment_strategy = args.strategy or "recreate"
97
100
 
98
101
  app_id = host.register(
99
102
  func=isolated_function.func,
@@ -204,9 +207,9 @@ def add_parser(main_subparsers, parents):
204
207
  )
205
208
  parser.add_argument(
206
209
  "--strategy",
207
- choices=["default", "rolling"],
210
+ choices=["recreate", "rolling"],
208
211
  help="Deployment strategy.",
209
- default="default",
212
+ default="recreate",
210
213
  )
211
214
 
212
215
  parser.set_defaults(func=_deploy)
@@ -110,6 +110,10 @@ class Image(File):
110
110
  # enough result quickly to utilize the underlying resources
111
111
  # efficiently.
112
112
  saving_options["compress_level"] = 1
113
+ elif format == "jpeg":
114
+ # JPEG quality is set to 95 by default, which is a good balance
115
+ # between file size and image quality.
116
+ saving_options["quality"] = 95
113
117
 
114
118
  with io.BytesIO() as f:
115
119
  pil_image.save(f, format=format, **saving_options)
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes