fal 1.38.0__tar.gz → 1.39.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.38.0/fal.egg-info → fal-1.39.0}/PKG-INFO +3 -3
- {fal-1.38.0 → fal-1.39.0/fal.egg-info}/PKG-INFO +3 -3
- {fal-1.38.0 → fal-1.39.0}/fal.egg-info/requires.txt +2 -2
- {fal-1.38.0 → fal-1.39.0}/pyproject.toml +2 -2
- {fal-1.38.0 → fal-1.39.0}/src/fal/_fal_version.py +2 -2
- {fal-1.38.0 → fal-1.39.0}/src/fal/toolkit/image/__init__.py +6 -5
- {fal-1.38.0 → fal-1.39.0}/tests/test_stability.py +9 -7
- {fal-1.38.0 → fal-1.39.0}/.gitignore +0 -0
- {fal-1.38.0 → fal-1.39.0}/Makefile +0 -0
- {fal-1.38.0 → fal-1.39.0}/README.md +0 -0
- {fal-1.38.0 → fal-1.39.0}/docs/conf.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/docs/index.rst +0 -0
- {fal-1.38.0 → fal-1.39.0}/fal.egg-info/SOURCES.txt +0 -0
- {fal-1.38.0 → fal-1.39.0}/fal.egg-info/dependency_links.txt +0 -0
- {fal-1.38.0 → fal-1.39.0}/fal.egg-info/entry_points.txt +0 -0
- {fal-1.38.0 → fal-1.39.0}/fal.egg-info/top_level.txt +0 -0
- {fal-1.38.0 → fal-1.39.0}/openapi-fal-rest/README.md +0 -0
- {fal-1.38.0 → fal-1.39.0}/openapi-fal-rest/openapi_fal_rest/__init__.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/openapi-fal-rest/openapi_fal_rest/api/__init__.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/openapi-fal-rest/openapi_fal_rest/api/applications/__init__.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/openapi-fal-rest/openapi_fal_rest/api/applications/app_metadata.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/openapi-fal-rest/openapi_fal_rest/api/billing/__init__.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/openapi-fal-rest/openapi_fal_rest/api/billing/get_user_details.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/openapi-fal-rest/openapi_fal_rest/api/comfy/__init__.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/openapi-fal-rest/openapi_fal_rest/api/comfy/create_workflow.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/openapi-fal-rest/openapi_fal_rest/api/comfy/delete_workflow.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/openapi-fal-rest/openapi_fal_rest/api/comfy/get_workflow.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/openapi-fal-rest/openapi_fal_rest/api/comfy/list_user_workflows.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/openapi-fal-rest/openapi_fal_rest/api/comfy/update_workflow.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/openapi-fal-rest/openapi_fal_rest/api/files/__init__.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/openapi-fal-rest/openapi_fal_rest/api/files/check_dir_hash.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/openapi-fal-rest/openapi_fal_rest/api/files/upload_local_file.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/openapi-fal-rest/openapi_fal_rest/api/users/__init__.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/openapi-fal-rest/openapi_fal_rest/api/users/get_current_user.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/openapi-fal-rest/openapi_fal_rest/api/workflows/__init__.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/openapi-fal-rest/openapi_fal_rest/api/workflows/create_workflow.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/openapi-fal-rest/openapi_fal_rest/api/workflows/delete_workflow.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/openapi-fal-rest/openapi_fal_rest/api/workflows/get_workflow.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/openapi-fal-rest/openapi_fal_rest/api/workflows/list_user_workflows.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/openapi-fal-rest/openapi_fal_rest/api/workflows/update_workflow.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/openapi-fal-rest/openapi_fal_rest/client.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/openapi-fal-rest/openapi_fal_rest/errors.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/openapi-fal-rest/openapi_fal_rest/models/__init__.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/openapi-fal-rest/openapi_fal_rest/models/app_metadata_response_app_metadata.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/openapi-fal-rest/openapi_fal_rest/models/body_upload_local_file.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_detail.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_item.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_schema.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_schema_extra_data.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_schema_fal_inputs.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_schema_fal_inputs_dev_info.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_schema_prompt.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/openapi-fal-rest/openapi_fal_rest/models/current_user.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/openapi-fal-rest/openapi_fal_rest/models/customer_details.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/openapi-fal-rest/openapi_fal_rest/models/hash_check.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/openapi-fal-rest/openapi_fal_rest/models/http_validation_error.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/openapi-fal-rest/openapi_fal_rest/models/lock_reason.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/openapi-fal-rest/openapi_fal_rest/models/page_comfy_workflow_item.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/openapi-fal-rest/openapi_fal_rest/models/page_workflow_item.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/openapi-fal-rest/openapi_fal_rest/models/team_role.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/openapi-fal-rest/openapi_fal_rest/models/typed_comfy_workflow.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/openapi-fal-rest/openapi_fal_rest/models/typed_comfy_workflow_update.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/openapi-fal-rest/openapi_fal_rest/models/typed_workflow.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/openapi-fal-rest/openapi_fal_rest/models/typed_workflow_update.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/openapi-fal-rest/openapi_fal_rest/models/user_member.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/openapi-fal-rest/openapi_fal_rest/models/validation_error.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents_metadata.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents_nodes.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents_output.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/openapi-fal-rest/openapi_fal_rest/models/workflow_detail.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/openapi-fal-rest/openapi_fal_rest/models/workflow_detail_contents.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/openapi-fal-rest/openapi_fal_rest/models/workflow_item.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/openapi-fal-rest/openapi_fal_rest/models/workflow_node.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/openapi-fal-rest/openapi_fal_rest/models/workflow_node_type.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/openapi-fal-rest/openapi_fal_rest/models/workflow_schema.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/openapi-fal-rest/openapi_fal_rest/models/workflow_schema_input.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/openapi-fal-rest/openapi_fal_rest/models/workflow_schema_output.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/openapi-fal-rest/openapi_fal_rest/py.typed +0 -0
- {fal-1.38.0 → fal-1.39.0}/openapi-fal-rest/openapi_fal_rest/types.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/openapi-fal-rest/pyproject.toml +0 -0
- {fal-1.38.0 → fal-1.39.0}/openapi_rest.config.yaml +0 -0
- {fal-1.38.0 → fal-1.39.0}/setup.cfg +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/__init__.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/__main__.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/_serialization.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/_version.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/api.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/app.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/apps.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/auth/__init__.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/auth/auth0.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/auth/local.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/cli/__init__.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/cli/_utils.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/cli/api.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/cli/apps.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/cli/auth.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/cli/cli_nested_json.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/cli/create.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/cli/debug.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/cli/deploy.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/cli/doctor.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/cli/files.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/cli/keys.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/cli/main.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/cli/parser.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/cli/profile.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/cli/run.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/cli/runners.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/cli/secrets.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/cli/teams.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/config.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/console/__init__.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/console/icons.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/console/ux.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/container.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/exceptions/__init__.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/exceptions/_base.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/exceptions/_cuda.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/exceptions/auth.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/files.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/flags.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/logging/__init__.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/logging/isolate.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/logging/style.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/logging/trace.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/logging/user.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/project.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/py.typed +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/rest_client.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/sdk.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/sync.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/toolkit/__init__.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/toolkit/audio/__init__.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/toolkit/audio/audio.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/toolkit/exceptions.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/toolkit/file/__init__.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/toolkit/file/file.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/toolkit/file/providers/fal.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/toolkit/file/providers/gcp.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/toolkit/file/providers/r2.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/toolkit/file/providers/s3.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/toolkit/file/types.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/toolkit/image/image.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/toolkit/image/nsfw_filter/__init__.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/toolkit/image/nsfw_filter/env.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/toolkit/image/nsfw_filter/inference.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/toolkit/image/nsfw_filter/model.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/toolkit/image/nsfw_filter/requirements.txt +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/toolkit/image/safety_checker.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/toolkit/kv.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/toolkit/optimize.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/toolkit/types.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/toolkit/utils/__init__.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/toolkit/utils/download_utils.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/toolkit/utils/endpoint.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/toolkit/utils/retry.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/toolkit/utils/setup_utils.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/toolkit/video/__init__.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/toolkit/video/video.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/utils.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/src/fal/workflows.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/tests/__init__.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/tests/assets/cat.png +0 -0
- {fal-1.38.0 → fal-1.39.0}/tests/cli/__init__.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/tests/cli/test_apps.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/tests/cli/test_auth.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/tests/cli/test_deploy.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/tests/cli/test_keys.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/tests/cli/test_run.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/tests/cli/test_secrets.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/tests/conftest.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/tests/integration_test.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/tests/mainify_package/__init__.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/tests/mainify_package/impl.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/tests/mainify_package/utils.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/tests/mainify_target.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/tests/test_apps.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/tests/test_files.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/tests/test_kv.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/tests/toolkit/file/providers/test_fal_retry.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/tests/toolkit/file_test.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/tests/toolkit/image_test.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/tests/toolkit/test_types.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/tests/toolkit/utils/retry.py +0 -0
- {fal-1.38.0 → fal-1.39.0}/tools/demo_script.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fal
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.39.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
|
|
@@ -17,7 +17,7 @@ Requires-Dist: opentelemetry-sdk<2,>=1.15.0
|
|
|
17
17
|
Requires-Dist: grpc-interceptor<1,>=0.15.0
|
|
18
18
|
Requires-Dist: colorama<1,>=0.4.6
|
|
19
19
|
Requires-Dist: portalocker<3,>=2.7.0
|
|
20
|
-
Requires-Dist: rich<
|
|
20
|
+
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
|
|
@@ -33,7 +33,7 @@ Requires-Dist: types-dateparser<2,>=1.2.0
|
|
|
33
33
|
Requires-Dist: importlib-metadata>=4.4; python_version < "3.10"
|
|
34
34
|
Requires-Dist: msgpack<2,>=1.0.7
|
|
35
35
|
Requires-Dist: websockets>=12.0
|
|
36
|
-
Requires-Dist: pillow<
|
|
36
|
+
Requires-Dist: pillow<12,>=10.2.0
|
|
37
37
|
Requires-Dist: pyjwt[crypto]<3,>=2.8.0
|
|
38
38
|
Requires-Dist: uvicorn<1,>=0.29.0
|
|
39
39
|
Requires-Dist: cookiecutter
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fal
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.39.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
|
|
@@ -17,7 +17,7 @@ Requires-Dist: opentelemetry-sdk<2,>=1.15.0
|
|
|
17
17
|
Requires-Dist: grpc-interceptor<1,>=0.15.0
|
|
18
18
|
Requires-Dist: colorama<1,>=0.4.6
|
|
19
19
|
Requires-Dist: portalocker<3,>=2.7.0
|
|
20
|
-
Requires-Dist: rich<
|
|
20
|
+
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
|
|
@@ -33,7 +33,7 @@ Requires-Dist: types-dateparser<2,>=1.2.0
|
|
|
33
33
|
Requires-Dist: importlib-metadata>=4.4; python_version < "3.10"
|
|
34
34
|
Requires-Dist: msgpack<2,>=1.0.7
|
|
35
35
|
Requires-Dist: websockets>=12.0
|
|
36
|
-
Requires-Dist: pillow<
|
|
36
|
+
Requires-Dist: pillow<12,>=10.2.0
|
|
37
37
|
Requires-Dist: pyjwt[crypto]<3,>=2.8.0
|
|
38
38
|
Requires-Dist: uvicorn<1,>=0.29.0
|
|
39
39
|
Requires-Dist: cookiecutter
|
|
@@ -10,7 +10,7 @@ opentelemetry-sdk<2,>=1.15.0
|
|
|
10
10
|
grpc-interceptor<1,>=0.15.0
|
|
11
11
|
colorama<1,>=0.4.6
|
|
12
12
|
portalocker<3,>=2.7.0
|
|
13
|
-
rich<
|
|
13
|
+
rich<15,>=13.3.2
|
|
14
14
|
rich_argparse
|
|
15
15
|
packaging>=21.3
|
|
16
16
|
pathspec<1,>=0.11.1
|
|
@@ -25,7 +25,7 @@ dateparser<2,>=1.2.0
|
|
|
25
25
|
types-dateparser<2,>=1.2.0
|
|
26
26
|
msgpack<2,>=1.0.7
|
|
27
27
|
websockets>=12.0
|
|
28
|
-
pillow<
|
|
28
|
+
pillow<12,>=10.2.0
|
|
29
29
|
pyjwt[crypto]<3,>=2.8.0
|
|
30
30
|
uvicorn<1,>=0.29.0
|
|
31
31
|
cookiecutter
|
|
@@ -34,7 +34,7 @@ dependencies = [
|
|
|
34
34
|
"grpc-interceptor>=0.15.0,<1",
|
|
35
35
|
"colorama>=0.4.6,<1",
|
|
36
36
|
"portalocker>=2.7.0,<3",
|
|
37
|
-
"rich>=13.3.2,<
|
|
37
|
+
"rich>=13.3.2,<15",
|
|
38
38
|
"rich_argparse",
|
|
39
39
|
"packaging>=21.3",
|
|
40
40
|
"pathspec>=0.11.1,<1",
|
|
@@ -53,7 +53,7 @@ dependencies = [
|
|
|
53
53
|
'importlib-metadata>=4.4; python_version < "3.10"',
|
|
54
54
|
"msgpack>=1.0.7,<2",
|
|
55
55
|
"websockets>=12.0",
|
|
56
|
-
"pillow>=10.2.0,<
|
|
56
|
+
"pillow>=10.2.0,<12",
|
|
57
57
|
"pyjwt[crypto]>=2.8.0,<3",
|
|
58
58
|
"uvicorn>=0.29.0,<1",
|
|
59
59
|
"cookiecutter",
|
|
@@ -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.39.0'
|
|
32
|
+
__version_tuple__ = version_tuple = (1, 39, 0)
|
|
33
33
|
|
|
34
34
|
__commit_id__ = commit_id = None
|
|
@@ -7,18 +7,19 @@ from typing import TYPE_CHECKING
|
|
|
7
7
|
from .image import * # noqa: F403
|
|
8
8
|
|
|
9
9
|
if TYPE_CHECKING:
|
|
10
|
-
|
|
10
|
+
# suffix so we don't clash with PILImage from .image
|
|
11
|
+
from PIL.Image import Image as PILImage2
|
|
11
12
|
|
|
12
13
|
|
|
13
14
|
def filter_by(
|
|
14
15
|
has_nsfw_concepts: list[bool],
|
|
15
|
-
images: list[
|
|
16
|
-
) -> list[
|
|
17
|
-
from PIL import Image as
|
|
16
|
+
images: list[PILImage2],
|
|
17
|
+
) -> list[PILImage2]:
|
|
18
|
+
from PIL import Image as PILImageModule
|
|
18
19
|
|
|
19
20
|
return [
|
|
20
21
|
(
|
|
21
|
-
|
|
22
|
+
PILImageModule.new("RGB", (image.width, image.height), (0, 0, 0))
|
|
22
23
|
if has_nsfw
|
|
23
24
|
else image
|
|
24
25
|
)
|
|
@@ -619,21 +619,23 @@ def test_worker_env_vars(isolated_client):
|
|
|
619
619
|
|
|
620
620
|
|
|
621
621
|
@pytest.mark.parametrize(
|
|
622
|
-
"repo_type,
|
|
622
|
+
"repo_type, url_prefixes",
|
|
623
623
|
[
|
|
624
624
|
(
|
|
625
625
|
"fal",
|
|
626
|
-
|
|
626
|
+
[
|
|
627
|
+
"https://storage.googleapis.com/isolate-dev-smiling-shark_toolkit_public_bucket/"
|
|
628
|
+
],
|
|
627
629
|
),
|
|
628
|
-
("fal_v2", "https://v2.fal.media/files"),
|
|
629
|
-
("fal_v3", "https://v3.fal.media/files"),
|
|
630
|
+
("fal_v2", ["https://v2.fal.media/files"]),
|
|
631
|
+
("fal_v3", ["https://v3.fal.media/files", "https://v3b.fal.media/files"]),
|
|
630
632
|
],
|
|
631
633
|
)
|
|
632
|
-
def test_fal_storage(isolated_client, repo_type,
|
|
634
|
+
def test_fal_storage(isolated_client, repo_type, url_prefixes):
|
|
633
635
|
file = File.from_bytes(
|
|
634
636
|
b"Hello fal storage from local", repository=repo_type, fallback_repository=None
|
|
635
637
|
)
|
|
636
|
-
assert file.url.startswith(url_prefix)
|
|
638
|
+
assert any(file.url.startswith(url_prefix) for url_prefix in url_prefixes)
|
|
637
639
|
assert file.as_bytes().decode().endswith("local")
|
|
638
640
|
|
|
639
641
|
@isolated_client(
|
|
@@ -656,7 +658,7 @@ def test_fal_storage(isolated_client, repo_type, url_prefix):
|
|
|
656
658
|
|
|
657
659
|
local_fn = hello_file.on(serve=False)
|
|
658
660
|
file = local_fn()
|
|
659
|
-
assert file.url.startswith(url_prefix)
|
|
661
|
+
assert any(file.url.startswith(url_prefix) for url_prefix in url_prefixes)
|
|
660
662
|
assert file.as_bytes().decode().endswith("isolated")
|
|
661
663
|
|
|
662
664
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.38.0 → fal-1.39.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.38.0 → fal-1.39.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.38.0 → fal-1.39.0}/openapi-fal-rest/openapi_fal_rest/api/workflows/create_workflow.py
RENAMED
|
File without changes
|
{fal-1.38.0 → fal-1.39.0}/openapi-fal-rest/openapi_fal_rest/api/workflows/delete_workflow.py
RENAMED
|
File without changes
|
|
File without changes
|
{fal-1.38.0 → fal-1.39.0}/openapi-fal-rest/openapi_fal_rest/api/workflows/list_user_workflows.py
RENAMED
|
File without changes
|
{fal-1.38.0 → fal-1.39.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.38.0 → fal-1.39.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.38.0 → fal-1.39.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.38.0 → fal-1.39.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.38.0 → fal-1.39.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.38.0 → fal-1.39.0}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents_metadata.py
RENAMED
|
File without changes
|
{fal-1.38.0 → fal-1.39.0}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents_nodes.py
RENAMED
|
File without changes
|
{fal-1.38.0 → fal-1.39.0}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents_output.py
RENAMED
|
File without changes
|
|
File without changes
|
{fal-1.38.0 → fal-1.39.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.38.0 → fal-1.39.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
|
|
File without changes
|