entrypoints


Nameentrypoints JSON
Version 0.4 PyPI version JSON
download
home_pagehttps://github.com/takluyver/entrypoints
SummaryDiscover and load entry points from installed packages.
upload_time2022-02-02 21:30:28
maintainer
docs_urlhttps://pythonhosted.org/entrypoints/
authorThomas Kluyver
requires_python>=3.6
license
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            **This package is in maintenance-only mode.** New code should use the
`importlib.metadata module <https://docs.python.org/3/library/importlib.metadata.html>`_
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
<https://packaging.python.org/guides/distributing-packages-using-setuptools/#entry-points>`_.

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.
            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/takluyver/entrypoints",
    "name": "entrypoints",
    "maintainer": "",
    "docs_url": "https://pythonhosted.org/entrypoints/",
    "requires_python": ">=3.6",
    "maintainer_email": "",
    "keywords": "",
    "author": "Thomas Kluyver",
    "author_email": "thomas@kluyver.me.uk",
    "download_url": "https://files.pythonhosted.org/packages/ea/8d/a7121ffe5f402dc015277d2d31eb82d2187334503a011c18f2e78ecbb9b2/entrypoints-0.4.tar.gz",
    "platform": "",
    "description": "**This package is in maintenance-only mode.** New code should use the\n`importlib.metadata module <https://docs.python.org/3/library/importlib.metadata.html>`_\nin the Python standard library to find and load entry points.\n\nEntry points are a way for Python packages to advertise objects with some\ncommon interface. The most common examples are ``console_scripts`` entry points,\nwhich define shell commands by identifying a Python function to run.\n\n*Groups* of entry points, such as ``console_scripts``, point to objects with\nsimilar interfaces. An application might use a group to find its plugins, or\nmultiple groups if it has different kinds of plugins.\n\nThe **entrypoints** module contains functions to find and load entry points.\nYou can install it from PyPI with ``pip install entrypoints``.\n\nTo advertise entry points when distributing a package, see\n`entry_points in the Python Packaging User Guide\n<https://packaging.python.org/guides/distributing-packages-using-setuptools/#entry-points>`_.\n\nThe ``pkg_resources`` module distributed with ``setuptools`` provides a way to\ndiscover entrypoints as well, but it contains other functionality unrelated to\nentrypoint discovery, and it does a lot of work at import time.  Merely\n*importing* ``pkg_resources`` causes it to scan the files of all installed\npackages. Thus, in environments where a large number of packages are installed,\nimporting ``pkg_resources`` can be very slow (several seconds).\n\nBy contrast, ``entrypoints`` is focused solely on entrypoint discovery and it\nis faster. Importing ``entrypoints`` does not scan anything, and getting a\ngiven entrypoint group performs a more focused scan.\n\nWhen there are multiple versions of the same distribution in different\ndirectories on ``sys.path``, ``entrypoints`` follows the rule that the first\none wins.  In most cases, this follows the logic of imports.  Similarly,\nEntrypoints relies on ``pip`` to ensure that only one ``.dist-info`` or\n``.egg-info`` directory exists for each installed package.  There is no reliable\nway to pick which of several `.dist-info` folders accurately relates to the\nimportable modules.",
    "bugtrack_url": null,
    "license": "",
    "summary": "Discover and load entry points from installed packages.",
    "version": "0.4",
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "md5": "1c8f717951f0d2f0125739753eda6bdc",
                "sha256": "f174b5ff827504fd3cd97cc3f8649f3693f51538c7e4bdf3ef002c8429d42f9f"
            },
            "downloads": -1,
            "filename": "entrypoints-0.4-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "1c8f717951f0d2f0125739753eda6bdc",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.6",
            "size": 5294,
            "upload_time": "2022-02-02T21:30:26",
            "upload_time_iso_8601": "2022-02-02T21:30:26.024667Z",
            "url": "https://files.pythonhosted.org/packages/35/a8/365059bbcd4572cbc41de17fd5b682be5868b218c3c5479071865cab9078/entrypoints-0.4-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "3acd8b72119a8fb1eac7030c24ac6b49",
                "sha256": "b706eddaa9218a19ebcd67b56818f05bb27589b1ca9e8d797b74affad4ccacd4"
            },
            "downloads": -1,
            "filename": "entrypoints-0.4.tar.gz",
            "has_sig": false,
            "md5_digest": "3acd8b72119a8fb1eac7030c24ac6b49",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.6",
            "size": 13974,
            "upload_time": "2022-02-02T21:30:28",
            "upload_time_iso_8601": "2022-02-02T21:30:28.172295Z",
            "url": "https://files.pythonhosted.org/packages/ea/8d/a7121ffe5f402dc015277d2d31eb82d2187334503a011c18f2e78ecbb9b2/entrypoints-0.4.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2022-02-02 21:30:28",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "github_user": "takluyver",
    "github_project": "entrypoints",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "entrypoints"
}
        
Elapsed time: 0.10808s