fal 1.46.0__tar.gz → 1.46.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.
- {fal-1.46.0/fal.egg-info → fal-1.46.1}/PKG-INFO +2 -1
- {fal-1.46.0 → fal-1.46.1/fal.egg-info}/PKG-INFO +2 -1
- {fal-1.46.0 → fal-1.46.1}/fal.egg-info/requires.txt +1 -0
- {fal-1.46.0 → fal-1.46.1}/pyproject.toml +1 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/_fal_version.py +2 -2
- {fal-1.46.0 → fal-1.46.1}/src/fal/distributed/utils.py +3 -3
- {fal-1.46.0 → fal-1.46.1}/src/fal/distributed/worker.py +21 -6
- {fal-1.46.0 → fal-1.46.1}/.gitignore +0 -0
- {fal-1.46.0 → fal-1.46.1}/Makefile +0 -0
- {fal-1.46.0 → fal-1.46.1}/README.md +0 -0
- {fal-1.46.0 → fal-1.46.1}/docs/conf.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/docs/index.rst +0 -0
- {fal-1.46.0 → fal-1.46.1}/fal.egg-info/SOURCES.txt +0 -0
- {fal-1.46.0 → fal-1.46.1}/fal.egg-info/dependency_links.txt +0 -0
- {fal-1.46.0 → fal-1.46.1}/fal.egg-info/entry_points.txt +0 -0
- {fal-1.46.0 → fal-1.46.1}/fal.egg-info/top_level.txt +0 -0
- {fal-1.46.0 → fal-1.46.1}/openapi-fal-rest/README.md +0 -0
- {fal-1.46.0 → fal-1.46.1}/openapi-fal-rest/openapi_fal_rest/__init__.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/openapi-fal-rest/openapi_fal_rest/api/__init__.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/openapi-fal-rest/openapi_fal_rest/api/applications/__init__.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/openapi-fal-rest/openapi_fal_rest/api/applications/app_metadata.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/openapi-fal-rest/openapi_fal_rest/api/billing/__init__.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/openapi-fal-rest/openapi_fal_rest/api/billing/get_user_details.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/openapi-fal-rest/openapi_fal_rest/api/comfy/__init__.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/openapi-fal-rest/openapi_fal_rest/api/comfy/create_workflow.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/openapi-fal-rest/openapi_fal_rest/api/comfy/delete_workflow.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/openapi-fal-rest/openapi_fal_rest/api/comfy/get_workflow.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/openapi-fal-rest/openapi_fal_rest/api/comfy/list_user_workflows.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/openapi-fal-rest/openapi_fal_rest/api/comfy/update_workflow.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/openapi-fal-rest/openapi_fal_rest/api/files/__init__.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/openapi-fal-rest/openapi_fal_rest/api/files/check_dir_hash.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/openapi-fal-rest/openapi_fal_rest/api/files/upload_local_file.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/openapi-fal-rest/openapi_fal_rest/api/users/__init__.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/openapi-fal-rest/openapi_fal_rest/api/users/get_current_user.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/openapi-fal-rest/openapi_fal_rest/api/workflows/__init__.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/openapi-fal-rest/openapi_fal_rest/api/workflows/create_workflow.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/openapi-fal-rest/openapi_fal_rest/api/workflows/delete_workflow.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/openapi-fal-rest/openapi_fal_rest/api/workflows/get_workflow.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/openapi-fal-rest/openapi_fal_rest/api/workflows/list_user_workflows.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/openapi-fal-rest/openapi_fal_rest/api/workflows/update_workflow.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/openapi-fal-rest/openapi_fal_rest/client.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/openapi-fal-rest/openapi_fal_rest/errors.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/openapi-fal-rest/openapi_fal_rest/models/__init__.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/openapi-fal-rest/openapi_fal_rest/models/app_metadata_response_app_metadata.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/openapi-fal-rest/openapi_fal_rest/models/body_upload_local_file.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_detail.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_item.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_schema.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_schema_extra_data.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_schema_fal_inputs.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_schema_fal_inputs_dev_info.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_schema_prompt.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/openapi-fal-rest/openapi_fal_rest/models/current_user.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/openapi-fal-rest/openapi_fal_rest/models/customer_details.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/openapi-fal-rest/openapi_fal_rest/models/hash_check.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/openapi-fal-rest/openapi_fal_rest/models/http_validation_error.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/openapi-fal-rest/openapi_fal_rest/models/lock_reason.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/openapi-fal-rest/openapi_fal_rest/models/page_comfy_workflow_item.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/openapi-fal-rest/openapi_fal_rest/models/page_workflow_item.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/openapi-fal-rest/openapi_fal_rest/models/team_role.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/openapi-fal-rest/openapi_fal_rest/models/typed_comfy_workflow.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/openapi-fal-rest/openapi_fal_rest/models/typed_comfy_workflow_update.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/openapi-fal-rest/openapi_fal_rest/models/typed_workflow.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/openapi-fal-rest/openapi_fal_rest/models/typed_workflow_update.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/openapi-fal-rest/openapi_fal_rest/models/user_member.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/openapi-fal-rest/openapi_fal_rest/models/validation_error.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents_metadata.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents_nodes.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents_output.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/openapi-fal-rest/openapi_fal_rest/models/workflow_detail.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/openapi-fal-rest/openapi_fal_rest/models/workflow_detail_contents.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/openapi-fal-rest/openapi_fal_rest/models/workflow_item.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/openapi-fal-rest/openapi_fal_rest/models/workflow_node.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/openapi-fal-rest/openapi_fal_rest/models/workflow_node_type.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/openapi-fal-rest/openapi_fal_rest/models/workflow_schema.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/openapi-fal-rest/openapi_fal_rest/models/workflow_schema_input.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/openapi-fal-rest/openapi_fal_rest/models/workflow_schema_output.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/openapi-fal-rest/openapi_fal_rest/py.typed +0 -0
- {fal-1.46.0 → fal-1.46.1}/openapi-fal-rest/openapi_fal_rest/types.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/openapi-fal-rest/pyproject.toml +0 -0
- {fal-1.46.0 → fal-1.46.1}/openapi_rest.config.yaml +0 -0
- {fal-1.46.0 → fal-1.46.1}/setup.cfg +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/__init__.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/__main__.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/_serialization.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/_version.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/api/__init__.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/api/api.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/api/apps.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/api/client.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/api/deploy.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/api/runners.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/app.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/apps.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/auth/__init__.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/auth/auth0.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/auth/local.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/cli/__init__.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/cli/_utils.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/cli/api.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/cli/apps.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/cli/auth.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/cli/cli_nested_json.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/cli/create.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/cli/debug.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/cli/deploy.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/cli/doctor.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/cli/files.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/cli/keys.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/cli/main.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/cli/parser.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/cli/profile.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/cli/queue.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/cli/run.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/cli/runners.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/cli/secrets.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/cli/teams.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/config.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/console/__init__.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/console/icons.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/console/ux.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/container.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/distributed/__init__.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/exceptions/__init__.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/exceptions/_base.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/exceptions/_cuda.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/exceptions/auth.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/file_sync.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/files.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/flags.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/logging/__init__.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/logging/isolate.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/logging/style.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/logging/trace.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/project.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/py.typed +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/rest_client.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/sdk.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/sync.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/toolkit/__init__.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/toolkit/audio/__init__.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/toolkit/audio/audio.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/toolkit/exceptions.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/toolkit/file/__init__.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/toolkit/file/file.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/toolkit/file/providers/fal.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/toolkit/file/providers/gcp.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/toolkit/file/providers/r2.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/toolkit/file/providers/s3.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/toolkit/file/types.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/toolkit/image/__init__.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/toolkit/image/image.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/toolkit/image/nsfw_filter/__init__.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/toolkit/image/nsfw_filter/env.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/toolkit/image/nsfw_filter/inference.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/toolkit/image/nsfw_filter/model.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/toolkit/image/nsfw_filter/requirements.txt +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/toolkit/image/safety_checker.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/toolkit/kv.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/toolkit/optimize.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/toolkit/types.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/toolkit/utils/__init__.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/toolkit/utils/download_utils.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/toolkit/utils/endpoint.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/toolkit/utils/retry.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/toolkit/utils/setup_utils.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/toolkit/video/__init__.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/toolkit/video/video.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/utils.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/src/fal/workflows.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/tests/__init__.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/tests/assets/cat.png +0 -0
- {fal-1.46.0 → fal-1.46.1}/tests/cli/__init__.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/tests/cli/test_apps.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/tests/cli/test_auth.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/tests/cli/test_deploy.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/tests/cli/test_keys.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/tests/cli/test_run.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/tests/cli/test_secrets.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/tests/conftest.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/tests/integration_test.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/tests/mainify_package/__init__.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/tests/mainify_package/impl.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/tests/mainify_package/utils.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/tests/mainify_target.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/tests/test_apps.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/tests/test_file_sync.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/tests/test_files.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/tests/test_kv.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/tests/test_stability.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/tests/toolkit/file/providers/test_fal_retry.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/tests/toolkit/file_test.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/tests/toolkit/image_test.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/tests/toolkit/test_types.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/tests/toolkit/utils/retry.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/tests/unit/distributed/test_integration.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/tests/unit/distributed/test_utils.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/tests/unit/distributed/test_worker.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/tests/unit/test_app.py +0 -0
- {fal-1.46.0 → fal-1.46.1}/tools/demo_script.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fal
|
|
3
|
-
Version: 1.46.
|
|
3
|
+
Version: 1.46.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
|
|
@@ -53,6 +53,7 @@ Requires-Dist: pytest-xdist; extra == "test"
|
|
|
53
53
|
Requires-Dist: pytest-timeout; extra == "test"
|
|
54
54
|
Requires-Dist: flaky; extra == "test"
|
|
55
55
|
Requires-Dist: boto3; extra == "test"
|
|
56
|
+
Requires-Dist: numpy; extra == "test"
|
|
56
57
|
Provides-Extra: dev
|
|
57
58
|
Requires-Dist: fal[docs,test]; extra == "dev"
|
|
58
59
|
Requires-Dist: openapi-python-client<1,>=0.14.1; extra == "dev"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fal
|
|
3
|
-
Version: 1.46.
|
|
3
|
+
Version: 1.46.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
|
|
@@ -53,6 +53,7 @@ Requires-Dist: pytest-xdist; extra == "test"
|
|
|
53
53
|
Requires-Dist: pytest-timeout; extra == "test"
|
|
54
54
|
Requires-Dist: flaky; extra == "test"
|
|
55
55
|
Requires-Dist: boto3; extra == "test"
|
|
56
|
+
Requires-Dist: numpy; extra == "test"
|
|
56
57
|
Provides-Extra: dev
|
|
57
58
|
Requires-Dist: fal[docs,test]; extra == "dev"
|
|
58
59
|
Requires-Dist: openapi-python-client<1,>=0.14.1; extra == "dev"
|
|
@@ -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.46.
|
|
32
|
-
__version_tuple__ = version_tuple = (1, 46,
|
|
31
|
+
__version__ = version = '1.46.1'
|
|
32
|
+
__version_tuple__ = version_tuple = (1, 46, 1)
|
|
33
33
|
|
|
34
34
|
__commit_id__ = commit_id = None
|
|
@@ -8,7 +8,7 @@ import warnings
|
|
|
8
8
|
from collections.abc import Callable
|
|
9
9
|
from io import BytesIO
|
|
10
10
|
from pathlib import Path
|
|
11
|
-
from typing import TYPE_CHECKING, Any, Optional, Union
|
|
11
|
+
from typing import TYPE_CHECKING, Any, Dict, Optional, Tuple, Union
|
|
12
12
|
|
|
13
13
|
if TYPE_CHECKING:
|
|
14
14
|
import torch.multiprocessing as mp
|
|
@@ -271,8 +271,8 @@ def wrap_distributed_worker(
|
|
|
271
271
|
master_port: int,
|
|
272
272
|
timeout: int,
|
|
273
273
|
cwd: Optional[Union[str, Path]],
|
|
274
|
-
args:
|
|
275
|
-
kwargs:
|
|
274
|
+
args: Tuple[Any],
|
|
275
|
+
kwargs: Dict[str, Any],
|
|
276
276
|
) -> None:
|
|
277
277
|
"""
|
|
278
278
|
Worker function for distributed training or inference.
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
1
3
|
import asyncio
|
|
2
4
|
import inspect
|
|
3
5
|
import os
|
|
@@ -9,6 +11,7 @@ import traceback
|
|
|
9
11
|
import warnings
|
|
10
12
|
from collections.abc import AsyncIterator, Callable, Coroutine
|
|
11
13
|
from concurrent.futures import Future
|
|
14
|
+
from functools import partial
|
|
12
15
|
from pathlib import Path
|
|
13
16
|
from typing import TYPE_CHECKING, Any, Optional, Union
|
|
14
17
|
|
|
@@ -70,7 +73,7 @@ class DistributedWorker:
|
|
|
70
73
|
# Public API
|
|
71
74
|
|
|
72
75
|
@property
|
|
73
|
-
def device(self) ->
|
|
76
|
+
def device(self) -> torch.device:
|
|
74
77
|
"""
|
|
75
78
|
:return: The device for the current worker.
|
|
76
79
|
"""
|
|
@@ -162,6 +165,16 @@ class DistributedWorker:
|
|
|
162
165
|
self.loop.call_soon_threadsafe(self.loop.stop)
|
|
163
166
|
self.thread.join(timeout=timeout)
|
|
164
167
|
|
|
168
|
+
async def _run_sync_in_executor(
|
|
169
|
+
self,
|
|
170
|
+
func: Callable[..., Any],
|
|
171
|
+
*args: Any,
|
|
172
|
+
**kwargs: Any,
|
|
173
|
+
) -> Any:
|
|
174
|
+
"""Run a synchronous function in the executor."""
|
|
175
|
+
loop = asyncio.get_running_loop()
|
|
176
|
+
return await loop.run_in_executor(None, partial(func, *args, **kwargs))
|
|
177
|
+
|
|
165
178
|
def run_in_worker(
|
|
166
179
|
self,
|
|
167
180
|
func: Callable[..., Any],
|
|
@@ -174,7 +187,9 @@ class DistributedWorker:
|
|
|
174
187
|
if inspect.iscoroutinefunction(func):
|
|
175
188
|
coro = func(*args, **kwargs)
|
|
176
189
|
else:
|
|
177
|
-
|
|
190
|
+
# Using in place of asyncio.to_thread
|
|
191
|
+
# since it's not available in Python 3.8
|
|
192
|
+
coro = self._run_sync_in_executor(func, *args, **kwargs)
|
|
178
193
|
|
|
179
194
|
return self.submit(coro)
|
|
180
195
|
|
|
@@ -206,8 +221,8 @@ class DistributedRunner:
|
|
|
206
221
|
A class to launch and manage distributed workers.
|
|
207
222
|
"""
|
|
208
223
|
|
|
209
|
-
zmq_socket: Optional[
|
|
210
|
-
context: Optional[
|
|
224
|
+
zmq_socket: Optional[Socket[Any]]
|
|
225
|
+
context: Optional[mp.ProcessContext]
|
|
211
226
|
keepalive_timer: Optional[KeepAliveTimer]
|
|
212
227
|
|
|
213
228
|
def __init__(
|
|
@@ -296,7 +311,7 @@ class DistributedRunner:
|
|
|
296
311
|
f"Distributed processes are not running. Errors: {self.gather_errors()}"
|
|
297
312
|
)
|
|
298
313
|
|
|
299
|
-
def get_zmq_socket(self) ->
|
|
314
|
+
def get_zmq_socket(self) -> Socket[Any]:
|
|
300
315
|
"""
|
|
301
316
|
Returns a ZeroMQ socket of the specified type.
|
|
302
317
|
:param socket_type: The type of the ZeroMQ socket.
|
|
@@ -750,7 +765,7 @@ class DistributedRunner:
|
|
|
750
765
|
assert rank == b"0", "Expected response from worker with rank 0"
|
|
751
766
|
return distributed_deserialize(response)
|
|
752
767
|
|
|
753
|
-
async def __aenter__(self) ->
|
|
768
|
+
async def __aenter__(self) -> DistributedRunner:
|
|
754
769
|
"""
|
|
755
770
|
Enter the context manager.
|
|
756
771
|
:return: The DistributedRunner instance.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.46.0 → fal-1.46.1}/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.46.0 → fal-1.46.1}/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.46.0 → fal-1.46.1}/openapi-fal-rest/openapi_fal_rest/api/workflows/create_workflow.py
RENAMED
|
File without changes
|
{fal-1.46.0 → fal-1.46.1}/openapi-fal-rest/openapi_fal_rest/api/workflows/delete_workflow.py
RENAMED
|
File without changes
|
|
File without changes
|
{fal-1.46.0 → fal-1.46.1}/openapi-fal-rest/openapi_fal_rest/api/workflows/list_user_workflows.py
RENAMED
|
File without changes
|
{fal-1.46.0 → fal-1.46.1}/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.46.0 → fal-1.46.1}/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.46.0 → fal-1.46.1}/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.46.0 → fal-1.46.1}/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.46.0 → fal-1.46.1}/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.46.0 → fal-1.46.1}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents_metadata.py
RENAMED
|
File without changes
|
{fal-1.46.0 → fal-1.46.1}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents_nodes.py
RENAMED
|
File without changes
|
{fal-1.46.0 → fal-1.46.1}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents_output.py
RENAMED
|
File without changes
|
|
File without changes
|
{fal-1.46.0 → fal-1.46.1}/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.46.0 → fal-1.46.1}/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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|