fal 1.0.1__tar.gz → 1.0.2__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 (127) hide show
  1. {fal-1.0.1 → fal-1.0.2}/PKG-INFO +1 -1
  2. {fal-1.0.1 → fal-1.0.2}/fal.egg-info/PKG-INFO +1 -1
  3. {fal-1.0.1 → fal-1.0.2}/src/fal/_fal_version.py +2 -2
  4. {fal-1.0.1 → fal-1.0.2}/src/fal/_serialization.py +4 -1
  5. {fal-1.0.1 → fal-1.0.2}/tests/test_stability.py +34 -0
  6. {fal-1.0.1 → fal-1.0.2}/.gitignore +0 -0
  7. {fal-1.0.1 → fal-1.0.2}/README.md +0 -0
  8. {fal-1.0.1 → fal-1.0.2}/fal.egg-info/SOURCES.txt +0 -0
  9. {fal-1.0.1 → fal-1.0.2}/fal.egg-info/dependency_links.txt +0 -0
  10. {fal-1.0.1 → fal-1.0.2}/fal.egg-info/entry_points.txt +0 -0
  11. {fal-1.0.1 → fal-1.0.2}/fal.egg-info/requires.txt +0 -0
  12. {fal-1.0.1 → fal-1.0.2}/fal.egg-info/top_level.txt +0 -0
  13. {fal-1.0.1 → fal-1.0.2}/openapi-fal-rest/README.md +0 -0
  14. {fal-1.0.1 → fal-1.0.2}/openapi-fal-rest/openapi_fal_rest/__init__.py +0 -0
  15. {fal-1.0.1 → fal-1.0.2}/openapi-fal-rest/openapi_fal_rest/api/__init__.py +0 -0
  16. {fal-1.0.1 → fal-1.0.2}/openapi-fal-rest/openapi_fal_rest/api/applications/__init__.py +0 -0
  17. {fal-1.0.1 → fal-1.0.2}/openapi-fal-rest/openapi_fal_rest/api/applications/app_metadata.py +0 -0
  18. {fal-1.0.1 → fal-1.0.2}/openapi-fal-rest/openapi_fal_rest/api/billing/__init__.py +0 -0
  19. {fal-1.0.1 → fal-1.0.2}/openapi-fal-rest/openapi_fal_rest/api/billing/get_user_details.py +0 -0
  20. {fal-1.0.1 → fal-1.0.2}/openapi-fal-rest/openapi_fal_rest/api/files/__init__.py +0 -0
  21. {fal-1.0.1 → fal-1.0.2}/openapi-fal-rest/openapi_fal_rest/api/files/check_dir_hash.py +0 -0
  22. {fal-1.0.1 → fal-1.0.2}/openapi-fal-rest/openapi_fal_rest/api/files/upload_local_file.py +0 -0
  23. {fal-1.0.1 → fal-1.0.2}/openapi-fal-rest/openapi_fal_rest/api/workflows/__init__.py +0 -0
  24. {fal-1.0.1 → fal-1.0.2}/openapi-fal-rest/openapi_fal_rest/api/workflows/create_or_update_workflow_workflows_post.py +0 -0
  25. {fal-1.0.1 → fal-1.0.2}/openapi-fal-rest/openapi_fal_rest/api/workflows/delete_workflow_workflows_user_id_workflow_name_delete.py +0 -0
  26. {fal-1.0.1 → fal-1.0.2}/openapi-fal-rest/openapi_fal_rest/api/workflows/execute_workflow_workflows_user_id_workflow_name_post.py +0 -0
  27. {fal-1.0.1 → fal-1.0.2}/openapi-fal-rest/openapi_fal_rest/api/workflows/get_workflow_workflows_user_id_workflow_name_get.py +0 -0
  28. {fal-1.0.1 → fal-1.0.2}/openapi-fal-rest/openapi_fal_rest/api/workflows/get_workflows_workflows_get.py +0 -0
  29. {fal-1.0.1 → fal-1.0.2}/openapi-fal-rest/openapi_fal_rest/client.py +0 -0
  30. {fal-1.0.1 → fal-1.0.2}/openapi-fal-rest/openapi_fal_rest/errors.py +0 -0
  31. {fal-1.0.1 → fal-1.0.2}/openapi-fal-rest/openapi_fal_rest/models/__init__.py +0 -0
  32. {fal-1.0.1 → fal-1.0.2}/openapi-fal-rest/openapi_fal_rest/models/app_metadata_response_app_metadata.py +0 -0
  33. {fal-1.0.1 → fal-1.0.2}/openapi-fal-rest/openapi_fal_rest/models/body_upload_local_file.py +0 -0
  34. {fal-1.0.1 → fal-1.0.2}/openapi-fal-rest/openapi_fal_rest/models/customer_details.py +0 -0
  35. {fal-1.0.1 → fal-1.0.2}/openapi-fal-rest/openapi_fal_rest/models/execute_workflow_workflows_user_id_workflow_name_post_json_body_type_0.py +0 -0
  36. {fal-1.0.1 → fal-1.0.2}/openapi-fal-rest/openapi_fal_rest/models/execute_workflow_workflows_user_id_workflow_name_post_response_200_type_0.py +0 -0
  37. {fal-1.0.1 → fal-1.0.2}/openapi-fal-rest/openapi_fal_rest/models/hash_check.py +0 -0
  38. {fal-1.0.1 → fal-1.0.2}/openapi-fal-rest/openapi_fal_rest/models/http_validation_error.py +0 -0
  39. {fal-1.0.1 → fal-1.0.2}/openapi-fal-rest/openapi_fal_rest/models/lock_reason.py +0 -0
  40. {fal-1.0.1 → fal-1.0.2}/openapi-fal-rest/openapi_fal_rest/models/page_workflow_item.py +0 -0
  41. {fal-1.0.1 → fal-1.0.2}/openapi-fal-rest/openapi_fal_rest/models/typed_workflow.py +0 -0
  42. {fal-1.0.1 → fal-1.0.2}/openapi-fal-rest/openapi_fal_rest/models/validation_error.py +0 -0
  43. {fal-1.0.1 → fal-1.0.2}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents.py +0 -0
  44. {fal-1.0.1 → fal-1.0.2}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents_nodes.py +0 -0
  45. {fal-1.0.1 → fal-1.0.2}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents_output.py +0 -0
  46. {fal-1.0.1 → fal-1.0.2}/openapi-fal-rest/openapi_fal_rest/models/workflow_detail.py +0 -0
  47. {fal-1.0.1 → fal-1.0.2}/openapi-fal-rest/openapi_fal_rest/models/workflow_detail_contents_type_0.py +0 -0
  48. {fal-1.0.1 → fal-1.0.2}/openapi-fal-rest/openapi_fal_rest/models/workflow_item.py +0 -0
  49. {fal-1.0.1 → fal-1.0.2}/openapi-fal-rest/openapi_fal_rest/models/workflow_node.py +0 -0
  50. {fal-1.0.1 → fal-1.0.2}/openapi-fal-rest/openapi_fal_rest/models/workflow_node_type.py +0 -0
  51. {fal-1.0.1 → fal-1.0.2}/openapi-fal-rest/openapi_fal_rest/models/workflow_schema.py +0 -0
  52. {fal-1.0.1 → fal-1.0.2}/openapi-fal-rest/openapi_fal_rest/models/workflow_schema_input.py +0 -0
  53. {fal-1.0.1 → fal-1.0.2}/openapi-fal-rest/openapi_fal_rest/models/workflow_schema_output.py +0 -0
  54. {fal-1.0.1 → fal-1.0.2}/openapi-fal-rest/openapi_fal_rest/py.typed +0 -0
  55. {fal-1.0.1 → fal-1.0.2}/openapi-fal-rest/openapi_fal_rest/types.py +0 -0
  56. {fal-1.0.1 → fal-1.0.2}/openapi-fal-rest/pyproject.toml +0 -0
  57. {fal-1.0.1 → fal-1.0.2}/openapi_rest.config.yaml +0 -0
  58. {fal-1.0.1 → fal-1.0.2}/pyproject.toml +0 -0
  59. {fal-1.0.1 → fal-1.0.2}/setup.cfg +0 -0
  60. {fal-1.0.1 → fal-1.0.2}/src/fal/__init__.py +0 -0
  61. {fal-1.0.1 → fal-1.0.2}/src/fal/__main__.py +0 -0
  62. {fal-1.0.1 → fal-1.0.2}/src/fal/_version.py +0 -0
  63. {fal-1.0.1 → fal-1.0.2}/src/fal/api.py +0 -0
  64. {fal-1.0.1 → fal-1.0.2}/src/fal/app.py +0 -0
  65. {fal-1.0.1 → fal-1.0.2}/src/fal/apps.py +0 -0
  66. {fal-1.0.1 → fal-1.0.2}/src/fal/auth/__init__.py +0 -0
  67. {fal-1.0.1 → fal-1.0.2}/src/fal/auth/auth0.py +0 -0
  68. {fal-1.0.1 → fal-1.0.2}/src/fal/auth/local.py +0 -0
  69. {fal-1.0.1 → fal-1.0.2}/src/fal/cli/__init__.py +0 -0
  70. {fal-1.0.1 → fal-1.0.2}/src/fal/cli/apps.py +0 -0
  71. {fal-1.0.1 → fal-1.0.2}/src/fal/cli/auth.py +0 -0
  72. {fal-1.0.1 → fal-1.0.2}/src/fal/cli/debug.py +0 -0
  73. {fal-1.0.1 → fal-1.0.2}/src/fal/cli/deploy.py +0 -0
  74. {fal-1.0.1 → fal-1.0.2}/src/fal/cli/keys.py +0 -0
  75. {fal-1.0.1 → fal-1.0.2}/src/fal/cli/main.py +0 -0
  76. {fal-1.0.1 → fal-1.0.2}/src/fal/cli/parser.py +0 -0
  77. {fal-1.0.1 → fal-1.0.2}/src/fal/cli/run.py +0 -0
  78. {fal-1.0.1 → fal-1.0.2}/src/fal/cli/secrets.py +0 -0
  79. {fal-1.0.1 → fal-1.0.2}/src/fal/console/__init__.py +0 -0
  80. {fal-1.0.1 → fal-1.0.2}/src/fal/console/icons.py +0 -0
  81. {fal-1.0.1 → fal-1.0.2}/src/fal/console/ux.py +0 -0
  82. {fal-1.0.1 → fal-1.0.2}/src/fal/exceptions/__init__.py +0 -0
  83. {fal-1.0.1 → fal-1.0.2}/src/fal/exceptions/_base.py +0 -0
  84. {fal-1.0.1 → fal-1.0.2}/src/fal/exceptions/auth.py +0 -0
  85. {fal-1.0.1 → fal-1.0.2}/src/fal/flags.py +0 -0
  86. {fal-1.0.1 → fal-1.0.2}/src/fal/logging/__init__.py +0 -0
  87. {fal-1.0.1 → fal-1.0.2}/src/fal/logging/isolate.py +0 -0
  88. {fal-1.0.1 → fal-1.0.2}/src/fal/logging/style.py +0 -0
  89. {fal-1.0.1 → fal-1.0.2}/src/fal/logging/trace.py +0 -0
  90. {fal-1.0.1 → fal-1.0.2}/src/fal/logging/user.py +0 -0
  91. {fal-1.0.1 → fal-1.0.2}/src/fal/py.typed +0 -0
  92. {fal-1.0.1 → fal-1.0.2}/src/fal/rest_client.py +0 -0
  93. {fal-1.0.1 → fal-1.0.2}/src/fal/sdk.py +0 -0
  94. {fal-1.0.1 → fal-1.0.2}/src/fal/sync.py +0 -0
  95. {fal-1.0.1 → fal-1.0.2}/src/fal/toolkit/__init__.py +0 -0
  96. {fal-1.0.1 → fal-1.0.2}/src/fal/toolkit/exceptions.py +0 -0
  97. {fal-1.0.1 → fal-1.0.2}/src/fal/toolkit/file/__init__.py +0 -0
  98. {fal-1.0.1 → fal-1.0.2}/src/fal/toolkit/file/file.py +0 -0
  99. {fal-1.0.1 → fal-1.0.2}/src/fal/toolkit/file/providers/fal.py +0 -0
  100. {fal-1.0.1 → fal-1.0.2}/src/fal/toolkit/file/providers/gcp.py +0 -0
  101. {fal-1.0.1 → fal-1.0.2}/src/fal/toolkit/file/providers/r2.py +0 -0
  102. {fal-1.0.1 → fal-1.0.2}/src/fal/toolkit/file/types.py +0 -0
  103. {fal-1.0.1 → fal-1.0.2}/src/fal/toolkit/image/__init__.py +0 -0
  104. {fal-1.0.1 → fal-1.0.2}/src/fal/toolkit/image/image.py +0 -0
  105. {fal-1.0.1 → fal-1.0.2}/src/fal/toolkit/optimize.py +0 -0
  106. {fal-1.0.1 → fal-1.0.2}/src/fal/toolkit/utils/__init__.py +0 -0
  107. {fal-1.0.1 → fal-1.0.2}/src/fal/toolkit/utils/download_utils.py +0 -0
  108. {fal-1.0.1 → fal-1.0.2}/src/fal/utils.py +0 -0
  109. {fal-1.0.1 → fal-1.0.2}/src/fal/workflows.py +0 -0
  110. {fal-1.0.1 → fal-1.0.2}/tests/__init__.py +0 -0
  111. {fal-1.0.1 → fal-1.0.2}/tests/cli/__init__.py +0 -0
  112. {fal-1.0.1 → fal-1.0.2}/tests/cli/test_apps.py +0 -0
  113. {fal-1.0.1 → fal-1.0.2}/tests/cli/test_auth.py +0 -0
  114. {fal-1.0.1 → fal-1.0.2}/tests/cli/test_deploy.py +0 -0
  115. {fal-1.0.1 → fal-1.0.2}/tests/cli/test_keys.py +0 -0
  116. {fal-1.0.1 → fal-1.0.2}/tests/cli/test_run.py +0 -0
  117. {fal-1.0.1 → fal-1.0.2}/tests/cli/test_secrets.py +0 -0
  118. {fal-1.0.1 → fal-1.0.2}/tests/conftest.py +0 -0
  119. {fal-1.0.1 → fal-1.0.2}/tests/integration_test.py +0 -0
  120. {fal-1.0.1 → fal-1.0.2}/tests/mainify_package/__init__.py +0 -0
  121. {fal-1.0.1 → fal-1.0.2}/tests/mainify_package/impl.py +0 -0
  122. {fal-1.0.1 → fal-1.0.2}/tests/mainify_package/utils.py +0 -0
  123. {fal-1.0.1 → fal-1.0.2}/tests/mainify_target.py +0 -0
  124. {fal-1.0.1 → fal-1.0.2}/tests/test_apps.py +0 -0
  125. {fal-1.0.1 → fal-1.0.2}/tests/toolkit/file_test.py +0 -0
  126. {fal-1.0.1 → fal-1.0.2}/tests/toolkit/image_test.py +0 -0
  127. {fal-1.0.1 → fal-1.0.2}/tools/demo_script.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: fal
