Read & write entry_points.txt files
Project description
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.6 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 object reference (the part before the colon)
- object: Optional[str]
The object/attribute portion of the object 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’s object reference
- 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:object [extras]
load()
entry_points_txt.load(fp: IO[str]) -> Dict[str, Dict[str, EntryPoint]]
Parse a file-like object as an entry_points.txt-format file and return the results. The parsed entry points are returned in a dict mapping each group name to a dict mapping each entry point name to an EntryPoint object.
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__", object="main", extras=()),
"bar": EntryPoint(group="console_scripts", name="bar", module="package.cli", object="klass.attr", extras=()),
},
"thingy.extension": {
"quux": EntryPoint(group="thingy.extension", name="quux", module="package.thingy", object=None, extras=("xtr",)),
},
}
loads()
entry_points_txt.loads(s: str) -> Dict[str, Dict[str, EntryPoint]]
Like load(), but reads from a string instead of a filehandle
dump()
entry_points_txt.dump(eps: Dict[str, Dict[str, EntryPoint]], fp: IO[str]) -> None
Write a collection of entry points (in the same structure as returned by load()) 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: Dict[str, Dict[str, EntryPoint]]) -> 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for entry_points_txt-0.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 29773bed3d9d337766a394e19d6f7ab0be3ed7d6f3ebb753ff0f7f48f056aa8e |
|
MD5 | 4cb9886b6b9fc9416cb5343c8e7c067f |
|
BLAKE2b-256 | b11177ce6095893081b8a92af87290a6b43c8436e61a40821fef18de88180473 |