Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/takluyver/entrypoints
Discover and load entry points from installed packages
https://github.com/takluyver/entrypoints
Last synced: about 16 hours ago
JSON representation
Discover and load entry points from installed packages
- Host: GitHub
- URL: https://github.com/takluyver/entrypoints
- Owner: takluyver
- License: mit
- Created: 2015-05-02T18:12:08.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2024-12-03T13:46:49.000Z (23 days ago)
- Last Synced: 2024-12-13T17:16:09.848Z (12 days ago)
- Language: Python
- Homepage: https://entrypoints.readthedocs.io/
- Size: 71.3 KB
- Stars: 73
- Watchers: 7
- Forks: 30
- Open Issues: 4
-
Metadata Files:
- Readme: README.rst
- License: LICENSE
Awesome Lists containing this project
README
**This package is in maintenance-only mode.** New code should use the
`importlib.metadata module `_
in the Python standard library to find and load entry points.Entry points are a way for Python packages to advertise objects with some
common interface. The most common examples are ``console_scripts`` entry points,
which define shell commands by identifying a Python function to run.*Groups* of entry points, such as ``console_scripts``, point to objects with
similar interfaces. An application might use a group to find its plugins, or
multiple groups if it has different kinds of plugins.The **entrypoints** module contains functions to find and load entry points.
You can install it from PyPI with ``pip install entrypoints``.To advertise entry points when distributing a package, see
`entry_points in the Python Packaging User Guide
`_.The ``pkg_resources`` module distributed with ``setuptools`` provides a way to
discover entrypoints as well, but it contains other functionality unrelated to
entrypoint discovery, and it does a lot of work at import time. Merely
*importing* ``pkg_resources`` causes it to scan the files of all installed
packages. Thus, in environments where a large number of packages are installed,
importing ``pkg_resources`` can be very slow (several seconds).By contrast, ``entrypoints`` is focused solely on entrypoint discovery and it
is faster. Importing ``entrypoints`` does not scan anything, and getting a
given entrypoint group performs a more focused scan.When there are multiple versions of the same distribution in different
directories on ``sys.path``, ``entrypoints`` follows the rule that the first
one wins. In most cases, this follows the logic of imports. Similarly,
Entrypoints relies on ``pip`` to ensure that only one ``.dist-info`` or
``.egg-info`` directory exists for each installed package. There is no reliable
way to pick which of several `.dist-info` folders accurately relates to the
importable modules.