fal 1.48.0__tar.gz → 1.49.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 (201) hide show
  1. {fal-1.48.0/fal.egg-info → fal-1.49.1}/PKG-INFO +1 -1
  2. {fal-1.48.0 → fal-1.49.1/fal.egg-info}/PKG-INFO +1 -1
  3. {fal-1.48.0 → fal-1.49.1}/src/fal/_fal_version.py +2 -2
  4. {fal-1.48.0 → fal-1.49.1}/src/fal/api/client.py +8 -1
  5. {fal-1.48.0 → fal-1.49.1}/src/fal/api/deploy.py +5 -5
  6. {fal-1.48.0 → fal-1.49.1}/src/fal/cli/run.py +3 -2
  7. {fal-1.48.0 → fal-1.49.1}/tests/cli/test_run.py +4 -4
  8. {fal-1.48.0 → fal-1.49.1}/.gitignore +0 -0
  9. {fal-1.48.0 → fal-1.49.1}/Makefile +0 -0
  10. {fal-1.48.0 → fal-1.49.1}/README.md +0 -0
  11. {fal-1.48.0 → fal-1.49.1}/docs/conf.py +0 -0
  12. {fal-1.48.0 → fal-1.49.1}/docs/index.rst +0 -0
  13. {fal-1.48.0 → fal-1.49.1}/fal.egg-info/SOURCES.txt +0 -0
  14. {fal-1.48.0 → fal-1.49.1}/fal.egg-info/dependency_links.txt +0 -0
  15. {fal-1.48.0 → fal-1.49.1}/fal.egg-info/entry_points.txt +0 -0
  16. {fal-1.48.0 → fal-1.49.1}/fal.egg-info/requires.txt +0 -0
  17. {fal-1.48.0 → fal-1.49.1}/fal.egg-info/top_level.txt +0 -0
  18. {fal-1.48.0 → fal-1.49.1}/openapi-fal-rest/README.md +0 -0
  19. {fal-1.48.0 → fal-1.49.1}/openapi-fal-rest/openapi_fal_rest/__init__.py +0 -0
  20. {fal-1.48.0 → fal-1.49.1}/openapi-fal-rest/openapi_fal_rest/api/__init__.py +0 -0
  21. {fal-1.48.0 → fal-1.49.1}/openapi-fal-rest/openapi_fal_rest/api/applications/__init__.py +0 -0
  22. {fal-1.48.0 → fal-1.49.1}/openapi-fal-rest/openapi_fal_rest/api/applications/app_metadata.py +0 -0
  23. {fal-1.48.0 → fal-1.49.1}/openapi-fal-rest/openapi_fal_rest/api/billing/__init__.py +0 -0
  24. {fal-1.48.0 → fal-1.49.1}/openapi-fal-rest/openapi_fal_rest/api/billing/get_user_details.py +0 -0
  25. {fal-1.48.0 → fal-1.49.1}/openapi-fal-rest/openapi_fal_rest/api/comfy/__init__.py +0 -0
  26. {fal-1.48.0 → fal-1.49.1}/openapi-fal-rest/openapi_fal_rest/api/comfy/create_workflow.py +0 -0
  27. {fal-1.48.0 → fal-1.49.1}/openapi-fal-rest/openapi_fal_rest/api/comfy/delete_workflow.py +0 -0
  28. {fal-1.48.0 → fal-1.49.1}/openapi-fal-rest/openapi_fal_rest/api/comfy/get_workflow.py +0 -0
  29. {fal-1.48.0 → fal-1.49.1}/openapi-fal-rest/openapi_fal_rest/api/comfy/list_user_workflows.py +0 -0
  30. {fal-1.48.0 → fal-1.49.1}/openapi-fal-rest/openapi_fal_rest/api/comfy/update_workflow.py +0 -0
  31. {fal-1.48.0 → fal-1.49.1}/openapi-fal-rest/openapi_fal_rest/api/files/__init__.py +0 -0
  32. {fal-1.48.0 → fal-1.49.1}/openapi-fal-rest/openapi_fal_rest/api/files/check_dir_hash.py +0 -0
  33. {fal-1.48.0 → fal-1.49.1}/openapi-fal-rest/openapi_fal_rest/api/files/upload_local_file.py +0 -0
  34. {fal-1.48.0 → fal-1.49.1}/openapi-fal-rest/openapi_fal_rest/api/users/__init__.py +0 -0
  35. {fal-1.48.0 → fal-1.49.1}/openapi-fal-rest/openapi_fal_rest/api/users/get_current_user.py +0 -0
  36. {fal-1.48.0 → fal-1.49.1}/openapi-fal-rest/openapi_fal_rest/api/workflows/__init__.py +0 -0
  37. {fal-1.48.0 → fal-1.49.1}/openapi-fal-rest/openapi_fal_rest/api/workflows/create_workflow.py +0 -0
  38. {fal-1.48.0 → fal-1.49.1}/openapi-fal-rest/openapi_fal_rest/api/workflows/delete_workflow.py +0 -0
  39. {fal-1.48.0 → fal-1.49.1}/openapi-fal-rest/openapi_fal_rest/api/workflows/get_workflow.py +0 -0
  40. {fal-1.48.0 → fal-1.49.1}/openapi-fal-rest/openapi_fal_rest/api/workflows/list_user_workflows.py +0 -0
  41. {fal-1.48.0 → fal-1.49.1}/openapi-fal-rest/openapi_fal_rest/api/workflows/update_workflow.py +0 -0
  42. {fal-1.48.0 → fal-1.49.1}/openapi-fal-rest/openapi_fal_rest/client.py +0 -0
  43. {fal-1.48.0 → fal-1.49.1}/openapi-fal-rest/openapi_fal_rest/errors.py +0 -0
  44. {fal-1.48.0 → fal-1.49.1}/openapi-fal-rest/openapi_fal_rest/models/__init__.py +0 -0
  45. {fal-1.48.0 → fal-1.49.1}/openapi-fal-rest/openapi_fal_rest/models/app_metadata_response_app_metadata.py +0 -0
  46. {fal-1.48.0 → fal-1.49.1}/openapi-fal-rest/openapi_fal_rest/models/body_upload_local_file.py +0 -0
  47. {fal-1.48.0 → fal-1.49.1}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_detail.py +0 -0
  48. {fal-1.48.0 → fal-1.49.1}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_item.py +0 -0
  49. {fal-1.48.0 → fal-1.49.1}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_schema.py +0 -0
  50. {fal-1.48.0 → fal-1.49.1}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_schema_extra_data.py +0 -0
  51. {fal-1.48.0 → fal-1.49.1}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_schema_fal_inputs.py +0 -0
  52. {fal-1.48.0 → fal-1.49.1}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_schema_fal_inputs_dev_info.py +0 -0
  53. {fal-1.48.0 → fal-1.49.1}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_schema_prompt.py +0 -0
  54. {fal-1.48.0 → fal-1.49.1}/openapi-fal-rest/openapi_fal_rest/models/current_user.py +0 -0
  55. {fal-1.48.0 → fal-1.49.1}/openapi-fal-rest/openapi_fal_rest/models/customer_details.py +0 -0
  56. {fal-1.48.0 → fal-1.49.1}/openapi-fal-rest/openapi_fal_rest/models/hash_check.py +0 -0
  57. {fal-1.48.0 → fal-1.49.1}/openapi-fal-rest/openapi_fal_rest/models/http_validation_error.py +0 -0
  58. {fal-1.48.0 → fal-1.49.1}/openapi-fal-rest/openapi_fal_rest/models/lock_reason.py +0 -0
  59. {fal-1.48.0 → fal-1.49.1}/openapi-fal-rest/openapi_fal_rest/models/page_comfy_workflow_item.py +0 -0
  60. {fal-1.48.0 → fal-1.49.1}/openapi-fal-rest/openapi_fal_rest/models/page_workflow_item.py +0 -0
  61. {fal-1.48.0 → fal-1.49.1}/openapi-fal-rest/openapi_fal_rest/models/team_role.py +0 -0
  62. {fal-1.48.0 → fal-1.49.1}/openapi-fal-rest/openapi_fal_rest/models/typed_comfy_workflow.py +0 -0
  63. {fal-1.48.0 → fal-1.49.1}/openapi-fal-rest/openapi_fal_rest/models/typed_comfy_workflow_update.py +0 -0
  64. {fal-1.48.0 → fal-1.49.1}/openapi-fal-rest/openapi_fal_rest/models/typed_workflow.py +0 -0
  65. {fal-1.48.0 → fal-1.49.1}/openapi-fal-rest/openapi_fal_rest/models/typed_workflow_update.py +0 -0
  66. {fal-1.48.0 → fal-1.49.1}/openapi-fal-rest/openapi_fal_rest/models/user_member.py +0 -0
  67. {fal-1.48.0 → fal-1.49.1}/openapi-fal-rest/openapi_fal_rest/models/validation_error.py +0 -0
  68. {fal-1.48.0 → fal-1.49.1}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents.py +0 -0
  69. {fal-1.48.0 → fal-1.49.1}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents_metadata.py +0 -0
  70. {fal-1.48.0 → fal-1.49.1}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents_nodes.py +0 -0
  71. {fal-1.48.0 → fal-1.49.1}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents_output.py +0 -0
  72. {fal-1.48.0 → fal-1.49.1}/openapi-fal-rest/openapi_fal_rest/models/workflow_detail.py +0 -0
  73. {fal-1.48.0 → fal-1.49.1}/openapi-fal-rest/openapi_fal_rest/models/workflow_detail_contents.py +0 -0
  74. {fal-1.48.0 → fal-1.49.1}/openapi-fal-rest/openapi_fal_rest/models/workflow_item.py +0 -0
  75. {fal-1.48.0 → fal-1.49.1}/openapi-fal-rest/openapi_fal_rest/models/workflow_node.py +0 -0
  76. {fal-1.48.0 → fal-1.49.1}/openapi-fal-rest/openapi_fal_rest/models/workflow_node_type.py +0 -0
  77. {fal-1.48.0 → fal-1.49.1}/openapi-fal-rest/openapi_fal_rest/models/workflow_schema.py +0 -0
  78. {fal-1.48.0 → fal-1.49.1}/openapi-fal-rest/openapi_fal_rest/models/workflow_schema_input.py +0 -0
  79. {fal-1.48.0 → fal-1.49.1}/openapi-fal-rest/openapi_fal_rest/models/workflow_schema_output.py +0 -0
  80. {fal-1.48.0 → fal-1.49.1}/openapi-fal-rest/openapi_fal_rest/py.typed +0 -0
  81. {fal-1.48.0 → fal-1.49.1}/openapi-fal-rest/openapi_fal_rest/types.py +0 -0
  82. {fal-1.48.0 → fal-1.49.1}/openapi-fal-rest/pyproject.toml +0 -0
  83. {fal-1.48.0 → fal-1.49.1}/openapi_rest.config.yaml +0 -0
  84. {fal-1.48.0 → fal-1.49.1}/pyproject.toml +0 -0
  85. {fal-1.48.0 → fal-1.49.1}/setup.cfg +0 -0
  86. {fal-1.48.0 → fal-1.49.1}/src/fal/__init__.py +0 -0
  87. {fal-1.48.0 → fal-1.49.1}/src/fal/__main__.py +0 -0
  88. {fal-1.48.0 → fal-1.49.1}/src/fal/_serialization.py +0 -0
  89. {fal-1.48.0 → fal-1.49.1}/src/fal/_version.py +0 -0
  90. {fal-1.48.0 → fal-1.49.1}/src/fal/api/__init__.py +0 -0
  91. {fal-1.48.0 → fal-1.49.1}/src/fal/api/api.py +0 -0
  92. {fal-1.48.0 → fal-1.49.1}/src/fal/api/apps.py +0 -0
  93. {fal-1.48.0 → fal-1.49.1}/src/fal/api/runners.py +0 -0
  94. {fal-1.48.0 → fal-1.49.1}/src/fal/app.py +0 -0
  95. {fal-1.48.0 → fal-1.49.1}/src/fal/apps.py +0 -0
  96. {fal-1.48.0 → fal-1.49.1}/src/fal/auth/__init__.py +0 -0
  97. {fal-1.48.0 → fal-1.49.1}/src/fal/auth/auth0.py +0 -0
  98. {fal-1.48.0 → fal-1.49.1}/src/fal/auth/local.py +0 -0
  99. {fal-1.48.0 → fal-1.49.1}/src/fal/cli/__init__.py +0 -0
  100. {fal-1.48.0 → fal-1.49.1}/src/fal/cli/_utils.py +0 -0
  101. {fal-1.48.0 → fal-1.49.1}/src/fal/cli/api.py +0 -0
  102. {fal-1.48.0 → fal-1.49.1}/src/fal/cli/apps.py +0 -0
  103. {fal-1.48.0 → fal-1.49.1}/src/fal/cli/auth.py +0 -0
  104. {fal-1.48.0 → fal-1.49.1}/src/fal/cli/cli_nested_json.py +0 -0
  105. {fal-1.48.0 → fal-1.49.1}/src/fal/cli/create.py +0 -0
  106. {fal-1.48.0 → fal-1.49.1}/src/fal/cli/debug.py +0 -0
  107. {fal-1.48.0 → fal-1.49.1}/src/fal/cli/deploy.py +0 -0
  108. {fal-1.48.0 → fal-1.49.1}/src/fal/cli/doctor.py +0 -0
  109. {fal-1.48.0 → fal-1.49.1}/src/fal/cli/files.py +0 -0
  110. {fal-1.48.0 → fal-1.49.1}/src/fal/cli/keys.py +0 -0
  111. {fal-1.48.0 → fal-1.49.1}/src/fal/cli/main.py +0 -0
  112. {fal-1.48.0 → fal-1.49.1}/src/fal/cli/parser.py +0 -0
  113. {fal-1.48.0 → fal-1.49.1}/src/fal/cli/profile.py +0 -0
  114. {fal-1.48.0 → fal-1.49.1}/src/fal/cli/queue.py +0 -0
  115. {fal-1.48.0 → fal-1.49.1}/src/fal/cli/runners.py +0 -0
  116. {fal-1.48.0 → fal-1.49.1}/src/fal/cli/secrets.py +0 -0
  117. {fal-1.48.0 → fal-1.49.1}/src/fal/cli/teams.py +0 -0
  118. {fal-1.48.0 → fal-1.49.1}/src/fal/config.py +0 -0
  119. {fal-1.48.0 → fal-1.49.1}/src/fal/console/__init__.py +0 -0
  120. {fal-1.48.0 → fal-1.49.1}/src/fal/console/icons.py +0 -0
  121. {fal-1.48.0 → fal-1.49.1}/src/fal/console/ux.py +0 -0
  122. {fal-1.48.0 → fal-1.49.1}/src/fal/container.py +0 -0
  123. {fal-1.48.0 → fal-1.49.1}/src/fal/distributed/__init__.py +0 -0
  124. {fal-1.48.0 → fal-1.49.1}/src/fal/distributed/utils.py +0 -0
  125. {fal-1.48.0 → fal-1.49.1}/src/fal/distributed/worker.py +0 -0
  126. {fal-1.48.0 → fal-1.49.1}/src/fal/exceptions/__init__.py +0 -0
  127. {fal-1.48.0 → fal-1.49.1}/src/fal/exceptions/_base.py +0 -0
  128. {fal-1.48.0 → fal-1.49.1}/src/fal/exceptions/_cuda.py +0 -0
  129. {fal-1.48.0 → fal-1.49.1}/src/fal/exceptions/auth.py +0 -0
  130. {fal-1.48.0 → fal-1.49.1}/src/fal/file_sync.py +0 -0
  131. {fal-1.48.0 → fal-1.49.1}/src/fal/files.py +0 -0
  132. {fal-1.48.0 → fal-1.49.1}/src/fal/flags.py +0 -0
  133. {fal-1.48.0 → fal-1.49.1}/src/fal/logging/__init__.py +0 -0
  134. {fal-1.48.0 → fal-1.49.1}/src/fal/logging/isolate.py +0 -0
  135. {fal-1.48.0 → fal-1.49.1}/src/fal/logging/style.py +0 -0
  136. {fal-1.48.0 → fal-1.49.1}/src/fal/logging/trace.py +0 -0
  137. {fal-1.48.0 → fal-1.49.1}/src/fal/project.py +0 -0
  138. {fal-1.48.0 → fal-1.49.1}/src/fal/py.typed +0 -0
  139. {fal-1.48.0 → fal-1.49.1}/src/fal/rest_client.py +0 -0
  140. {fal-1.48.0 → fal-1.49.1}/src/fal/sdk.py +0 -0
  141. {fal-1.48.0 → fal-1.49.1}/src/fal/sync.py +0 -0
  142. {fal-1.48.0 → fal-1.49.1}/src/fal/toolkit/__init__.py +0 -0
  143. {fal-1.48.0 → fal-1.49.1}/src/fal/toolkit/audio/__init__.py +0 -0
  144. {fal-1.48.0 → fal-1.49.1}/src/fal/toolkit/audio/audio.py +0 -0
  145. {fal-1.48.0 → fal-1.49.1}/src/fal/toolkit/exceptions.py +0 -0
  146. {fal-1.48.0 → fal-1.49.1}/src/fal/toolkit/file/__init__.py +0 -0
  147. {fal-1.48.0 → fal-1.49.1}/src/fal/toolkit/file/file.py +0 -0
  148. {fal-1.48.0 → fal-1.49.1}/src/fal/toolkit/file/providers/fal.py +0 -0
  149. {fal-1.48.0 → fal-1.49.1}/src/fal/toolkit/file/providers/gcp.py +0 -0
  150. {fal-1.48.0 → fal-1.49.1}/src/fal/toolkit/file/providers/r2.py +0 -0
  151. {fal-1.48.0 → fal-1.49.1}/src/fal/toolkit/file/providers/s3.py +0 -0
  152. {fal-1.48.0 → fal-1.49.1}/src/fal/toolkit/file/types.py +0 -0
  153. {fal-1.48.0 → fal-1.49.1}/src/fal/toolkit/image/__init__.py +0 -0
  154. {fal-1.48.0 → fal-1.49.1}/src/fal/toolkit/image/image.py +0 -0
  155. {fal-1.48.0 → fal-1.49.1}/src/fal/toolkit/image/nsfw_filter/__init__.py +0 -0
  156. {fal-1.48.0 → fal-1.49.1}/src/fal/toolkit/image/nsfw_filter/env.py +0 -0
  157. {fal-1.48.0 → fal-1.49.1}/src/fal/toolkit/image/nsfw_filter/inference.py +0 -0
  158. {fal-1.48.0 → fal-1.49.1}/src/fal/toolkit/image/nsfw_filter/model.py +0 -0
  159. {fal-1.48.0 → fal-1.49.1}/src/fal/toolkit/image/nsfw_filter/requirements.txt +0 -0
  160. {fal-1.48.0 → fal-1.49.1}/src/fal/toolkit/image/safety_checker.py +0 -0
  161. {fal-1.48.0 → fal-1.49.1}/src/fal/toolkit/kv.py +0 -0
  162. {fal-1.48.0 → fal-1.49.1}/src/fal/toolkit/optimize.py +0 -0
  163. {fal-1.48.0 → fal-1.49.1}/src/fal/toolkit/types.py +0 -0
  164. {fal-1.48.0 → fal-1.49.1}/src/fal/toolkit/utils/__init__.py +0 -0
  165. {fal-1.48.0 → fal-1.49.1}/src/fal/toolkit/utils/download_utils.py +0 -0
  166. {fal-1.48.0 → fal-1.49.1}/src/fal/toolkit/utils/endpoint.py +0 -0
  167. {fal-1.48.0 → fal-1.49.1}/src/fal/toolkit/utils/retry.py +0 -0
  168. {fal-1.48.0 → fal-1.49.1}/src/fal/toolkit/utils/setup_utils.py +0 -0
  169. {fal-1.48.0 → fal-1.49.1}/src/fal/toolkit/video/__init__.py +0 -0
  170. {fal-1.48.0 → fal-1.49.1}/src/fal/toolkit/video/video.py +0 -0
  171. {fal-1.48.0 → fal-1.49.1}/src/fal/utils.py +0 -0
  172. {fal-1.48.0 → fal-1.49.1}/src/fal/workflows.py +0 -0
  173. {fal-1.48.0 → fal-1.49.1}/tests/__init__.py +0 -0
  174. {fal-1.48.0 → fal-1.49.1}/tests/assets/cat.png +0 -0
  175. {fal-1.48.0 → fal-1.49.1}/tests/cli/__init__.py +0 -0
  176. {fal-1.48.0 → fal-1.49.1}/tests/cli/test_apps.py +0 -0
  177. {fal-1.48.0 → fal-1.49.1}/tests/cli/test_auth.py +0 -0
  178. {fal-1.48.0 → fal-1.49.1}/tests/cli/test_deploy.py +0 -0
  179. {fal-1.48.0 → fal-1.49.1}/tests/cli/test_keys.py +0 -0
  180. {fal-1.48.0 → fal-1.49.1}/tests/cli/test_secrets.py +0 -0
  181. {fal-1.48.0 → fal-1.49.1}/tests/conftest.py +0 -0
  182. {fal-1.48.0 → fal-1.49.1}/tests/integration_test.py +0 -0
  183. {fal-1.48.0 → fal-1.49.1}/tests/mainify_package/__init__.py +0 -0
  184. {fal-1.48.0 → fal-1.49.1}/tests/mainify_package/impl.py +0 -0
  185. {fal-1.48.0 → fal-1.49.1}/tests/mainify_package/utils.py +0 -0
  186. {fal-1.48.0 → fal-1.49.1}/tests/mainify_target.py +0 -0
  187. {fal-1.48.0 → fal-1.49.1}/tests/test_apps.py +0 -0
  188. {fal-1.48.0 → fal-1.49.1}/tests/test_file_sync.py +0 -0
  189. {fal-1.48.0 → fal-1.49.1}/tests/test_files.py +0 -0
  190. {fal-1.48.0 → fal-1.49.1}/tests/test_kv.py +0 -0
  191. {fal-1.48.0 → fal-1.49.1}/tests/test_stability.py +0 -0
  192. {fal-1.48.0 → fal-1.49.1}/tests/toolkit/file/providers/test_fal_retry.py +0 -0
  193. {fal-1.48.0 → fal-1.49.1}/tests/toolkit/file_test.py +0 -0
  194. {fal-1.48.0 → fal-1.49.1}/tests/toolkit/image_test.py +0 -0
  195. {fal-1.48.0 → fal-1.49.1}/tests/toolkit/test_types.py +0 -0
  196. {fal-1.48.0 → fal-1.49.1}/tests/toolkit/utils/retry.py +0 -0
  197. {fal-1.48.0 → fal-1.49.1}/tests/unit/distributed/test_integration.py +0 -0
  198. {fal-1.48.0 → fal-1.49.1}/tests/unit/distributed/test_utils.py +0 -0
  199. {fal-1.48.0 → fal-1.49.1}/tests/unit/distributed/test_worker.py +0 -0
  200. {fal-1.48.0 → fal-1.49.1}/tests/unit/test_app.py +0 -0
  201. {fal-1.48.0 → fal-1.49.1}/tools/demo_script.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fal
