speedi


Namespeedi JSON
Version 0.1.0 PyPI version JSON
download
home_pageNone
SummarySpeedi – A typed, stateful, high-performance CLI framework for Python
upload_time2025-08-25 20:16:34
maintainerNone
docs_urlNone
authorMuonry Team
requires_python>=3.10
licenseMIT
keywords cli framework typed async concurrency
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Speedi

A typed, stateful, high-performance CLI framework for Python.

- Declarative, Typer-like API
- Type-hint aware parsing and validation (Satya-ready stubs)
- Stateful session (in-memory, optional persistence)
- Async-first with simple parallel primitives
- Optional Rust core (PyO3) scaffold

## Quickstart (local, no install)

```bash
python examples/speedi_example.py --help
python examples/speedi_example.py greet Alice 30 --loud
```

Example output:

```
Hello Alice, age 30
HELLO ALICE
```

## Session (optional persistence)

```bash
python examples/speedi_example.py login alice
python examples/speedi_example.py whoami
```

To persist session between runs, pass `--persist` to commands that mutate session or set env `SPEEDI_PERSIST=1`.

Session file path (if persisted): `~/.speedi/session.json`

## Project Layout

- `speedi/` – core Python package
  - `app.py` – `App` and command system
  - `session.py` – session management
  - `concurrency.py` – `parallel` helper
  - `validation.py` – type validation stubs
  - `engine.py` – optional Rust bridge (stub)
  - `__init__.py` – exports
- `examples/` – example CLI
- `rust/speedi_core/` – optional Rust core (PyO3) scaffold
- `tests/` – minimal tests

## Rust core (optional)

A PyO3 stub is included under `rust/speedi_core`. It's not required to run the Python example.

## Colors

Speedi supports colored output via Rich with graceful fallback.

- Install extras: `pip install -e .[rich]`
- Auto-enabled on TTY; force with `SPEEDI_COLOR=1` or disable with `SPEEDI_COLOR=0`.
- Try: `python examples/speedi_example.py colors`

## Agent guide

See `AGENT.md` for integrating Speedi into your app/agent: commands, session, concurrency, and color helpers.

## License

MIT


            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "speedi",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "cli, framework, typed, async, concurrency",
    "author": "Muonry Team",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/94/9e/d9239b88a6a0fd9ea61696442d8100c9f8f7df0f7c30bb1936a0eae76e56/speedi-0.1.0.tar.gz",
    "platform": null,
    "description": "# Speedi\n\nA typed, stateful, high-performance CLI framework for Python.\n\n- Declarative, Typer-like API\n- Type-hint aware parsing and validation (Satya-ready stubs)\n- Stateful session (in-memory, optional persistence)\n- Async-first with simple parallel primitives\n- Optional Rust core (PyO3) scaffold\n\n## Quickstart (local, no install)\n\n```bash\npython examples/speedi_example.py --help\npython examples/speedi_example.py greet Alice 30 --loud\n```\n\nExample output:\n\n```\nHello Alice, age 30\nHELLO ALICE\n```\n\n## Session (optional persistence)\n\n```bash\npython examples/speedi_example.py login alice\npython examples/speedi_example.py whoami\n```\n\nTo persist session between runs, pass `--persist` to commands that mutate session or set env `SPEEDI_PERSIST=1`.\n\nSession file path (if persisted): `~/.speedi/session.json`\n\n## Project Layout\n\n- `speedi/` \u2013 core Python package\n  - `app.py` \u2013 `App` and command system\n  - `session.py` \u2013 session management\n  - `concurrency.py` \u2013 `parallel` helper\n  - `validation.py` \u2013 type validation stubs\n  - `engine.py` \u2013 optional Rust bridge (stub)\n  - `__init__.py` \u2013 exports\n- `examples/` \u2013 example CLI\n- `rust/speedi_core/` \u2013 optional Rust core (PyO3) scaffold\n- `tests/` \u2013 minimal tests\n\n## Rust core (optional)\n\nA PyO3 stub is included under `rust/speedi_core`. It's not required to run the Python example.\n\n## Colors\n\nSpeedi supports colored output via Rich with graceful fallback.\n\n- Install extras: `pip install -e .[rich]`\n- Auto-enabled on TTY; force with `SPEEDI_COLOR=1` or disable with `SPEEDI_COLOR=0`.\n- Try: `python examples/speedi_example.py colors`\n\n## Agent guide\n\nSee `AGENT.md` for integrating Speedi into your app/agent: commands, session, concurrency, and color helpers.\n\n## License\n\nMIT\n\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Speedi \u2013 A typed, stateful, high-performance CLI framework for Python",
    "version": "0.1.0",
    "project_urls": {
        "Homepage": "https://github.com/muonry/speedi",
        "Issues": "https://github.com/muonry/speedi/issues",
        "Repository": "https://github.com/muonry/speedi.git"
    },
    "split_keywords": [
        "cli",
        " framework",
        " typed",
        " async",
        " concurrency"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "2b7f04577b639c980b5125a9112343a7d9d10926846a4f0ea08f3981941484cf",
                "md5": "e2d392442d705d1b7b437b48c7588bd4",
                "sha256": "12517c27a82409a53d579ac0a4dad1ae78f72d982166ee5800142779f78ae525"
            },
            "downloads": -1,
            "filename": "speedi-0.1.0-cp312-cp312-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "e2d392442d705d1b7b437b48c7588bd4",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.10",
            "size": 228065,
            "upload_time": "2025-08-25T20:16:32",
            "upload_time_iso_8601": "2025-08-25T20:16:32.096360Z",
            "url": "https://files.pythonhosted.org/packages/2b/7f/04577b639c980b5125a9112343a7d9d10926846a4f0ea08f3981941484cf/speedi-0.1.0-cp312-cp312-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "949ed9239b88a6a0fd9ea61696442d8100c9f8f7df0f7c30bb1936a0eae76e56",
                "md5": "8ae319678038dfcae411e59dca22029d",
                "sha256": "573de1e2f0b3c5349850b70be36dd1f975c69116806f25143bab0f38068278ed"
            },
            "downloads": -1,
            "filename": "speedi-0.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "8ae319678038dfcae411e59dca22029d",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 11531,
            "upload_time": "2025-08-25T20:16:34",
            "upload_time_iso_8601": "2025-08-25T20:16:34.283475Z",
            "url": "https://files.pythonhosted.org/packages/94/9e/d9239b88a6a0fd9ea61696442d8100c9f8f7df0f7c30bb1936a0eae76e56/speedi-0.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-25 20:16:34",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "muonry",
    "github_project": "speedi",
    "github_not_found": true,
    "lcname": "speedi"
}
        
Elapsed time: 0.95673s