From ae229d84451f1751d33e02c743b82153431ed32e Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Tue, 1 Jun 2010 11:27:51 -0700 Subject: Add a Package.copy() method. --- pym/_emerge/Package.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'pym') diff --git a/pym/_emerge/Package.py b/pym/_emerge/Package.py index 845d30775..9df7b644c 100644 --- a/pym/_emerge/Package.py +++ b/pym/_emerge/Package.py @@ -23,7 +23,7 @@ class Package(Task): "category", "counter", "cp", "cpv_split", "inherited", "invalid", "iuse", "masks", "mtime", "pf", "pv_split", "root", "slot", "slot_atom", "visible",) + \ - ("_use",) + ("_raw_metadata", "_use",) metadata_keys = [ "BUILD_TIME", "CHOST", "COUNTER", "DEPEND", "EAPI", @@ -35,7 +35,8 @@ class Package(Task): def __init__(self, **kwargs): Task.__init__(self, **kwargs) self.root = self.root_config.root - self.metadata = _PackageMetadataWrapper(self, self.metadata) + self._raw_metadata = _PackageMetadataWrapperBase(self.metadata) + self.metadata = _PackageMetadataWrapper(self, self._raw_metadata) if not self.built: self.metadata['CHOST'] = self.root_config.settings.get('CHOST', '') self.cp = portage.cpv_getkey(self.cpv) @@ -53,6 +54,12 @@ class Package(Task): self.masks = self._masks() self.visible = self._visible(self.masks) + def copy(self): + return Package(built=self.built, cpv=self.cpv, depth=self.depth, + installed=self.installed, metadata=self._raw_metadata, + onlydeps=self.onlydeps, operation=self.operation, + root_config=self.root_config, type_name=self.type_name) + def _masks(self): masks = {} settings = self.root_config.settings -- cgit v1.2.3-1-g7c22