Source code for ewoksorange.pkg_meta
from typing import Optional
import importlib.metadata
from packaging.version import Version
try:
_USE_IMPORTLIB = Version(
importlib.metadata.version("orange-canvas-core")
) >= Version("0.2.0")
# orange-canvas-core>=0.2.0
# orange-widget-base>=4.23.0
# orange3>=3.37.0
#
# https://github.com/biolab/orange-canvas-core/pull/289
# https://github.com/biolab/orange-widget-base/pull/260
# https://github.com/biolab/orange3/pull/6655
except importlib.metadata.PackageNotFoundError:
# Must be Oasys, raise exception otherwise
_ = importlib.metadata.version("oasys-canvas-core")
_USE_IMPORTLIB = False
if _USE_IMPORTLIB:
from ewokscore.entry_points import EntryPoint # noqa F401
from ewokscore.entry_points import entry_points # noqa F401
def get_distribution(
name: str, raise_error: bool = False
) -> Optional[importlib.metadata.Distribution]:
try:
return importlib.metadata.Distribution.from_name(name)
except importlib.metadata.PackageNotFoundError:
if raise_error:
raise
def get_distribution_name(distribution: importlib.metadata.Distribution) -> str:
return distribution.name
else:
import pkg_resources
from pkg_resources import EntryPoint # noqa F401
from pkg_resources import iter_entry_points as entry_points # noqa F401
[docs]
def get_distribution(
name: str, raise_error: bool = False
) -> Optional[pkg_resources.Distribution]:
try:
return pkg_resources.get_distribution(name)
except pkg_resources.DistributionNotFound:
if raise_error:
raise
[docs]
def get_distribution_name(distribution: pkg_resources.Distribution) -> str:
return distribution.project_name