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)
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)
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)
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)
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
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)
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)
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)