Skip to main content

Python-Editline

This is a package which is a replacement for GNU Readline for use as shell-completion support. It is designed to:

  • link to libedit.so on the host system (This covers most *BSD based systems and Linux if you install libedit2 package)

  • if no host libedit.so is available, libedit will be directly compiled into the extension itself

All code is released under the BSD-3 license, which makes this an alternative in cases where GNU-based readline is a problem.

Usage

After a standard, uneventful installation, you should automatically have tab-completion using editline. This is configured in a sitecustomize.py file added to your install or virtual-env.

This extension has more extensive features than readline such as:

  • tab-completion of imports by default

  • tab-completion across arrays (so you can see/pick a valid index)

  • tab-completion across dictionaries (displays available keys)

  • Right-side prompts

  • Arbitrary input/output/error streams so you can have multiple interpreters on a single Python instance which are fully independent. (‘readline’ uses C globals so you are stuck with just one instance)

The system is broken down in 3 components:

_editline.so:

the C interface to libedit

editline.py:

a Python subclass of _editline which implements much of the string parsing/manipulation

lineeditor.py:

a general module which extends rlcompleter’s functionality and provides additional features.

Again, by default this is entirely hidden.

Installation

Handy tips for installation. 99.9% of folks will be able to use the default install (… by SDIST!). It will customize your build based on finding stuff.

In the (odd) case where you have libedit.so and you really want to have editline use the built-in version (say, your distro’s libedit.so is borked) you can adjust the installer.

Run the pip install like this:

pip install --global-option="build" --global-option="--builtin-libedit"  pyeditline

That will bypass the use of your local libedit.so. (… and if anyone has a better way to do this, I’m all ears.)

Gory Details?

Have a look at the README in the source repo or in readthedocs.io .

Metadata

Release files for pyeditline 2.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pyeditline 2.0.1
File Size Uploaded Provenance Actions
pyeditline-2.0.1.tar.gz 217.3 kB Without provenance Details for pyeditline-2.0.1.tar.gz

Release files / pyeditline-2.0.1.tar.gz

Download URL pyeditline-2.0.1.tar.gz
Size 217.3 kB
Tags Source
SHA-256 checksum
How to use checksums
171ce150489a7516031d8070a9da9a3f2c5d1c2a13e59c0e88e7c68d4905996a
BLAKE2b-256 checksum
How to use checksums
686b2fb61c72bc28198be5b4fdd45c695eeb36eb01680c6514453ebb7c44538a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.7.6

Security for pyeditline 2.0.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page