fal 1.46.2__tar.gz → 1.48.0__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 (201) hide show
  1. {fal-1.46.2/fal.egg-info → fal-1.48.0}/PKG-INFO +3 -2
  2. {fal-1.46.2 → fal-1.48.0/fal.egg-info}/PKG-INFO +3 -2
  3. {fal-1.46.2 → fal-1.48.0}/fal.egg-info/requires.txt +2 -1
  4. {fal-1.46.2 → fal-1.48.0}/pyproject.toml +2 -1
  5. {fal-1.46.2 → fal-1.48.0}/src/fal/_fal_version.py +2 -2
  6. {fal-1.46.2 → fal-1.48.0}/src/fal/api/api.py +2 -0
  7. {fal-1.46.2 → fal-1.48.0}/src/fal/api/deploy.py +1 -0
  8. {fal-1.46.2 → fal-1.48.0}/src/fal/cli/files.py +17 -0
  9. {fal-1.46.2 → fal-1.48.0}/src/fal/sdk.py +2 -0
  10. {fal-1.46.2 → fal-1.48.0}/src/fal/utils.py +7 -1
  11. {fal-1.46.2 → fal-1.48.0}/.gitignore +0 -0
  12. {fal-1.46.2 → fal-1.48.0}/Makefile +0 -0
  13. {fal-1.46.2 → fal-1.48.0}/README.md +0 -0
  14. {fal-1.46.2 → fal-1.48.0}/docs/conf.py +0 -0
  15. {fal-1.46.2 → fal-1.48.0}/docs/index.rst +0 -0
  16. {fal-1.46.2 → fal-1.48.0}/fal.egg-info/SOURCES.txt +0 -0
  17. {fal-1.46.2 → fal-1.48.0}/fal.egg-info/dependency_links.txt +0 -0
  18. {fal-1.46.2 → fal-1.48.0}/fal.egg-info/entry_points.txt +0 -0
  19. {fal-1.46.2 → fal-1.48.0}/fal.egg-info/top_level.txt +0 -0
  20. {fal-1.46.2 → fal-1.48.0}/openapi-fal-rest/README.md +0 -0
  21. {fal-1.46.2 → fal-1.48.0}/openapi-fal-rest/openapi_fal_rest/__init__.py +0 -0
  22. {fal-1.46.2 → fal-1.48.0}/openapi-fal-rest/openapi_fal_rest/api/__init__.py +0 -0
  23. {fal-1.46.2 → fal-1.48.0}/openapi-fal-rest/openapi_fal_rest/api/applications/__init__.py +0 -0
  24. {fal-1.46.2 → fal-1.48.0}/openapi-fal-rest/openapi_fal_rest/api/applications/app_metadata.py +0 -0
  25. {fal-1.46.2 → fal-1.48.0}/openapi-fal-rest/openapi_fal_rest/api/billing/__init__.py +0 -0
  26. {fal-1.46.2 → fal-1.48.0}/openapi-fal-rest/openapi_fal_rest/api/billing/get_user_details.py +0 -0
  27. {fal-1.46.2 → fal-1.48.0}/openapi-fal-rest/openapi_fal_rest/api/comfy/__init__.py +0 -0
  28. {fal-1.46.2 → fal-1.48.0}/openapi-fal-rest/openapi_fal_rest/api/comfy/create_workflow.py +0 -0
  29. {fal-1.46.2 → fal-1.48.0}/openapi-fal-rest/openapi_fal_rest/api/comfy/delete_workflow.py +0 -0
  30. {fal-1.46.2 → fal-1.48.0}/openapi-fal-rest/openapi_fal_rest/api/comfy/get_workflow.py +0 -0
  31. {fal-1.46.2 → fal-1.48.0}/openapi-fal-rest/openapi_fal_rest/api/comfy/list_user_workflows.py +0 -0
  32. {fal-1.46.2 → fal-1.48.0}/openapi-fal-rest/openapi_fal_rest/api/comfy/update_workflow.py +0 -0
  33. {fal-1.46.2 → fal-1.48.0}/openapi-fal-rest/openapi_fal_rest/api/files/__init__.py +0 -0
  34. {fal-1.46.2 → fal-1.48.0}/openapi-fal-rest/openapi_fal_rest/api/files/check_dir_hash.py +0 -0
  35. {fal-1.46.2 → fal-1.48.0}/openapi-fal-rest/openapi_fal_rest/api/files/upload_local_file.py +0 -0
  36. {fal-1.46.2 → fal-1.48.0}/openapi-fal-rest/openapi_fal_rest/api/users/__init__.py +0 -0
  37. {fal-1.46.2 → fal-1.48.0}/openapi-fal-rest/openapi_fal_rest/api/users/get_current_user.py +0 -0
  38. {fal-1.46.2 → fal-1.48.0}/openapi-fal-rest/openapi_fal_rest/api/workflows/__init__.py +0 -0
  39. {fal-1.46.2 → fal-1.48.0}/openapi-fal-rest/openapi_fal_rest/api/workflows/create_workflow.py +0 -0
  40. {fal-1.46.2 → fal-1.48.0}/openapi-fal-rest/openapi_fal_rest/api/workflows/delete_workflow.py +0 -0
  41. {fal-1.46.2 → fal-1.48.0}/openapi-fal-rest/openapi_fal_rest/api/workflows/get_workflow.py +0 -0
  42. {fal-1.46.2 → fal-1.48.0}/openapi-fal-rest/openapi_fal_rest/api/workflows/list_user_workflows.py +0 -0
  43. {fal-1.46.2 → fal-1.48.0}/openapi-fal-rest/openapi_fal_rest/api/workflows/update_workflow.py +0 -0
  44. {fal-1.46.2 → fal-1.48.0}/openapi-fal-rest/openapi_fal_rest/client.py +0 -0
  45. {fal-1.46.2 → fal-1.48.0}/openapi-fal-rest/openapi_fal_rest/errors.py +0 -0
  46. {fal-1.46.2 → fal-1.48.0}/openapi-fal-rest/openapi_fal_rest/models/__init__.py +0 -0
  47. {fal-1.46.2 → fal-1.48.0}/openapi-fal-rest/openapi_fal_rest/models/app_metadata_response_app_metadata.py +0 -0
  48. {fal-1.46.2 → fal-1.48.0}/openapi-fal-rest/openapi_fal_rest/models/body_upload_local_file.py +0 -0
  49. {fal-1.46.2 → fal-1.48.0}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_detail.py +0 -0
  50. {fal-1.46.2 → fal-1.48.0}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_item.py +0 -0
  51. {fal-1.46.2 → fal-1.48.0}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_schema.py +0 -0
  52. {fal-1.46.2 → fal-1.48.0}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_schema_extra_data.py +0 -0
  53. {fal-1.46.2 → fal-1.48.0}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_schema_fal_inputs.py +0 -0
  54. {fal-1.46.2 → fal-1.48.0}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_schema_fal_inputs_dev_info.py +0 -0
  55. {fal-1.46.2 → fal-1.48.0}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_schema_prompt.py +0 -0
  56. {fal-1.46.2 → fal-1.48.0}/openapi-fal-rest/openapi_fal_rest/models/current_user.py +0 -0
  57. {fal-1.46.2 → fal-1.48.0}/openapi-fal-rest/openapi_fal_rest/models/customer_details.py +0 -0
  58. {fal-1.46.2 → fal-1.48.0}/openapi-fal-rest/openapi_fal_rest/models/hash_check.py +0 -0
  59. {fal-1.46.2 → fal-1.48.0}/openapi-fal-rest/openapi_fal_rest/models/http_validation_error.py +0 -0
  60. {fal-1.46.2 → fal-1.48.0}/openapi-fal-rest/openapi_fal_rest/models/lock_reason.py +0 -0
  61. {fal-1.46.2 → fal-1.48.0}/openapi-fal-rest/openapi_fal_rest/models/page_comfy_workflow_item.py +0 -0
  62. {fal-1.46.2 → fal-1.48.0}/openapi-fal-rest/openapi_fal_rest/models/page_workflow_item.py +0 -0
  63. {fal-1.46.2 → fal-1.48.0}/openapi-fal-rest/openapi_fal_rest/models/team_role.py +0 -0
  64. {fal-1.46.2 → fal-1.48.0}/openapi-fal-rest/openapi_fal_rest/models/typed_comfy_workflow.py +0 -0
  65. {fal-1.46.2 → fal-1.48.0}/openapi-fal-rest/openapi_fal_rest/models/typed_comfy_workflow_update.py +0 -0
  66. {fal-1.46.2 → fal-1.48.0}/openapi-fal-rest/openapi_fal_rest/models/typed_workflow.py +0 -0
  67. {fal-1.46.2 → fal-1.48.0}/openapi-fal-rest/openapi_fal_rest/models/typed_workflow_update.py +0 -0
  68. {fal-1.46.2 → fal-1.48.0}/openapi-fal-rest/openapi_fal_rest/models/user_member.py +0 -0
  69. {fal-1.46.2 → fal-1.48.0}/openapi-fal-rest/openapi_fal_rest/models/validation_error.py +0 -0
  70. {fal-1.46.2 → fal-1.48.0}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents.py +0 -0
  71. {fal-1.46.2 → fal-1.48.0}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents_metadata.py +0 -0
  72. {fal-1.46.2 → fal-1.48.0}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents_nodes.py +0 -0
  73. {fal-1.46.2 → fal-1.48.0}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents_output.py +0 -0
  74. {fal-1.46.2 → fal-1.48.0}/openapi-fal-rest/openapi_fal_rest/models/workflow_detail.py +0 -0
  75. {fal-1.46.2 → fal-1.48.0}/openapi-fal-rest/openapi_fal_rest/models/workflow_detail_contents.py +0 -0
  76. {fal-1.46.2 → fal-1.48.0}/openapi-fal-rest/openapi_fal_rest/models/workflow_item.py +0 -0
  77. {fal-1.46.2 → fal-1.48.0}/openapi-fal-rest/openapi_fal_rest/models/workflow_node.py +0 -0
  78. {fal-1.46.2 → fal-1.48.0}/openapi-fal-rest/openapi_fal_rest/models/workflow_node_type.py +0 -0
  79. {fal-1.46.2 → fal-1.48.0}/openapi-fal-rest/openapi_fal_rest/models/workflow_schema.py +0 -0
  80. {fal-1.46.2 → fal-1.48.0}/openapi-fal-rest/openapi_fal_rest/models/workflow_schema_input.py +0 -0
  81. {fal-1.46.2 → fal-1.48.0}/openapi-fal-rest/openapi_fal_rest/models/workflow_schema_output.py +0 -0
  82. {fal-1.46.2 → fal-1.48.0}/openapi-fal-rest/openapi_fal_rest/py.typed +0 -0
  83. {fal-1.46.2 → fal-1.48.0}/openapi-fal-rest/openapi_fal_rest/types.py +0 -0
  84. {fal-1.46.2 → fal-1.48.0}/openapi-fal-rest/pyproject.toml +0 -0
  85. {fal-1.46.2 → fal-1.48.0}/openapi_rest.config.yaml +0 -0
  86. {fal-1.46.2 → fal-1.48.0}/setup.cfg +0 -0
  87. {fal-1.46.2 → fal-1.48.0}/src/fal/__init__.py +0 -0
  88. {fal-1.46.2 → fal-1.48.0}/src/fal/__main__.py +0 -0
  89. {fal-1.46.2 → fal-1.48.0}/src/fal/_serialization.py +0 -0
  90. {fal-1.46.2 → fal-1.48.0}/src/fal/_version.py +0 -0
  91. {fal-1.46.2 → fal-1.48.0}/src/fal/api/__init__.py +0 -0
  92. {fal-1.46.2 → fal-1.48.0}/src/fal/api/apps.py +0 -0
  93. {fal-1.46.2 → fal-1.48.0}/src/fal/api/client.py +0 -0
  94. {fal-1.46.2 → fal-1.48.0}/src/fal/api/runners.py +0 -0
  95. {fal-1.46.2 → fal-1.48.0}/src/fal/app.py +0 -0
  96. {fal-1.46.2 → fal-1.48.0}/src/fal/apps.py +0 -0
  97. {fal-1.46.2 → fal-1.48.0}/src/fal/auth/__init__.py +0 -0
  98. {fal-1.46.2 → fal-1.48.0}/src/fal/auth/auth0.py +0 -0
  99. {fal-1.46.2 → fal-1.48.0}/src/fal/auth/local.py +0 -0
  100. {fal-1.46.2 → fal-1.48.0}/src/fal/cli/__init__.py +0 -0
  101. {fal-1.46.2 → fal-1.48.0}/src/fal/cli/_utils.py +0 -0
  102. {fal-1.46.2 → fal-1.48.0}/src/fal/cli/api.py +0 -0
  103. {fal-1.46.2 → fal-1.48.0}/src/fal/cli/apps.py +0 -0
  104. {fal-1.46.2 → fal-1.48.0}/src/fal/cli/auth.py +0 -0
  105. {fal-1.46.2 → fal-1.48.0}/src/fal/cli/cli_nested_json.py +0 -0
  106. {fal-1.46.2 → fal-1.48.0}/src/fal/cli/create.py +0 -0
  107. {fal-1.46.2 → fal-1.48.0}/src/fal/cli/debug.py +0 -0
  108. {fal-1.46.2 → fal-1.48.0}/src/fal/cli/deploy.py +0 -0
  109. {fal-1.46.2 → fal-1.48.0}/src/fal/cli/doctor.py +0 -0
  110. {fal-1.46.2 → fal-1.48.0}/src/fal/cli/keys.py +0 -0
  111. {fal-1.46.2 → fal-1.48.0}/src/fal/cli/main.py +0 -0
  112. {fal-1.46.2 → fal-1.48.0}/src/fal/cli/parser.py +0 -0
  113. {fal-1.46.2 → fal-1.48.0}/src/fal/cli/profile.py +0 -0
  114. {fal-1.46.2 → fal-1.48.0}/src/fal/cli/queue.py +0 -0
  115. {fal-1.46.2 → fal-1.48.0}/src/fal/cli/run.py +0 -0
  116. {fal-1.46.2 → fal-1.48.0}/src/fal/cli/runners.py +0 -0
  117. {fal-1.46.2 → fal-1.48.0}/src/fal/cli/secrets.py +0 -0
  118. {fal-1.46.2 → fal-1.48.0}/src/fal/cli/teams.py +0 -0
  119. {fal-1.46.2 → fal-1.48.0}/src/fal/config.py +0 -0
  120. {fal-1.46.2 → fal-1.48.0}/src/fal/console/__init__.py +0 -0
  121. {fal-1.46.2 → fal-1.48.0}/src/fal/console/icons.py +0 -0
  122. {fal-1.46.2 → fal-1.48.0}/src/fal/console/ux.py +0 -0
  123. {fal-1.46.2 → fal-1.48.0}/src/fal/container.py +0 -0
  124. {fal-1.46.2 → fal-1.48.0}/src/fal/distributed/__init__.py +0 -0
  125. {fal-1.46.2 → fal-1.48.0}/src/fal/distributed/utils.py +0 -0
  126. {fal-1.46.2 → fal-1.48.0}/src/fal/distributed/worker.py +0 -0
  127. {fal-1.46.2 → fal-1.48.0}/src/fal/exceptions/__init__.py +0 -0
  128. {fal-1.46.2 → fal-1.48.0}/src/fal/exceptions/_base.py +0 -0
  129. {fal-1.46.2 → fal-1.48.0}/src/fal/exceptions/_cuda.py +0 -0
  130. {fal-1.46.2 → fal-1.48.0}/src/fal/exceptions/auth.py +0 -0
  131. {fal-1.46.2 → fal-1.48.0}/src/fal/file_sync.py +0 -0
  132. {fal-1.46.2 → fal-1.48.0}/src/fal/files.py +0 -0
  133. {fal-1.46.2 → fal-1.48.0}/src/fal/flags.py +0 -0
  134. {fal-1.46.2 → fal-1.48.0}/src/fal/logging/__init__.py +0 -0
  135. {fal-1.46.2 → fal-1.48.0}/src/fal/logging/isolate.py +0 -0
  136. {fal-1.46.2 → fal-1.48.0}/src/fal/logging/style.py +0 -0
  137. {fal-1.46.2 → fal-1.48.0}/src/fal/logging/trace.py +0 -0
  138. {fal-1.46.2 → fal-1.48.0}/src/fal/project.py +0 -0
  139. {fal-1.46.2 → fal-1.48.0}/src/fal/py.typed +0 -0
  140. {fal-1.46.2 → fal-1.48.0}/src/fal/rest_client.py +0 -0
  141. {fal-1.46.2 → fal-1.48.0}/src/fal/sync.py +0 -0
  142. {fal-1.46.2 → fal-1.48.0}/src/fal/toolkit/__init__.py +0 -0
  143. {fal-1.46.2 → fal-1.48.0}/src/fal/toolkit/audio/__init__.py +0 -0
  144. {fal-1.46.2 → fal-1.48.0}/src/fal/toolkit/audio/audio.py +0 -0
  145. {fal-1.46.2 → fal-1.48.0}/src/fal/toolkit/exceptions.py +0 -0
  146. {fal-1.46.2 → fal-1.48.0}/src/fal/toolkit/file/__init__.py +0 -0
  147. {fal-1.46.2 → fal-1.48.0}/src/fal/toolkit/file/file.py +0 -0
  148. {fal-1.46.2 → fal-1.48.0}/src/fal/toolkit/file/providers/fal.py +0 -0
  149. {fal-1.46.2 → fal-1.48.0}/src/fal/toolkit/file/providers/gcp.py +0 -0
  150. {fal-1.46.2 → fal-1.48.0}/src/fal/toolkit/file/providers/r2.py +0 -0
  151. {fal-1.46.2 → fal-1.48.0}/src/fal/toolkit/file/providers/s3.py +0 -0
  152. {fal-1.46.2 → fal-1.48.0}/src/fal/toolkit/file/types.py +0 -0
  153. {fal-1.46.2 → fal-1.48.0}/src/fal/toolkit/image/__init__.py +0 -0
  154. {fal-1.46.2 → fal-1.48.0}/src/fal/toolkit/image/image.py +0 -0
  155. {fal-1.46.2 → fal-1.48.0}/src/fal/toolkit/image/nsfw_filter/__init__.py +0 -0
  156. {fal-1.46.2 → fal-1.48.0}/src/fal/toolkit/image/nsfw_filter/env.py +0 -0
  157. {fal-1.46.2 → fal-1.48.0}/src/fal/toolkit/image/nsfw_filter/inference.py +0 -0
  158. {fal-1.46.2 → fal-1.48.0}/src/fal/toolkit/image/nsfw_filter/model.py +0 -0
  159. {fal-1.46.2 → fal-1.48.0}/src/fal/toolkit/image/nsfw_filter/requirements.txt +0 -0
  160. {fal-1.46.2 → fal-1.48.0}/src/fal/toolkit/image/safety_checker.py +0 -0
  161. {fal-1.46.2 → fal-1.48.0}/src/fal/toolkit/kv.py +0 -0
  162. {fal-1.46.2 → fal-1.48.0}/src/fal/toolkit/optimize.py +0 -0
  163. {fal-1.46.2 → fal-1.48.0}/src/fal/toolkit/types.py +0 -0
  164. {fal-1.46.2 → fal-1.48.0}/src/fal/toolkit/utils/__init__.py +0 -0
  165. {fal-1.46.2 → fal-1.48.0}/src/fal/toolkit/utils/download_utils.py +0 -0
  166. {fal-1.46.2 → fal-1.48.0}/src/fal/toolkit/utils/endpoint.py +0 -0
  167. {fal-1.46.2 → fal-1.48.0}/src/fal/toolkit/utils/retry.py +0 -0
  168. {fal-1.46.2 → fal-1.48.0}/src/fal/toolkit/utils/setup_utils.py +0 -0
  169. {fal-1.46.2 → fal-1.48.0}/src/fal/toolkit/video/__init__.py +0 -0
  170. {fal-1.46.2 → fal-1.48.0}/src/fal/toolkit/video/video.py +0 -0
  171. {fal-1.46.2 → fal-1.48.0}/src/fal/workflows.py +0 -0
  172. {fal-1.46.2 → fal-1.48.0}/tests/__init__.py +0 -0
  173. {fal-1.46.2 → fal-1.48.0}/tests/assets/cat.png +0 -0
  174. {fal-1.46.2 → fal-1.48.0}/tests/cli/__init__.py +0 -0
  175. {fal-1.46.2 → fal-1.48.0}/tests/cli/test_apps.py +0 -0
  176. {fal-1.46.2 → fal-1.48.0}/tests/cli/test_auth.py +0 -0
  177. {fal-1.46.2 → fal-1.48.0}/tests/cli/test_deploy.py +0 -0
  178. {fal-1.46.2 → fal-1.48.0}/tests/cli/test_keys.py +0 -0
  179. {fal-1.46.2 → fal-1.48.0}/tests/cli/test_run.py +0 -0
  180. {fal-1.46.2 → fal-1.48.0}/tests/cli/test_secrets.py +0 -0
  181. {fal-1.46.2 → fal-1.48.0}/tests/conftest.py +0 -0
  182. {fal-1.46.2 → fal-1.48.0}/tests/integration_test.py +0 -0
  183. {fal-1.46.2 → fal-1.48.0}/tests/mainify_package/__init__.py +0 -0
  184. {fal-1.46.2 → fal-1.48.0}/tests/mainify_package/impl.py +0 -0
  185. {fal-1.46.2 → fal-1.48.0}/tests/mainify_package/utils.py +0 -0
  186. {fal-1.46.2 → fal-1.48.0}/tests/mainify_target.py +0 -0
  187. {fal-1.46.2 → fal-1.48.0}/tests/test_apps.py +0 -0
  188. {fal-1.46.2 → fal-1.48.0}/tests/test_file_sync.py +0 -0
  189. {fal-1.46.2 → fal-1.48.0}/tests/test_files.py +0 -0
  190. {fal-1.46.2 → fal-1.48.0}/tests/test_kv.py +0 -0
  191. {fal-1.46.2 → fal-1.48.0}/tests/test_stability.py +0 -0
  192. {fal-1.46.2 → fal-1.48.0}/tests/toolkit/file/providers/test_fal_retry.py +0 -0
  193. {fal-1.46.2 → fal-1.48.0}/tests/toolkit/file_test.py +0 -0
  194. {fal-1.46.2 → fal-1.48.0}/tests/toolkit/image_test.py +0 -0
  195. {fal-1.46.2 → fal-1.48.0}/tests/toolkit/test_types.py +0 -0
  196. {fal-1.46.2 → fal-1.48.0}/tests/toolkit/utils/retry.py +0 -0
  197. {fal-1.46.2 → fal-1.48.0}/tests/unit/distributed/test_integration.py +0 -0
  198. {fal-1.46.2 → fal-1.48.0}/tests/unit/distributed/test_utils.py +0 -0
  199. {fal-1.46.2 → fal-1.48.0}/tests/unit/distributed/test_worker.py +0 -0
  200. {fal-1.46.2 → fal-1.48.0}/tests/unit/test_app.py +0 -0
  201. {fal-1.46.2 → fal-1.48.0}/tools/demo_script.py +0 -0
