fal 1.50.2__tar.gz → 1.61.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.
Files changed (213) hide show
  1. {fal-1.50.2/fal.egg-info → fal-1.61.0}/PKG-INFO +6 -6
  2. {fal-1.50.2 → fal-1.61.0}/README.md +1 -1
  3. {fal-1.50.2 → fal-1.61.0/fal.egg-info}/PKG-INFO +6 -6
  4. {fal-1.50.2 → fal-1.61.0}/fal.egg-info/SOURCES.txt +24 -23
  5. {fal-1.50.2 → fal-1.61.0}/fal.egg-info/requires.txt +4 -4
  6. {fal-1.50.2 → fal-1.61.0}/pyproject.toml +5 -4
  7. {fal-1.50.2 → fal-1.61.0}/src/fal/__init__.py +2 -1
  8. {fal-1.50.2 → fal-1.61.0}/src/fal/_fal_version.py +2 -2
  9. fal-1.61.0/src/fal/api/__init__.py +16 -0
  10. {fal-1.50.2 → fal-1.61.0}/src/fal/api/api.py +101 -56
  11. {fal-1.50.2 → fal-1.61.0}/src/fal/api/apps.py +23 -1
  12. fal-1.61.0/src/fal/api/client.py +405 -0
  13. {fal-1.50.2 → fal-1.61.0}/src/fal/api/deploy.py +20 -28
  14. fal-1.61.0/src/fal/api/keys.py +31 -0
  15. fal-1.61.0/src/fal/api/secrets.py +29 -0
  16. {fal-1.50.2 → fal-1.61.0}/src/fal/app.py +163 -17
  17. {fal-1.50.2 → fal-1.61.0}/src/fal/apps.py +2 -2
  18. {fal-1.50.2 → fal-1.61.0}/src/fal/cli/_utils.py +11 -3
  19. {fal-1.50.2 → fal-1.61.0}/src/fal/cli/api.py +4 -2
  20. {fal-1.50.2 → fal-1.61.0}/src/fal/cli/apps.py +59 -4
  21. {fal-1.50.2 → fal-1.61.0}/src/fal/cli/deploy.py +36 -12
  22. {fal-1.50.2 → fal-1.61.0}/src/fal/cli/files.py +16 -24
  23. {fal-1.50.2 → fal-1.61.0}/src/fal/cli/keys.py +47 -50
  24. {fal-1.50.2 → fal-1.61.0}/src/fal/cli/queue.py +26 -12
  25. {fal-1.50.2 → fal-1.61.0}/src/fal/cli/run.py +19 -8
  26. {fal-1.50.2 → fal-1.61.0}/src/fal/cli/runners.py +63 -24
  27. {fal-1.50.2 → fal-1.61.0}/src/fal/cli/secrets.py +28 -30
  28. fal-1.61.0/src/fal/exceptions/__init__.py +23 -0
  29. {fal-1.50.2 → fal-1.61.0}/src/fal/exceptions/_base.py +1 -0
  30. {fal-1.50.2 → fal-1.61.0}/src/fal/file_sync.py +23 -30
  31. {fal-1.50.2 → fal-1.61.0}/src/fal/files.py +51 -65
  32. fal-1.61.0/src/fal/flags.py +54 -0
  33. {fal-1.50.2 → fal-1.61.0}/src/fal/sdk.py +125 -24
  34. {fal-1.50.2 → fal-1.61.0}/src/fal/sync.py +22 -12
  35. {fal-1.50.2 → fal-1.61.0}/src/fal/toolkit/__init__.py +31 -5
  36. fal-1.61.0/src/fal/toolkit/compilation.py +220 -0
  37. {fal-1.50.2 → fal-1.61.0}/src/fal/toolkit/file/file.py +10 -9
  38. fal-1.61.0/src/fal/upload.py +313 -0
  39. fal-1.61.0/src/fal/utils.py +113 -0
  40. {fal-1.50.2 → fal-1.61.0}/src/fal/workflows.py +6 -2
  41. {fal-1.50.2/tests → fal-1.61.0/tests/e2e}/test_apps.py +409 -38
  42. fal-1.50.2/tests/integration_test.py → fal-1.61.0/tests/integration/test.py +2 -0
  43. {fal-1.50.2/tests → fal-1.61.0/tests/integration}/test_stability.py +2 -0
  44. {fal-1.50.2/tests → fal-1.61.0/tests/unit}/cli/test_apps.py +3 -0
  45. {fal-1.50.2/tests → fal-1.61.0/tests/unit}/cli/test_deploy.py +172 -0
  46. fal-1.61.0/tests/unit/cli/test_run.py +236 -0
  47. fal-1.61.0/tests/unit/distributed/__init__.py +0 -0
  48. {fal-1.50.2 → fal-1.61.0}/tests/unit/test_app.py +73 -1
  49. {fal-1.50.2/tests → fal-1.61.0/tests/unit}/test_file_sync.py +127 -15
  50. fal-1.61.0/tests/unit/test_utils.py +108 -0
  51. fal-1.50.2/src/fal/api/__init__.py +0 -2
  52. fal-1.50.2/src/fal/api/client.py +0 -129
  53. fal-1.50.2/src/fal/exceptions/__init__.py +0 -11
  54. fal-1.50.2/src/fal/flags.py +0 -36
  55. fal-1.50.2/src/fal/rest_client.py +0 -25
  56. fal-1.50.2/src/fal/utils.py +0 -77
  57. fal-1.50.2/tests/cli/test_run.py +0 -114
  58. fal-1.50.2/tests/mainify_package/__init__.py +0 -1
  59. fal-1.50.2/tests/mainify_package/impl.py +0 -8
  60. fal-1.50.2/tests/mainify_package/utils.py +0 -2
  61. fal-1.50.2/tests/mainify_target.py +0 -22
  62. {fal-1.50.2 → fal-1.61.0}/.gitignore +0 -0
  63. {fal-1.50.2 → fal-1.61.0}/Makefile +0 -0
  64. {fal-1.50.2 → fal-1.61.0}/docs/conf.py +0 -0
  65. {fal-1.50.2 → fal-1.61.0}/docs/index.rst +0 -0
  66. {fal-1.50.2 → fal-1.61.0}/fal.egg-info/dependency_links.txt +0 -0
  67. {fal-1.50.2 → fal-1.61.0}/fal.egg-info/entry_points.txt +0 -0
  68. {fal-1.50.2 → fal-1.61.0}/fal.egg-info/top_level.txt +0 -0
  69. {fal-1.50.2 → fal-1.61.0}/openapi-fal-rest/README.md +0 -0
  70. {fal-1.50.2 → fal-1.61.0}/openapi-fal-rest/openapi_fal_rest/__init__.py +0 -0
  71. {fal-1.50.2 → fal-1.61.0}/openapi-fal-rest/openapi_fal_rest/api/__init__.py +0 -0
  72. {fal-1.50.2 → fal-1.61.0}/openapi-fal-rest/openapi_fal_rest/api/applications/__init__.py +0 -0
  73. {fal-1.50.2 → fal-1.61.0}/openapi-fal-rest/openapi_fal_rest/api/applications/app_metadata.py +0 -0
  74. {fal-1.50.2 → fal-1.61.0}/openapi-fal-rest/openapi_fal_rest/api/billing/__init__.py +0 -0
  75. {fal-1.50.2 → fal-1.61.0}/openapi-fal-rest/openapi_fal_rest/api/billing/get_user_details.py +0 -0
  76. {fal-1.50.2 → fal-1.61.0}/openapi-fal-rest/openapi_fal_rest/api/comfy/__init__.py +0 -0
  77. {fal-1.50.2 → fal-1.61.0}/openapi-fal-rest/openapi_fal_rest/api/comfy/create_workflow.py +0 -0
  78. {fal-1.50.2 → fal-1.61.0}/openapi-fal-rest/openapi_fal_rest/api/comfy/delete_workflow.py +0 -0
  79. {fal-1.50.2 → fal-1.61.0}/openapi-fal-rest/openapi_fal_rest/api/comfy/get_workflow.py +0 -0
  80. {fal-1.50.2 → fal-1.61.0}/openapi-fal-rest/openapi_fal_rest/api/comfy/list_user_workflows.py +0 -0
  81. {fal-1.50.2 → fal-1.61.0}/openapi-fal-rest/openapi_fal_rest/api/comfy/update_workflow.py +0 -0
  82. {fal-1.50.2 → fal-1.61.0}/openapi-fal-rest/openapi_fal_rest/api/files/__init__.py +0 -0
  83. {fal-1.50.2 → fal-1.61.0}/openapi-fal-rest/openapi_fal_rest/api/files/check_dir_hash.py +0 -0
  84. {fal-1.50.2 → fal-1.61.0}/openapi-fal-rest/openapi_fal_rest/api/files/upload_local_file.py +0 -0
  85. {fal-1.50.2 → fal-1.61.0}/openapi-fal-rest/openapi_fal_rest/api/users/__init__.py +0 -0
  86. {fal-1.50.2 → fal-1.61.0}/openapi-fal-rest/openapi_fal_rest/api/users/get_current_user.py +0 -0
  87. {fal-1.50.2 → fal-1.61.0}/openapi-fal-rest/openapi_fal_rest/api/workflows/__init__.py +0 -0
  88. {fal-1.50.2 → fal-1.61.0}/openapi-fal-rest/openapi_fal_rest/api/workflows/create_workflow.py +0 -0
  89. {fal-1.50.2 → fal-1.61.0}/openapi-fal-rest/openapi_fal_rest/api/workflows/delete_workflow.py +0 -0
  90. {fal-1.50.2 → fal-1.61.0}/openapi-fal-rest/openapi_fal_rest/api/workflows/get_workflow.py +0 -0
  91. {fal-1.50.2 → fal-1.61.0}/openapi-fal-rest/openapi_fal_rest/api/workflows/list_user_workflows.py +0 -0
  92. {fal-1.50.2 → fal-1.61.0}/openapi-fal-rest/openapi_fal_rest/api/workflows/update_workflow.py +0 -0
  93. {fal-1.50.2 → fal-1.61.0}/openapi-fal-rest/openapi_fal_rest/client.py +0 -0
  94. {fal-1.50.2 → fal-1.61.0}/openapi-fal-rest/openapi_fal_rest/errors.py +0 -0
  95. {fal-1.50.2 → fal-1.61.0}/openapi-fal-rest/openapi_fal_rest/models/__init__.py +0 -0
  96. {fal-1.50.2 → fal-1.61.0}/openapi-fal-rest/openapi_fal_rest/models/app_metadata_response_app_metadata.py +0 -0
  97. {fal-1.50.2 → fal-1.61.0}/openapi-fal-rest/openapi_fal_rest/models/body_upload_local_file.py +0 -0
  98. {fal-1.50.2 → fal-1.61.0}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_detail.py +0 -0
  99. {fal-1.50.2 → fal-1.61.0}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_item.py +0 -0
  100. {fal-1.50.2 → fal-1.61.0}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_schema.py +0 -0
  101. {fal-1.50.2 → fal-1.61.0}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_schema_extra_data.py +0 -0
  102. {fal-1.50.2 → fal-1.61.0}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_schema_fal_inputs.py +0 -0
  103. {fal-1.50.2 → fal-1.61.0}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_schema_fal_inputs_dev_info.py +0 -0
  104. {fal-1.50.2 → fal-1.61.0}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_schema_prompt.py +0 -0
  105. {fal-1.50.2 → fal-1.61.0}/openapi-fal-rest/openapi_fal_rest/models/current_user.py +0 -0
  106. {fal-1.50.2 → fal-1.61.0}/openapi-fal-rest/openapi_fal_rest/models/customer_details.py +0 -0
  107. {fal-1.50.2 → fal-1.61.0}/openapi-fal-rest/openapi_fal_rest/models/hash_check.py +0 -0
  108. {fal-1.50.2 → fal-1.61.0}/openapi-fal-rest/openapi_fal_rest/models/http_validation_error.py +0 -0
  109. {fal-1.50.2 → fal-1.61.0}/openapi-fal-rest/openapi_fal_rest/models/lock_reason.py +0 -0
  110. {fal-1.50.2 → fal-1.61.0}/openapi-fal-rest/openapi_fal_rest/models/page_comfy_workflow_item.py +0 -0
  111. {fal-1.50.2 → fal-1.61.0}/openapi-fal-rest/openapi_fal_rest/models/page_workflow_item.py +0 -0
  112. {fal-1.50.2 → fal-1.61.0}/openapi-fal-rest/openapi_fal_rest/models/team_role.py +0 -0
  113. {fal-1.50.2 → fal-1.61.0}/openapi-fal-rest/openapi_fal_rest/models/typed_comfy_workflow.py +0 -0
  114. {fal-1.50.2 → fal-1.61.0}/openapi-fal-rest/openapi_fal_rest/models/typed_comfy_workflow_update.py +0 -0
  115. {fal-1.50.2 → fal-1.61.0}/openapi-fal-rest/openapi_fal_rest/models/typed_workflow.py +0 -0
  116. {fal-1.50.2 → fal-1.61.0}/openapi-fal-rest/openapi_fal_rest/models/typed_workflow_update.py +0 -0
  117. {fal-1.50.2 → fal-1.61.0}/openapi-fal-rest/openapi_fal_rest/models/user_member.py +0 -0
  118. {fal-1.50.2 → fal-1.61.0}/openapi-fal-rest/openapi_fal_rest/models/validation_error.py +0 -0
  119. {fal-1.50.2 → fal-1.61.0}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents.py +0 -0
  120. {fal-1.50.2 → fal-1.61.0}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents_metadata.py +0 -0
  121. {fal-1.50.2 → fal-1.61.0}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents_nodes.py +0 -0
  122. {fal-1.50.2 → fal-1.61.0}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents_output.py +0 -0
  123. {fal-1.50.2 → fal-1.61.0}/openapi-fal-rest/openapi_fal_rest/models/workflow_detail.py +0 -0
  124. {fal-1.50.2 → fal-1.61.0}/openapi-fal-rest/openapi_fal_rest/models/workflow_detail_contents.py +0 -0
  125. {fal-1.50.2 → fal-1.61.0}/openapi-fal-rest/openapi_fal_rest/models/workflow_item.py +0 -0
  126. {fal-1.50.2 → fal-1.61.0}/openapi-fal-rest/openapi_fal_rest/models/workflow_node.py +0 -0
  127. {fal-1.50.2 → fal-1.61.0}/openapi-fal-rest/openapi_fal_rest/models/workflow_node_type.py +0 -0
  128. {fal-1.50.2 → fal-1.61.0}/openapi-fal-rest/openapi_fal_rest/models/workflow_schema.py +0 -0
  129. {fal-1.50.2 → fal-1.61.0}/openapi-fal-rest/openapi_fal_rest/models/workflow_schema_input.py +0 -0
  130. {fal-1.50.2 → fal-1.61.0}/openapi-fal-rest/openapi_fal_rest/models/workflow_schema_output.py +0 -0
  131. {fal-1.50.2 → fal-1.61.0}/openapi-fal-rest/openapi_fal_rest/py.typed +0 -0
  132. {fal-1.50.2 → fal-1.61.0}/openapi-fal-rest/openapi_fal_rest/types.py +0 -0
  133. {fal-1.50.2 → fal-1.61.0}/openapi-fal-rest/pyproject.toml +0 -0
  134. {fal-1.50.2 → fal-1.61.0}/openapi_rest.config.yaml +0 -0
  135. {fal-1.50.2 → fal-1.61.0}/setup.cfg +0 -0
  136. {fal-1.50.2 → fal-1.61.0}/src/fal/__main__.py +0 -0
  137. {fal-1.50.2 → fal-1.61.0}/src/fal/_serialization.py +0 -0
  138. {fal-1.50.2 → fal-1.61.0}/src/fal/_version.py +0 -0
  139. {fal-1.50.2 → fal-1.61.0}/src/fal/api/runners.py +0 -0
  140. {fal-1.50.2 → fal-1.61.0}/src/fal/auth/__init__.py +0 -0
  141. {fal-1.50.2 → fal-1.61.0}/src/fal/auth/auth0.py +0 -0
  142. {fal-1.50.2 → fal-1.61.0}/src/fal/auth/local.py +0 -0
  143. {fal-1.50.2 → fal-1.61.0}/src/fal/cli/__init__.py +0 -0
  144. {fal-1.50.2 → fal-1.61.0}/src/fal/cli/auth.py +0 -0
  145. {fal-1.50.2 → fal-1.61.0}/src/fal/cli/cli_nested_json.py +0 -0
  146. {fal-1.50.2 → fal-1.61.0}/src/fal/cli/create.py +0 -0
  147. {fal-1.50.2 → fal-1.61.0}/src/fal/cli/debug.py +0 -0
  148. {fal-1.50.2 → fal-1.61.0}/src/fal/cli/doctor.py +0 -0
  149. {fal-1.50.2 → fal-1.61.0}/src/fal/cli/main.py +0 -0
  150. {fal-1.50.2 → fal-1.61.0}/src/fal/cli/parser.py +0 -0
  151. {fal-1.50.2 → fal-1.61.0}/src/fal/cli/profile.py +0 -0
  152. {fal-1.50.2 → fal-1.61.0}/src/fal/cli/teams.py +0 -0
  153. {fal-1.50.2 → fal-1.61.0}/src/fal/config.py +0 -0
  154. {fal-1.50.2 → fal-1.61.0}/src/fal/console/__init__.py +0 -0
  155. {fal-1.50.2 → fal-1.61.0}/src/fal/console/icons.py +0 -0
  156. {fal-1.50.2 → fal-1.61.0}/src/fal/console/ux.py +0 -0
  157. {fal-1.50.2 → fal-1.61.0}/src/fal/container.py +0 -0
  158. {fal-1.50.2 → fal-1.61.0}/src/fal/distributed/__init__.py +0 -0
  159. {fal-1.50.2 → fal-1.61.0}/src/fal/distributed/utils.py +0 -0
  160. {fal-1.50.2 → fal-1.61.0}/src/fal/distributed/worker.py +0 -0
  161. {fal-1.50.2 → fal-1.61.0}/src/fal/exceptions/_cuda.py +0 -0
  162. {fal-1.50.2 → fal-1.61.0}/src/fal/exceptions/auth.py +0 -0
  163. {fal-1.50.2 → fal-1.61.0}/src/fal/logging/__init__.py +0 -0
  164. {fal-1.50.2 → fal-1.61.0}/src/fal/logging/isolate.py +0 -0
  165. {fal-1.50.2 → fal-1.61.0}/src/fal/logging/style.py +0 -0
  166. {fal-1.50.2 → fal-1.61.0}/src/fal/logging/trace.py +0 -0
  167. {fal-1.50.2 → fal-1.61.0}/src/fal/project.py +0 -0
  168. {fal-1.50.2 → fal-1.61.0}/src/fal/py.typed +0 -0
  169. {fal-1.50.2 → fal-1.61.0}/src/fal/toolkit/audio/__init__.py +0 -0
  170. {fal-1.50.2 → fal-1.61.0}/src/fal/toolkit/audio/audio.py +0 -0
  171. {fal-1.50.2 → fal-1.61.0}/src/fal/toolkit/exceptions.py +0 -0
  172. {fal-1.50.2 → fal-1.61.0}/src/fal/toolkit/file/__init__.py +0 -0
  173. {fal-1.50.2 → fal-1.61.0}/src/fal/toolkit/file/providers/fal.py +0 -0
  174. {fal-1.50.2 → fal-1.61.0}/src/fal/toolkit/file/providers/gcp.py +0 -0
  175. {fal-1.50.2 → fal-1.61.0}/src/fal/toolkit/file/providers/r2.py +0 -0
  176. {fal-1.50.2 → fal-1.61.0}/src/fal/toolkit/file/providers/s3.py +0 -0
  177. {fal-1.50.2 → fal-1.61.0}/src/fal/toolkit/file/types.py +0 -0
  178. {fal-1.50.2 → fal-1.61.0}/src/fal/toolkit/image/__init__.py +0 -0
  179. {fal-1.50.2 → fal-1.61.0}/src/fal/toolkit/image/image.py +0 -0
  180. {fal-1.50.2 → fal-1.61.0}/src/fal/toolkit/image/nsfw_filter/__init__.py +0 -0
  181. {fal-1.50.2 → fal-1.61.0}/src/fal/toolkit/image/nsfw_filter/env.py +0 -0
  182. {fal-1.50.2 → fal-1.61.0}/src/fal/toolkit/image/nsfw_filter/inference.py +0 -0
  183. {fal-1.50.2 → fal-1.61.0}/src/fal/toolkit/image/nsfw_filter/model.py +0 -0
  184. {fal-1.50.2 → fal-1.61.0}/src/fal/toolkit/image/nsfw_filter/requirements.txt +0 -0
  185. {fal-1.50.2 → fal-1.61.0}/src/fal/toolkit/image/safety_checker.py +0 -0
  186. {fal-1.50.2 → fal-1.61.0}/src/fal/toolkit/kv.py +0 -0
  187. {fal-1.50.2 → fal-1.61.0}/src/fal/toolkit/optimize.py +0 -0
  188. {fal-1.50.2 → fal-1.61.0}/src/fal/toolkit/types.py +0 -0
  189. {fal-1.50.2 → fal-1.61.0}/src/fal/toolkit/utils/__init__.py +0 -0
  190. {fal-1.50.2 → fal-1.61.0}/src/fal/toolkit/utils/download_utils.py +0 -0
  191. {fal-1.50.2 → fal-1.61.0}/src/fal/toolkit/utils/endpoint.py +0 -0
  192. {fal-1.50.2 → fal-1.61.0}/src/fal/toolkit/utils/retry.py +0 -0
  193. {fal-1.50.2 → fal-1.61.0}/src/fal/toolkit/utils/setup_utils.py +0 -0
  194. {fal-1.50.2 → fal-1.61.0}/src/fal/toolkit/video/__init__.py +0 -0
  195. {fal-1.50.2 → fal-1.61.0}/src/fal/toolkit/video/video.py +0 -0
  196. {fal-1.50.2 → fal-1.61.0}/tests/__init__.py +0 -0
  197. {fal-1.50.2 → fal-1.61.0}/tests/assets/cat.png +0 -0
  198. {fal-1.50.2 → fal-1.61.0}/tests/conftest.py +0 -0
  199. {fal-1.50.2/tests → fal-1.61.0/tests/integration}/test_files.py +0 -0
  200. /fal-1.50.2/tests/toolkit/image_test.py → /fal-1.61.0/tests/integration/toolkit/test_image.py +0 -0
  201. {fal-1.50.2/tests → fal-1.61.0/tests/integration/toolkit}/test_kv.py +0 -0
  202. {fal-1.50.2/tests → fal-1.61.0/tests/unit}/cli/__init__.py +0 -0
  203. {fal-1.50.2/tests → fal-1.61.0/tests/unit}/cli/test_auth.py +0 -0
  204. {fal-1.50.2/tests → fal-1.61.0/tests/unit}/cli/test_keys.py +0 -0
  205. {fal-1.50.2/tests → fal-1.61.0/tests/unit}/cli/test_secrets.py +0 -0
  206. {fal-1.50.2 → fal-1.61.0}/tests/unit/distributed/test_integration.py +0 -0
  207. {fal-1.50.2 → fal-1.61.0}/tests/unit/distributed/test_utils.py +0 -0
  208. {fal-1.50.2 → fal-1.61.0}/tests/unit/distributed/test_worker.py +0 -0
  209. {fal-1.50.2/tests → fal-1.61.0/tests/unit}/toolkit/file/providers/test_fal_retry.py +0 -0
  210. /fal-1.50.2/tests/toolkit/file_test.py → /fal-1.61.0/tests/unit/toolkit/test_file.py +0 -0
  211. {fal-1.50.2/tests → fal-1.61.0/tests/unit}/toolkit/test_types.py +0 -0
  212. /fal-1.50.2/tests/toolkit/utils/retry.py → /fal-1.61.0/tests/unit/toolkit/utils/test_retry.py +0 -0
  213. {fal-1.50.2 → fal-1.61.0}/tools/demo_script.py +0 -0
