Spaces:
Sleeping
Sleeping
| """Run Cyclopts applications from Python scripts.""" | |
| from pathlib import Path | |
| from typing import Annotated | |
| from cyclopts.cli import app | |
| from cyclopts.loader import load_app_from_script | |
| from cyclopts.parameter import Parameter | |
| def run( | |
| script: Annotated[ | |
| Path, | |
| Parameter(allow_leading_hyphen=True), | |
| ], | |
| /, | |
| *args: Annotated[str, Parameter(allow_leading_hyphen=True)], | |
| ): | |
| """Run a Cyclopts application from a Python script with dynamic shell completion. | |
| All arguments after the script path are passed to the loaded application. | |
| Shell completion is available. Run once to install (persistent): | |
| ``cyclopts --install-completion`` | |
| Parameters | |
| ---------- | |
| script : str | |
| Python script path with optional ':app_object' notation. | |
| args : str | |
| Arguments to pass to the loaded application. | |
| Examples | |
| -------- | |
| Run a script: | |
| cyclopts run myapp.py --verbose foo bar | |
| Specify app object: | |
| cyclopts run myapp.py:app --help | |
| """ | |
| if str(script) in app.help_flags: | |
| app.help_print() | |
| return | |
| app_obj, _ = load_app_from_script(script) | |
| return app_obj(args) | |