예제 #1
0
 def initialize(self):
     """Instentiate VCS factories. This will detect if they are
     available or not.
     """
     __status__ = u"Detecting VCS systems."
     if self._initialized:
         return
     for name, factory in working_set.iter_all_entry_points('setup_vcs'):
         self._vcs[name] = factory()
     self._initialized = True
예제 #2
0
 def prepare(self, context):
     __status__ = u"Preparing extensions sources."
     installers = Installers()
     for name, package in working_set.iter_all_entry_points(
         'setup_extensions'):
         if self.enabled is not None and name not in self.enabled:
             continue
         if not hasattr(package, '__path__'):
             raise InstallationError(u"Invalid extension entry point", name)
         directory = package.__path__[0]
         for name in os.listdir(directory):
             path = os.path.join(directory, name)
             if os.path.isdir(path):
                 if name in installers:
                     raise InstallationError(
                         u'Duplicate extension source',
                         path,
                         installers[name])
                 installers.add(ExtractedPackageInstaller(
                         context, name=name, path=path))
     if installers:
         return Query(context, installers)
     return None