@@ -1,12 +1,12 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fal
3
- Version: 1.50.2
3
+ Version: 1.61.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
- Requires-Dist: isolate[build]<0.21.0,>=0.18.0
9
- Requires-Dist: isolate-proto<0.23.0,>=0.22.0
8
+ Requires-Dist: isolate[build]<0.23.0,>=0.22.0
9
+ Requires-Dist: isolate-proto>=0.29.4
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
@@ -21,8 +21,8 @@ Requires-Dist: rich<15,>=13.3.2
21
21
  Requires-Dist: rich_argparse
22
22
  Requires-Dist: packaging>=21.3
23
23
  Requires-Dist: pathspec<1,>=0.11.1
24
- Requires-Dist: pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,<2.11
25
- Requires-Dist: fastapi<1,>=0.99.1
24
+ Requires-Dist: pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*
25
+ Requires-Dist: fastapi<0.119,>=0.99.1
26
26
  Requires-Dist: starlette-exporter>=0.21.0
27
27
  Requires-Dist: httpx>=0.15.4
28
28
  Requires-Dist: httpx-sse
@@ -60,7 +60,7 @@ Requires-Dist: fal[docs,test]; extra == "dev"
60
60
  Requires-Dist: openapi-python-client<1,>=0.14.1; extra == "dev"
