def remove(self): if not isdir(self.meta_dir): print "Error: Can't find meta data for:", self.cname return self.read_meta() n = 0 getLogger('progress.start').info(dict( amount = len(self.files), # number of files disp_amount = human_bytes(self.installed_size), filename = self.fn, action = 'removing')) self.install_app(remove=True) self.run('pre_egguninst.py') for p in self.files: n += 1 getLogger('progress.update').info(n) if self.hook and not p.startswith(self.pkgs_dir): continue rm_rf(p) if p.endswith('.py'): rm_rf(p + 'c') self.rm_dirs() rm_rf(self.meta_dir) if self.hook: rm_empty_dir(self.pkg_dir) else: rm_empty_dir(self.egginfo_dir) getLogger('progress.stop').info(None)
def remove(self): if not isdir(self.meta_dir): print "Error: Can't find meta data for:", self.cname return if self.evt_mgr: from encore.events.api import ProgressManager else: from console import ProgressManager self.read_meta() n = 0 progress = ProgressManager( self.evt_mgr, source=self, operation_id=uuid4(), message="removing egg", steps=len(self.files), # --- progress_type="removing", filename=self.fn, disp_amount=human_bytes(self.installed_size), super_id=getattr(self, 'super_id', None)) self.install_app(remove=True) self.run('pre_egguninst.py') with progress: for p in self.files: n += 1 progress(step=n) rm_rf(p) if p.endswith('.py'): rm_rf(p + 'c') self.rm_dirs() rm_rf(self.meta_dir) rm_empty_dir(self.egginfo_dir)
def remove(self): if not isdir(self.meta_dir): print "Error: Can't find meta data for:", self.cname return self.read_meta() n = 0 nof = len(self.files) # number of files self.progress_callback(0, self.installed_size) self.install_app(remove=True) self.run('pre_egguninst.py') for p in self.files: n += 1 self.progress_callback(n, nof) rm_rf(p) if p.endswith('.py'): rm_rf(p + 'c') self.rm_dirs() rm_rf(self.meta_dir) if self.hook: rm_empty_dir(self.pkg_dir) else: rm_empty_dir(self.egginfo_dir)
def rm_dirs(self): dir_paths = set() len_prefix = len(self.prefix) for path in set(dirname(p) for p in self.files): while len(path) > len_prefix: dir_paths.add(path) path = dirname(path) for path in sorted(dir_paths, key=len, reverse=True): rm_empty_dir(path)
def rm_dirs(self): dir_paths = set() len_prefix = len(self.prefix) for path in set(dirname(p) for p in self.files): while len(path) > len_prefix: dir_paths.add(path) path = dirname(path) for path in sorted(dir_paths, key=len, reverse=True): if not path.rstrip(sep).endswith('site-packages'): rm_empty_dir(path)
def remove(self): if not isdir(self.meta_dir): print "Error: Can't find meta data for:", self.cname return if self.evt_mgr: from encore.events.api import ProgressManager else: from console import ProgressManager self.read_meta() n = 0 progress = ProgressManager( self.evt_mgr, source=self, operation_id=uuid4(), message="removing egg", steps=len(self.files), # --- progress_type="removing", filename=self.fn, disp_amount=human_bytes(self.installed_size), super_id=getattr(self, 'super_id', None)) self.install_app(remove=True) self.run('pre_egguninst.py') with progress: for p in self.files: n += 1 progress(step=n) if self.hook and not p.startswith(self.pkgs_dir): continue rm_rf(p) if p.endswith('.py'): rm_rf(p + 'c') self.rm_dirs() rm_rf(self.meta_dir) if self.hook: rm_empty_dir(self.pkg_dir) else: rm_empty_dir(self.egginfo_dir)
def remove(self): rm_empty_dir(self.path)