You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
63 lines
2.0 KiB
63 lines
2.0 KiB
2 years ago
|
from typing import List, Optional
|
||
|
|
||
|
from .base import BaseDistribution, BaseEnvironment, FilesystemWheel, MemoryWheel, Wheel
|
||
|
|
||
|
__all__ = [
|
||
|
"BaseDistribution",
|
||
|
"BaseEnvironment",
|
||
|
"FilesystemWheel",
|
||
|
"MemoryWheel",
|
||
|
"Wheel",
|
||
|
"get_default_environment",
|
||
|
"get_environment",
|
||
|
"get_wheel_distribution",
|
||
|
]
|
||
|
|
||
|
|
||
|
def get_default_environment() -> BaseEnvironment:
|
||
|
"""Get the default representation for the current environment.
|
||
|
|
||
|
This returns an Environment instance from the chosen backend. The default
|
||
|
Environment instance should be built from ``sys.path`` and may use caching
|
||
|
to share instance state accorss calls.
|
||
|
"""
|
||
|
from .pkg_resources import Environment
|
||
|
|
||
|
return Environment.default()
|
||
|
|
||
|
|
||
|
def get_environment(paths: Optional[List[str]]) -> BaseEnvironment:
|
||
|
"""Get a representation of the environment specified by ``paths``.
|
||
|
|
||
|
This returns an Environment instance from the chosen backend based on the
|
||
|
given import paths. The backend must build a fresh instance representing
|
||
|
the state of installed distributions when this function is called.
|
||
|
"""
|
||
|
from .pkg_resources import Environment
|
||
|
|
||
|
return Environment.from_paths(paths)
|
||
|
|
||
|
|
||
|
def get_directory_distribution(directory: str) -> BaseDistribution:
|
||
|
"""Get the distribution metadata representation in the specified directory.
|
||
|
|
||
|
This returns a Distribution instance from the chosen backend based on
|
||
|
the given on-disk ``.dist-info`` directory.
|
||
|
"""
|
||
|
from .pkg_resources import Distribution
|
||
|
|
||
|
return Distribution.from_directory(directory)
|
||
|
|
||
|
|
||
|
def get_wheel_distribution(wheel: Wheel, canonical_name: str) -> BaseDistribution:
|
||
|
"""Get the representation of the specified wheel's distribution metadata.
|
||
|
|
||
|
This returns a Distribution instance from the chosen backend based on
|
||
|
the given wheel's ``.dist-info`` directory.
|
||
|
|
||
|
:param canonical_name: Normalized project name of the given wheel.
|
||
|
"""
|
||
|
from .pkg_resources import Distribution
|
||
|
|
||
|
return Distribution.from_wheel(wheel, canonical_name)
|