Пример #1
0
    def read_doc(self, docname):
        # type: (unicode) -> None
        """Parse a file and add/update inventory entries for the doctree."""
        self.env.prepare_settings(docname)

        # Add confdir/docutils.conf to dependencies list if exists
        docutilsconf = path.join(self.confdir, 'docutils.conf')
        if path.isfile(docutilsconf):
            self.env.note_dependency(docutilsconf)

        with sphinx_domains(self.env), rst.default_role(docname, self.config.default_role):
            doctree = read_doc(self.app, self.env, self.env.doc2path(docname))

        # store time of reading, for outdated files detection
        # (Some filesystems have coarse timestamp resolution;
        # therefore time.time() can be older than filesystem's timestamp.
        # For example, FAT32 has 2sec timestamp resolution.)
        self.env.all_docs[docname] = max(time.time(),
                                         path.getmtime(self.env.doc2path(docname)))

        # cleanup
        self.env.temp_data.clear()
        self.env.ref_context.clear()

        self.write_doctree(docname, doctree)
Пример #2
0
    def read_doc(self, docname: str) -> None:
        """Parse a file and add/update inventory entries for the doctree."""
        self.env.prepare_settings(docname)

        # Add confdir/docutils.conf to dependencies list if exists
        docutilsconf = path.join(self.confdir, 'docutils.conf')
        if path.isfile(docutilsconf):
            self.env.note_dependency(docutilsconf)

        with sphinx_domains(self.env), rst.default_role(
                docname, self.config.default_role):
            doctree = read_doc(self.app, self.env, self.env.doc2path(docname))

        # store time of reading, for outdated files detection
        # (Some filesystems have coarse timestamp resolution;
        # therefore time.time() can be older than filesystem's timestamp.
        # For example, FAT32 has 2sec timestamp resolution.)
        self.env.all_docs[docname] = max(
            time.time(), path.getmtime(self.env.doc2path(docname)))

        # cleanup
        self.env.temp_data.clear()
        self.env.ref_context.clear()

        self.write_doctree(docname, doctree)
Пример #3
0
 def _parse(app: Sphinx, code: str) -> document:
     with NamedTemporaryFile("w+", suffix=".rst", dir=app.env.srcdir) as f:
         f.write(code)
         f.flush()
         app.env.prepare_settings(f.name)
         with sphinx_domains(app.env), rst.default_role(
                 f.name, app.config.default_role):
             return read_doc(app, app.env, f.name)
Пример #4
0
def find_autoasdf_directives(env, filename):

    docname = env.path2doc(filename)
    env.prepare_settings(docname)
    with sphinx_domains(env), rst.default_role(docname,
                                               env.config.default_role):
        doctree = read_doc(env.app, env, env.doc2path(docname))

    return doctree.traverse(schema_def)
Пример #5
0
def _get_doctree(docstring: str):
    docname = "_docstring"
    builder = _get_builder()
    env = builder.env

    env.prepare_settings(docname)
    with sphinx_domains(env), rst.default_role(docname,
                                               builder.config.default_role):
        document = publish_doctree(docstring, settings_overrides=env.settings)
        env.apply_post_transforms(document, docname)

    return document
Пример #6
0
    def read_doc(self, docname, app=None):
        # type: (unicode, Sphinx) -> None
        """Parse a file and add/update inventory entries for the doctree."""
        self.prepare_settings(docname)

        docutilsconf = path.join(self.srcdir, 'docutils.conf')
        # read docutils.conf from source dir, not from current dir
        OptionParser.standard_config_files[1] = docutilsconf
        if path.isfile(docutilsconf):
            self.note_dependency(docutilsconf)

        with sphinx_domains(self), rst.default_role(docname,
                                                    self.config.default_role):
            doctree = read_doc(self.app, self, self.doc2path(docname))

        # post-processing
        for domain in itervalues(self.domains):
            domain.process_doc(self, docname, doctree)

        # allow extension-specific post-processing
        if app:
            app.emit('doctree-read', doctree)

        # store time of reading, for outdated files detection
        # (Some filesystems have coarse timestamp resolution;
        # therefore time.time() can be older than filesystem's timestamp.
        # For example, FAT32 has 2sec timestamp resolution.)
        self.all_docs[docname] = max(time.time(),
                                     path.getmtime(self.doc2path(docname)))

        if self.versioning_condition:
            # add uids for versioning
            versioning.prepare(doctree)

        # cleanup
        self.temp_data.clear()
        self.ref_context.clear()

        self.write_doctree(docname, doctree)
Пример #7
0
    def read_doc(self, docname, app=None):
        # type: (unicode, Sphinx) -> None
        """Parse a file and add/update inventory entries for the doctree."""
        self.prepare_settings(docname)

        docutilsconf = path.join(self.srcdir, 'docutils.conf')
        # read docutils.conf from source dir, not from current dir
        OptionParser.standard_config_files[1] = docutilsconf
        if path.isfile(docutilsconf):
            self.note_dependency(docutilsconf)

        with sphinx_domains(self), rst.default_role(docname, self.config.default_role):
            doctree = read_doc(self.app, self, self.doc2path(docname))

        # post-processing
        for domain in itervalues(self.domains):
            domain.process_doc(self, docname, doctree)

        # allow extension-specific post-processing
        if app:
            app.emit('doctree-read', doctree)

        # store time of reading, for outdated files detection
        # (Some filesystems have coarse timestamp resolution;
        # therefore time.time() can be older than filesystem's timestamp.
        # For example, FAT32 has 2sec timestamp resolution.)
        self.all_docs[docname] = max(
            time.time(), path.getmtime(self.doc2path(docname)))

        if self.versioning_condition:
            # add uids for versioning
            versioning.prepare(doctree)

        # cleanup
        self.temp_data.clear()
        self.ref_context.clear()

        self.write_doctree(docname, doctree)
Пример #8
0
start_time = time()
# app.builder.env._read_serial(docnames, app.builder.env.app)
for docname in docnames:
    print('docname', docname)
    app.emit('env-purge-doc', app.builder.env, docname)
    app.builder.env.clear_doc(docname)
    # app.builder.env.read_doc(docname, app)
    app.builder.env.prepare_settings(docname)
    docutilsconf = path.join(app.builder.env.srcdir, 'docutils.conf')
    # read docutils.conf from source dir, not from current dir
    OptionParser.standard_config_files[1] = docutilsconf
    if path.isfile(docutilsconf):
        app.builder.env.note_dependency(docutilsconf)

    with sphinx_domains(app.builder.env), rst.default_role(docname, app.builder.env.config.default_role):
        doctree = read_doc(app.builder.env.app, app.builder.env, app.builder.env.doc2path(docname))

    # post-processing
    for domain in app.builder.env.domains.values():
        domain.process_doc(app.builder.env, docname, doctree)

    # allow extension-specific post-processing
    if app:
        app.emit('doctree-read', doctree)

print('docnames', docnames)
updated_docnames = set(docnames)
print('updated_docnames:', updated_docnames)