예제 #1
0
    def __init__(self, srcdir=None, buildername='html', confoverrides={}):
        self.cleanup_dirs = []
        self.readonly = False

        # source settings
        if srcdir is None:
            srcdir = tempfile.mkdtemp()
            self.cleanup_dirs.append(srcdir)

            open(os.path.join(srcdir, 'conf.py'), 'w').close()
        else:
            self.readonly = True
            if not srcdir.startswith('/'):
                srcdir = os.path.join(testdir, srcdir)

        confdir = srcdir

        # _build/ directory setings
        self.builddir = tempfile.mkdtemp()
        outdir = os.path.join(self.builddir, str(buildername))
        doctreedir = os.path.join(self.builddir, 'doctrees')

        os.mkdir(outdir)
        self.cleanup_dirs.append(self.builddir)

        # misc settings
        status = sys.stdout
        warning = sys.stdout

        Sphinx.__init__(self, srcdir, confdir, outdir, doctreedir,
                        buildername, confoverrides, status, warning)
예제 #2
0
    def __init__(self, ):

        Sphinx.__init__(
            self,
            srcdir=os.path.abspath(""),
            confdir=os.path.abspath(""),
            outdir="result",
            doctreedir="doctreedir",
            buildername="html",
            warningiserror=True,
        )
예제 #3
0
    def __init__(self):
        if not exists(self.on_the_fly_doc_dir):
            os.mkdir(self.on_the_fly_doc_dir)

        Sphinx.__init__(self,
                        srcdir      = self.on_the_fly_doc_dir,
                        confdir     = openalea.misc.__path__[0],
                        outdir      = self.on_the_fly_doc_dir,
                        doctreedir  = self.on_the_fly_doc_dir,
                        buildername = None,
                        freshenv    = True)
예제 #4
0
    def __init__(self):
        if not exists(self.on_the_fly_doc_dir):
            os.mkdir(self.on_the_fly_doc_dir)

        Sphinx.__init__(self,
                        srcdir=self.on_the_fly_doc_dir,
                        confdir=openalea.misc.__path__[0],
                        outdir=self.on_the_fly_doc_dir,
                        doctreedir=self.on_the_fly_doc_dir,
                        buildername=None,
                        freshenv=True)
예제 #5
0
    def __init__(self, srcdir, outdir, confdir=None, doctreedir=None,
                 buildername='html', confoverrides=None, status=None,
                 warning=None, freshenv=False, warningiserror=False, tags=None,
                 copy_srcdir_to_tmpdir=False, create_new_srcdir=False,
                 cleanup_on_errors=True, verbosity=0, parallel=0):
        """
        @param      srcdir                  source folder
        @param      outdir                  output folder
        @param      confdir                 configuration folder, default is srcdir
        @param      doctreedir              doc tree folder
        @param      buildername             HTML by default
        @param      confoverrides           None or dictionary
        @param      status                  StringIO to retrieve them
        @param      warning                 StringIO to retrieve them
        @param      freshenv                boolean
        @param      warningiserror          warning as errors?
        @param      tags                    additional documentation
        @param      cleanup_on_errors       force cleanup on errors
        @param      verbosity               integer
        @param      parallel                integer (number of threads)
        """
        self.cleanup_trees = []
        self.cleanup_on_errors = cleanup_on_errors
        srcdir = os.path.abspath(srcdir)
        outdir = os.path.abspath(outdir)

        if confdir is None:
            confdir = srcdir
        else:
            confdir = os.path.abspath(confdir)

        if doctreedir is None:
            doctreedir = os.path.join(outdir, '_pyq', 'doctrees')
            if not os.path.exists(doctreedir):
                os.makedirs(doctreedir)

        if confoverrides is None:
            confoverrides = {}
        if status is None:
            status = StringIO()
        if warning is None:
            warning = StringIO()

        Sphinx.__init__(self, srcdir, confdir, outdir, doctreedir,
                        buildername, confoverrides, status,
                        warning, freshenv, warningiserror, tags,
                        verbosity, parallel)
