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_factory = PageFactory()

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

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

nested_page_factory = PageFactory()
nested_page = nested_page_factory.get(name="3", description="nested page")
page_factory.add_page(page=nested_page)

page = page_factory.get(name="home", description="home")
interpreter = Interpreter(page=page, name="myapp")
interpreter.loop()

Source

Development

Requirements:

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.3.tar.gz (8.2 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.3-py3-none-any.whl (10.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: repli-0.2.3.tar.gz
  • Upload date:
  • Size: 8.2 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.3.tar.gz
Algorithm Hash digest
SHA256 e63b8166d50c0a3730a55ca7e75cf51711abf0b8176cbff6ec253cba257f6c91
MD5 655a3e706dd9f0c65f375b45a969226b
BLAKE2b-256 8490b741952bd5fa67971aacc2c89c03515055f1bcd01d8c87e7d891fce29176

See more details on using hashes here.

File details

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

File metadata

  • Download URL: repli-0.2.3-py3-none-any.whl
  • Upload date:
  • Size: 10.1 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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 2a34cb03e225d513c8d2717021676ade7c73739bb03e395fbd66e6c028d643e3
MD5 306595786a9483ee204d8600fe892a4a
BLAKE2b-256 e12e5d68987610f34cc4f2f140c123caa9b05e3c427ccaaec164622ea1561d3c

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