Skip to main content

Read & write entry_points.txt files

Project description

Project Status: Active — The project has reached a stable, usable state and is being actively developed. CI Status coverage pyversions MIT License

GitHub | PyPI | Issues | Changelog

entry-points-txt provides functions for reading & writing entry_points.txt files according to the spec. That is the one thing it does, and it endeavors to do it well.

Installation

entry-points-txt requires Python 3.8 or higher. Just use pip for Python 3 (You have pip, right?) to install entry-points-txt:

python3 -m pip install entry-points-txt

API

EntryPoint

class EntryPoint(NamedTuple)

A representation of an entry point as a namedtuple. Instances have the following attributes and methods:

group: str

The name of the entry point group (e.g., "console_scripts")

name: str

The name of the entry point

module: str

The module portion of the attribute reference (the part before the colon)

attr: Optional[str]

The attribute/object portion of the attribute reference (the part after the colon), or None if not specified

extras: Tuple[str, ...]

Extras required for the entry point

load() -> Any

Returns the object referred to by the entry point

to_line() -> str

Returns the representation of the entry point as a line in entry_points.txt, i.e., a line of the form name = module:attr [extras]

EntryPointSet

EntryPointSet = Dict[str, Dict[str, EntryPoint]]

An alias for the return type of load() & loads() and the argument type of dump() & dumps(). Entry points are organized into a dict that maps group names to sub-dicts that map entry point names to EntryPoint instances.

load()

entry_points_txt.load(fp: IO[str]) -> EntryPointSet

Parse a file-like object as an entry_points.txt-format file and return the results.

For example, the following input:

[console_scripts]
foo = package.__main__:main
bar = package.cli:klass.attr

[thingy.extension]
quux = package.thingy [xtr]

would be parsed as:

{
    "console_scripts": {
        "foo": EntryPoint(group="console_scripts", name="foo", module="package.__main__", attr="main", extras=()),
        "bar": EntryPoint(group="console_scripts", name="bar", module="package.cli", attr="klass.attr", extras=()),
    },
    "thingy.extension": {
        "quux": EntryPoint(group="thingy.extension", name="quux", module="package.thingy", attr=None, extras=("xtr",)),
    },
}

loads()

entry_points_txt.loads(s: str) -> EntryPointSet

Like load(), but reads from a string instead of a filehandle

dump()

entry_points_txt.dump(eps: EntryPointSet, fp: IO[str]) -> None

Write a collection of entry points to a file-like object in entry_points.txt format. A ValueError is raised and nothing is written if the group or name key under which an EntryPoint is located does not match its group or name attribute.

dumps()

entry_points_txt.dumps(eps: EntryPointSet) -> str

Like dump(), but returns a string instead of writing to a filehandle

dump_list()

entry_points_txt.dump_list(eps: Iterable[EntryPoint], fp: IO[str]) -> None

Write an iterable of entry points to a file-like object in entry_points.txt format. If two or more entry points have the same group & name, only the last one will be output.

dumps_list()

entry_points_txt.dumps_list(eps: Iterable[EntryPoint]) -> str

Like dump_list(), but returns a string instead of writing to a filehandle

ParseError

class ParseError(ValueError)

Exception raised by load() or loads() when given invalid input

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

entry_points_txt-0.2.1.tar.gz (8.7 kB view details)

Uploaded Source

Built Distribution

entry_points_txt-0.2.1-py3-none-any.whl (6.9 kB view details)

Uploaded Python 3

File details

Details for the file entry_points_txt-0.2.1.tar.gz.

File metadata

  • Download URL: entry_points_txt-0.2.1.tar.gz
  • Upload date:
  • Size: 8.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.13.0

File hashes

Hashes for entry_points_txt-0.2.1.tar.gz
Algorithm Hash digest
SHA256 2bca930f93d510cb1629c434954f7c7166b98c3cc968df7fd3fc270bc3cf06e9
MD5 5ee2ba22436073396961625f4b9bad0d
BLAKE2b-256 df533b6850a44344a538bb07efdad07aa85690ada7db36574cce1ba257226301

See more details on using hashes here.

File details

Details for the file entry_points_txt-0.2.1-py3-none-any.whl.

File metadata

File hashes

Hashes for entry_points_txt-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 90abc88ac448b19c7ef08388a2ee066e2151da719cd6cbb6437b5deead5c808c
MD5 93d4a8ba22d4bd789567ccaa4a9c15e3
BLAKE2b-256 fb509bd6ef80640ce860767ca0f86673cee3c3f31f570cda54e9b36cb732a53a

See more details on using hashes here.

Supported by

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