@@ -1,12 +1,12 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fal
3
- Version: 1.46.2
3
+ Version: 1.48.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
7
7
  Description-Content-Type: text/markdown
8
8
  Requires-Dist: isolate[build]<0.21.0,>=0.18.0
9
- Requires-Dist: isolate-proto<0.19.0,>=0.18.0
9
+ Requires-Dist: isolate-proto<0.20.0,>=0.19.0
10
10
  Requires-Dist: grpcio<2,>=1.64.0
11
11
  Requires-Dist: dill==0.3.7
12
12
  Requires-Dist: cloudpickle==3.0.0
@@ -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,12 +1,12 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fal
3
- Version: 1.46.2
3
+ Version: 1.48.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
7
7
  Description-Content-Type: text/markdown
8
8
  Requires-Dist: isolate[build]<0.21.0,>=0.18.0
9
- Requires-Dist: isolate-proto<0.19.0,>=0.18.0
9
+ Requires-Dist: isolate-proto<0.20.0,>=0.19.0
10
10
  Requires-Dist: grpcio<2,>=1.64.0
11
11
  Requires-Dist: dill==0.3.7
12
12
  Requires-Dist: cloudpickle==3.0.0
@@ -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,5 +1,5 @@
1
1
  isolate[build]<0.21.0,>=0.18.0
