# PyScript CLI
A command-line interface for [PyScript](https://pyscript.net).
[![Version](https://img.shields.io/pypi/v/pyscript.svg)](https://pypi.org/project/pyscript/)
[![Test](https://github.com/pyscript/pyscript-cli/actions/workflows/test.yml/badge.svg)](https://github.com/pyscript/pyscript-cli/actions/workflows/test.yml)
[![codecov](https://codecov.io/gh/pyscript/pyscript-cli/branch/main/graph/badge.svg?token=dCxt9oBQPL)](https://codecov.io/gh/pyscript/pyscript-cli)
[![pre-commit.ci status](https://results.pre-commit.ci/badge/github/pyscript/pyscript-cli/main.svg)](https://results.pre-commit.ci/latest/github/pyscript/pyscript-cli/main)
[![Checked with mypy](http://www.mypy-lang.org/static/mypy_badge.svg)](http://mypy-lang.org/)
Quickly wrap Python scripts into a HTML template, pre-configured with [PyScript](https://pyscript.net).
```bash
❯ pyscript
Usage: pyscript [OPTIONS] COMMAND [ARGS]...
Command Line Interface for PyScript.
╭─ Options ──────────────────────────────────────────────────────────────────────────────────────╮
│ --version Show project version and exit. │
│ --help Show this message and exit. │
╰────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ─────────────────────────────────────────────────────────────────────────────────────╮
│ create Create a new pyscript project with the passed in name, creating a new directory in the │
│ current directory. Alternatively, use `--wrap` so as to embed a python file instead. │
│ run Creates a local server to run the app on the path and port specified. │
╰────────────────────────────────────────────────────────────────────────────────────────────────╯
```
## Installation
### Using Pip
```shell
$ pip install pyscript
```
### Installing the developer setup from the a repository clone
[see the Developer setup section on CONTRIBUTING page](CONTRIBUTING.md)
## Usage
### run
#### Spin up a local server to run on the path and specified port
```shell
$ pyscript run <path_of_folder>
```
This will serve the folder `path_of_folder` at `localhost:8000` by default
and will open the URL in a browser window. Default is current directory if
`path_of_folder` is not supplied.
To use a different port, use `--port` option.
```shell
$ pyscript run <path_of_folder> --port 9000
```
To avoid opening a browser window, use `--no-view` option.
```shell
$ pyscript run <path_of_folder> --no-view
```
### create
#### Create a new pyscript project with the passed in name, creating a new directory
```shell
$ pyscript create <name_of_app>
```
This will create a new directory named `name_of_app` under the current directory.
The interactive prompts will further ask for information such as `description of the app`,
`name of the author`, `email of the author`, etc. These of course can be provided via
options such as `--author-name` etc. Use `pyscript create --help` for more information.
The following files will be created:
- `index.html`: start page for the project
- `pyscript.toml`: project metadata and config file
- `main.py`: a "Hello world" python starter module
#### Use --wrap to embed a python file OR a command string
- ##### Embed a Python script into a PyScript HTML file
```shell
$ pyscript create --wrap <filename.py>
```
This will generate a project i.e. a new directory named `filename` under the current directory.
Similar to the above, interactive prompts will further ask for metadata information.
The following files will be created:
- `index.html`: start page for the project
- `pyscript.toml`: project metadata and config file
- `main.py`: contains code of `filename.py`
This can be overridden with the `-o` or `--output` option:
```shell
$ pyscript create --wrap <filename.py> -o <another_filename.html>
```
i.e. the HTML file created in the above directory will now be named `another_filename.html`
- ##### Very simple command examples with `--command` option
The `-c` or `--command` option can be used to demo very simple cases.
By default, the name of the project folder created will be `pyscript-command-app` with the HTML file named `index.html`.
`-o/--output` option can be used with the `-c/--command` option to configure name of the project folder as well
as the name of the resulting HTML file.
```shell
$ pyscript create --wrap -c 'print("Hello World!")' -o <output_filename.html>
```
This will generate a project i.e. a new directory named `output_filename` under the current directory.
Similar to the above, interactive prompts will further ask for metadata information.
The following files will be created:
- `output_filename.html`: start page for the project
- `pyscript.toml`: project metadata and config file
- `main.py`: contains code of the command string passed via `-c/--command`
Raw data
{
"_id": null,
"home_page": "https://github.com/pyscript/pyscript-cli",
"name": "pyscript",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": "pyscript, cli, pyodide, micropython, pyscript-cli",
"author": "Matt Kramer, Fabio Pliger, Nicholas Tollervey, Fabio Rosado, Madhur Tandon",
"author_email": "mkramer@anaconda.com, fpliger@anaconda.com, ntollervey@anaconda.com, frosado@anaconda.com, mtandon@anaconda.com",
"download_url": "https://files.pythonhosted.org/packages/9d/4d/ee8606f71049fe29666e5541f0dd1a4f861dd3a6824334fac3c5aec3e8d9/pyscript-0.3.3.tar.gz",
"platform": null,
"description": "# PyScript CLI\n\nA command-line interface for [PyScript](https://pyscript.net).\n\n\n[![Version](https://img.shields.io/pypi/v/pyscript.svg)](https://pypi.org/project/pyscript/)\n[![Test](https://github.com/pyscript/pyscript-cli/actions/workflows/test.yml/badge.svg)](https://github.com/pyscript/pyscript-cli/actions/workflows/test.yml)\n[![codecov](https://codecov.io/gh/pyscript/pyscript-cli/branch/main/graph/badge.svg?token=dCxt9oBQPL)](https://codecov.io/gh/pyscript/pyscript-cli)\n[![pre-commit.ci status](https://results.pre-commit.ci/badge/github/pyscript/pyscript-cli/main.svg)](https://results.pre-commit.ci/latest/github/pyscript/pyscript-cli/main)\n[![Checked with mypy](http://www.mypy-lang.org/static/mypy_badge.svg)](http://mypy-lang.org/)\n\nQuickly wrap Python scripts into a HTML template, pre-configured with [PyScript](https://pyscript.net).\n\n```bash\n\u276f pyscript\n\n Usage: pyscript [OPTIONS] COMMAND [ARGS]...\n\n Command Line Interface for PyScript.\n\n\u256d\u2500 Options \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e\n\u2502 --version Show project version and exit. \u2502\n\u2502 --help Show this message and exit. \u2502\n\u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f\n\u256d\u2500 Commands \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e\n\u2502 create Create a new pyscript project with the passed in name, creating a new directory in the \u2502\n\u2502 current directory. Alternatively, use `--wrap` so as to embed a python file instead. \u2502\n\u2502 run Creates a local server to run the app on the path and port specified. \u2502\n\u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f\n\n```\n\n## Installation\n\n### Using Pip\n\n```shell\n$ pip install pyscript\n```\n\n### Installing the developer setup from the a repository clone\n\n\n[see the Developer setup section on CONTRIBUTING page](CONTRIBUTING.md)\n\n## Usage\n\n### run\n\n#### Spin up a local server to run on the path and specified port\n\n```shell\n$ pyscript run <path_of_folder>\n```\n\nThis will serve the folder `path_of_folder` at `localhost:8000` by default\nand will open the URL in a browser window. Default is current directory if\n`path_of_folder` is not supplied.\n\nTo use a different port, use `--port` option.\n\n```shell\n$ pyscript run <path_of_folder> --port 9000\n```\n\nTo avoid opening a browser window, use `--no-view` option.\n\n```shell\n$ pyscript run <path_of_folder> --no-view\n```\n\n### create\n\n#### Create a new pyscript project with the passed in name, creating a new directory\n\n```shell\n$ pyscript create <name_of_app>\n```\n\nThis will create a new directory named `name_of_app` under the current directory.\n\nThe interactive prompts will further ask for information such as `description of the app`,\n`name of the author`, `email of the author`, etc. These of course can be provided via\noptions such as `--author-name` etc. Use `pyscript create --help` for more information.\n\nThe following files will be created:\n\n- `index.html`: start page for the project\n- `pyscript.toml`: project metadata and config file\n- `main.py`: a \"Hello world\" python starter module\n\n#### Use --wrap to embed a python file OR a command string\n\n- ##### Embed a Python script into a PyScript HTML file\n\n```shell\n$ pyscript create --wrap <filename.py>\n```\n\nThis will generate a project i.e. a new directory named `filename` under the current directory.\n\nSimilar to the above, interactive prompts will further ask for metadata information.\n\nThe following files will be created:\n\n- `index.html`: start page for the project\n- `pyscript.toml`: project metadata and config file\n- `main.py`: contains code of `filename.py`\n\nThis can be overridden with the `-o` or `--output` option:\n\n```shell\n$ pyscript create --wrap <filename.py> -o <another_filename.html>\n```\n\ni.e. the HTML file created in the above directory will now be named `another_filename.html`\n\n- ##### Very simple command examples with `--command` option\n\nThe `-c` or `--command` option can be used to demo very simple cases.\n\nBy default, the name of the project folder created will be `pyscript-command-app` with the HTML file named `index.html`.\n\n`-o/--output` option can be used with the `-c/--command` option to configure name of the project folder as well\nas the name of the resulting HTML file.\n\n```shell\n$ pyscript create --wrap -c 'print(\"Hello World!\")' -o <output_filename.html>\n```\n\nThis will generate a project i.e. a new directory named `output_filename` under the current directory.\n\nSimilar to the above, interactive prompts will further ask for metadata information.\n\nThe following files will be created:\n\n- `output_filename.html`: start page for the project\n- `pyscript.toml`: project metadata and config file\n- `main.py`: contains code of the command string passed via `-c/--command`\n",
"bugtrack_url": null,
"license": "Apache-2.0",
"summary": "Command Line Interface for PyScript",
"version": "0.3.3",
"project_urls": {
"Documentation": "https://docs.pyscript.net",
"Examples": "https://pyscript.com/@examples",
"Homepage": "https://pyscript.net",
"Repository": "https://github.com/pyscript/pyscript-cli"
},
"split_keywords": [
"pyscript",
" cli",
" pyodide",
" micropython",
" pyscript-cli"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "f2d81881edf3b8653cf2f3b8005704126c738c151b6f8168a5806ea61f1efb5f",
"md5": "053b9389b2bf3b2a24475fe31c8d8f21",
"sha256": "320383f38e9eec6515dbe0c184d4ad9d9c58e2c98fb82ec09e8d8b2e93c9e62f"
},
"downloads": -1,
"filename": "pyscript-0.3.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "053b9389b2bf3b2a24475fe31c8d8f21",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 15556,
"upload_time": "2024-09-09T13:02:32",
"upload_time_iso_8601": "2024-09-09T13:02:32.756388Z",
"url": "https://files.pythonhosted.org/packages/f2/d8/1881edf3b8653cf2f3b8005704126c738c151b6f8168a5806ea61f1efb5f/pyscript-0.3.3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "9d4dee8606f71049fe29666e5541f0dd1a4f861dd3a6824334fac3c5aec3e8d9",
"md5": "fd8e4897eb6ed70615c1b7e09352084b",
"sha256": "11fc64a3f187d8645c601ae6a80e3f0142e0dd9e0c5d3244b0ec508ca0d373f9"
},
"downloads": -1,
"filename": "pyscript-0.3.3.tar.gz",
"has_sig": false,
"md5_digest": "fd8e4897eb6ed70615c1b7e09352084b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 20791,
"upload_time": "2024-09-09T13:02:34",
"upload_time_iso_8601": "2024-09-09T13:02:34.234258Z",
"url": "https://files.pythonhosted.org/packages/9d/4d/ee8606f71049fe29666e5541f0dd1a4f861dd3a6824334fac3c5aec3e8d9/pyscript-0.3.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-09-09 13:02:34",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "pyscript",
"github_project": "pyscript-cli",
"travis_ci": false,
"coveralls": true,
"github_actions": true,
"lcname": "pyscript"
}