Skip to main content

A simple python class for creating Read Evaluate Print Line (REPL) interfaces

Project description

Easy REPL

A simple python class for creating Read Evaluate Print Line (REPL) interfaces.

Requirements

This module requires Python 3.7 or higher.

Additionally this library makes use of the GNU readline Interface, so it will only work on Unix based systems.

Usage

This module exposes the REPL class which can be used to quickly create a REPL interface. REPL will read in a line of user input via a custom input function that allows you to edit the text by moving the cursor with the arrow keys, as well as view the history of previous inputs.

from easyrepl import REPL

for line in REPL():
    # do something with line
    print(line)

which will create a simple echoing REPL interface that repeats any line you type into it.

>>> hello
hello
>>> world
world
>>>

The input allows common terminal shortcuts like:

  • Ctrl-D: exit REPL
  • Ctrl-L: clear screen
  • Ctrl-R: search history
  • Left/Right Arrow: move cursor left/right
  • Up/Down Arrow: previous/next history
  • Ctrl-A: move cursor to beginning of line
  • Ctrl-E: move cursor to end of line
  • Alt-B: move cursor backward one word
  • Alt-F: move cursor forward one word
  • Ctrl-K: delete from cursor to end of line
  • Ctrl-U: delete from cursor to beginning of line
  • Ctrl-W: delete from cursor to beginning of word
  • Alt-D: delete from cursor to end of word
  • Ctrl-C: no operation
  • etc.

Additionally, multi-line input can be achieved by starting a line with triple quotes (""" or '''), and ending the final line with a matching triple quote. Triple quotes in the middle of a line will have no effect.

>>> """
... This is a multi-line input
... that will continue until
... the user enters three quotes
... at the end of a line
... """
This is a multi-line input
that will continue until
the user enters three quotes
at the end of a line
>>>

Note that a single newline will be stripped from the beginning and end of the input if present.

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

easyrepl-0.2.0.tar.gz (4.2 kB view details)

Uploaded Source

Built Distribution

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

easyrepl-0.2.0-py3-none-any.whl (4.8 kB view details)

Uploaded Python 3

File details

Details for the file easyrepl-0.2.0.tar.gz.

File metadata

  • Download URL: easyrepl-0.2.0.tar.gz
  • Upload date:
  • Size: 4.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.5 CPython/3.8.20 Linux/5.18.19-051819-generic

File hashes

Hashes for easyrepl-0.2.0.tar.gz
Algorithm Hash digest
SHA256 4c9b8954b1bf8ced7837ada46f8e158f93903016cde513958a4c9b64d6115d52
MD5 c4ac508bda21a633656f6789e6cfc185
BLAKE2b-256 f4aa2a2e98107309d85f9c46552bbbaa97f56a40c4914e379122e2630b8edce0

See more details on using hashes here.

File details

Details for the file easyrepl-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: easyrepl-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 4.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.5 CPython/3.8.20 Linux/5.18.19-051819-generic

File hashes

Hashes for easyrepl-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 95dd17b39ea8091c69b90cac27e10825ecec778f703b208ad00e6c98db672c3b
MD5 9f009afd6dc9833e285c172cbf3358a3
BLAKE2b-256 cbb03dbe05e09aae8572eb1ce46eedce2be0209419cee81c8564d61bb151c68e

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