예제 #6
0
    def __init__(self,
                 srcdir,
                 outdir,
                 confdir=None,
                 doctreedir=None,
                 buildername='html',
                 confoverrides=None,
                 status=None,
                 warning=None,
                 freshenv=False,
                 warningiserror=False,
                 tags=None,
                 copy_srcdir_to_tmpdir=False,
                 create_new_srcdir=False,
                 cleanup_on_errors=True,
                 verbosity=0,
                 parallel=0,
                 extensions='all'):
        """
        @param      srcdir                  source folder
        @param      outdir                  output folder
        @param      confdir                 configuration folder, default is srcdir
        @param      doctreedir              doc tree folder
        @param      buildername             HTML by default
        @param      confoverrides           None or dictionary
        @param      status                  StringIO to retrieve them
        @param      warning                 StringIO to retrieve them
        @param      freshenv                boolean
        @param      warningiserror          warning as errors?
        @param      tags                    additional documentation
        @param      copy_srcdir_to_tmpdir   copy the source to a temporary directory
        @param      create_new_srcdir       create a new source directory
        @param      cleanup_on_errors       force cleanup on errors
        @param      verbosity               integer
        @param      parallel                integer (number of threads)
        @param      extensions              if ``'all'``, add extensions implemented
                                            by this module, use ``None`` for an empty list,
                                            'extensions' must not be in *confoverrides*
        """
        self.cleanup_trees = []
        self.cleanup_on_errors = cleanup_on_errors
        srcdir = os.path.abspath(srcdir)
        outdir = os.path.abspath(outdir)

        if confdir is None:
            confdir = srcdir
        else:
            confdir = os.path.abspath(confdir)

        if doctreedir is None:
            doctreedir = os.path.join(outdir, '_pyq', 'doctrees')
            if not os.path.exists(doctreedir):
                os.makedirs(doctreedir)

        if confoverrides is None:
            confoverrides = {}
        if status is None:
            status = StringIO()
        if warning is None:
            warning = StringIO()

        if buildername == "rst":
            from ..sphinxext.sphinx_rst_builder import RstBuilder
            module = RstBuilder.__module__
        elif buildername == "md":
            from ..sphinxext.sphinx_md_builder import MdBuilder
            module = MdBuilder.__module__
        elif buildername in ("latex", "elatex", "pdf"):
            from ..sphinxext.sphinx_latex_builder import EnhancedLaTeXBuilder
            module = EnhancedLaTeXBuilder.__module__
        elif buildername == "doctree":
            from ..sphinxext.sphinx_doctree_builder import DocTreeBuilder
            module = DocTreeBuilder.__module__

        if 'extensions' not in confoverrides:
            if extensions == 'all':
                from ..sphinxext import get_default_extensions, get_default_standard_extensions
                exts = get_default_extensions(load_bokeh=False)
                exts += get_default_standard_extensions()
                skip = {'sphinx.ext.extlinks'}
                exts = [_ for _ in exts if _ not in skip]
                if buildername == "rst":
                    exts.insert(0, module)
            elif isinstance(extensions, list):
                exts = extensions
                if buildername == "rst":
                    exts = exts.copy()
                    exts.insert(0, module)
            elif buildername in ("rst", "md"):
                exts = [module]
            if exts is not None:
                confoverrides['extensions'] = exts

        # delayed import to speed up time
        with warnings.catch_warnings():
            warnings.simplefilter(
                "ignore", (DeprecationWarning, PendingDeprecationWarning))
            Sphinx.__init__(self, srcdir, confdir, outdir, doctreedir,
                            buildername, confoverrides, status, warning,
                            freshenv, warningiserror, tags, verbosity,
                            parallel)

        self._add_missing_element_in_config()