61
61
 
62
62
  [![PyPI](https://img.shields.io/pypi/v/fal.svg?logo=PyPI)](https://pypi.org/project/fal)
63
- [![Tests](https://img.shields.io/github/actions/workflow/status/fal-ai/fal/integration_tests.yaml?label=Tests)](https://github.com/fal-ai/fal/actions)
63
+ [![Tests](https://img.shields.io/github/actions/workflow/status/fal-ai/fal/fal-unit-tests.yml?label=Tests)](https://github.com/fal-ai/fal/actions)
64
64
 
65
65
  # fal
66
66
 
@@ -1,5 +1,5 @@
1
1
  [![PyPI](https://img.shields.io/pypi/v/fal.svg?logo=PyPI)](https://pypi.org/project/fal)
2
- [![Tests](https://img.shields.io/github/actions/workflow/status/fal-ai/fal/integration_tests.yaml?label=Tests)](https://github.com/fal-ai/fal/actions)
2
+ [![Tests](https://img.shields.io/github/actions/workflow/status/fal-ai/fal/fal-unit-tests.yml?label=Tests)](https://github.com/fal-ai/fal/actions)
3
3
 
4
4
  # fal
5
5
 
@@ -1,12 +1,12 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fal
3
- Version: 1.50.2
3
+ Version: 1.61.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
- Requires-Dist: isolate[build]<0.21.0,>=0.18.0
9
- Requires-Dist: isolate-proto<0.23.0,>=0.22.0
8
+ Requires-Dist: isolate[build]<0.23.0,>=0.22.0
9
+ Requires-Dist: isolate-proto>=0.29.4
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
@@ -21,8 +21,8 @@ Requires-Dist: rich<15,>=13.3.2
21
21
  Requires-Dist: rich_argparse
22
22
  Requires-Dist: packaging>=21.3
23
23
  Requires-Dist: pathspec<1,>=0.11.1
24
- Requires-Dist: pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,<2.11
25
- Requires-Dist: fastapi<1,>=0.99.1
24
+ Requires-Dist: pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*
25
+ Requires-Dist: fastapi<0.119,>=0.99.1
26
26
  Requires-Dist: starlette-exporter>=0.21.0
27
27
  Requires-Dist: httpx>=0.15.4
28
28
  Requires-Dist: httpx-sse
@@ -60,7 +60,7 @@ Requires-Dist: fal[docs,test]; extra == "dev"
60
60
  Requires-Dist: openapi-python-client<1,>=0.14.1; extra == "dev"
61
61
 
62
62
  [![PyPI](https://img.shields.io/pypi/v/fal.svg?logo=PyPI)](https://pypi.org/project/fal)
63
- [![Tests](https://img.shields.io/github/actions/workflow/status/fal-ai/fal/integration_tests.yaml?label=Tests)](https://github.com/fal-ai/fal/actions)
63
+ [![Tests](https://img.shields.io/github/actions/workflow/status/fal-ai/fal/fal-unit-tests.yml?label=Tests)](https://github.com/fal-ai/fal/actions)
64
64
 
65
65
  # fal
66
66
 
@@ -90,9 +90,9 @@ src/fal/files.py
90
90
  src/fal/flags.py
91
91
  src/fal/project.py
92
92
  src/fal/py.typed
93
- src/fal/rest_client.py
94
93
  src/fal/sdk.py
95
94
  src/fal/sync.py
95
+ src/fal/upload.py
96
96
  src/fal/utils.py
97
97
  src/fal/workflows.py
98
98
  src/fal/api/__init__.py
@@ -100,7 +100,9 @@ src/fal/api/api.py
100
100
  src/fal/api/apps.py
101
101
  src/fal/api/client.py
102
102
  src/fal/api/deploy.py
103
+ src/fal/api/keys.py
103
104
  src/fal/api/runners.py
105
+ src/fal/api/secrets.py
104
106
  src/fal/auth/__init__.py
105
107
  src/fal/auth/auth0.py
106
108
  src/fal/auth/local.py
@@ -139,6 +141,7 @@ src/fal/logging/isolate.py
139
141
  src/fal/logging/style.py
140
142
  src/fal/logging/trace.py
141
143
  src/fal/toolkit/__init__.py
144
+ src/fal/toolkit/compilation.py
142
145
  src/fal/toolkit/exceptions.py
143
146
  src/fal/toolkit/kv.py
144
147
  src/fal/toolkit/optimize.py
@@ -169,31 +172,29 @@ src/fal/toolkit/video/__init__.py
169
172
  src/fal/toolkit/video/video.py
170
173
  tests/__init__.py
171
174
  tests/conftest.py
172
- tests/integration_test.py
173
- tests/mainify_target.py
174
- tests/test_apps.py
175
- tests/test_file_sync.py
176
- tests/test_files.py
177
- tests/test_kv.py
178
- tests/test_stability.py
179
175
  tests/assets/cat.png
180
- tests/cli/__init__.py
181
- tests/cli/test_apps.py
182
- tests/cli/test_auth.py
183
- tests/cli/test_deploy.py
184
- tests/cli/test_keys.py
185
- tests/cli/test_run.py
186
- tests/cli/test_secrets.py
187
- tests/mainify_package/__init__.py
188
- tests/mainify_package/impl.py
189
- tests/mainify_package/utils.py
190
- tests/toolkit/file_test.py
191
- tests/toolkit/image_test.py
192
- tests/toolkit/test_types.py
193
- tests/toolkit/file/providers/test_fal_retry.py
194
- tests/toolkit/utils/retry.py
176
+ tests/e2e/test_apps.py
177
+ tests/integration/test.py
178
+ tests/integration/test_files.py
179
+ tests/integration/test_stability.py
180
+ tests/integration/toolkit/test_image.py
181
+ tests/integration/toolkit/test_kv.py
195
182
  tests/unit/test_app.py
183
+ tests/unit/test_file_sync.py
184
+ tests/unit/test_utils.py
185
+ tests/unit/cli/__init__.py
186
+ tests/unit/cli/test_apps.py
187
+ tests/unit/cli/test_auth.py
188
+ tests/unit/cli/test_deploy.py
189
+ tests/unit/cli/test_keys.py
190
+ tests/unit/cli/test_run.py
191
+ tests/unit/cli/test_secrets.py
192
+ tests/unit/distributed/__init__.py
196
193
  tests/unit/distributed/test_integration.py
197
194
  tests/unit/distributed/test_utils.py
198
195
  tests/unit/distributed/test_worker.py
196
+ tests/unit/toolkit/test_file.py
197
+ tests/unit/toolkit/test_types.py
198
+ tests/unit/toolkit/file/providers/test_fal_retry.py
199
+ tests/unit/toolkit/utils/test_retry.py
199
200
  tools/demo_script.py
@@ -1,5 +1,5 @@
1
- isolate[build]<0.21.0,>=0.18.0
2
- isolate-proto<0.23.0,>=0.22.0
1
+ isolate[build]<0.23.0,>=0.22.0
2
+ isolate-proto>=0.29.4
3
3
  grpcio<2,>=1.64.0
4
4
  dill==0.3.7
5
5
  cloudpickle==3.0.0
@@ -14,8 +14,8 @@ rich<15,>=13.3.2
14
14
  rich_argparse
15
15
  packaging>=21.3
16
16
  pathspec<1,>=0.11.1
17
- pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,<2.11
18
- fastapi<1,>=0.99.1
17
+ pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*
18
+ fastapi<0.119,>=0.99.1
19
19
  starlette-exporter>=0.21.0
20
20
  httpx>=0.15.4
21
21
  httpx-sse
@@ -22,8 +22,8 @@ authors = [{ name = "Features & Labels <support@fal.ai>"}]
22
22
  readme = "README.md"
23
23
  requires-python = ">=3.8"
24
24
  dependencies = [
25
- "isolate[build]>=0.18.0,<0.21.0",
26
- "isolate-proto>=0.22.0,<0.23.0",
25
+ "isolate[build]>=0.22.0,<0.23.0",
26
+ "isolate-proto>=0.29.4",
27
27
  "grpcio>=1.64.0,<2",
28
28
  "dill==0.3.7",
29
29
  "cloudpickle==3.0.0",
@@ -38,9 +38,10 @@ dependencies = [
38
38
  "rich_argparse",
39
39
  "packaging>=21.3",
40
40
  "pathspec>=0.11.1,<1",
41
- "pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,<2.11",
41
+ "pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*",
42
42
  # serve=True dependencies
43
- "fastapi>=0.99.1,<1",
43
+ # https://github.com/fastapi/fastapi/issues/14221
44
+ "fastapi>=0.99.1,<0.119",
44
45
  "starlette-exporter>=0.21.0",
45
46
  # rest-api-client dependencies
46
47
  "httpx>=0.15.4",
@@ -5,7 +5,7 @@ from fal.api import FalServerlessHost, LocalHost, cached, function
5
5
  from fal.api import function as isolated # noqa: F401
6
6
  from fal.app import App, endpoint, realtime, wrap_app # noqa: F401
7
7
  from fal.container import ContainerImage
8
- from fal.sdk import FalServerlessKeyCredentials
8
+ from fal.sdk import FalServerlessKeyCredentials, HealthCheck
9
9
  from fal.sync import sync_dir
10
10
 
11
11
  from ._version import __version__, version_tuple # noqa: F401
@@ -23,6 +23,7 @@ __all__ = [
23
23
  "endpoint",
24
24
  "realtime",
25
25
  # "wrap_app",
26
+ "HealthCheck",
26
27
  "FalServerlessKeyCredentials",
27
28
  "sync_dir",
28
29
  "__version__",
@@ -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.50.2'
32
- __version_tuple__ = version_tuple = (1, 50, 2)
31
+ __version__ = version = '1.61.0'
32
+ __version_tuple__ = version_tuple = (1, 61, 0)
33
33
 
34
34
  __commit_id__ = commit_id = None
@@ -0,0 +1,16 @@
1
+ from .api import * # noqa: F403
2
+ from .client import ( # noqa: F401
3
+ AppsNamespace,
4
+ KeysNamespace,
5
+ RunnersNamespace,
6
+ SecretsNamespace,
7
+ SyncServerlessClient,
8
+ )
9
+
10
+ __all__ = [
11
+ "SyncServerlessClient",
12
+ "AppsNamespace",
13
+ "RunnersNamespace",
14
+ "KeysNamespace",
15
+ "SecretsNamespace",
16
+ ]