fal 1.13.2__tar.gz → 1.13.4__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.13.2/fal.egg-info → fal-1.13.4}/PKG-INFO +1 -1
- {fal-1.13.2 → fal-1.13.4/fal.egg-info}/PKG-INFO +1 -1
- {fal-1.13.2 → fal-1.13.4}/src/fal/_fal_version.py +2 -2
- {fal-1.13.2 → fal-1.13.4}/src/fal/app.py +19 -1
- {fal-1.13.2 → fal-1.13.4}/src/fal/exceptions/_cuda.py +3 -0
- {fal-1.13.2 → fal-1.13.4}/tests/test_apps.py +38 -0
- {fal-1.13.2 → fal-1.13.4}/.gitignore +0 -0
- {fal-1.13.2 → fal-1.13.4}/Makefile +0 -0
- {fal-1.13.2 → fal-1.13.4}/README.md +0 -0
- {fal-1.13.2 → fal-1.13.4}/docs/conf.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/docs/index.rst +0 -0
- {fal-1.13.2 → fal-1.13.4}/fal.egg-info/SOURCES.txt +0 -0
- {fal-1.13.2 → fal-1.13.4}/fal.egg-info/dependency_links.txt +0 -0
- {fal-1.13.2 → fal-1.13.4}/fal.egg-info/entry_points.txt +0 -0
- {fal-1.13.2 → fal-1.13.4}/fal.egg-info/requires.txt +0 -0
- {fal-1.13.2 → fal-1.13.4}/fal.egg-info/top_level.txt +0 -0
- {fal-1.13.2 → fal-1.13.4}/openapi-fal-rest/README.md +0 -0
- {fal-1.13.2 → fal-1.13.4}/openapi-fal-rest/openapi_fal_rest/__init__.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/openapi-fal-rest/openapi_fal_rest/api/__init__.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/openapi-fal-rest/openapi_fal_rest/api/applications/__init__.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/openapi-fal-rest/openapi_fal_rest/api/applications/app_metadata.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/openapi-fal-rest/openapi_fal_rest/api/billing/__init__.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/openapi-fal-rest/openapi_fal_rest/api/billing/get_user_details.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/openapi-fal-rest/openapi_fal_rest/api/comfy/__init__.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/openapi-fal-rest/openapi_fal_rest/api/comfy/create_workflow.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/openapi-fal-rest/openapi_fal_rest/api/comfy/delete_workflow.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/openapi-fal-rest/openapi_fal_rest/api/comfy/get_workflow.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/openapi-fal-rest/openapi_fal_rest/api/comfy/list_user_workflows.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/openapi-fal-rest/openapi_fal_rest/api/comfy/update_workflow.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/openapi-fal-rest/openapi_fal_rest/api/files/__init__.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/openapi-fal-rest/openapi_fal_rest/api/files/check_dir_hash.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/openapi-fal-rest/openapi_fal_rest/api/files/upload_local_file.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/openapi-fal-rest/openapi_fal_rest/api/users/__init__.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/openapi-fal-rest/openapi_fal_rest/api/users/get_current_user.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/openapi-fal-rest/openapi_fal_rest/api/workflows/__init__.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/openapi-fal-rest/openapi_fal_rest/api/workflows/create_workflow.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/openapi-fal-rest/openapi_fal_rest/api/workflows/delete_workflow.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/openapi-fal-rest/openapi_fal_rest/api/workflows/get_workflow.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/openapi-fal-rest/openapi_fal_rest/api/workflows/list_user_workflows.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/openapi-fal-rest/openapi_fal_rest/api/workflows/update_workflow.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/openapi-fal-rest/openapi_fal_rest/client.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/openapi-fal-rest/openapi_fal_rest/errors.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/openapi-fal-rest/openapi_fal_rest/models/__init__.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/openapi-fal-rest/openapi_fal_rest/models/app_metadata_response_app_metadata.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/openapi-fal-rest/openapi_fal_rest/models/body_upload_local_file.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_detail.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_item.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_schema.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_schema_extra_data.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_schema_fal_inputs.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_schema_fal_inputs_dev_info.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_schema_prompt.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/openapi-fal-rest/openapi_fal_rest/models/current_user.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/openapi-fal-rest/openapi_fal_rest/models/customer_details.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/openapi-fal-rest/openapi_fal_rest/models/hash_check.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/openapi-fal-rest/openapi_fal_rest/models/http_validation_error.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/openapi-fal-rest/openapi_fal_rest/models/lock_reason.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/openapi-fal-rest/openapi_fal_rest/models/page_comfy_workflow_item.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/openapi-fal-rest/openapi_fal_rest/models/page_workflow_item.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/openapi-fal-rest/openapi_fal_rest/models/team_role.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/openapi-fal-rest/openapi_fal_rest/models/typed_comfy_workflow.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/openapi-fal-rest/openapi_fal_rest/models/typed_comfy_workflow_update.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/openapi-fal-rest/openapi_fal_rest/models/typed_workflow.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/openapi-fal-rest/openapi_fal_rest/models/typed_workflow_update.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/openapi-fal-rest/openapi_fal_rest/models/user_member.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/openapi-fal-rest/openapi_fal_rest/models/validation_error.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents_metadata.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents_nodes.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents_output.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/openapi-fal-rest/openapi_fal_rest/models/workflow_detail.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/openapi-fal-rest/openapi_fal_rest/models/workflow_detail_contents.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/openapi-fal-rest/openapi_fal_rest/models/workflow_item.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/openapi-fal-rest/openapi_fal_rest/models/workflow_node.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/openapi-fal-rest/openapi_fal_rest/models/workflow_node_type.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/openapi-fal-rest/openapi_fal_rest/models/workflow_schema.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/openapi-fal-rest/openapi_fal_rest/models/workflow_schema_input.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/openapi-fal-rest/openapi_fal_rest/models/workflow_schema_output.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/openapi-fal-rest/openapi_fal_rest/py.typed +0 -0
- {fal-1.13.2 → fal-1.13.4}/openapi-fal-rest/openapi_fal_rest/types.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/openapi-fal-rest/pyproject.toml +0 -0
- {fal-1.13.2 → fal-1.13.4}/openapi_rest.config.yaml +0 -0
- {fal-1.13.2 → fal-1.13.4}/pyproject.toml +0 -0
- {fal-1.13.2 → fal-1.13.4}/setup.cfg +0 -0
- {fal-1.13.2 → fal-1.13.4}/src/fal/__init__.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/src/fal/__main__.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/src/fal/_serialization.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/src/fal/_version.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/src/fal/api.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/src/fal/apps.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/src/fal/auth/__init__.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/src/fal/auth/auth0.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/src/fal/auth/local.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/src/fal/cli/__init__.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/src/fal/cli/_utils.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/src/fal/cli/api.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/src/fal/cli/apps.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/src/fal/cli/auth.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/src/fal/cli/cli_nested_json.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/src/fal/cli/create.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/src/fal/cli/debug.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/src/fal/cli/deploy.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/src/fal/cli/doctor.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/src/fal/cli/keys.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/src/fal/cli/main.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/src/fal/cli/parser.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/src/fal/cli/profile.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/src/fal/cli/run.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/src/fal/cli/runners.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/src/fal/cli/secrets.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/src/fal/cli/teams.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/src/fal/config.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/src/fal/console/__init__.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/src/fal/console/icons.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/src/fal/console/ux.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/src/fal/container.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/src/fal/exceptions/__init__.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/src/fal/exceptions/_base.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/src/fal/exceptions/auth.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/src/fal/files.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/src/fal/flags.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/src/fal/logging/__init__.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/src/fal/logging/isolate.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/src/fal/logging/style.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/src/fal/logging/trace.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/src/fal/logging/user.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/src/fal/py.typed +0 -0
- {fal-1.13.2 → fal-1.13.4}/src/fal/rest_client.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/src/fal/sdk.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/src/fal/sync.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/src/fal/toolkit/__init__.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/src/fal/toolkit/exceptions.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/src/fal/toolkit/file/__init__.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/src/fal/toolkit/file/file.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/src/fal/toolkit/file/providers/fal.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/src/fal/toolkit/file/providers/gcp.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/src/fal/toolkit/file/providers/r2.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/src/fal/toolkit/file/providers/s3.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/src/fal/toolkit/file/types.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/src/fal/toolkit/image/__init__.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/src/fal/toolkit/image/image.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/src/fal/toolkit/image/nsfw_filter/__init__.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/src/fal/toolkit/image/nsfw_filter/env.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/src/fal/toolkit/image/nsfw_filter/inference.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/src/fal/toolkit/image/nsfw_filter/model.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/src/fal/toolkit/image/nsfw_filter/requirements.txt +0 -0
- {fal-1.13.2 → fal-1.13.4}/src/fal/toolkit/image/safety_checker.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/src/fal/toolkit/optimize.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/src/fal/toolkit/types.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/src/fal/toolkit/utils/__init__.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/src/fal/toolkit/utils/download_utils.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/src/fal/toolkit/utils/retry.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/src/fal/utils.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/src/fal/workflows.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/tests/__init__.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/tests/assets/cat.png +0 -0
- {fal-1.13.2 → fal-1.13.4}/tests/cli/__init__.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/tests/cli/test_apps.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/tests/cli/test_auth.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/tests/cli/test_deploy.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/tests/cli/test_keys.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/tests/cli/test_run.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/tests/cli/test_secrets.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/tests/conftest.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/tests/integration_test.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/tests/mainify_package/__init__.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/tests/mainify_package/impl.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/tests/mainify_package/utils.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/tests/mainify_target.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/tests/test_stability.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/tests/toolkit/file_test.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/tests/toolkit/image_test.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/tests/toolkit/test_types.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/tests/toolkit/utils/retry.py +0 -0
- {fal-1.13.2 → fal-1.13.4}/tools/demo_script.py +0 -0
|
@@ -345,7 +345,25 @@ class App(BaseServable):
|
|
|
345
345
|
async def provide_hints_headers(request, call_next):
|
|
346
346
|
response = await call_next(request)
|
|
347
347
|
try:
|
|
348
|
-
|
|
348
|
+
# make sure the hints can be encoded in latin-1, so we don't crash
|
|
349
|
+
# when serving.
|
|
350
|
+
# https://github.com/encode/starlette/blob/a766a58d14007f07c0b5782fa78cdc370b892796/starlette/datastructures.py#L568
|
|
351
|
+
hints = []
|
|
352
|
+
for hint in self.provide_hints():
|
|
353
|
+
try:
|
|
354
|
+
_ = hint.encode("latin-1")
|
|
355
|
+
hints.append(hint)
|
|
356
|
+
except UnicodeEncodeError:
|
|
357
|
+
from fastapi.logger import logger
|
|
358
|
+
|
|
359
|
+
logger.warning(
|
|
360
|
+
"Ignoring hint %s for %s because it can't be encoded in "
|
|
361
|
+
"latin-1",
|
|
362
|
+
hint,
|
|
363
|
+
self.__class__.__name__,
|
|
364
|
+
)
|
|
365
|
+
|
|
366
|
+
response.headers["X-Fal-Runner-Hints"] = ",".join(hints)
|
|
349
367
|
except NotImplementedError:
|
|
350
368
|
# This lets us differentiate between apps that don't provide hints
|
|
351
369
|
# and apps that provide empty hints.
|
|
@@ -223,6 +223,10 @@ class ExceptionApp(fal.App, keep_alive=300, max_concurrency=1):
|
|
|
223
223
|
# https://github.com/pytorch/pytorch/issues/112377
|
|
224
224
|
raise RuntimeError("NVML_SUCCESS == r INTERNAL ASSERT FAILED")
|
|
225
225
|
|
|
226
|
+
@fal.endpoint("/cuda-exception-3")
|
|
227
|
+
def cuda_exception_3(self) -> Output:
|
|
228
|
+
raise RuntimeError("cuDNN error: CUDNN_STATUS_INTERNAL_ERROR")
|
|
229
|
+
|
|
226
230
|
|
|
227
231
|
class CancellableApp(fal.App, keep_alive=300, max_concurrency=1):
|
|
228
232
|
task = None
|
|
@@ -910,6 +914,12 @@ def test_app_exceptions(test_exception_app: AppClient):
|
|
|
910
914
|
assert cuda_exc.value.status_code == _CUDA_OOM_STATUS_CODE
|
|
911
915
|
assert _CUDA_OOM_MESSAGE in cuda_exc.value.message
|
|
912
916
|
|
|
917
|
+
with pytest.raises(AppClientError) as cuda_exc:
|
|
918
|
+
test_exception_app.cuda_exception_3({})
|
|
919
|
+
|
|
920
|
+
assert cuda_exc.value.status_code == _CUDA_OOM_STATUS_CODE
|
|
921
|
+
assert _CUDA_OOM_MESSAGE in cuda_exc.value.message
|
|
922
|
+
|
|
913
923
|
|
|
914
924
|
def test_kill_runner():
|
|
915
925
|
app_alias = str(uuid.uuid4()) + "-sleep-alias"
|
|
@@ -956,3 +966,31 @@ def test_container_app_client(test_container_app: str):
|
|
|
956
966
|
def test_container_build_args_app_client(test_container_build_args_app: str):
|
|
957
967
|
response = apps.run(test_container_build_args_app, {})
|
|
958
968
|
assert response == "built with build args"
|
|
969
|
+
|
|
970
|
+
|
|
971
|
+
class HintsApp(fal.App, keep_alive=300, max_concurrency=1):
|
|
972
|
+
machine_type = "S"
|
|
973
|
+
|
|
974
|
+
def provide_hints(self) -> List[str]:
|
|
975
|
+
return ["é", "😀"]
|
|
976
|
+
|
|
977
|
+
@fal.endpoint("/add")
|
|
978
|
+
def add(self, input: Input) -> Output:
|
|
979
|
+
return Output(result=input.lhs + input.rhs)
|
|
980
|
+
|
|
981
|
+
|
|
982
|
+
def test_hints_encoding():
|
|
983
|
+
"""
|
|
984
|
+
Make sure that hints that can't be encoded in latin-1 don't crash the app
|
|
985
|
+
https://github.com/encode/starlette/blob/a766a58d14007f07c0b5782fa78cdc370b892796/starlette/datastructures.py#L568
|
|
986
|
+
"""
|
|
987
|
+
with AppClient.connect(HintsApp) as client:
|
|
988
|
+
with httpx.Client() as httpx_client:
|
|
989
|
+
url = client.url + "/add"
|
|
990
|
+
resp = httpx_client.post(
|
|
991
|
+
url,
|
|
992
|
+
json={"lhs": 1, "rhs": 2},
|
|
993
|
+
timeout=30,
|
|
994
|
+
)
|
|
995
|
+
assert resp.is_success
|
|
996
|
+
assert resp.json()["result"] == 3
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.13.2 → fal-1.13.4}/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.13.2 → fal-1.13.4}/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.13.2 → fal-1.13.4}/openapi-fal-rest/openapi_fal_rest/api/workflows/create_workflow.py
RENAMED
|
File without changes
|
{fal-1.13.2 → fal-1.13.4}/openapi-fal-rest/openapi_fal_rest/api/workflows/delete_workflow.py
RENAMED
|
File without changes
|
|
File without changes
|
{fal-1.13.2 → fal-1.13.4}/openapi-fal-rest/openapi_fal_rest/api/workflows/list_user_workflows.py
RENAMED
|
File without changes
|
{fal-1.13.2 → fal-1.13.4}/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.13.2 → fal-1.13.4}/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.13.2 → fal-1.13.4}/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.13.2 → fal-1.13.4}/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.13.2 → fal-1.13.4}/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.13.2 → fal-1.13.4}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents_metadata.py
RENAMED
|
File without changes
|
{fal-1.13.2 → fal-1.13.4}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents_nodes.py
RENAMED
|
File without changes
|
{fal-1.13.2 → fal-1.13.4}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents_output.py
RENAMED
|
File without changes
|
|
File without changes
|
{fal-1.13.2 → fal-1.13.4}/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.13.2 → fal-1.13.4}/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
|