fal 0.12.4__tar.gz → 0.12.5__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-0.12.4 → fal-0.12.5}/PKG-INFO +1 -1
- {fal-0.12.4 → fal-0.12.5}/pyproject.toml +1 -1
- {fal-0.12.4 → fal-0.12.5}/setup.py +1 -1
- {fal-0.12.4 → fal-0.12.5}/src/fal/cli.py +10 -5
- {fal-0.12.4 → fal-0.12.5}/README.md +0 -0
- {fal-0.12.4 → fal-0.12.5}/openapi-fal-rest/openapi_fal_rest/__init__.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/openapi-fal-rest/openapi_fal_rest/api/__init__.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/openapi-fal-rest/openapi_fal_rest/api/applications/__init__.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/openapi-fal-rest/openapi_fal_rest/api/applications/app_metadata.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/openapi-fal-rest/openapi_fal_rest/api/billing/__init__.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/openapi-fal-rest/openapi_fal_rest/api/billing/get_user_details.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/openapi-fal-rest/openapi_fal_rest/api/files/__init__.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/openapi-fal-rest/openapi_fal_rest/api/files/check_dir_hash.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/openapi-fal-rest/openapi_fal_rest/api/files/upload_local_file.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/openapi-fal-rest/openapi_fal_rest/api/workflows/__init__.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/openapi-fal-rest/openapi_fal_rest/api/workflows/create_or_update_workflow_workflows_post.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/openapi-fal-rest/openapi_fal_rest/api/workflows/delete_workflow_workflows_user_id_workflow_name_delete.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/openapi-fal-rest/openapi_fal_rest/api/workflows/execute_workflow_workflows_user_id_workflow_name_post.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/openapi-fal-rest/openapi_fal_rest/api/workflows/get_workflow_workflows_user_id_workflow_name_get.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/openapi-fal-rest/openapi_fal_rest/api/workflows/get_workflows_workflows_get.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/openapi-fal-rest/openapi_fal_rest/client.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/openapi-fal-rest/openapi_fal_rest/errors.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/openapi-fal-rest/openapi_fal_rest/models/__init__.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/openapi-fal-rest/openapi_fal_rest/models/app_metadata_response_app_metadata.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/openapi-fal-rest/openapi_fal_rest/models/body_upload_local_file.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/openapi-fal-rest/openapi_fal_rest/models/customer_details.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/openapi-fal-rest/openapi_fal_rest/models/execute_workflow_workflows_user_id_workflow_name_post_json_body_type_0.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/openapi-fal-rest/openapi_fal_rest/models/execute_workflow_workflows_user_id_workflow_name_post_response_200_type_0.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/openapi-fal-rest/openapi_fal_rest/models/hash_check.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/openapi-fal-rest/openapi_fal_rest/models/http_validation_error.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/openapi-fal-rest/openapi_fal_rest/models/lock_reason.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/openapi-fal-rest/openapi_fal_rest/models/page_workflow_item.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/openapi-fal-rest/openapi_fal_rest/models/typed_workflow.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/openapi-fal-rest/openapi_fal_rest/models/validation_error.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents_nodes.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents_output.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/openapi-fal-rest/openapi_fal_rest/models/workflow_detail.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/openapi-fal-rest/openapi_fal_rest/models/workflow_detail_contents_type_0.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/openapi-fal-rest/openapi_fal_rest/models/workflow_item.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/openapi-fal-rest/openapi_fal_rest/models/workflow_node.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/openapi-fal-rest/openapi_fal_rest/models/workflow_node_type.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/openapi-fal-rest/openapi_fal_rest/models/workflow_schema.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/openapi-fal-rest/openapi_fal_rest/models/workflow_schema_input.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/openapi-fal-rest/openapi_fal_rest/models/workflow_schema_output.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/openapi-fal-rest/openapi_fal_rest/py.typed +0 -0
- {fal-0.12.4 → fal-0.12.5}/openapi-fal-rest/openapi_fal_rest/types.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/src/fal/__init__.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/src/fal/_serialization.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/src/fal/api.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/src/fal/app.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/src/fal/apps.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/src/fal/auth/__init__.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/src/fal/auth/auth0.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/src/fal/auth/local.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/src/fal/console/__init__.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/src/fal/console/icons.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/src/fal/console/ux.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/src/fal/env.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/src/fal/exceptions/__init__.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/src/fal/exceptions/_base.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/src/fal/exceptions/auth.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/src/fal/exceptions/handlers.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/src/fal/flags.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/src/fal/logging/__init__.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/src/fal/logging/isolate.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/src/fal/logging/style.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/src/fal/logging/trace.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/src/fal/logging/user.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/src/fal/py.typed +0 -0
- {fal-0.12.4 → fal-0.12.5}/src/fal/rest_client.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/src/fal/sdk.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/src/fal/sync.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/src/fal/toolkit/__init__.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/src/fal/toolkit/exceptions.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/src/fal/toolkit/file/__init__.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/src/fal/toolkit/file/file.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/src/fal/toolkit/file/providers/fal.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/src/fal/toolkit/file/providers/gcp.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/src/fal/toolkit/file/providers/r2.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/src/fal/toolkit/file/types.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/src/fal/toolkit/image/__init__.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/src/fal/toolkit/image/image.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/src/fal/toolkit/mainify.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/src/fal/toolkit/optimize.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/src/fal/toolkit/utils/__init__.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/src/fal/toolkit/utils/download_utils.py +0 -0
- {fal-0.12.4 → fal-0.12.5}/src/fal/workflows.py +0 -0
|
@@ -68,7 +68,7 @@ entry_points = \
|
|
|
68
68
|
|
|
69
69
|
setup_kwargs = {
|
|
70
70
|
'name': 'fal',
|
|
71
|
-
'version': '0.12.
|
|
71
|
+
'version': '0.12.5',
|
|
72
72
|
'description': 'fal is an easy-to-use Serverless Python Framework',
|
|
73
73
|
'long_description': '# fal\n\nfal is a serverless Python runtime that lets you run and scale code in the cloud with no infra management.\n\nWith fal, you can build pipelines, serve ML models and scale them up to many users. You scale down to 0 when you don\'t use any resources.\n\n## Quickstart\n\nFirst, you need to install the `fal` package. You can do so using pip:\n```shell\npip install fal\n```\n\nThen you need to authenticate:\n```shell\nfal auth login\n```\n\nYou can also use fal keys that you can get from [our dashboard](https://fal.ai/dashboard/keys).\n\nNow can use the fal package in your Python scripts as follows:\n\n```py\nimport fal\n\n@fal.function(\n "virtualenv",\n requirements=["pyjokes"],\n)\ndef tell_joke() -> str:\n import pyjokes\n\n joke = pyjokes.get_joke()\n return joke\n\nprint("Joke from the clouds: ", tell_joke())\n```\n\nA new virtual environment will be created by fal in the cloud and the set of requirements that we passed will be installed as soon as this function is called. From that point on, our code will be executed as if it were running locally, and the joke prepared by the pyjokes library will be returned.\n\n## Next steps\n\nIf you would like to find out more about the capabilities of fal, check out to the [docs](https://fal.ai/docs). You can learn more about persistent storage, function caches and deploying your functions as API endpoints.\n',
|
|
74
74
|
'author': 'Features & Labels',
|
|
@@ -54,6 +54,8 @@ class MainGroup(click.Group):
|
|
|
54
54
|
_tracer = get_tracer(__name__)
|
|
55
55
|
|
|
56
56
|
def invoke(self, ctx):
|
|
57
|
+
from click.exceptions import Abort, ClickException, Exit
|
|
58
|
+
|
|
57
59
|
execution_info = ExecutionInfo(debug=ctx.params["debug"])
|
|
58
60
|
qualified_name = " ".join([ctx.info_name] + argv[1:])
|
|
59
61
|
invocation_id = execution_info.invocation_id
|
|
@@ -68,6 +70,9 @@ class MainGroup(click.Group):
|
|
|
68
70
|
command=qualified_name,
|
|
69
71
|
)
|
|
70
72
|
return super().invoke(ctx)
|
|
73
|
+
except (EOFError, KeyboardInterrupt, ClickException, Exit, Abort):
|
|
74
|
+
# let click's main handle these
|
|
75
|
+
raise
|
|
71
76
|
except Exception as exception:
|
|
72
77
|
logger.error(exception)
|
|
73
78
|
if execution_info.debug:
|
|
@@ -123,10 +128,7 @@ class AliasCommand(click.Command):
|
|
|
123
128
|
return self._wrapped.__getattribute__(__name)
|
|
124
129
|
|
|
125
130
|
|
|
126
|
-
@click.group(
|
|
127
|
-
cls=MainGroup,
|
|
128
|
-
context_settings={"allow_interspersed_args": True},
|
|
129
|
-
)
|
|
131
|
+
@click.group(cls=MainGroup)
|
|
130
132
|
@click.option(
|
|
131
133
|
"--debug", is_flag=True, help="Enable detailed errors and verbose logging."
|
|
132
134
|
)
|
|
@@ -574,7 +576,10 @@ def _get_user_id() -> str:
|
|
|
574
576
|
raise api.FalServerlessError(content["detail"])
|
|
575
577
|
try:
|
|
576
578
|
full_user_id = user_details_response.parsed.user_id
|
|
577
|
-
user_id = full_user_id.
|
|
579
|
+
_provider, _, user_id = full_user_id.partition("|")
|
|
580
|
+
if not user_id:
|
|
581
|
+
user_id = full_user_id
|
|
582
|
+
|
|
578
583
|
return user_id
|
|
579
584
|
except Exception as e:
|
|
580
585
|
raise api.FalServerlessError(f"Could not parse the user data: {e}")
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fal-0.12.4 → fal-0.12.5}/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
|
|
File without changes
|
|
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-0.12.4 → fal-0.12.5}/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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fal-0.12.4 → fal-0.12.5}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents_nodes.py
RENAMED
|
File without changes
|
{fal-0.12.4 → fal-0.12.5}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents_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
|
{fal-0.12.4 → fal-0.12.5}/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
|