diff --git a/Doc/Makefile b/Doc/Makefile index 5b7fdf8ec08ed4..86ca95307651c8 100644 --- a/Doc/Makefile +++ b/Doc/Makefile @@ -6,6 +6,7 @@ # You can set these variables from the command line. PYTHON = python3 VENVDIR = ./venv +VENVDIR_PDF = ./venv-pdf UV = uv SPHINXBUILD = PATH=$(VENVDIR)/bin:$$PATH sphinx-build BLURB = PATH=$(VENVDIR)/bin:$$PATH blurb @@ -163,7 +164,7 @@ clean: clean-venv .PHONY: clean-venv clean-venv: - rm -rf $(VENVDIR) + rm -rf $(VENVDIR) $(VENVDIR_PDF) .PHONY: venv venv: @@ -184,6 +185,25 @@ venv: echo "The venv has been created in the $(VENVDIR) directory"; \ fi +.PHONY: venv-pdf +venv-pdf: + @if [ -d $(VENVDIR_PDF) ] ; then \ + echo "venv-pdf already exists."; \ + echo "To recreate it, remove it first with \`make clean-venv'."; \ + else \ + set -e; \ + echo "Creating venv in $(VENVDIR_PDF)"; \ + if $(UV) --version >/dev/null 2>&1; then \ + $(UV) venv --python=$(PYTHON) $(VENVDIR_PDF); \ + VIRTUAL_ENV=$(VENVDIR_PDF) $(UV) pip install -r requirements-pdf.txt; \ + else \ + $(PYTHON) -m venv $(VENVDIR_PDF); \ + $(VENVDIR_PDF)/bin/python3 -m pip install --upgrade pip; \ + $(VENVDIR_PDF)/bin/python3 -m pip install -r requirements-pdf.txt; \ + fi; \ + echo "The venv has been created in the $(VENVDIR_PDF) directory"; \ + fi + .PHONY: dist-no-html dist-no-html: dist-text dist-epub dist-texinfo @@ -231,13 +251,13 @@ dist-text: @echo "Build finished and archived!" .PHONY: dist-pdf -dist-pdf: +dist-pdf: venv-pdf # archive the A4 latex @echo "Building LaTeX (A4 paper)..." mkdir -p dist rm -rf build/latex find dist -name 'python-$(DISTVERSION)-docs-pdf*' -exec rm -rf {} \; - $(MAKE) latex PAPER=a4 + $(MAKE) latex PAPER=a4 VENVDIR=$(VENVDIR_PDF) # remove zip & bz2 dependency on all-pdf, # as otherwise the full latexmk process is run twice. # ($$ is needed to escape the $; https://www.gnu.org/software/make/manual/make.html#Basics-of-Variable-References) diff --git a/Doc/conf.py b/Doc/conf.py index 545049bb460419..a1991bd71024a7 100644 --- a/Doc/conf.py +++ b/Doc/conf.py @@ -46,6 +46,7 @@ 'linklint.ext', 'notfound.extension', 'sphinxext.opengraph', + 'sphinxcontrib.rsvgconverter', ) for optional_ext in _OPTIONAL_EXTENSIONS: try: @@ -115,7 +116,7 @@ # Ignore any .rst files in the includes/ directory; # they're embedded in pages but not rendered as individual pages. # Ignore any .rst files in the venv/ directory. -exclude_patterns = ['includes/*.rst', 'venv/*', 'README.rst'] +exclude_patterns = ['includes/*.rst', 'venv/*', 'venv-pdf/*', 'README.rst'] venvdir = os.getenv('VENVDIR') if venvdir is not None: exclude_patterns.append(venvdir + '/*') diff --git a/Doc/library/profiling.sampling.rst b/Doc/library/profiling.sampling.rst index 078062c08c6020..d2b7d9669ab07e 100644 --- a/Doc/library/profiling.sampling.rst +++ b/Doc/library/profiling.sampling.rst @@ -1194,10 +1194,12 @@ data, similar to the ``top`` command for system processes:: python -m profiling.sampling run --live script.py python -m profiling.sampling attach --live 12345 -.. figure:: tachyon-live-mode-2.gif - :alt: Tachyon live mode showing all threads - :align: center - :width: 100% +.. only:: not latex + + .. figure:: tachyon-live-mode-2.gif + :alt: Tachyon live mode showing all threads + :align: center + :width: 100% Live mode displays real-time profiling statistics, showing combined data from multiple threads in a multi-threaded application. @@ -1217,10 +1219,12 @@ main table, showing instruction-level statistics for the currently selected function. This panel displays which bytecode instructions are executing most frequently, including specialized variants and their base opcodes. -.. figure:: tachyon-live-mode-1.gif - :alt: Tachyon live mode with opcode panel - :align: center - :width: 100% +.. only:: not latex + + .. figure:: tachyon-live-mode-1.gif + :alt: Tachyon live mode with opcode panel + :align: center + :width: 100% Live mode with ``--opcodes`` enabled shows an opcode panel with a bytecode instruction breakdown for the selected function. diff --git a/Doc/requirements-pdf.txt b/Doc/requirements-pdf.txt new file mode 100644 index 00000000000000..b9713817a6f044 --- /dev/null +++ b/Doc/requirements-pdf.txt @@ -0,0 +1,3 @@ +-r requirements.txt + +sphinxcontrib-svg2pdfconverter~=2.0.0