3
- Version: 1.0.1
3
+ Version: 1.0.2
4
4
  Summary: fal is an easy-to-use Serverless Python Framework
5
5
  Author: Features & Labels <hello@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.0.1
3
+ Version: 1.0.2
4
4
  Summary: fal is an easy-to-use Serverless Python Framework
5
5
  Author: Features & Labels <hello@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.0.1'
16
- __version_tuple__ = version_tuple = (1, 0, 1)
15
+ __version__ = version = '1.0.2'
16
+ __version_tuple__ = version_tuple = (1, 0, 2)
@@ -195,7 +195,10 @@ def _patch_rlock() -> None:
195
195
 
196
196
 
197
197
  def _patch_console_thread_locals() -> None:
198
- from rich.console import ConsoleThreadLocals
198
+ try:
199
+ from rich.console import ConsoleThreadLocals
200
+ except ModuleNotFoundError:
201
+ return
199
202
 
200
203
  def create_locals(kwargs: dict) -> ConsoleThreadLocals:
201
204
  return ConsoleThreadLocals(**kwargs)
@@ -67,6 +67,40 @@ def test_function_pipelining(isolated_client):
67
67
  assert calling_function(regular_function()) == 84
68
68
 
69
69
 
70
+ def test_function_exception(isolated_client):
71
+ class FooException(Exception):
72
+ pass
73
+
74
+ class BarException(Exception):
75
+ pass
76
+
77
+ class MyFuncException(Exception):
78
+ pass
79
+
80
+ def foo():
81
+ raise FooException("foo")
82
+
83
+ def bar():
84
+ try:
85
+ foo()
86
+ except Exception as exc:
87
+ raise BarException("bar") from exc
88
+
89
+ @isolated_client()
90
+ def myfunc():
91
+ try:
92
+ bar()
93
+ except Exception as exc:
94
+ raise MyFuncException("myfunc") from exc
95
+
96
+ with pytest.raises(MyFuncException) as excinfo:
97
+ myfunc()
98
+
99
+ bar_exc = excinfo.value.__cause__
100
+ assert isinstance(bar_exc, BarException)
101
+ assert isinstance(bar_exc.__cause__, FooException)
102
+
103
+
70
104
  @pytest.mark.xfail(reason="See https://github.com/fal-ai/fal/issues/169")
71
105
  def test_function_calling_other_function(isolated_client):
72
106
  try:
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes