fal 1.5.0__tar.gz → 1.5.1__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 (162) hide show
  1. {fal-1.5.0 → fal-1.5.1}/PKG-INFO +1 -1
  2. {fal-1.5.0 → fal-1.5.1}/fal.egg-info/PKG-INFO +1 -1
  3. {fal-1.5.0 → fal-1.5.1}/src/fal/_fal_version.py +2 -2
  4. {fal-1.5.0 → fal-1.5.1}/src/fal/api.py +7 -0
  5. {fal-1.5.0 → fal-1.5.1}/src/fal/app.py +0 -1
  6. {fal-1.5.0 → fal-1.5.1}/.gitignore +0 -0
  7. {fal-1.5.0 → fal-1.5.1}/README.md +0 -0
  8. {fal-1.5.0 → fal-1.5.1}/fal.egg-info/SOURCES.txt +0 -0
  9. {fal-1.5.0 → fal-1.5.1}/fal.egg-info/dependency_links.txt +0 -0
  10. {fal-1.5.0 → fal-1.5.1}/fal.egg-info/entry_points.txt +0 -0
  11. {fal-1.5.0 → fal-1.5.1}/fal.egg-info/requires.txt +0 -0
  12. {fal-1.5.0 → fal-1.5.1}/fal.egg-info/top_level.txt +0 -0
  13. {fal-1.5.0 → fal-1.5.1}/openapi-fal-rest/README.md +0 -0
  14. {fal-1.5.0 → fal-1.5.1}/openapi-fal-rest/openapi_fal_rest/__init__.py +0 -0
  15. {fal-1.5.0 → fal-1.5.1}/openapi-fal-rest/openapi_fal_rest/api/__init__.py +0 -0
  16. {fal-1.5.0 → fal-1.5.1}/openapi-fal-rest/openapi_fal_rest/api/applications/__init__.py +0 -0
  17. {fal-1.5.0 → fal-1.5.1}/openapi-fal-rest/openapi_fal_rest/api/applications/app_metadata.py +0 -0
  18. {fal-1.5.0 → fal-1.5.1}/openapi-fal-rest/openapi_fal_rest/api/billing/__init__.py +0 -0
  19. {fal-1.5.0 → fal-1.5.1}/openapi-fal-rest/openapi_fal_rest/api/billing/get_user_details.py +0 -0
  20. {fal-1.5.0 → fal-1.5.1}/openapi-fal-rest/openapi_fal_rest/api/comfy/__init__.py +0 -0
  21. {fal-1.5.0 → fal-1.5.1}/openapi-fal-rest/openapi_fal_rest/api/comfy/create_workflow.py +0 -0
  22. {fal-1.5.0 → fal-1.5.1}/openapi-fal-rest/openapi_fal_rest/api/comfy/delete_workflow.py +0 -0
  23. {fal-1.5.0 → fal-1.5.1}/openapi-fal-rest/openapi_fal_rest/api/comfy/get_workflow.py +0 -0
  24. {fal-1.5.0 → fal-1.5.1}/openapi-fal-rest/openapi_fal_rest/api/comfy/list_user_workflows.py +0 -0
  25. {fal-1.5.0 → fal-1.5.1}/openapi-fal-rest/openapi_fal_rest/api/comfy/update_workflow.py +0 -0
  26. {fal-1.5.0 → fal-1.5.1}/openapi-fal-rest/openapi_fal_rest/api/files/__init__.py +0 -0
  27. {fal-1.5.0 → fal-1.5.1}/openapi-fal-rest/openapi_fal_rest/api/files/check_dir_hash.py +0 -0
  28. {fal-1.5.0 → fal-1.5.1}/openapi-fal-rest/openapi_fal_rest/api/files/upload_local_file.py +0 -0
  29. {fal-1.5.0 → fal-1.5.1}/openapi-fal-rest/openapi_fal_rest/api/users/__init__.py +0 -0
  30. {fal-1.5.0 → fal-1.5.1}/openapi-fal-rest/openapi_fal_rest/api/users/get_current_user.py +0 -0
  31. {fal-1.5.0 → fal-1.5.1}/openapi-fal-rest/openapi_fal_rest/api/workflows/__init__.py +0 -0
  32. {fal-1.5.0 → fal-1.5.1}/openapi-fal-rest/openapi_fal_rest/api/workflows/create_workflow.py +0 -0
  33. {fal-1.5.0 → fal-1.5.1}/openapi-fal-rest/openapi_fal_rest/api/workflows/delete_workflow.py +0 -0
  34. {fal-1.5.0 → fal-1.5.1}/openapi-fal-rest/openapi_fal_rest/api/workflows/get_workflow.py +0 -0
  35. {fal-1.5.0 → fal-1.5.1}/openapi-fal-rest/openapi_fal_rest/api/workflows/list_user_workflows.py +0 -0
  36. {fal-1.5.0 → fal-1.5.1}/openapi-fal-rest/openapi_fal_rest/api/workflows/update_workflow.py +0 -0
  37. {fal-1.5.0 → fal-1.5.1}/openapi-fal-rest/openapi_fal_rest/client.py +0 -0
  38. {fal-1.5.0 → fal-1.5.1}/openapi-fal-rest/openapi_fal_rest/errors.py +0 -0
  39. {fal-1.5.0 → fal-1.5.1}/openapi-fal-rest/openapi_fal_rest/models/__init__.py +0 -0
  40. {fal-1.5.0 → fal-1.5.1}/openapi-fal-rest/openapi_fal_rest/models/app_metadata_response_app_metadata.py +0 -0
  41. {fal-1.5.0 → fal-1.5.1}/openapi-fal-rest/openapi_fal_rest/models/body_upload_local_file.py +0 -0
  42. {fal-1.5.0 → fal-1.5.1}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_detail.py +0 -0
  43. {fal-1.5.0 → fal-1.5.1}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_item.py +0 -0
  44. {fal-1.5.0 → fal-1.5.1}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_schema.py +0 -0
  45. {fal-1.5.0 → fal-1.5.1}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_schema_extra_data.py +0 -0
  46. {fal-1.5.0 → fal-1.5.1}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_schema_fal_inputs.py +0 -0
  47. {fal-1.5.0 → fal-1.5.1}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_schema_fal_inputs_dev_info.py +0 -0
  48. {fal-1.5.0 → fal-1.5.1}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_schema_prompt.py +0 -0
  49. {fal-1.5.0 → fal-1.5.1}/openapi-fal-rest/openapi_fal_rest/models/current_user.py +0 -0
  50. {fal-1.5.0 → fal-1.5.1}/openapi-fal-rest/openapi_fal_rest/models/customer_details.py +0 -0
  51. {fal-1.5.0 → fal-1.5.1}/openapi-fal-rest/openapi_fal_rest/models/hash_check.py +0 -0
  52. {fal-1.5.0 → fal-1.5.1}/openapi-fal-rest/openapi_fal_rest/models/http_validation_error.py +0 -0
  53. {fal-1.5.0 → fal-1.5.1}/openapi-fal-rest/openapi_fal_rest/models/lock_reason.py +0 -0
  54. {fal-1.5.0 → fal-1.5.1}/openapi-fal-rest/openapi_fal_rest/models/page_comfy_workflow_item.py +0 -0
  55. {fal-1.5.0 → fal-1.5.1}/openapi-fal-rest/openapi_fal_rest/models/page_workflow_item.py +0 -0
  56. {fal-1.5.0 → fal-1.5.1}/openapi-fal-rest/openapi_fal_rest/models/team_role.py +0 -0
  57. {fal-1.5.0 → fal-1.5.1}/openapi-fal-rest/openapi_fal_rest/models/typed_comfy_workflow.py +0 -0
  58. {fal-1.5.0 → fal-1.5.1}/openapi-fal-rest/openapi_fal_rest/models/typed_comfy_workflow_update.py +0 -0
  59. {fal-1.5.0 → fal-1.5.1}/openapi-fal-rest/openapi_fal_rest/models/typed_workflow.py +0 -0
  60. {fal-1.5.0 → fal-1.5.1}/openapi-fal-rest/openapi_fal_rest/models/typed_workflow_update.py +0 -0
  61. {fal-1.5.0 → fal-1.5.1}/openapi-fal-rest/openapi_fal_rest/models/user_member.py +0 -0
  62. {fal-1.5.0 → fal-1.5.1}/openapi-fal-rest/openapi_fal_rest/models/validation_error.py +0 -0
  63. {fal-1.5.0 → fal-1.5.1}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents.py +0 -0
  64. {fal-1.5.0 → fal-1.5.1}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents_metadata.py +0 -0
  65. {fal-1.5.0 → fal-1.5.1}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents_nodes.py +0 -0
  66. {fal-1.5.0 → fal-1.5.1}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents_output.py +0 -0
  67. {fal-1.5.0 → fal-1.5.1}/openapi-fal-rest/openapi_fal_rest/models/workflow_detail.py +0 -0
  68. {fal-1.5.0 → fal-1.5.1}/openapi-fal-rest/openapi_fal_rest/models/workflow_detail_contents.py +0 -0
  69. {fal-1.5.0 → fal-1.5.1}/openapi-fal-rest/openapi_fal_rest/models/workflow_item.py +0 -0
  70. {fal-1.5.0 → fal-1.5.1}/openapi-fal-rest/openapi_fal_rest/models/workflow_node.py +0 -0
  71. {fal-1.5.0 → fal-1.5.1}/openapi-fal-rest/openapi_fal_rest/models/workflow_node_type.py +0 -0
  72. {fal-1.5.0 → fal-1.5.1}/openapi-fal-rest/openapi_fal_rest/models/workflow_schema.py +0 -0
  73. {fal-1.5.0 → fal-1.5.1}/openapi-fal-rest/openapi_fal_rest/models/workflow_schema_input.py +0 -0
  74. {fal-1.5.0 → fal-1.5.1}/openapi-fal-rest/openapi_fal_rest/models/workflow_schema_output.py +0 -0
  75. {fal-1.5.0 → fal-1.5.1}/openapi-fal-rest/openapi_fal_rest/py.typed +0 -0
  76. {fal-1.5.0 → fal-1.5.1}/openapi-fal-rest/openapi_fal_rest/types.py +0 -0
  77. {fal-1.5.0 → fal-1.5.1}/openapi-fal-rest/pyproject.toml +0 -0
  78. {fal-1.5.0 → fal-1.5.1}/openapi_rest.config.yaml +0 -0
  79. {fal-1.5.0 → fal-1.5.1}/pyproject.toml +0 -0
  80. {fal-1.5.0 → fal-1.5.1}/setup.cfg +0 -0
  81. {fal-1.5.0 → fal-1.5.1}/src/fal/__init__.py +0 -0
  82. {fal-1.5.0 → fal-1.5.1}/src/fal/__main__.py +0 -0
  83. {fal-1.5.0 → fal-1.5.1}/src/fal/_serialization.py +0 -0
  84. {fal-1.5.0 → fal-1.5.1}/src/fal/_version.py +0 -0
  85. {fal-1.5.0 → fal-1.5.1}/src/fal/apps.py +0 -0
  86. {fal-1.5.0 → fal-1.5.1}/src/fal/auth/__init__.py +0 -0
  87. {fal-1.5.0 → fal-1.5.1}/src/fal/auth/auth0.py +0 -0
  88. {fal-1.5.0 → fal-1.5.1}/src/fal/auth/local.py +0 -0
  89. {fal-1.5.0 → fal-1.5.1}/src/fal/cli/__init__.py +0 -0
  90. {fal-1.5.0 → fal-1.5.1}/src/fal/cli/_utils.py +0 -0
  91. {fal-1.5.0 → fal-1.5.1}/src/fal/cli/apps.py +0 -0
  92. {fal-1.5.0 → fal-1.5.1}/src/fal/cli/auth.py +0 -0
  93. {fal-1.5.0 → fal-1.5.1}/src/fal/cli/create.py +0 -0
  94. {fal-1.5.0 → fal-1.5.1}/src/fal/cli/debug.py +0 -0
  95. {fal-1.5.0 → fal-1.5.1}/src/fal/cli/deploy.py +0 -0
  96. {fal-1.5.0 → fal-1.5.1}/src/fal/cli/doctor.py +0 -0
  97. {fal-1.5.0 → fal-1.5.1}/src/fal/cli/keys.py +0 -0
  98. {fal-1.5.0 → fal-1.5.1}/src/fal/cli/main.py +0 -0
  99. {fal-1.5.0 → fal-1.5.1}/src/fal/cli/parser.py +0 -0
  100. {fal-1.5.0 → fal-1.5.1}/src/fal/cli/run.py +0 -0
  101. {fal-1.5.0 → fal-1.5.1}/src/fal/cli/secrets.py +0 -0
  102. {fal-1.5.0 → fal-1.5.1}/src/fal/console/__init__.py +0 -0
  103. {fal-1.5.0 → fal-1.5.1}/src/fal/console/icons.py +0 -0
  104. {fal-1.5.0 → fal-1.5.1}/src/fal/console/ux.py +0 -0
  105. {fal-1.5.0 → fal-1.5.1}/src/fal/container.py +0 -0
  106. {fal-1.5.0 → fal-1.5.1}/src/fal/exceptions/__init__.py +0 -0
  107. {fal-1.5.0 → fal-1.5.1}/src/fal/exceptions/_base.py +0 -0
  108. {fal-1.5.0 → fal-1.5.1}/src/fal/exceptions/_cuda.py +0 -0
  109. {fal-1.5.0 → fal-1.5.1}/src/fal/exceptions/auth.py +0 -0
  110. {fal-1.5.0 → fal-1.5.1}/src/fal/files.py +0 -0
  111. {fal-1.5.0 → fal-1.5.1}/src/fal/flags.py +0 -0
  112. {fal-1.5.0 → fal-1.5.1}/src/fal/logging/__init__.py +0 -0
  113. {fal-1.5.0 → fal-1.5.1}/src/fal/logging/isolate.py +0 -0
  114. {fal-1.5.0 → fal-1.5.1}/src/fal/logging/style.py +0 -0
  115. {fal-1.5.0 → fal-1.5.1}/src/fal/logging/trace.py +0 -0
  116. {fal-1.5.0 → fal-1.5.1}/src/fal/logging/user.py +0 -0
  117. {fal-1.5.0 → fal-1.5.1}/src/fal/py.typed +0 -0
  118. {fal-1.5.0 → fal-1.5.1}/src/fal/rest_client.py +0 -0
  119. {fal-1.5.0 → fal-1.5.1}/src/fal/sdk.py +0 -0
  120. {fal-1.5.0 → fal-1.5.1}/src/fal/sync.py +0 -0
  121. {fal-1.5.0 → fal-1.5.1}/src/fal/toolkit/__init__.py +0 -0
  122. {fal-1.5.0 → fal-1.5.1}/src/fal/toolkit/exceptions.py +0 -0
  123. {fal-1.5.0 → fal-1.5.1}/src/fal/toolkit/file/__init__.py +0 -0
  124. {fal-1.5.0 → fal-1.5.1}/src/fal/toolkit/file/file.py +0 -0
  125. {fal-1.5.0 → fal-1.5.1}/src/fal/toolkit/file/providers/fal.py +0 -0
  126. {fal-1.5.0 → fal-1.5.1}/src/fal/toolkit/file/providers/gcp.py +0 -0
  127. {fal-1.5.0 → fal-1.5.1}/src/fal/toolkit/file/providers/r2.py +0 -0
  128. {fal-1.5.0 → fal-1.5.1}/src/fal/toolkit/file/types.py +0 -0
  129. {fal-1.5.0 → fal-1.5.1}/src/fal/toolkit/image/__init__.py +0 -0
  130. {fal-1.5.0 → fal-1.5.1}/src/fal/toolkit/image/image.py +0 -0
  131. {fal-1.5.0 → fal-1.5.1}/src/fal/toolkit/image/nsfw_filter/__init__.py +0 -0
  132. {fal-1.5.0 → fal-1.5.1}/src/fal/toolkit/image/nsfw_filter/env.py +0 -0
  133. {fal-1.5.0 → fal-1.5.1}/src/fal/toolkit/image/nsfw_filter/inference.py +0 -0
  134. {fal-1.5.0 → fal-1.5.1}/src/fal/toolkit/image/nsfw_filter/model.py +0 -0
  135. {fal-1.5.0 → fal-1.5.1}/src/fal/toolkit/image/nsfw_filter/requirements.txt +0 -0
  136. {fal-1.5.0 → fal-1.5.1}/src/fal/toolkit/image/safety_checker.py +0 -0
  137. {fal-1.5.0 → fal-1.5.1}/src/fal/toolkit/optimize.py +0 -0
  138. {fal-1.5.0 → fal-1.5.1}/src/fal/toolkit/utils/__init__.py +0 -0
  139. {fal-1.5.0 → fal-1.5.1}/src/fal/toolkit/utils/download_utils.py +0 -0
  140. {fal-1.5.0 → fal-1.5.1}/src/fal/toolkit/utils/retry.py +0 -0
  141. {fal-1.5.0 → fal-1.5.1}/src/fal/utils.py +0 -0
  142. {fal-1.5.0 → fal-1.5.1}/src/fal/workflows.py +0 -0
  143. {fal-1.5.0 → fal-1.5.1}/tests/__init__.py +0 -0
  144. {fal-1.5.0 → fal-1.5.1}/tests/cli/__init__.py +0 -0
  145. {fal-1.5.0 → fal-1.5.1}/tests/cli/test_apps.py +0 -0
  146. {fal-1.5.0 → fal-1.5.1}/tests/cli/test_auth.py +0 -0
  147. {fal-1.5.0 → fal-1.5.1}/tests/cli/test_deploy.py +0 -0
  148. {fal-1.5.0 → fal-1.5.1}/tests/cli/test_keys.py +0 -0
  149. {fal-1.5.0 → fal-1.5.1}/tests/cli/test_run.py +0 -0
  150. {fal-1.5.0 → fal-1.5.1}/tests/cli/test_secrets.py +0 -0
  151. {fal-1.5.0 → fal-1.5.1}/tests/conftest.py +0 -0
  152. {fal-1.5.0 → fal-1.5.1}/tests/integration_test.py +0 -0
  153. {fal-1.5.0 → fal-1.5.1}/tests/mainify_package/__init__.py +0 -0
  154. {fal-1.5.0 → fal-1.5.1}/tests/mainify_package/impl.py +0 -0
  155. {fal-1.5.0 → fal-1.5.1}/tests/mainify_package/utils.py +0 -0
  156. {fal-1.5.0 → fal-1.5.1}/tests/mainify_target.py +0 -0
  157. {fal-1.5.0 → fal-1.5.1}/tests/test_apps.py +0 -0
  158. {fal-1.5.0 → fal-1.5.1}/tests/test_stability.py +0 -0
  159. {fal-1.5.0 → fal-1.5.1}/tests/toolkit/file_test.py +0 -0
  160. {fal-1.5.0 → fal-1.5.1}/tests/toolkit/image_test.py +0 -0
  161. {fal-1.5.0 → fal-1.5.1}/tests/toolkit/utils/retry.py +0 -0
  162. {fal-1.5.0 → fal-1.5.1}/tools/demo_script.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: fal
