コード例 #1
0
ファイル: enpkg.py プロジェクト: cguwilliams/HmyApp
    def revert_actions(self, arg):
        """
        Calculate the actions necessary to revert to a given state, the
        argument may be one of:
          * complete set of eggs, i.e. a set of egg file names
          * revision number (negative numbers allowed)
        """
        h = History(self.top_prefix)
        h.update()
        if isinstance(arg, set):
            state = arg
        else:
            try:
                rev = int(arg)
            except (TypeError, ValueError):
                raise EnpkgError("Invalid argument: integer expected, "
                                 "got: {0!r}".format(arg))
            try:
                state = h.get_state(rev)
            except IndexError:
                raise EnpkgError("Error: no such revision: %r" % arg)

        curr = h.get_state()
        if state == curr:
            return []

        res = []
        for egg in curr - state:
            if egg.startswith('enstaller'):
                continue
            res.append(('remove', egg))

        for egg in state - curr:
            if egg.startswith('enstaller'):
                continue
            if not isfile(join(self._downloader.cache_directory, egg)):
                eggname, version = egg_name_to_name_version(egg)
                try:
                    self._remote_repository.find_package(eggname, version)
                    res.append(('fetch_0', egg))
                except NoSuchPackage:
                    raise EnpkgError("cannot revert -- missing %r" % egg)
            res.append(('install', egg))
        return res
コード例 #2
0
 def setUp(self):
     self.history = History('<dummy prefix>')
     self.history._log_path = PATH
     self.package_sets = [
         set([
             'appinst-2.1.0-1.egg', 'basemap-1.0.1-1.egg',
             'biopython-1.57-2.egg'
         ]),
         set([
             'basemap-1.0.2-1.egg', 'biopython-1.57-2.egg',
             'numpy-1.6.1-2.egg'
         ]),
         set([
             'basemap-1.0.2-1.egg', 'biopython-1.57-2.egg',
             'numpy-1.7.0-1.egg'
         ])
     ]
     # Write the history file
     self.history._write_egg_names(self.package_sets[0])
     for i, state in enumerate(self.package_sets[:-1]):
         self.history._write_changes(state, self.package_sets[i + 1])
コード例 #3
0
ファイル: commands.py プロジェクト: cguwilliams/HmyApp
def print_history(prefix):
    h = History(prefix)
    h.update()
    h.print_log()
コード例 #4
0
ファイル: enpkg.py プロジェクト: cguwilliams/HmyApp
 def get_history(self):
     """
     return a history (h) object with this Enpkg instance prefix.
     """
     # FIXME: only used by canopy
     return History(self.top_prefix)
コード例 #5
0
ファイル: enpkg.py プロジェクト: cguwilliams/HmyApp
 def __iter__(self):
     with History(self._top_prefix):
         for action in self._actions:
             logger.info('\t' + str(action))
             yield self._action_factory(action)