Skip to main content

Read–Eval–Print Loop Interpreter

Project description

🐟 Read–Eval–Print Loop Interpreter (REPLI)

repli package publish license python pypi

It's a Python package for building command-line terminal applications.

Features:

  • Breadcrumbs
  • Interface panel
  • Pagination
┌──────────────────────────────────────────────────────────────┐
│ [myapp] home                                                 │
├──────────────────────────────────────────────────────────────┤
│                                                              │
│ 1  print hello world                                         │
│ 2  do something                                              │
│ 3  nested page                                               │
│                                                              │
├──────────────────────────────────────────────────────────────┤
│ e  exit application  |  q  quit current page                 │
└──────────────────────────────────────────────────────────────┘
> 

Install

pip install repli

Usage

Example:

page = Page(name="0", description="home")

@page.command(type=NativeFunction, name="1", description="print hello world")
def command_print_hello_world():
    print("hello world")

@page.command(type=Subprocess, name="2", description="do something")
def command_do_something():
    return "echo something else"

nested_page = Page(name="3", description="nested page")
page.add_page(page=nested_page)

interpreter = Interpreter(page=page, name="myapp")
interpreter.loop()

Source

Development

Requirements:

Poetry

Setup environment:

poetry shell
poetry install

Run example application:

poetry run example

Type check:

poetry run mypy ./example ./repli ./tests

Format:

poetry run black ./example ./repli ./tests

Lint:

poetry run flake8 ./example ./repli ./tests --config ./.flake8

Test:

poetry run pytest

Coverage:

poetry run coverage run -m pytest &&
poetry run coverage report -m

Export requirements.txt:

poetry export --dev --without-hashes --format=requirements.txt > requirements.txt

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

repli-0.2.5.tar.gz (8.1 kB view details)

Uploaded Source

Built Distribution

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

repli-0.2.5-py3-none-any.whl (10.0 kB view details)

Uploaded Python 3

File details

Details for the file repli-0.2.5.tar.gz.

File metadata

  • Download URL: repli-0.2.5.tar.gz
  • Upload date:
  • Size: 8.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.21

File hashes

Hashes for repli-0.2.5.tar.gz
Algorithm Hash digest
SHA256 323bae531d59312287816a5292388e176802c54e90cee2bcf0280ce1cfc2b755
MD5 7b535c1b8f9f72528872dbd39274f084
BLAKE2b-256 b98fdf8aac552d4495d17e6936642f353b9e202b5a85e673322dc602d3dbb053

See more details on using hashes here.

File details

Details for the file repli-0.2.5-py3-none-any.whl.

File metadata

  • Download URL: repli-0.2.5-py3-none-any.whl
  • Upload date:
  • Size: 10.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.21

File hashes

Hashes for repli-0.2.5-py3-none-any.whl
Algorithm Hash digest
SHA256 050b2cef07e76d6fcdb4cff412612556bde20eb763a84f3c48575463d1b86c1d
MD5 e1e6e69b8f4735f90cfe27443b597f15
BLAKE2b-256 8473916a9cafc3d15f984616cb83dc358e7735795ca07fa5ea12394238d14119

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