3
- Version: 1.5.0
3
+ Version: 1.5.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,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: fal
3
- Version: 1.5.0
3
+ Version: 1.5.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
@@ -12,5 +12,5 @@ __version__: str
12
12
  __version_tuple__: VERSION_TUPLE
13
13
  version_tuple: VERSION_TUPLE
14
14
 
15
- __version__ = version = '1.5.0'
16
- __version_tuple__ = version_tuple = (1, 5, 0)
15
+ __version__ = version = '1.5.1'
16
+ __version_tuple__ = version_tuple = (1, 5, 1)
@@ -971,6 +971,8 @@ class RouteSignature(NamedTuple):
971
971
 
972
972
 
973
973
  class BaseServable:
974
+ version: ClassVar[str] = "unknown"
975
+
974
976
  def collect_routes(self) -> dict[RouteSignature, Callable[..., Any]]:
975
977
  raise NotImplementedError
976
978
 
@@ -1099,9 +1101,14 @@ class BaseServable:
1099
1101
  def serve(self) -> None:
1100
1102
  import asyncio
1101
1103
 
1104
+ from prometheus_client import Gauge
1102
1105
  from starlette_exporter import handle_metrics
1103
1106
  from uvicorn import Config
1104
1107
 
1108
+ # NOTE: this uses the global prometheus registry
1109
+ app_info = Gauge("fal_app_info", "Fal application information", ["version"])
1110
+ app_info.labels(version=self.version).set(1)
1111
+
1105
1112
  app = self._build_app()
1106
1113
  server = Server(
1107
1114
  config=Config(app, host="0.0.0.0", port=8080, timeout_keep_alive=300)
@@ -189,7 +189,6 @@ class App(fal.api.BaseServable):
189
189
  }
190
190
  app_name: ClassVar[str]
191
191
  app_auth: ClassVar[Literal["private", "public", "shared"]] = "private"
192
- version: ClassVar[str] = "unknown"
193
192
  request_timeout: ClassVar[int | None] = None
194
193
 
195
194
  def __init_subclass__(cls, **kwargs):
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
File without changes
File without changes