entry-points-txt 0.2.0

Creator: bradpython12

Last updated:

Add to Cart

Description:

entrypointstxt 0.2.0

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.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 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

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.