Skip to main content

A FastAPI-like framework for building interactive shell applications with auto-completion and type safety

Reason this release was yanked:

This stable version is unstable through. Use 1.0.0a3 instead.

Project description

FastShell

A FastAPI-like framework for building interactive shell applications with automatic completion, type conversion, and subcommands.

Features

  • 🚀 FastAPI-like decorators - Simple and intuitive API design
  • 📝 Automatic parsing - Docstrings, function names, parameters, and type annotations
  • 🔧 Auto-completion - Command and parameter completion with TUI support
  • 🌳 Subcommands - Nested command structure support
  • 🔄 Type conversion - Automatic parameter type conversion
  • 🖥️ Cross-platform - Works on Windows, macOS, and Linux
  • 🎨 Rich output - Beautiful terminal output with colors and formatting

Quick Start

from fastshell import FastShell

app = FastShell()

@app.command()
def hello(name: str = "World"):
    """Say hello to someone.
    
    Args:
        name: The name to greet
    """
    print(f"Hello, {name}!")

@app.command()
def add(a: int, b: int):
    """Add two numbers.
    
    Args:
        a: First number
        b: Second number
    """
    result = a + b
    print(f"{a} + {b} = {result}")

if __name__ == "__main__":
    app.run()

Installation

pip install fastshell-framework

Development Installation

For development, clone the repository and install in editable mode:

git clone https://github.com/fastshell/fastshell.git
cd fastshell
pip install -e .

Development

pip install -e ".[dev]"

License

MIT License

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fastshell-0.1.0.tar.gz (21.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fastshell-0.1.0-py3-none-any.whl (25.4 kB view details)

Uploaded Python 3

File details

Details for the file fastshell-0.1.0.tar.gz.

File metadata

  • Download URL: fastshell-0.1.0.tar.gz
  • Upload date:
  • Size: 21.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.9

File hashes

Hashes for fastshell-0.1.0.tar.gz
Algorithm Hash digest
SHA256 c048ab830c1f04259cc0ed7f827b38f7675da86b71196a0b8b788b3568c3a5a6
MD5 8118d2b42beeef552bfae994ed540356
BLAKE2b-256 db4999b115e0829fd5a94c62183ebfff601339fb922ba3df93114fa9b0e29ffa

See more details on using hashes here.

File details

Details for the file fastshell-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: fastshell-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 25.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.9

File hashes

Hashes for fastshell-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 94b55b02d1eb7f5ddd51c890bc94b34ef5cdeece2a9b151a26c550e4538bb1cd
MD5 013436420bff46c3d042cfccb032cf67
BLAKE2b-256 407b5db8427061f7b6f07b77fa40bc871687ddc27c946cc0df2d6f236f3c5db9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page