fal 1.34.1__tar.gz → 1.35.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.34.1/fal.egg-info → fal-1.35.0}/PKG-INFO +1 -1
- {fal-1.34.1 → fal-1.35.0/fal.egg-info}/PKG-INFO +1 -1
- {fal-1.34.1 → fal-1.35.0}/src/fal/_fal_version.py +2 -2
- {fal-1.34.1 → fal-1.35.0}/src/fal/cli/apps.py +4 -9
- {fal-1.34.1 → fal-1.35.0}/src/fal/cli/deploy.py +8 -9
- {fal-1.34.1 → fal-1.35.0}/src/fal/cli/parser.py +13 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/cli/runners.py +34 -8
- {fal-1.34.1 → fal-1.35.0}/.gitignore +0 -0
- {fal-1.34.1 → fal-1.35.0}/Makefile +0 -0
- {fal-1.34.1 → fal-1.35.0}/README.md +0 -0
- {fal-1.34.1 → fal-1.35.0}/docs/conf.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/docs/index.rst +0 -0
- {fal-1.34.1 → fal-1.35.0}/fal.egg-info/SOURCES.txt +0 -0
- {fal-1.34.1 → fal-1.35.0}/fal.egg-info/dependency_links.txt +0 -0
- {fal-1.34.1 → fal-1.35.0}/fal.egg-info/entry_points.txt +0 -0
- {fal-1.34.1 → fal-1.35.0}/fal.egg-info/requires.txt +0 -0
- {fal-1.34.1 → fal-1.35.0}/fal.egg-info/top_level.txt +0 -0
- {fal-1.34.1 → fal-1.35.0}/openapi-fal-rest/README.md +0 -0
- {fal-1.34.1 → fal-1.35.0}/openapi-fal-rest/openapi_fal_rest/__init__.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/openapi-fal-rest/openapi_fal_rest/api/__init__.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/openapi-fal-rest/openapi_fal_rest/api/applications/__init__.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/openapi-fal-rest/openapi_fal_rest/api/applications/app_metadata.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/openapi-fal-rest/openapi_fal_rest/api/billing/__init__.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/openapi-fal-rest/openapi_fal_rest/api/billing/get_user_details.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/openapi-fal-rest/openapi_fal_rest/api/comfy/__init__.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/openapi-fal-rest/openapi_fal_rest/api/comfy/create_workflow.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/openapi-fal-rest/openapi_fal_rest/api/comfy/delete_workflow.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/openapi-fal-rest/openapi_fal_rest/api/comfy/get_workflow.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/openapi-fal-rest/openapi_fal_rest/api/comfy/list_user_workflows.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/openapi-fal-rest/openapi_fal_rest/api/comfy/update_workflow.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/openapi-fal-rest/openapi_fal_rest/api/files/__init__.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/openapi-fal-rest/openapi_fal_rest/api/files/check_dir_hash.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/openapi-fal-rest/openapi_fal_rest/api/files/upload_local_file.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/openapi-fal-rest/openapi_fal_rest/api/users/__init__.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/openapi-fal-rest/openapi_fal_rest/api/users/get_current_user.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/openapi-fal-rest/openapi_fal_rest/api/workflows/__init__.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/openapi-fal-rest/openapi_fal_rest/api/workflows/create_workflow.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/openapi-fal-rest/openapi_fal_rest/api/workflows/delete_workflow.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/openapi-fal-rest/openapi_fal_rest/api/workflows/get_workflow.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/openapi-fal-rest/openapi_fal_rest/api/workflows/list_user_workflows.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/openapi-fal-rest/openapi_fal_rest/api/workflows/update_workflow.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/openapi-fal-rest/openapi_fal_rest/client.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/openapi-fal-rest/openapi_fal_rest/errors.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/openapi-fal-rest/openapi_fal_rest/models/__init__.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/openapi-fal-rest/openapi_fal_rest/models/app_metadata_response_app_metadata.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/openapi-fal-rest/openapi_fal_rest/models/body_upload_local_file.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_detail.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_item.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_schema.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_schema_extra_data.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_schema_fal_inputs.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_schema_fal_inputs_dev_info.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_schema_prompt.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/openapi-fal-rest/openapi_fal_rest/models/current_user.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/openapi-fal-rest/openapi_fal_rest/models/customer_details.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/openapi-fal-rest/openapi_fal_rest/models/hash_check.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/openapi-fal-rest/openapi_fal_rest/models/http_validation_error.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/openapi-fal-rest/openapi_fal_rest/models/lock_reason.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/openapi-fal-rest/openapi_fal_rest/models/page_comfy_workflow_item.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/openapi-fal-rest/openapi_fal_rest/models/page_workflow_item.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/openapi-fal-rest/openapi_fal_rest/models/team_role.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/openapi-fal-rest/openapi_fal_rest/models/typed_comfy_workflow.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/openapi-fal-rest/openapi_fal_rest/models/typed_comfy_workflow_update.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/openapi-fal-rest/openapi_fal_rest/models/typed_workflow.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/openapi-fal-rest/openapi_fal_rest/models/typed_workflow_update.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/openapi-fal-rest/openapi_fal_rest/models/user_member.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/openapi-fal-rest/openapi_fal_rest/models/validation_error.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents_metadata.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents_nodes.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents_output.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/openapi-fal-rest/openapi_fal_rest/models/workflow_detail.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/openapi-fal-rest/openapi_fal_rest/models/workflow_detail_contents.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/openapi-fal-rest/openapi_fal_rest/models/workflow_item.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/openapi-fal-rest/openapi_fal_rest/models/workflow_node.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/openapi-fal-rest/openapi_fal_rest/models/workflow_node_type.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/openapi-fal-rest/openapi_fal_rest/models/workflow_schema.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/openapi-fal-rest/openapi_fal_rest/models/workflow_schema_input.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/openapi-fal-rest/openapi_fal_rest/models/workflow_schema_output.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/openapi-fal-rest/openapi_fal_rest/py.typed +0 -0
- {fal-1.34.1 → fal-1.35.0}/openapi-fal-rest/openapi_fal_rest/types.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/openapi-fal-rest/pyproject.toml +0 -0
- {fal-1.34.1 → fal-1.35.0}/openapi_rest.config.yaml +0 -0
- {fal-1.34.1 → fal-1.35.0}/pyproject.toml +0 -0
- {fal-1.34.1 → fal-1.35.0}/setup.cfg +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/__init__.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/__main__.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/_serialization.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/_version.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/api.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/app.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/apps.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/auth/__init__.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/auth/auth0.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/auth/local.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/cli/__init__.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/cli/_utils.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/cli/api.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/cli/auth.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/cli/cli_nested_json.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/cli/create.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/cli/debug.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/cli/doctor.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/cli/files.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/cli/keys.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/cli/main.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/cli/profile.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/cli/run.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/cli/secrets.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/cli/teams.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/config.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/console/__init__.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/console/icons.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/console/ux.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/container.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/exceptions/__init__.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/exceptions/_base.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/exceptions/_cuda.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/exceptions/auth.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/files.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/flags.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/logging/__init__.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/logging/isolate.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/logging/style.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/logging/trace.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/logging/user.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/project.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/py.typed +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/rest_client.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/sdk.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/sync.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/toolkit/__init__.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/toolkit/audio/__init__.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/toolkit/audio/audio.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/toolkit/exceptions.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/toolkit/file/__init__.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/toolkit/file/file.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/toolkit/file/providers/fal.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/toolkit/file/providers/gcp.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/toolkit/file/providers/r2.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/toolkit/file/providers/s3.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/toolkit/file/types.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/toolkit/image/__init__.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/toolkit/image/image.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/toolkit/image/nsfw_filter/__init__.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/toolkit/image/nsfw_filter/env.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/toolkit/image/nsfw_filter/inference.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/toolkit/image/nsfw_filter/model.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/toolkit/image/nsfw_filter/requirements.txt +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/toolkit/image/safety_checker.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/toolkit/kv.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/toolkit/optimize.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/toolkit/types.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/toolkit/utils/__init__.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/toolkit/utils/download_utils.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/toolkit/utils/endpoint.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/toolkit/utils/retry.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/toolkit/utils/setup_utils.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/toolkit/video/__init__.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/toolkit/video/video.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/utils.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/src/fal/workflows.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/tests/__init__.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/tests/assets/cat.png +0 -0
- {fal-1.34.1 → fal-1.35.0}/tests/cli/__init__.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/tests/cli/test_apps.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/tests/cli/test_auth.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/tests/cli/test_deploy.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/tests/cli/test_keys.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/tests/cli/test_run.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/tests/cli/test_secrets.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/tests/conftest.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/tests/integration_test.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/tests/mainify_package/__init__.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/tests/mainify_package/impl.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/tests/mainify_package/utils.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/tests/mainify_target.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/tests/test_apps.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/tests/test_files.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/tests/test_kv.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/tests/test_stability.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/tests/toolkit/file/providers/test_fal_retry.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/tests/toolkit/file_test.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/tests/toolkit/image_test.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/tests/toolkit/test_types.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/tests/toolkit/utils/retry.py +0 -0
- {fal-1.34.1 → fal-1.35.0}/tools/demo_script.py +0 -0
|
@@ -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.35.0'
|
|
32
|
+
__version_tuple__ = version_tuple = (1, 35, 0)
|
|
33
33
|
|
|
34
34
|
__commit_id__ = commit_id = None
|
|
@@ -8,7 +8,7 @@ import fal.cli.runners as runners
|
|
|
8
8
|
from fal.sdk import RunnerState
|
|
9
9
|
|
|
10
10
|
from ._utils import get_client
|
|
11
|
-
from .parser import FalClientParser
|
|
11
|
+
from .parser import FalClientParser, get_output_parser
|
|
12
12
|
|
|
13
13
|
if TYPE_CHECKING:
|
|
14
14
|
from fal.sdk import AliasInfo, ApplicationInfo
|
|
@@ -72,6 +72,8 @@ def _list(args):
|
|
|
72
72
|
apps_as_dicts = [asdict(a) for a in apps]
|
|
73
73
|
res = json.dumps({"apps": apps_as_dicts})
|
|
74
74
|
args.console.print(res)
|
|
75
|
+
else:
|
|
76
|
+
raise AssertionError(f"Invalid output format: {args.output}")
|
|
75
77
|
|
|
76
78
|
|
|
77
79
|
def _add_list_parser(subparsers, parents):
|
|
@@ -80,7 +82,7 @@ def _add_list_parser(subparsers, parents):
|
|
|
80
82
|
"list",
|
|
81
83
|
description=list_help,
|
|
82
84
|
help=list_help,
|
|
83
|
-
parents=parents,
|
|
85
|
+
parents=[*parents, get_output_parser()],
|
|
84
86
|
)
|
|
85
87
|
parser.add_argument(
|
|
86
88
|
"--sort-by-runners",
|
|
@@ -92,13 +94,6 @@ def _add_list_parser(subparsers, parents):
|
|
|
92
94
|
type=str,
|
|
93
95
|
help="Filter applications by alias contents",
|
|
94
96
|
)
|
|
95
|
-
parser.add_argument(
|
|
96
|
-
"--output",
|
|
97
|
-
type=str,
|
|
98
|
-
default="pretty",
|
|
99
|
-
choices=["pretty", "json"],
|
|
100
|
-
help="Modify the command output",
|
|
101
|
-
)
|
|
102
97
|
parser.set_defaults(func=_list)
|
|
103
98
|
|
|
104
99
|
|
|
@@ -5,7 +5,7 @@ from pathlib import Path
|
|
|
5
5
|
from typing import Literal, Optional, Tuple, Union
|
|
6
6
|
|
|
7
7
|
from ._utils import get_app_data_from_toml, is_app_name
|
|
8
|
-
from .parser import FalClientParser, RefAction
|
|
8
|
+
from .parser import FalClientParser, RefAction, get_output_parser
|
|
9
9
|
|
|
10
10
|
User = namedtuple("User", ["user_id", "username"])
|
|
11
11
|
|
|
@@ -152,6 +152,8 @@ def _deploy_from_reference(
|
|
|
152
152
|
args.console.print(
|
|
153
153
|
f"\thttps://queue.{endpoint_host}/{user.username}/{app_name}{endpoint}"
|
|
154
154
|
)
|
|
155
|
+
else:
|
|
156
|
+
raise AssertionError(f"Invalid output format: {args.output}")
|
|
155
157
|
|
|
156
158
|
|
|
157
159
|
def _deploy(args):
|
|
@@ -211,7 +213,11 @@ def add_parser(main_subparsers, parents):
|
|
|
211
213
|
|
|
212
214
|
parser = main_subparsers.add_parser(
|
|
213
215
|
"deploy",
|
|
214
|
-
parents=[
|
|
216
|
+
parents=[
|
|
217
|
+
*parents,
|
|
218
|
+
get_output_parser(),
|
|
219
|
+
FalClientParser(add_help=False),
|
|
220
|
+
],
|
|
215
221
|
description=deploy_help,
|
|
216
222
|
help=deploy_help,
|
|
217
223
|
epilog=epilog,
|
|
@@ -261,12 +267,5 @@ def add_parser(main_subparsers, parents):
|
|
|
261
267
|
dest="app_scale_settings",
|
|
262
268
|
help="Use the application code for scale settings.",
|
|
263
269
|
)
|
|
264
|
-
parser.add_argument(
|
|
265
|
-
"--output",
|
|
266
|
-
type=str,
|
|
267
|
-
default="pretty",
|
|
268
|
-
choices=["pretty", "json"],
|
|
269
|
-
help="Modify the command output",
|
|
270
|
-
)
|
|
271
270
|
|
|
272
271
|
parser.set_defaults(func=_deploy)
|
|
@@ -103,3 +103,16 @@ class FalClientParser(FalParser):
|
|
|
103
103
|
"--team",
|
|
104
104
|
help="The team to use.",
|
|
105
105
|
)
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
def get_output_parser():
|
|
109
|
+
parser = FalParser(add_help=False)
|
|
110
|
+
group = parser.add_argument_group(title="Output")
|
|
111
|
+
group.add_argument(
|
|
112
|
+
"--output",
|
|
113
|
+
type=str,
|
|
114
|
+
default="pretty",
|
|
115
|
+
choices=["pretty", "json"],
|
|
116
|
+
help="Modify the command output",
|
|
117
|
+
)
|
|
118
|
+
return parser
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
+
import json
|
|
3
4
|
from typing import List
|
|
4
5
|
|
|
5
6
|
from fal.sdk import RunnerInfo, RunnerState
|
|
6
7
|
|
|
7
8
|
from ._utils import get_client
|
|
8
|
-
from .parser import FalClientParser
|
|
9
|
+
from .parser import FalClientParser, get_output_parser
|
|
9
10
|
|
|
10
11
|
|
|
11
12
|
def runners_table(runners: List[RunnerInfo]):
|
|
@@ -80,6 +81,26 @@ def _kill(args):
|
|
|
80
81
|
connection.kill_runner(args.id)
|
|
81
82
|
|
|
82
83
|
|
|
84
|
+
def _list_json(args, runners: list[RunnerInfo], pending_runners: list[RunnerInfo]):
|
|
85
|
+
json_runners = [
|
|
86
|
+
{
|
|
87
|
+
"alias": r.alias,
|
|
88
|
+
"runner_id": r.runner_id,
|
|
89
|
+
"in_flight_requests": r.in_flight_requests,
|
|
90
|
+
"expiration_countdown": r.expiration_countdown,
|
|
91
|
+
"uptime_seconds": int(r.uptime.total_seconds()),
|
|
92
|
+
"revision": r.revision,
|
|
93
|
+
"state": r.state.value,
|
|
94
|
+
}
|
|
95
|
+
for r in runners
|
|
96
|
+
]
|
|
97
|
+
|
|
98
|
+
res = {
|
|
99
|
+
"runners": json_runners,
|
|
100
|
+
}
|
|
101
|
+
args.console.print(json.dumps(res))
|
|
102
|
+
|
|
103
|
+
|
|
83
104
|
def _list(args):
|
|
84
105
|
client = get_client(args.host, args.team)
|
|
85
106
|
with client.connect() as connection:
|
|
@@ -87,13 +108,18 @@ def _list(args):
|
|
|
87
108
|
pending_runners = [
|
|
88
109
|
runner for runner in runners if runner.state == RunnerState.PENDING
|
|
89
110
|
]
|
|
90
|
-
args.
|
|
91
|
-
|
|
92
|
-
|
|
111
|
+
if args.output == "pretty":
|
|
112
|
+
args.console.print(f"Runners: {len(runners) - len(pending_runners)}")
|
|
113
|
+
args.console.print(f"Pending Runners: {len(pending_runners)}")
|
|
114
|
+
args.console.print(runners_table(runners))
|
|
93
115
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
116
|
+
requests_table = runners_requests_table(runners)
|
|
117
|
+
args.console.print(f"Requests: {len(requests_table.rows)}")
|
|
118
|
+
args.console.print(requests_table)
|
|
119
|
+
elif args.output == "json":
|
|
120
|
+
_list_json(args, runners, pending_runners)
|
|
121
|
+
else:
|
|
122
|
+
raise AssertionError(f"Invalid output format: {args.output}")
|
|
97
123
|
|
|
98
124
|
|
|
99
125
|
def _add_kill_parser(subparsers, parents):
|
|
@@ -117,7 +143,7 @@ def _add_list_parser(subparsers, parents):
|
|
|
117
143
|
"list",
|
|
118
144
|
description=list_help,
|
|
119
145
|
help=list_help,
|
|
120
|
-
parents=parents,
|
|
146
|
+
parents=[*parents, get_output_parser()],
|
|
121
147
|
)
|
|
122
148
|
parser.set_defaults(func=_list)
|
|
123
149
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.34.1 → fal-1.35.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.34.1 → fal-1.35.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.34.1 → fal-1.35.0}/openapi-fal-rest/openapi_fal_rest/api/workflows/create_workflow.py
RENAMED
|
File without changes
|
{fal-1.34.1 → fal-1.35.0}/openapi-fal-rest/openapi_fal_rest/api/workflows/delete_workflow.py
RENAMED
|
File without changes
|
|
File without changes
|
{fal-1.34.1 → fal-1.35.0}/openapi-fal-rest/openapi_fal_rest/api/workflows/list_user_workflows.py
RENAMED
|
File without changes
|
{fal-1.34.1 → fal-1.35.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.34.1 → fal-1.35.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.34.1 → fal-1.35.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.34.1 → fal-1.35.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.34.1 → fal-1.35.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.34.1 → fal-1.35.0}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents_metadata.py
RENAMED
|
File without changes
|
{fal-1.34.1 → fal-1.35.0}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents_nodes.py
RENAMED
|
File without changes
|
{fal-1.34.1 → fal-1.35.0}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents_output.py
RENAMED
|
File without changes
|
|
File without changes
|
{fal-1.34.1 → fal-1.35.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.34.1 → fal-1.35.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
|