2
- isolate-proto<0.19.0,>=0.18.0
2
+ isolate-proto<0.20.0,>=0.19.0
3
3
  grpcio<2,>=1.64.0
4
4
  dill==0.3.7
5
5
  cloudpickle==3.0.0
@@ -34,6 +34,7 @@ cookiecutter
34
34
  tomli<3,>2
35
35
  tomli-w<2,>=1
36
36
  fsspec
37
+ tblib<3.2.0
37
38
 
38
39
  [:python_version < "3.10"]
39
40
  importlib-metadata>=4.4
@@ -23,7 +23,7 @@ readme = "README.md"
23
23
  requires-python = ">=3.8"
24
24
  dependencies = [
25
25
  "isolate[build]>=0.18.0,<0.21.0",
26
- "isolate-proto>=0.18.0,<0.19.0",
26
+ "isolate-proto>=0.19.0,<0.20.0",
27
27
  "grpcio>=1.64.0,<2",
28
28
  "dill==0.3.7",
29
29
  "cloudpickle==3.0.0",
@@ -62,6 +62,7 @@ dependencies = [
62
62
  "tomli>2,<3",
63
63
  "tomli-w>=1,<2",
64
64
  "fsspec",
65
+ "tblib<3.2.0",
65
66
  ]
66
67
 
67
68
  [project.optional-dependencies]
@@ -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.46.2'
32
- __version_tuple__ = version_tuple = (1, 46, 2)
31
+ __version__ = version = '1.48.0'
32
+ __version_tuple__ = version_tuple = (1, 48, 0)
33
33
 
34
34
  __commit_id__ = commit_id = None
@@ -514,6 +514,7 @@ class FalServerlessHost(Host):
514
514
  *,
515
515
  application_name: Optional[str] = None,
516
516
  application_auth_mode: Optional[AuthModeLiteral] = None,
517
+ source_code: Optional[str] = None,
517
518
  metadata: Optional[dict[str, Any]] = None,
518
519
  deployment_strategy: DeploymentStrategyLiteral,
519
520
  scale: bool = True,
@@ -574,6 +575,7 @@ class FalServerlessHost(Host):
574
575
  environments,
575
576
  application_name=application_name,
576
577
  auth_mode=application_auth_mode,
578
+ source_code=source_code,
577
579
  machine_requirements=machine_requirements,
578
580
  metadata=metadata,
579
581
  deployment_strategy=deployment_strategy,
@@ -122,6 +122,7 @@ def _deploy_from_reference(
122
122
  options=isolated_function.options,
123
123
  application_name=app_name,
124
124
  application_auth_mode=app_auth, # type: ignore
125
+ source_code=loaded.source_code,
125
126
  metadata=isolated_function.options.host.get("metadata", {}),
126
127
  deployment_strategy=strategy,
127
128
  scale=scale,
@@ -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)
@@ -632,6 +632,7 @@ class FalServerlessConnection:
632
632
  application_name: str | None = None,
633
633
  auth_mode: Optional[AuthModeLiteral] = None,
634
634
  *,
635
+ source_code: str | None = None,
635
636
  serialization_method: str = _DEFAULT_SERIALIZATION_METHOD,
636
637
  machine_requirements: MachineRequirements | None = None,
637
638
  metadata: dict[str, Any] | None = None,
@@ -700,6 +701,7 @@ class FalServerlessConnection:
700
701
  scale=scale,
701
702
  private_logs=private_logs,
702
703
  files=files,
704
+ source_code=source_code,
703
705
  )
704
706
  for partial_result in self.stub.RegisterApplication(request):
705
707
  yield from_grpc(partial_result)
@@ -14,6 +14,7 @@ class LoadedFunction:
14
14
  endpoints: list[str]
15
15
  app_name: str | None
16
16
  app_auth: str | None
17
+ source_code: str | None
17
18
 
18
19
 
19
20
  def load_function_from(
@@ -57,6 +58,9 @@ def load_function_from(
57
58
 
58
59
  target = module[function_name]
59
60
 
61
+ with open(file_path) as f:
62
+ source_code = f.read()
63
+
60
64
  endpoints = ["/"]
61
65
  if isinstance(target, type) and issubclass(target, App):
62
66
  app_name = target.app_name
@@ -68,4 +72,6 @@ def load_function_from(
68
72
  raise FalServerlessError(
69
73
  f"Function '{function_name}' is not a fal.function or a fal.App"
70
74
  )
71
- return LoadedFunction(target, endpoints, app_name=app_name, app_auth=app_auth)
75
+ return LoadedFunction(
76
+ target, endpoints, app_name=app_name, app_auth=app_auth, source_code=source_code
77
+ )
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
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