3
- Version: 1.48.0
3
+ Version: 1.49.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.4
2
2
  Name: fal
3
- Version: 1.48.0
3
+ Version: 1.49.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
@@ -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.48.0'
32
- __version_tuple__ = version_tuple = (1, 48, 0)
31
+ __version__ = version = '1.49.1'
32
+ __version_tuple__ = version_tuple = (1, 49, 1)
33
33
 
34
34
  __commit_id__ = commit_id = None
@@ -4,7 +4,7 @@ import os
4
4
  from dataclasses import dataclass
5
5
  from typing import List, Optional
6
6
 
7
- from fal.api import FAL_SERVERLESS_DEFAULT_URL
7
+ from fal.api import FAL_SERVERLESS_DEFAULT_URL, FalServerlessHost
8
8
  from fal.sdk import (
9
9
  AliasInfo,
10
10
  Credentials,
@@ -114,3 +114,10 @@ class SyncServerlessClient:
114
114
  os.environ["FAL_PROFILE"] = prev
115
115
 
116
116
  return get_default_credentials(team=self.team)
117
+
118
+ def _create_host(self, *, local_file_path: str = "") -> FalServerlessHost:
119
+ return FalServerlessHost(
120
+ self._grpc_host,
121
+ local_file_path=local_file_path,
122
+ credentials=self._credentials,
123
+ )
@@ -14,9 +14,6 @@ import json
14
14
  from collections import namedtuple
15
15
  from typing import Tuple, Union, cast
16
16
 
17
- from fal.cli._utils import get_app_data_from_toml, is_app_name
18
- from fal.cli.parser import RefAction
19
-
20
17
  User = namedtuple("User", ["user_id", "username"])
21
18
 
22
19
 
@@ -87,7 +84,7 @@ def _deploy_from_reference(
87
84
  strategy: Optional[DeploymentStrategyLiteral],
88
85
  scale: bool,
89
86
  ) -> DeploymentResult:
90
- from fal.api import FalServerlessError, FalServerlessHost
87
+ from fal.api import FalServerlessError
91
88
  from fal.utils import load_function_from
92
89
 
93
90
  file_path, func_name = app_ref
@@ -106,7 +103,7 @@ def _deploy_from_reference(
106
103
  file_path = str(file_path) # type: ignore
107
104
 
108
105
  user = _get_user()
109
- host = FalServerlessHost(client._grpc_host, local_file_path=str(file_path))
106
+ host = client._create_host(local_file_path=str(file_path))
110
107
  loaded = load_function_from(
111
108
  host,
112
109
  file_path, # type: ignore
@@ -172,6 +169,9 @@ def deploy(
172
169
  strategy: DeploymentStrategyLiteral = "rolling",
173
170
  reset_scale: bool = False,
174
171
  ) -> DeploymentResult:
172
+ from fal.cli._utils import get_app_data_from_toml, is_app_name
173
+ from fal.cli.parser import RefAction
174
+
175
175
  if isinstance(app_ref, tuple):
176
176
  app_ref_tuple = app_ref
177
177
  elif app_ref:
@@ -5,7 +5,7 @@ from .parser import FalClientParser, RefAction
5
5
 
6
6
 
7
7
  def _run(args):
8
- from fal.api import FalServerlessHost
8
+ from fal.api.client import SyncServerlessClient
9
9
  from fal.utils import load_function_from
10
10
 
11
11
  if is_app_name(args.func_ref):
@@ -17,7 +17,8 @@ def _run(args):
17
17
  # Turn relative path into absolute path for files
18
18
  file_path = str(Path(file_path).absolute())
19
19
 
20
- host = FalServerlessHost(args.host, local_file_path=file_path)
20
+ client = SyncServerlessClient(host=args.host, team=args.team)
21
+ host = client._create_host(local_file_path=file_path)
21
22
 
22
23
  loaded = load_function_from(host, file_path, func_name)
23
24
 
@@ -45,11 +45,11 @@ def mock_args(host, func_ref: Tuple[str, Optional[str]]):
45
45
 
46
46
  @patch("fal.cli._utils.find_pyproject_toml", return_value="pyproject.toml")
47
47
  @patch("fal.cli._utils.parse_pyproject_toml")
48
- @patch("fal.api.FalServerlessHost")
48
+ @patch("fal.api.client.SyncServerlessClient._create_host")
49
49
  @patch("fal.utils.load_function_from")
50
50
  def test_run_with_toml_success(
51
51
  mock_load_function_from,
52
- mock_fal_serverless_host,
52
+ mock_create_host,
53
53
  mock_parse_toml,
54
54
  mock_find_toml,
55
55
  mock_parse_pyproject_toml,
@@ -57,9 +57,9 @@ def test_run_with_toml_success(
57
57
  mock_parse_toml.return_value = mock_parse_pyproject_toml
58
58
 
59
59
  host = mocked_fal_serverless_host("my-host")
60
- mock_fal_serverless_host.return_value = host
60
+ mock_create_host.return_value = host
61
61
 
62
- args = mock_args(func_ref=("my-app", None), host=host)
62
+ args = mock_args(func_ref=("my-app", None), host="my-host")
63
63
 
64
64
  _run(args)
65
65
 
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
File without changes
File without changes
File without changes