MCPcopy
hub / github.com/sphinx-doc/sphinx / write

Method write

sphinx/builders/__init__.py:705–748  ·  view source on GitHub ↗

Write builder specific output files.

(
        self,
        build_docnames: Iterable[str] | None,
        updated_docnames: Iterable[str],
        method: Literal['all', 'specific', 'update'] = 'update',
    )

Source from the content-addressed store, hash-verified

703
704 @final
705 def write(
706 self,
707 build_docnames: Iterable[str] | None,
708 updated_docnames: Iterable[str],
709 method: Literal['all', 'specific', 'update'] = 'update',
710 ) -> None:
711 """Write builder specific output files."""
712 env = self.env
713
714 # Allow any extensions to perform setup for writing
715 self.events.emit('write-started', self)
716
717 if build_docnames is None or build_docnames == ['__all__']:
718 # build_all
719 build_docnames = env.found_docs
720 if method == 'update':
721 # build updated ones as well
722 docnames = set(build_docnames) | set(updated_docnames)
723 else:
724 docnames = set(build_docnames)
725 if docnames:
726 logger.debug(__('docnames to write: %s'), ', '.join(sorted(docnames)))
727 else:
728 logger.debug(__('no docnames to write!'))
729
730 # add all toctree-containing files that may have changed
731 docnames |= {
732 toc_docname
733 for docname in docnames
734 for toc_docname in env.files_to_rebuild.get(docname, ())
735 if toc_docname in env.found_docs
736 }
737
738 # sort to ensure deterministic toctree generation
739 env.toctree_includes = dict(sorted(env.toctree_includes.items()))
740
741 with progress_message(__('preparing documents')):
742 self.prepare_writing(docnames)
743
744 with progress_message(__('copying assets'), nonl=False):
745 self.copy_assets()
746
747 if docnames:
748 self.write_documents(docnames)
749
750 def write_documents(self, docnames: Set[str]) -> None:
751 """Write all documents in *docnames*.

Callers 8

buildMethod · 0.95
finishMethod · 0.45
build_epubMethod · 0.45
write_documentsMethod · 0.45
write_linkstatMethod · 0.45
write_entryMethod · 0.45
write_stylesheetMethod · 0.45

Calls 8

prepare_writingMethod · 0.95
copy_assetsMethod · 0.95
write_documentsMethod · 0.95
progress_messageClass · 0.90
emitMethod · 0.45
joinMethod · 0.45
getMethod · 0.45
itemsMethod · 0.45

Tested by

no test coverage detected