Beispiel #1
0
    def _init_env(self, freshenv):
        if freshenv:
            self.env = BuildEnvironment(self.srcdir, self.doctreedir,
                                        self.config)
            self.env.find_files(self.config)
            for domain in self.domains.keys():
                self.env.domains[domain] = self.domains[domain](self.env)
        else:
            try:
                self.info(bold('loading pickled environment... '), nonl=True)
                self.env = BuildEnvironment.frompickle(self.config,
                    path.join(self.doctreedir, ENV_PICKLE_FILENAME))
                self.env.domains = {}
                for domain in self.domains.keys():
                    # this can raise if the data version doesn't fit
                    self.env.domains[domain] = self.domains[domain](self.env)
                self.info('done')
            except Exception as err:
                if type(err) is IOError and err.errno == ENOENT:
                    self.info('not yet created')
                else:
                    self.info('failed: %s' % err)
                return self._init_env(freshenv=True)

        self.env.set_warnfunc(self.warn)
Beispiel #2
0
 def _init_env(self, freshenv):
     if freshenv:
         self.env = BuildEnvironment(self.srcdir, self.doctreedir,
                                     self.config)
         self.env.set_warnfunc(self.warn)
         self.env.find_files(self.config)
         for domain in self.domains.keys():
             self.env.domains[domain] = self.domains[domain](self.env)
     else:
         try:
             self.info(bold('loading pickled environment... '), nonl=True)
             self.env = BuildEnvironment.frompickle(
                 self.srcdir, self.config,
                 path.join(self.doctreedir, ENV_PICKLE_FILENAME))
             self.env.set_warnfunc(self.warn)
             self.env.init_managers()
             self.env.domains = {}
             for domain in self.domains.keys():
                 # this can raise if the data version doesn't fit
                 self.env.domains[domain] = self.domains[domain](self.env)
             self.info('done')
         except Exception as err:
             if isinstance(err, IOError) and err.errno == ENOENT:
                 self.info('not yet created')
             else:
                 self.info('failed: %s' % err)
             return self._init_env(freshenv=True)
Beispiel #3
0
 def _init_env(self, freshenv):
     # type: (bool) -> None
     if freshenv:
         self.env = BuildEnvironment(self)
         self.env.find_files(self.config, self.builder)
         for domain in self.registry.create_domains(self.env):
             self.env.domains[domain.name] = domain
     else:
         try:
             logger.info(bold(__('loading pickled environment... ')),
                         nonl=True)
             filename = path.join(self.doctreedir, ENV_PICKLE_FILENAME)
             self.env = BuildEnvironment.frompickle(filename, self)
             needed, reason = self.env.need_refresh(self)
             if needed:
                 raise IOError(reason)
             self.env.domains = {}
             for domain in self.registry.create_domains(self.env):
                 # this can raise if the data version doesn't fit
                 self.env.domains[domain.name] = domain
             logger.info(__('done'))
         except Exception as err:
             if isinstance(err, IOError) and err.errno == ENOENT:
                 logger.info(__('not yet created'))
             else:
                 logger.info(__('failed: %s'), err)
             self._init_env(freshenv=True)
Beispiel #4
0
    def get_sphinx_environment(self):
        """
        Returns the Sphinx environment for this project.
        """
        from sphinx.environment import BuildEnvironment
        class Foo(object):
            pass
        config = Foo()
        config.values = []

        env_pickle = os.path.join(self._doctrees_dir(), 'environment.pickle')
        try:
            env = BuildEnvironment.frompickle(config, env_pickle)
            logger.debug("Opened Sphinx environment: %s", env_pickle)
            return env
        except IOError as err:
            logger.debug("Failed to open Sphinx environment: %s", err)
            pass
Beispiel #5
0
 def _init_env(self, freshenv):
     # type: (bool) -> None
     if freshenv:
         self.env = BuildEnvironment(self)
         self.env.find_files(self.config, self.builder)
         for domain in self.registry.create_domains(self.env):
             self.env.domains[domain.name] = domain
     else:
         try:
             logger.info(bold(__('loading pickled environment... ')), nonl=True)
             filename = path.join(self.doctreedir, ENV_PICKLE_FILENAME)
             self.env = BuildEnvironment.frompickle(filename, self)
             self.env.domains = {}
             for domain in self.registry.create_domains(self.env):
                 # this can raise if the data version doesn't fit
                 self.env.domains[domain.name] = domain
             logger.info(__('done'))
         except Exception as err:
             if isinstance(err, IOError) and err.errno == ENOENT:
                 logger.info(__('not yet created'))
             else:
                 logger.info(__('failed: %s'), err)
             self._init_env(freshenv=True)
Beispiel #6
0
 def _init_env(self, freshenv):
     # type: (bool) -> None
     filename = path.join(self.doctreedir, ENV_PICKLE_FILENAME)
     if freshenv or not os.path.exists(filename):
         self.env = BuildEnvironment(self)
         self.env.find_files(self.config, self.builder)
         for domain in self.registry.create_domains(self.env):
             self.env.domains[domain.name] = domain
     else:
         try:
             logger.info(bold(__('loading pickled environment... ')), nonl=True)
             self.env = BuildEnvironment.frompickle(filename, self)
             needed, reason = self.env.need_refresh(self)
             if needed:
                 raise IOError(reason)
             self.env.domains = {}
             for domain in self.registry.create_domains(self.env):
                 # this can raise if the data version doesn't fit
                 self.env.domains[domain.name] = domain
             logger.info(__('done'))
         except Exception as err:
             logger.info(__('failed: %s'), err)
             self._init_env(freshenv=True)