diff options
Diffstat (limited to 'pym/portage/package/ebuild/_config/LicenseManager.py')
-rw-r--r-- | pym/portage/package/ebuild/_config/LicenseManager.py | 36 |
1 files changed, 9 insertions, 27 deletions
diff --git a/pym/portage/package/ebuild/_config/LicenseManager.py b/pym/portage/package/ebuild/_config/LicenseManager.py index 4ce1123b0..e092e411f 100644 --- a/pym/portage/package/ebuild/_config/LicenseManager.py +++ b/pym/portage/package/ebuild/_config/LicenseManager.py @@ -5,8 +5,6 @@ __all__ = ( 'LicenseManager', ) -from copy import deepcopy - from portage import os from portage.dep import ExtendedAtomDict, use_reduce from portage.exception import InvalidDependString @@ -19,46 +17,30 @@ from portage.package.ebuild._config.helper import ordered_by_atom_specificity class LicenseManager(object): - def __init__(self, _copy=False): - if _copy: - return + def __init__(self, license_group_locations, abs_user_config, user_config=True): + self._accept_license_str = None self._accept_license = None self._license_groups = {} self._plicensedict = ExtendedAtomDict(dict) self._undef_lic_groups = set() - def __deepcopy__(self, memo=None): - - if memo is None: - memo = {} - result = LicenseManager(_copy=True) - memo[id(self)] = result - - # immutable attributes - result._accept_license_str = self._accept_license_str - memo[id(self._accept_license_str)] = self._accept_license_str - result._accept_license = self._accept_license - memo[id(self._accept_license)] = self._accept_license - - # immutable attributes (internal policy ensures lack of mutation) - result._license_groups = self._license_groups - memo[id(self._license_groups)] = self._license_groups + if user_config: + license_group_locations = list(license_group_locations) + [abs_user_config] - # mutable attributes - result._plicensedict = deepcopy(self._plicensedict, memo) - result._undef_lic_groups = deepcopy(self._undef_lic_groups, memo) + self._read_license_groups(license_group_locations) - return result + if user_config: + self._read_user_config(abs_user_config) - def read_config_files(self, abs_user_config): + def _read_user_config(self, abs_user_config): licdict = grabdict_package(os.path.join( abs_user_config, "package.license"), recursive=1, allow_wildcard=True) for k, v in licdict.items(): self._plicensedict.setdefault(k.cp, {})[k] = \ self.expandLicenseTokens(v) - def parse_license_groups(self, locations): + def _read_license_groups(self, locations): for loc in locations: for k, v in grabdict( os.path.join(loc, "license_groups")).items(): |