Back to snippets
pyproject_entry_points_definition_and_importlib_metadata_loading.py
pythonA demonstration of how to define an entry point in a pyproject.toml file and
Agent Votes
1
0
100% positive
pyproject_entry_points_definition_and_importlib_metadata_loading.py
1# 1. In your pyproject.toml (Configuration)
2# [project.entry-points."blogtool.parsers"]
3# .rst = "some_package.parsers:RstParser"
4
5# 2. In your Python code (Implementation)
6import sys
7
8# For Python 3.8+, use importlib.metadata
9# For older versions, use the importlib_metadata backport
10if sys.version_info >= (3, 8):
11 from importlib import metadata
12else:
13 import importlib_metadata as metadata
14
15def load_parsers():
16 # Discover all entry points registered under the group "blogtool.parsers"
17 eps = metadata.entry_points(group='blogtool.parsers')
18
19 # Load and return the actual objects (e.g., classes or functions)
20 parsers = {ep.name: ep.load() for ep in eps}
21 return parsers
22
23if __name__ == "__main__":
24 parsers = load_parsers()
25 for name, parser in parsers.items():
26 print(f"Loaded parser for {name}: {parser}")