fal 1.33.0__tar.gz → 1.34.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.
- {fal-1.33.0/fal.egg-info → fal-1.34.0}/PKG-INFO +2 -2
- {fal-1.33.0 → fal-1.34.0/fal.egg-info}/PKG-INFO +2 -2
- {fal-1.33.0 → fal-1.34.0}/fal.egg-info/requires.txt +1 -1
- {fal-1.33.0 → fal-1.34.0}/pyproject.toml +1 -1
- {fal-1.33.0 → fal-1.34.0}/src/fal/_fal_version.py +2 -2
- {fal-1.33.0 → fal-1.34.0}/src/fal/api.py +20 -1
- {fal-1.33.0 → fal-1.34.0}/src/fal/cli/debug.py +10 -3
- {fal-1.33.0 → fal-1.34.0}/src/fal/cli/main.py +8 -3
- {fal-1.33.0 → fal-1.34.0}/.gitignore +0 -0
- {fal-1.33.0 → fal-1.34.0}/Makefile +0 -0
- {fal-1.33.0 → fal-1.34.0}/README.md +0 -0
- {fal-1.33.0 → fal-1.34.0}/docs/conf.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/docs/index.rst +0 -0
- {fal-1.33.0 → fal-1.34.0}/fal.egg-info/SOURCES.txt +0 -0
- {fal-1.33.0 → fal-1.34.0}/fal.egg-info/dependency_links.txt +0 -0
- {fal-1.33.0 → fal-1.34.0}/fal.egg-info/entry_points.txt +0 -0
- {fal-1.33.0 → fal-1.34.0}/fal.egg-info/top_level.txt +0 -0
- {fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/README.md +0 -0
- {fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/__init__.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/api/__init__.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/api/applications/__init__.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/api/applications/app_metadata.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/api/billing/__init__.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/api/billing/get_user_details.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/api/comfy/__init__.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/api/comfy/create_workflow.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/api/comfy/delete_workflow.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/api/comfy/get_workflow.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/api/comfy/list_user_workflows.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/api/comfy/update_workflow.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/api/files/__init__.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/api/files/check_dir_hash.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/api/files/upload_local_file.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/api/users/__init__.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/api/users/get_current_user.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/api/workflows/__init__.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/api/workflows/create_workflow.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/api/workflows/delete_workflow.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/api/workflows/get_workflow.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/api/workflows/list_user_workflows.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/api/workflows/update_workflow.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/client.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/errors.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/models/__init__.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/models/app_metadata_response_app_metadata.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/models/body_upload_local_file.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_detail.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_item.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_schema.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_schema_extra_data.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_schema_fal_inputs.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_schema_fal_inputs_dev_info.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_schema_prompt.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/models/current_user.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/models/customer_details.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/models/hash_check.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/models/http_validation_error.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/models/lock_reason.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/models/page_comfy_workflow_item.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/models/page_workflow_item.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/models/team_role.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/models/typed_comfy_workflow.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/models/typed_comfy_workflow_update.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/models/typed_workflow.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/models/typed_workflow_update.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/models/user_member.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/models/validation_error.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents_metadata.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents_nodes.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents_output.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/models/workflow_detail.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/models/workflow_detail_contents.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/models/workflow_item.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/models/workflow_node.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/models/workflow_node_type.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/models/workflow_schema.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/models/workflow_schema_input.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/models/workflow_schema_output.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/py.typed +0 -0
- {fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/types.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/pyproject.toml +0 -0
- {fal-1.33.0 → fal-1.34.0}/openapi_rest.config.yaml +0 -0
- {fal-1.33.0 → fal-1.34.0}/setup.cfg +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/__init__.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/__main__.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/_serialization.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/_version.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/app.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/apps.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/auth/__init__.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/auth/auth0.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/auth/local.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/cli/__init__.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/cli/_utils.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/cli/api.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/cli/apps.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/cli/auth.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/cli/cli_nested_json.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/cli/create.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/cli/deploy.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/cli/doctor.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/cli/files.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/cli/keys.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/cli/parser.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/cli/profile.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/cli/run.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/cli/runners.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/cli/secrets.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/cli/teams.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/config.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/console/__init__.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/console/icons.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/console/ux.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/container.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/exceptions/__init__.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/exceptions/_base.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/exceptions/_cuda.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/exceptions/auth.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/files.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/flags.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/logging/__init__.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/logging/isolate.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/logging/style.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/logging/trace.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/logging/user.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/project.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/py.typed +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/rest_client.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/sdk.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/sync.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/toolkit/__init__.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/toolkit/audio/__init__.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/toolkit/audio/audio.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/toolkit/exceptions.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/toolkit/file/__init__.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/toolkit/file/file.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/toolkit/file/providers/fal.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/toolkit/file/providers/gcp.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/toolkit/file/providers/r2.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/toolkit/file/providers/s3.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/toolkit/file/types.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/toolkit/image/__init__.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/toolkit/image/image.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/toolkit/image/nsfw_filter/__init__.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/toolkit/image/nsfw_filter/env.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/toolkit/image/nsfw_filter/inference.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/toolkit/image/nsfw_filter/model.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/toolkit/image/nsfw_filter/requirements.txt +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/toolkit/image/safety_checker.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/toolkit/kv.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/toolkit/optimize.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/toolkit/types.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/toolkit/utils/__init__.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/toolkit/utils/download_utils.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/toolkit/utils/endpoint.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/toolkit/utils/retry.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/toolkit/utils/setup_utils.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/toolkit/video/__init__.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/toolkit/video/video.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/utils.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/src/fal/workflows.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/tests/__init__.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/tests/assets/cat.png +0 -0
- {fal-1.33.0 → fal-1.34.0}/tests/cli/__init__.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/tests/cli/test_apps.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/tests/cli/test_auth.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/tests/cli/test_deploy.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/tests/cli/test_keys.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/tests/cli/test_run.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/tests/cli/test_secrets.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/tests/conftest.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/tests/integration_test.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/tests/mainify_package/__init__.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/tests/mainify_package/impl.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/tests/mainify_package/utils.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/tests/mainify_target.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/tests/test_apps.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/tests/test_files.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/tests/test_kv.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/tests/test_stability.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/tests/toolkit/file/providers/test_fal_retry.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/tests/toolkit/file_test.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/tests/toolkit/image_test.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/tests/toolkit/test_types.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/tests/toolkit/utils/retry.py +0 -0
- {fal-1.33.0 → fal-1.34.0}/tools/demo_script.py +0 -0
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fal
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.34.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.
|
|
8
|
+
Requires-Dist: isolate[build]<0.20.0,>=0.18.0
|
|
9
9
|
Requires-Dist: isolate-proto<0.13.0,>=0.12.0
|
|
10
10
|
Requires-Dist: grpcio<2,>=1.64.0
|
|
11
11
|
Requires-Dist: dill==0.3.7
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fal
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.34.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.
|
|
8
|
+
Requires-Dist: isolate[build]<0.20.0,>=0.18.0
|
|
9
9
|
Requires-Dist: isolate-proto<0.13.0,>=0.12.0
|
|
10
10
|
Requires-Dist: grpcio<2,>=1.64.0
|
|
11
11
|
Requires-Dist: dill==0.3.7
|
|
@@ -22,7 +22,7 @@ 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.
|
|
25
|
+
"isolate[build]>=0.18.0,<0.20.0",
|
|
26
26
|
"isolate-proto>=0.12.0,<0.13.0",
|
|
27
27
|
"grpcio>=1.64.0,<2",
|
|
28
28
|
"dill==0.3.7",
|
|
@@ -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.
|
|
32
|
-
__version_tuple__ = version_tuple = (1,
|
|
31
|
+
__version__ = version = '1.34.0'
|
|
32
|
+
__version_tuple__ = version_tuple = (1, 34, 0)
|
|
33
33
|
|
|
34
34
|
__commit_id__ = commit_id = None
|
|
@@ -96,7 +96,12 @@ class InternalFalServerlessError(FalServerlessException):
|
|
|
96
96
|
|
|
97
97
|
|
|
98
98
|
@dataclass
|
|
99
|
-
class
|
|
99
|
+
class FalSerializationError(FalServerlessException):
|
|
100
|
+
message: str
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
@dataclass
|
|
104
|
+
class FalMissingDependencyError(FalSerializationError): ...
|
|
100
105
|
|
|
101
106
|
|
|
102
107
|
@dataclass
|
|
@@ -316,6 +321,8 @@ def _handle_grpc_error():
|
|
|
316
321
|
"""
|
|
317
322
|
Wraps grpc errors as fal Serverless Errors.
|
|
318
323
|
"""
|
|
324
|
+
from isolate.connections.common import SerializationError
|
|
325
|
+
|
|
319
326
|
try:
|
|
320
327
|
return fn(*args, **kwargs)
|
|
321
328
|
except grpc.RpcError as e:
|
|
@@ -339,6 +346,18 @@ def _handle_grpc_error():
|
|
|
339
346
|
raise FalMissingDependencyError(msg) from None
|
|
340
347
|
else:
|
|
341
348
|
raise FalServerlessError(msg)
|
|
349
|
+
except SerializationError as e:
|
|
350
|
+
msg = str(e)
|
|
351
|
+
cause = e.__cause__
|
|
352
|
+
if isinstance(cause, ModuleNotFoundError):
|
|
353
|
+
missing_module = cause.name
|
|
354
|
+
msg += (
|
|
355
|
+
f". Could not find module '{missing_module}'. "
|
|
356
|
+
"This is likely due to a missing dependency. "
|
|
357
|
+
"Please make sure to include all dependencies "
|
|
358
|
+
"in the environment configuration."
|
|
359
|
+
)
|
|
360
|
+
raise FalSerializationError(msg) from cause
|
|
342
361
|
|
|
343
362
|
return handler
|
|
344
363
|
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import argparse
|
|
1
2
|
from contextlib import ExitStack, contextmanager
|
|
2
3
|
|
|
3
4
|
from .parser import FalParser
|
|
@@ -45,17 +46,23 @@ def debugtools(args):
|
|
|
45
46
|
|
|
46
47
|
|
|
47
48
|
def get_debug_parser():
|
|
49
|
+
from fal.flags import DEBUG
|
|
50
|
+
|
|
48
51
|
parser = FalParser(add_help=False)
|
|
49
52
|
group = parser.add_argument_group(title="Debug")
|
|
50
|
-
group.add_argument(
|
|
53
|
+
group.add_argument(
|
|
54
|
+
"--debug",
|
|
55
|
+
action="store_true",
|
|
56
|
+
help="Show verbose errors." if DEBUG else argparse.SUPPRESS,
|
|
57
|
+
)
|
|
51
58
|
group.add_argument(
|
|
52
59
|
"--pdb",
|
|
53
60
|
action="store_true",
|
|
54
|
-
help="Start pdb on error.",
|
|
61
|
+
help="Start pdb on error." if DEBUG else argparse.SUPPRESS,
|
|
55
62
|
)
|
|
56
63
|
group.add_argument(
|
|
57
64
|
"--cprofile",
|
|
58
65
|
action="store_true",
|
|
59
|
-
help="Show cProfile report.",
|
|
66
|
+
help="Show cProfile report." if DEBUG else argparse.SUPPRESS,
|
|
60
67
|
)
|
|
61
68
|
return parser
|
|
@@ -113,7 +113,7 @@ def _check_latest_version():
|
|
|
113
113
|
def main(argv=None) -> int:
|
|
114
114
|
import grpc
|
|
115
115
|
|
|
116
|
-
from fal.api import UserFunctionException
|
|
116
|
+
from fal.api import FalSerializationError, UserFunctionException
|
|
117
117
|
|
|
118
118
|
_check_latest_version()
|
|
119
119
|
|
|
@@ -123,7 +123,7 @@ def main(argv=None) -> int:
|
|
|
123
123
|
|
|
124
124
|
with debugtools(args):
|
|
125
125
|
ret = args.func(args)
|
|
126
|
-
except UserFunctionException as _exc:
|
|
126
|
+
except (UserFunctionException, FalSerializationError) as _exc:
|
|
127
127
|
cause = _exc.__cause__
|
|
128
128
|
exc: BaseException = cause or _exc
|
|
129
129
|
tb = rich.traceback.Traceback.from_exception(
|
|
@@ -132,7 +132,12 @@ def main(argv=None) -> int:
|
|
|
132
132
|
exc.__traceback__,
|
|
133
133
|
)
|
|
134
134
|
console.print(tb)
|
|
135
|
-
|
|
135
|
+
|
|
136
|
+
if isinstance(_exc, UserFunctionException):
|
|
137
|
+
msg = "Unhandled user exception"
|
|
138
|
+
else:
|
|
139
|
+
msg = str(_exc)
|
|
140
|
+
_print_error(msg)
|
|
136
141
|
except KeyboardInterrupt:
|
|
137
142
|
_print_error("Aborted.")
|
|
138
143
|
except grpc.RpcError as exc:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/api/applications/app_metadata.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/api/comfy/list_user_workflows.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/api/workflows/create_workflow.py
RENAMED
|
File without changes
|
{fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/api/workflows/delete_workflow.py
RENAMED
|
File without changes
|
|
File without changes
|
{fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/api/workflows/list_user_workflows.py
RENAMED
|
File without changes
|
{fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/api/workflows/update_workflow.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/models/body_upload_local_file.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_schema_prompt.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/models/page_comfy_workflow_item.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/models/typed_comfy_workflow_update.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents_metadata.py
RENAMED
|
File without changes
|
{fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents_nodes.py
RENAMED
|
File without changes
|
{fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents_output.py
RENAMED
|
File without changes
|
|
File without changes
|
{fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/models/workflow_detail_contents.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fal-1.33.0 → fal-1.34.0}/openapi-fal-rest/openapi_fal_rest/models/workflow_schema_output.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|