fal 1.23.0__tar.gz → 1.23.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.23.0/fal.egg-info → fal-1.23.1}/PKG-INFO +1 -1
- {fal-1.23.0 → fal-1.23.1/fal.egg-info}/PKG-INFO +1 -1
- {fal-1.23.0 → fal-1.23.1}/fal.egg-info/SOURCES.txt +2 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/_fal_version.py +2 -2
- {fal-1.23.0 → fal-1.23.1}/src/fal/toolkit/exceptions.py +6 -0
- fal-1.23.1/src/fal/toolkit/kv.py +85 -0
- fal-1.23.1/tests/test_kv.py +8 -0
- {fal-1.23.0 → fal-1.23.1}/.gitignore +0 -0
- {fal-1.23.0 → fal-1.23.1}/Makefile +0 -0
- {fal-1.23.0 → fal-1.23.1}/README.md +0 -0
- {fal-1.23.0 → fal-1.23.1}/docs/conf.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/docs/index.rst +0 -0
- {fal-1.23.0 → fal-1.23.1}/fal.egg-info/dependency_links.txt +0 -0
- {fal-1.23.0 → fal-1.23.1}/fal.egg-info/entry_points.txt +0 -0
- {fal-1.23.0 → fal-1.23.1}/fal.egg-info/requires.txt +0 -0
- {fal-1.23.0 → fal-1.23.1}/fal.egg-info/top_level.txt +0 -0
- {fal-1.23.0 → fal-1.23.1}/openapi-fal-rest/README.md +0 -0
- {fal-1.23.0 → fal-1.23.1}/openapi-fal-rest/openapi_fal_rest/__init__.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/openapi-fal-rest/openapi_fal_rest/api/__init__.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/openapi-fal-rest/openapi_fal_rest/api/applications/__init__.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/openapi-fal-rest/openapi_fal_rest/api/applications/app_metadata.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/openapi-fal-rest/openapi_fal_rest/api/billing/__init__.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/openapi-fal-rest/openapi_fal_rest/api/billing/get_user_details.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/openapi-fal-rest/openapi_fal_rest/api/comfy/__init__.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/openapi-fal-rest/openapi_fal_rest/api/comfy/create_workflow.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/openapi-fal-rest/openapi_fal_rest/api/comfy/delete_workflow.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/openapi-fal-rest/openapi_fal_rest/api/comfy/get_workflow.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/openapi-fal-rest/openapi_fal_rest/api/comfy/list_user_workflows.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/openapi-fal-rest/openapi_fal_rest/api/comfy/update_workflow.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/openapi-fal-rest/openapi_fal_rest/api/files/__init__.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/openapi-fal-rest/openapi_fal_rest/api/files/check_dir_hash.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/openapi-fal-rest/openapi_fal_rest/api/files/upload_local_file.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/openapi-fal-rest/openapi_fal_rest/api/users/__init__.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/openapi-fal-rest/openapi_fal_rest/api/users/get_current_user.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/openapi-fal-rest/openapi_fal_rest/api/workflows/__init__.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/openapi-fal-rest/openapi_fal_rest/api/workflows/create_workflow.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/openapi-fal-rest/openapi_fal_rest/api/workflows/delete_workflow.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/openapi-fal-rest/openapi_fal_rest/api/workflows/get_workflow.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/openapi-fal-rest/openapi_fal_rest/api/workflows/list_user_workflows.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/openapi-fal-rest/openapi_fal_rest/api/workflows/update_workflow.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/openapi-fal-rest/openapi_fal_rest/client.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/openapi-fal-rest/openapi_fal_rest/errors.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/openapi-fal-rest/openapi_fal_rest/models/__init__.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/openapi-fal-rest/openapi_fal_rest/models/app_metadata_response_app_metadata.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/openapi-fal-rest/openapi_fal_rest/models/body_upload_local_file.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_detail.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_item.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_schema.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_schema_extra_data.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_schema_fal_inputs.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_schema_fal_inputs_dev_info.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_schema_prompt.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/openapi-fal-rest/openapi_fal_rest/models/current_user.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/openapi-fal-rest/openapi_fal_rest/models/customer_details.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/openapi-fal-rest/openapi_fal_rest/models/hash_check.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/openapi-fal-rest/openapi_fal_rest/models/http_validation_error.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/openapi-fal-rest/openapi_fal_rest/models/lock_reason.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/openapi-fal-rest/openapi_fal_rest/models/page_comfy_workflow_item.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/openapi-fal-rest/openapi_fal_rest/models/page_workflow_item.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/openapi-fal-rest/openapi_fal_rest/models/team_role.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/openapi-fal-rest/openapi_fal_rest/models/typed_comfy_workflow.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/openapi-fal-rest/openapi_fal_rest/models/typed_comfy_workflow_update.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/openapi-fal-rest/openapi_fal_rest/models/typed_workflow.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/openapi-fal-rest/openapi_fal_rest/models/typed_workflow_update.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/openapi-fal-rest/openapi_fal_rest/models/user_member.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/openapi-fal-rest/openapi_fal_rest/models/validation_error.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents_metadata.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents_nodes.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents_output.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/openapi-fal-rest/openapi_fal_rest/models/workflow_detail.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/openapi-fal-rest/openapi_fal_rest/models/workflow_detail_contents.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/openapi-fal-rest/openapi_fal_rest/models/workflow_item.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/openapi-fal-rest/openapi_fal_rest/models/workflow_node.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/openapi-fal-rest/openapi_fal_rest/models/workflow_node_type.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/openapi-fal-rest/openapi_fal_rest/models/workflow_schema.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/openapi-fal-rest/openapi_fal_rest/models/workflow_schema_input.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/openapi-fal-rest/openapi_fal_rest/models/workflow_schema_output.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/openapi-fal-rest/openapi_fal_rest/py.typed +0 -0
- {fal-1.23.0 → fal-1.23.1}/openapi-fal-rest/openapi_fal_rest/types.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/openapi-fal-rest/pyproject.toml +0 -0
- {fal-1.23.0 → fal-1.23.1}/openapi_rest.config.yaml +0 -0
- {fal-1.23.0 → fal-1.23.1}/pyproject.toml +0 -0
- {fal-1.23.0 → fal-1.23.1}/setup.cfg +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/__init__.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/__main__.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/_serialization.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/_version.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/api.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/app.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/apps.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/auth/__init__.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/auth/auth0.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/auth/local.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/cli/__init__.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/cli/_utils.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/cli/api.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/cli/apps.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/cli/auth.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/cli/cli_nested_json.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/cli/create.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/cli/debug.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/cli/deploy.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/cli/doctor.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/cli/files.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/cli/keys.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/cli/main.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/cli/parser.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/cli/profile.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/cli/run.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/cli/runners.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/cli/secrets.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/cli/teams.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/config.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/console/__init__.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/console/icons.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/console/ux.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/container.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/exceptions/__init__.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/exceptions/_base.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/exceptions/_cuda.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/exceptions/auth.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/files.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/flags.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/logging/__init__.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/logging/isolate.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/logging/style.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/logging/trace.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/logging/user.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/project.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/py.typed +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/rest_client.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/sdk.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/sync.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/toolkit/__init__.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/toolkit/audio/__init__.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/toolkit/audio/audio.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/toolkit/file/__init__.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/toolkit/file/file.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/toolkit/file/providers/fal.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/toolkit/file/providers/gcp.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/toolkit/file/providers/r2.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/toolkit/file/providers/s3.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/toolkit/file/types.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/toolkit/image/__init__.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/toolkit/image/image.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/toolkit/image/nsfw_filter/__init__.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/toolkit/image/nsfw_filter/env.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/toolkit/image/nsfw_filter/inference.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/toolkit/image/nsfw_filter/model.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/toolkit/image/nsfw_filter/requirements.txt +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/toolkit/image/safety_checker.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/toolkit/optimize.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/toolkit/types.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/toolkit/utils/__init__.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/toolkit/utils/download_utils.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/toolkit/utils/endpoint.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/toolkit/utils/retry.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/toolkit/video/__init__.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/toolkit/video/video.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/utils.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/src/fal/workflows.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/tests/__init__.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/tests/assets/cat.png +0 -0
- {fal-1.23.0 → fal-1.23.1}/tests/cli/__init__.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/tests/cli/test_apps.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/tests/cli/test_auth.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/tests/cli/test_deploy.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/tests/cli/test_keys.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/tests/cli/test_run.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/tests/cli/test_secrets.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/tests/conftest.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/tests/integration_test.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/tests/mainify_package/__init__.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/tests/mainify_package/impl.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/tests/mainify_package/utils.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/tests/mainify_target.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/tests/test_apps.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/tests/test_stability.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/tests/toolkit/file/providers/test_fal_retry.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/tests/toolkit/file_test.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/tests/toolkit/image_test.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/tests/toolkit/test_types.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/tests/toolkit/utils/retry.py +0 -0
- {fal-1.23.0 → fal-1.23.1}/tools/demo_script.py +0 -0
|
@@ -131,6 +131,7 @@ src/fal/logging/trace.py
|
|
|
131
131
|
src/fal/logging/user.py
|
|
132
132
|
src/fal/toolkit/__init__.py
|
|
133
133
|
src/fal/toolkit/exceptions.py
|
|
134
|
+
src/fal/toolkit/kv.py
|
|
134
135
|
src/fal/toolkit/optimize.py
|
|
135
136
|
src/fal/toolkit/types.py
|
|
136
137
|
src/fal/toolkit/audio/__init__.py
|
|
@@ -161,6 +162,7 @@ tests/conftest.py
|
|
|
161
162
|
tests/integration_test.py
|
|
162
163
|
tests/mainify_target.py
|
|
163
164
|
tests/test_apps.py
|
|
165
|
+
tests/test_kv.py
|
|
164
166
|
tests/test_stability.py
|
|
165
167
|
tests/assets/cat.png
|
|
166
168
|
tests/cli/__init__.py
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import json
|
|
2
|
+
from typing import Any, Dict, Optional
|
|
3
|
+
from urllib.error import HTTPError
|
|
4
|
+
from urllib.request import Request
|
|
5
|
+
|
|
6
|
+
from fal.toolkit.exceptions import KVStoreException
|
|
7
|
+
from fal.toolkit.file.providers.fal import _maybe_retry_request, fal_v3_token_manager
|
|
8
|
+
|
|
9
|
+
FAL_KV_HOST = "https://kv.fal.media"
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class KVStore:
|
|
13
|
+
"""A key-value store client for interacting with the FAL KV service.
|
|
14
|
+
|
|
15
|
+
Args:
|
|
16
|
+
db_name: The name of the database/namespace to use for this KV store.
|
|
17
|
+
"""
|
|
18
|
+
|
|
19
|
+
def __init__(self, db_name: str):
|
|
20
|
+
self.db_name = db_name
|
|
21
|
+
|
|
22
|
+
@property
|
|
23
|
+
def auth_headers(self) -> Dict[str, str]:
|
|
24
|
+
token = fal_v3_token_manager.get_token()
|
|
25
|
+
return {
|
|
26
|
+
"Authorization": f"{token.token_type} {token.token}",
|
|
27
|
+
"User-Agent": "fal/0.1.0",
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
def get(self, key: str) -> Optional[str]:
|
|
31
|
+
"""Retrieve a value from the key-value store.
|
|
32
|
+
|
|
33
|
+
Args:
|
|
34
|
+
key: The key to retrieve the value for.
|
|
35
|
+
|
|
36
|
+
Returns:
|
|
37
|
+
The value associated with the key, or None if the key doesn't exist.
|
|
38
|
+
"""
|
|
39
|
+
response = self._send_request(
|
|
40
|
+
method="GET",
|
|
41
|
+
path=f"/get/{self.db_name}/{key}",
|
|
42
|
+
)
|
|
43
|
+
|
|
44
|
+
if response is None:
|
|
45
|
+
return None
|
|
46
|
+
|
|
47
|
+
return response["value"]
|
|
48
|
+
|
|
49
|
+
def set(self, key: str, value: str) -> None:
|
|
50
|
+
"""Store a value in the key-value store.
|
|
51
|
+
|
|
52
|
+
Args:
|
|
53
|
+
key: The key to store the value under.
|
|
54
|
+
value: The value to store.
|
|
55
|
+
"""
|
|
56
|
+
self._send_request(
|
|
57
|
+
method="PUT",
|
|
58
|
+
path=f"/set/{self.db_name}/{key}",
|
|
59
|
+
data=value.encode(),
|
|
60
|
+
)
|
|
61
|
+
|
|
62
|
+
def _send_request(
|
|
63
|
+
self,
|
|
64
|
+
method: str,
|
|
65
|
+
path: str,
|
|
66
|
+
data: Optional[bytes] = None,
|
|
67
|
+
) -> Optional[Dict[str, Any]]:
|
|
68
|
+
headers = {
|
|
69
|
+
**self.auth_headers,
|
|
70
|
+
"Accept": "application/json",
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
url = FAL_KV_HOST + path
|
|
74
|
+
request = Request(url, headers=headers, method=method, data=data)
|
|
75
|
+
try:
|
|
76
|
+
with _maybe_retry_request(request) as response:
|
|
77
|
+
result = json.load(response)
|
|
78
|
+
except HTTPError as e:
|
|
79
|
+
if e.status == 404:
|
|
80
|
+
return None
|
|
81
|
+
raise KVStoreException(
|
|
82
|
+
f"Error sending request. Status {e.status}: {e.reason}"
|
|
83
|
+
)
|
|
84
|
+
|
|
85
|
+
return result
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.23.0 → fal-1.23.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.23.0 → fal-1.23.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.23.0 → fal-1.23.1}/openapi-fal-rest/openapi_fal_rest/api/workflows/create_workflow.py
RENAMED
|
File without changes
|
{fal-1.23.0 → fal-1.23.1}/openapi-fal-rest/openapi_fal_rest/api/workflows/delete_workflow.py
RENAMED
|
File without changes
|
|
File without changes
|
{fal-1.23.0 → fal-1.23.1}/openapi-fal-rest/openapi_fal_rest/api/workflows/list_user_workflows.py
RENAMED
|
File without changes
|
{fal-1.23.0 → fal-1.23.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.23.0 → fal-1.23.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.23.0 → fal-1.23.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.23.0 → fal-1.23.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.23.0 → fal-1.23.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.23.0 → fal-1.23.1}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents_metadata.py
RENAMED
|
File without changes
|
{fal-1.23.0 → fal-1.23.1}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents_nodes.py
RENAMED
|
File without changes
|
{fal-1.23.0 → fal-1.23.1}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents_output.py
RENAMED
|
File without changes
|
|
File without changes
|
{fal-1.23.0 → fal-1.23.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.23.0 → fal-1.23.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
|