|
46 | 46 | from .wrap_modes import from_string as wrap_mode_from_string
|
47 | 47 |
|
48 | 48 | if TYPE_CHECKING:
|
| 49 | + if sys.version_info < (3, 10): # pragma: no cover |
| 50 | + EntryPoints = Any |
| 51 | + else: |
| 52 | + from importlib.metadata import EntryPoints |
| 53 | + |
49 | 54 | tomllib: Any
|
50 | 55 | else:
|
51 | 56 | if sys.version_info >= (3, 11):
|
@@ -356,9 +361,7 @@ def __init__(
|
356 | 361 | profile: Dict[str, Any] = {}
|
357 | 362 | if profile_name:
|
358 | 363 | if profile_name not in profiles:
|
359 |
| - import pkg_resources |
360 |
| - |
361 |
| - for plugin in pkg_resources.iter_entry_points("isort.profiles"): |
| 364 | + for plugin in entry_points(group="isort.profiles"): |
362 | 365 | profiles.setdefault(plugin.name, plugin.load())
|
363 | 366 |
|
364 | 367 | if profile_name not in profiles:
|
@@ -473,9 +476,7 @@ def __init__(
|
473 | 476 | combined_config["src_paths"] = tuple(src_paths)
|
474 | 477 |
|
475 | 478 | if "formatter" in combined_config:
|
476 |
| - import pkg_resources |
477 |
| - |
478 |
| - for plugin in pkg_resources.iter_entry_points("isort.formatters"): |
| 479 | + for plugin in entry_points(group="isort.formatters"): |
479 | 480 | if plugin.name == combined_config["formatter"]:
|
480 | 481 | combined_config["formatting_function"] = plugin.load()
|
481 | 482 | break
|
@@ -715,9 +716,7 @@ def sorting_function(self) -> Callable[..., List[str]]:
|
715 | 716 | self._sorting_function = sorted
|
716 | 717 | else:
|
717 | 718 | available_sort_orders = ["natural", "native"]
|
718 |
| - import pkg_resources |
719 |
| - |
720 |
| - for sort_plugin in pkg_resources.iter_entry_points("isort.sort_function"): |
| 719 | + for sort_plugin in entry_points(group="isort.sort_function"): |
721 | 720 | available_sort_orders.append(sort_plugin.name)
|
722 | 721 | if sort_plugin.name == self.sort_order:
|
723 | 722 | self._sorting_function = sort_plugin.load()
|
@@ -938,4 +937,17 @@ def _as_bool(value: str) -> bool:
|
938 | 937 | raise ValueError(f"invalid truth value {value}")
|
939 | 938 |
|
940 | 939 |
|
| 940 | +def entry_points(group: str) -> "EntryPoints": |
| 941 | + """Call entry_point after lazy loading it. |
| 942 | +
|
| 943 | + TODO: The reason for lazy loading here are unknown. |
| 944 | + """ |
| 945 | + if sys.version_info < (3, 10): # pragma: no cover |
| 946 | + from importlib_metadata import entry_points |
| 947 | + else: |
| 948 | + from importlib.metadata import entry_points |
| 949 | + |
| 950 | + return entry_points(group=group) |
| 951 | + |
| 952 | + |
941 | 953 | DEFAULT_CONFIG = Config()
|
0 commit comments