예제 #7
0
    def __init__(self, srcdir, outdir, confdir=None, doctreedir=None,
                 buildername='html', confoverrides=None, status=None,
                 warning=None, freshenv=False, warningiserror=False, tags=None,
                 copy_srcdir_to_tmpdir=False, create_new_srcdir=False,
                 cleanup_on_errors=True, verbosity=0, parallel=0,
                 extensions='all'):
        """
        @param      srcdir                  source folder
        @param      outdir                  output folder
        @param      confdir                 configuration folder, default is srcdir
        @param      doctreedir              doc tree folder
        @param      buildername             HTML by default
        @param      confoverrides           None or dictionary
        @param      status                  StringIO to retrieve them
        @param      warning                 StringIO to retrieve them
        @param      freshenv                boolean
        @param      warningiserror          warning as errors?
        @param      tags                    additional documentation
        @param      copy_srcdir_to_tmpdir   copy the source to a temporary directory
        @param      create_new_srcdir       create a new source directory
        @param      cleanup_on_errors       force cleanup on errors
        @param      verbosity               integer
        @param      parallel                integer (number of threads)
        @param      extensions              if ``'all'``, add extensions implemented
                                            by this module, use ``None`` for an empty list,
                                            'extensions' must not be in *confoverrides*
        """
        self.cleanup_trees = []
        self.cleanup_on_errors = cleanup_on_errors
        srcdir = os.path.abspath(srcdir)
        outdir = os.path.abspath(outdir)

        if confdir is None:
            confdir = srcdir
        else:
            confdir = os.path.abspath(confdir)

        if doctreedir is None:
            doctreedir = os.path.join(outdir, '_pyq', 'doctrees')
            if not os.path.exists(doctreedir):
                os.makedirs(doctreedir)

        if confoverrides is None:
            confoverrides = {}
        if status is None:
            status = StringIO()
        if warning is None:
            warning = StringIO()

        if buildername == "rst":
            from ..sphinxext.sphinx_rst_builder import RstBuilder
            module = RstBuilder.__module__
        elif buildername == "md":
            from ..sphinxext.sphinx_md_builder import MdBuilder
            module = MdBuilder.__module__
        elif buildername in ("latex", "elatex", "pdf"):
            from ..sphinxext.sphinx_latex_builder import EnhancedLaTeXBuilder
            module = EnhancedLaTeXBuilder.__module__
        elif buildername == "doctree":
            from ..sphinxext.sphinx_doctree_builder import DocTreeBuilder
            module = DocTreeBuilder.__module__

        if 'extensions' not in confoverrides:
            if extensions == 'all':
                from ..sphinxext import get_default_extensions, get_default_standard_extensions
                exts = get_default_extensions(load_bokeh=False)
                exts += get_default_standard_extensions()
                skip = {'sphinx.ext.extlinks'}
                exts = [_ for _ in exts if _ not in skip]
                if buildername == "rst":
                    exts.insert(0, module)
            elif isinstance(extensions, list):
                exts = extensions
                if buildername == "rst":
                    exts = exts.copy()
                    exts.insert(0, module)
            elif buildername in ("rst", "md"):
                exts = [module]
            if exts is not None:
                confoverrides['extensions'] = exts

        # delayed import to speed up time
        try:
            from sphinx.deprecation import RemovedInSphinx30Warning, RemovedInSphinx40Warning, RemovedInSphinx20Warning
        except ImportError:
            RemovedInSphinx20Warning = DeprecationWarning
            RemovedInSphinx30Warning = DeprecationWarning
            RemovedInSphinx40Warning = DeprecationWarning

        with warnings.catch_warnings():
            warnings.simplefilter("ignore", RemovedInSphinx20Warning)
            warnings.simplefilter("ignore", RemovedInSphinx30Warning)
            warnings.simplefilter("ignore", RemovedInSphinx40Warning)
            Sphinx.__init__(self, srcdir, confdir, outdir, doctreedir,
                            buildername, confoverrides, status,
                            warning, freshenv, warningiserror, tags,
                            verbosity, parallel)

        self._add_missing_element_in_config()
