Source code for magmap.io.packaging
# Utilities for packaging
"""Provide utilities for packaging the application."""
import os
import pkg_resources
import importlib_resources
[docs]
def get_pkg_egg(name, prefix=None):
"""Get package egg-info path.
Args:
name (str): Package name.
prefix (str): Start of output path; defaults to None.
Returns:
str, str: The egg-info path and output path for the given package.
"""
distrib = pkg_resources.get_distribution(name)
egg_name = os.path.basename(distrib.egg_info)
if prefix:
egg_name = os.path.join(prefix, egg_name)
paths = (distrib.egg_info, egg_name)
print("Adding package egg-info path:", paths)
return paths
[docs]
def get_pkg_path(name, prefix=None):
"""Get path to the installed package.
Args:
name (str): Package name.
prefix (str): Start of output path; defaults to None.
Returns:
str, str: The package path and output path for the given package.
"""
pkg_dir = name
for entry in importlib_resources.files(name).iterdir():
pkg_dir = os.path.dirname(entry)
break
out_path = os.path.basename(pkg_dir)
if prefix:
out_path = os.path.join(prefix, out_path)
paths = (pkg_dir, out_path)
print("Adding package path:", paths)
return paths