예제 #8
0
    def __init__(self, srcdir=None, confdir=None, outdir=None, doctreedir=None,
                 buildername='html', confoverrides=None, status=None,
                 warning=None, freshenv=False, warningiserror=False, tags=None,
                 copy_srcdir_to_tmpdir=False, create_new_srcdir=False,
                 cleanup_on_errors=True, verbosity=0, parallel=0):
        self.cleanup_trees = []
        self.cleanup_on_errors = cleanup_on_errors

        if create_new_srcdir:
            assert srcdir is None, 'conflicted: create_new_srcdir, srcdir'
            tmpdir = mkdtemp()
            self.cleanup_trees.append(tmpdir)
            tmproot = tmpdir / 'root'
            tmproot.makedirs()
            (tmproot / 'conf.py').write_text('')
            srcdir = tmproot

        assert srcdir is not None, 'srcdir not found'
        srcdir = path(srcdir).abspath()

        if copy_srcdir_to_tmpdir:
            tmpdir = mkdtemp()
            self.cleanup_trees.append(tmpdir)
            tmproot = tmpdir / srcdir.basename()
            srcdir.copytree(tmproot)
            srcdir = tmproot
            self.builddir = srcdir.joinpath('_build')
        else:
            self.builddir = mkdtemp()
            self.cleanup_trees.append(self.builddir)

        if confdir is None:
            confdir = srcdir
        if outdir is None:
            outdir = self.builddir.joinpath(buildername)
            if not outdir.isdir():
                outdir.makedirs()
        if doctreedir is None:
            doctreedir = self.builddir.joinpath('doctrees')
            if not doctreedir.isdir():
                doctreedir.makedirs()
        if confoverrides is None:
            confoverrides = {}
        if status is None:
            status = StringIO()
        if warning is None:
            warning = StringIO()

        try:
            sphinx.application.abspath = lambda x: x
            if sphinx_version < '1.3':
                Sphinx.__init__(self, srcdir, confdir, outdir, doctreedir,
                                buildername, confoverrides, status,
                                warning, freshenv, warningiserror, tags)
            else:
                Sphinx.__init__(self, srcdir, confdir, outdir, doctreedir,
                                buildername, confoverrides, status,
                                warning, freshenv, warningiserror, tags,
                                verbosity, parallel)
        finally:
            sphinx.application.abspath = os.path.abspath
예제 #9
0
    def __init__(self,
                 srcdir,
                 outdir,
                 confdir=None,
                 doctreedir=None,
                 buildername='html',
                 confoverrides=None,
                 status=None,
                 warning=None,
                 freshenv=False,
                 warningiserror=False,
                 tags=None,
                 copy_srcdir_to_tmpdir=False,
                 create_new_srcdir=False,
                 cleanup_on_errors=True,
                 verbosity=0,
                 parallel=0,
                 extensions='all'):
        """
        @param      srcdir                  source folder
        @param      outdir                  output folder
        @param      confdir                 configuration folder, default is srcdir
        @param      doctreedir              doc tree folder
        @param      buildername             HTML by default
        @param      confoverrides           None or dictionary
        @param      status                  StringIO to retrieve them
        @param      warning                 StringIO to retrieve them
        @param      freshenv                boolean
        @param      warningiserror          warning as errors?
        @param      tags                    additional documentation
        @param      copy_srcdir_to_tmpdir   copy the source to a temporary directory
        @param      create_new_srcdir       create a new source directory
        @param      cleanup_on_errors       force cleanup on errors
        @param      verbosity               integer
        @param      parallel                integer (number of threads)
        @param      extensions              if ``'all'``, add extensions implemented
                                            by this module, use ``None`` for an empty list,
                                            'extensions' must not be in *confoverrides*

        .. versionchanged:: 1.6
            Parameter *extensions* was added.
        """
        self.cleanup_trees = []
        self.cleanup_on_errors = cleanup_on_errors
        srcdir = os.path.abspath(srcdir)
        outdir = os.path.abspath(outdir)

        if confdir is None:
            confdir = srcdir
        else:
            confdir = os.path.abspath(confdir)

        if doctreedir is None:
            doctreedir = os.path.join(outdir, '_pyq', 'doctrees')
            if not os.path.exists(doctreedir):
                os.makedirs(doctreedir)

        if confoverrides is None:
            confoverrides = {}
        if status is None:
            status = StringIO()
        if warning is None:
            warning = StringIO()

        if buildername == "rst":
            from ..sphinxext.sphinx_rst_builder import RstBuilder
            module = RstBuilder.__module__

        if 'extensions' not in confoverrides:
            if extensions == 'all':
                from ..sphinxext import get_default_extensions, get_default_standard_extensions
                exts = get_default_extensions(
                ) + get_default_standard_extensions()
                skip = {'sphinx.ext.extlinks'}
                exts = [_ for _ in exts if _ not in skip]
                if buildername == "rst":
                    exts.insert(0, module)
            elif isinstance(extensions, list):
                exts = extensions
                if buildername == "rst":
                    exts = exts.copy()
                    exts.insert(0, module)
            elif buildername == "rst":
                exts = [module]
            if exts is not None:
                confoverrides['extensions'] = exts

        Sphinx.__init__(self, srcdir, confdir, outdir, doctreedir, buildername,
                        confoverrides, status, warning, freshenv,
                        warningiserror, tags, verbosity, parallel)