From 739ca0ab679c56f856ba9b3525790e4b3e94e2df Mon Sep 17 00:00:00 2001 From: Adam Turner <9087854+aa-turner@users.noreply.github.com> Date: Wed, 15 Jun 2022 10:46:46 +0100 Subject: [PATCH 01/17] Remove commented config values --- conf.py | 137 +------------------------------------------------------- 1 file changed, 2 insertions(+), 135 deletions(-) diff --git a/conf.py b/conf.py index 422de53bb6..f6f5a1ab61 100644 --- a/conf.py +++ b/conf.py @@ -1,32 +1,11 @@ -# -*- coding: utf-8 -*- -# -# Python Developer's Guide documentation build configuration file, created by -# sphinx-quickstart on Tue Jan 4 10:34:03 2011. -# -# This file is execfile()d with the current directory set to its containing dir. -# -# Note that not all possible configuration values are present in this -# autogenerated file. -# -# All configuration values have a default; values that are commented out -# serve to show the default. - import os import sys import time -# If extensions (or modules to document with autodoc) are in another directory, -# add these directories to sys.path here. If the directory is relative to the -# documentation root, use os.path.abspath to make it absolute, like shown here. -#sys.path.insert(0, os.path.abspath('.')) - sys.path.append(os.path.abspath('tools')) # -- General configuration ----------------------------------------------------- -# If your documentation needs a minimal Sphinx version, state it here. -#needs_sphinx = '1.0' - # Add any Sphinx extension module names here, as strings. They can be extensions # coming with Sphinx (named 'sphinx.ext.*') or your custom ones. extensions = ['sphinx.ext.intersphinx', 'sphinx.ext.todo', 'sphinx_copybutton'] @@ -36,9 +15,6 @@ # The suffix of source filenames. source_suffix = '.rst' -# The encoding of source files. -#source_encoding = 'utf-8-sig' - # The master toctree document. master_doc = 'index' @@ -46,50 +22,13 @@ project = 'Python Developer\'s Guide' copyright = '2011-%s, Python Software Foundation' % time.strftime('%Y') -# The version info for the project you're documenting, acts as replacement for -# |version| and |release|, also used in various other places throughout the -# built documents. -# -# The short X.Y version. -version = '' -# The full version, including alpha/beta/rc tags. -release = '' - -# The language for content autogenerated by Sphinx. Refer to documentation -# for a list of supported languages. -#language = None - -# There are two options for replacing |today|: either, you set today to some -# non-false value, then it is used: -#today = '' -# Else, today_fmt is used as the format for a strftime call. -#today_fmt = '%B %d, %Y' - # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. exclude_patterns = ['_build', 'venv*', 'env*', 'README.rst', '.github'] -# The reST default role (used for this markup: `text`) to use for all documents. -#default_role = None - -# If true, '()' will be appended to :func: etc. cross-reference text. -#add_function_parentheses = True - -# If true, the current module name will be prepended to all description -# unit titles (such as .. function::). -#add_module_names = True - -# If true, sectionauthor and moduleauthor directives will be shown in the -# output. They are ignored by default. -#show_authors = False - # The name of the Pygments (syntax highlighting) style to use. pygments_style = 'sphinx' -# A list of ignored prefixes for module index sorting. -#modindex_common_prefix = [] - - # -- Options for HTML output --------------------------------------------------- # Use the upstream python-docs-theme @@ -97,9 +36,8 @@ html_theme_options = {} -# The name for this set of Sphinx documents. If None, it defaults to -# " v documentation". -html_title = "%s %s" % (project, release) +# The name for this set of Sphinx documents. +html_title = "" # Path to find HTML templates. templates_path = ['tools/templates'] @@ -107,68 +45,20 @@ # Additional static files. html_static_path = ['tools/static'] -# A shorter title for the navigation bar. Default is the same as html_title. -#html_short_title = None - # The name of an image file (relative to this directory) to place at the top # of the sidebar. html_logo = "python-logo.png" -# The name of an image file (within the static path) to use as favicon of the -# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 -# pixels large. -#html_favicon = None - # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. html_last_updated_fmt = '%b %d, %Y' -# If true, SmartyPants will be used to convert quotes and dashes to -# typographically correct entities. -#html_use_smartypants = True - -# Additional templates that should be rendered to pages, maps page names to -# template names. -#html_additional_pages = {} - -# If false, no module index is generated. -#html_domain_indices = True - -# If false, no index is generated. -#html_use_index = True - -# If true, the index is split into individual pages for each letter. -#html_split_index = False - -# If true, links to the reST sources are added to the pages. -#html_show_sourcelink = True - -# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. -#html_show_sphinx = True - -# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -#html_show_copyright = True - -# If true, an OpenSearch description file will be output, and all pages will -# contain a tag referring to it. The value of this option must be the -# base URL from which the finished HTML is served. -#html_use_opensearch = '' - -# This is the file name suffix for HTML files (e.g. ".xhtml"). -#html_file_suffix = None - # Output file base name for HTML help builder. htmlhelp_basename = 'PythonDevelopersGuidedoc' # -- Options for LaTeX output -------------------------------------------------- -# The paper size ('letter' or 'a4'). -#latex_paper_size = 'letter' - -# The font size ('10pt', '11pt' or '12pt'). -#latex_font_size = '10pt' - # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, author, documentclass [howto/manual]). latex_documents = [ @@ -181,29 +71,6 @@ ), ] -# The name of an image file (relative to this directory) to place at the top of -# the title page. -#latex_logo = None - -# For "manual" documents, if this is true, then toplevel headings are parts, -# not chapters. -#latex_use_parts = False - -# If true, show page references after internal links. -#latex_show_pagerefs = False - -# If true, show URL addresses after external links. -#latex_show_urls = False - -# Additional stuff for the LaTeX preamble. -#latex_preamble = '' - -# Documents to append as an appendix to all manuals. -#latex_appendices = [] - -# If false, no module index is generated. -#latex_domain_indices = True - # -- Options for manual page output -------------------------------------------- From 5f3a221f2a58a72fcf0a16cc22bc94105fb0f8e2 Mon Sep 17 00:00:00 2001 From: Adam Turner <9087854+aa-turner@users.noreply.github.com> Date: Wed, 15 Jun 2022 10:49:29 +0100 Subject: [PATCH 02/17] Update .readthedocs.yml --- .readthedocs.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.readthedocs.yml b/.readthedocs.yml index 9305dc432a..9567935ebd 100644 --- a/.readthedocs.yml +++ b/.readthedocs.yml @@ -1,6 +1,6 @@ -# .readthedocs.yml # Read the Docs configuration file # See https://docs.readthedocs.io/en/stable/config-file/v2.html for details +# Project page: https://readthedocs.org/projects/cpython-devguide/ version: 2 @@ -8,10 +8,8 @@ sphinx: builder: dirhtml configuration: conf.py -formats: all - build: - os: ubuntu-20.04 + os: ubuntu-22.04 tools: python: "3.10" From 15cf3a90ef2f613df41901ac94baf174cddbff1e Mon Sep 17 00:00:00 2001 From: Adam Turner <9087854+aa-turner@users.noreply.github.com> Date: Wed, 15 Jun 2022 10:50:21 +0100 Subject: [PATCH 03/17] Remove man, htmlhelp, latex --- conf.py | 33 --------------------------------- 1 file changed, 33 deletions(-) diff --git a/conf.py b/conf.py index f6f5a1ab61..7a9268cfcf 100644 --- a/conf.py +++ b/conf.py @@ -53,39 +53,6 @@ # using the given strftime format. html_last_updated_fmt = '%b %d, %Y' -# Output file base name for HTML help builder. -htmlhelp_basename = 'PythonDevelopersGuidedoc' - - -# -- Options for LaTeX output -------------------------------------------------- - -# Grouping the document tree into LaTeX files. List of tuples -# (source start file, target name, title, author, documentclass [howto/manual]). -latex_documents = [ - ( - 'index', - 'PythonDevelopersGuide.tex', - 'Python Developer\'s Guide Documentation', - 'Brett Cannon', - 'manual', - ), -] - - -# -- Options for manual page output -------------------------------------------- - -# One entry per manual page. List of tuples -# (source start file, name, description, authors, manual section). -man_pages = [ - ( - 'index', - 'pythondevelopersguide', - "Python Developer's Guide Documentation", - ['Brett Cannon'], - 1, - ), -] - # ignore linkcheck anchors for /#/$ANCHOR since it is used for # dynamic pages such as http://buildbot.python.org/all/#/console # http://www.sphinx-doc.org/en/stable/config.html?highlight=linkcheck#confval-linkcheck_anchors_ignore From d7fbb83c06410c8058656a2dcfd282922f3fe8e7 Mon Sep 17 00:00:00 2001 From: Adam Turner <9087854+aa-turner@users.noreply.github.com> Date: Wed, 15 Jun 2022 13:31:32 +0100 Subject: [PATCH 04/17] Remove unneeded config --- conf.py | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/conf.py b/conf.py index 7a9268cfcf..d6d8fe17d9 100644 --- a/conf.py +++ b/conf.py @@ -4,23 +4,18 @@ sys.path.append(os.path.abspath('tools')) -# -- General configuration ----------------------------------------------------- - # Add any Sphinx extension module names here, as strings. They can be extensions # coming with Sphinx (named 'sphinx.ext.*') or your custom ones. extensions = ['sphinx.ext.intersphinx', 'sphinx.ext.todo', 'sphinx_copybutton'] intersphinx_mapping = {'python': ('https://docs.python.org/3', None)} todo_include_todos = True -# The suffix of source filenames. -source_suffix = '.rst' - # The master toctree document. master_doc = 'index' # General information about the project. -project = 'Python Developer\'s Guide' -copyright = '2011-%s, Python Software Foundation' % time.strftime('%Y') +project = "Python Developer's Guide" +copyright = f'2011-{time.strftime("%Y")}, Python Software Foundation' # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. @@ -29,13 +24,10 @@ # The name of the Pygments (syntax highlighting) style to use. pygments_style = 'sphinx' -# -- Options for HTML output --------------------------------------------------- - # Use the upstream python-docs-theme html_theme = 'furo' html_theme_options = {} - # The name for this set of Sphinx documents. html_title = "" @@ -49,10 +41,6 @@ # of the sidebar. html_logo = "python-logo.png" -# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, -# using the given strftime format. -html_last_updated_fmt = '%b %d, %Y' - # ignore linkcheck anchors for /#/$ANCHOR since it is used for # dynamic pages such as http://buildbot.python.org/all/#/console # http://www.sphinx-doc.org/en/stable/config.html?highlight=linkcheck#confval-linkcheck_anchors_ignore From 59358f40cd578b30c150bc4fae7e1ee0f4e714a9 Mon Sep 17 00:00:00 2001 From: Adam Turner <9087854+aa-turner@users.noreply.github.com> Date: Wed, 15 Jun 2022 14:22:01 +0100 Subject: [PATCH 05/17] Remove unused templates --- conf.py | 3 --- tools/templates/customsourcelink.html | 12 ------------ tools/templates/globaltoc.html | 11 ----------- 3 files changed, 26 deletions(-) delete mode 100644 tools/templates/customsourcelink.html delete mode 100644 tools/templates/globaltoc.html diff --git a/conf.py b/conf.py index d6d8fe17d9..a6bfc48cbd 100644 --- a/conf.py +++ b/conf.py @@ -31,9 +31,6 @@ # The name for this set of Sphinx documents. html_title = "" -# Path to find HTML templates. -templates_path = ['tools/templates'] - # Additional static files. html_static_path = ['tools/static'] diff --git a/tools/templates/customsourcelink.html b/tools/templates/customsourcelink.html deleted file mode 100644 index a50734f189..0000000000 --- a/tools/templates/customsourcelink.html +++ /dev/null @@ -1,12 +0,0 @@ -{%- if show_source and has_source and sourcename %} -
-

{{ _('This Page') }}

- -
-{%- endif %} diff --git a/tools/templates/globaltoc.html b/tools/templates/globaltoc.html deleted file mode 100644 index 6ad89af594..0000000000 --- a/tools/templates/globaltoc.html +++ /dev/null @@ -1,11 +0,0 @@ -{# - basic/globaltoc.html - ~~~~~~~~~~~~~~~~~~~~ - - Sphinx sidebar template: global table of contents. - - :copyright: Copyright 2007-2019 by the Sphinx team, see AUTHORS. - :license: BSD, see LICENSE for details. -#} -

{{ _('Sections') }}

-{{ toctree() }} From f0feb10034486a84b1753e6fbc63efc0c2382c26 Mon Sep 17 00:00:00 2001 From: Adam Turner <9087854+aa-turner@users.noreply.github.com> Date: Wed, 15 Jun 2022 14:25:58 +0100 Subject: [PATCH 06/17] Remove unused stylesheet --- conf.py | 12 ------------ tools/static/custom.css | 13 ------------- 2 files changed, 25 deletions(-) delete mode 100644 tools/static/custom.css diff --git a/conf.py b/conf.py index a6bfc48cbd..0efa12562c 100644 --- a/conf.py +++ b/conf.py @@ -1,9 +1,5 @@ -import os -import sys import time -sys.path.append(os.path.abspath('tools')) - # Add any Sphinx extension module names here, as strings. They can be extensions # coming with Sphinx (named 'sphinx.ext.*') or your custom ones. extensions = ['sphinx.ext.intersphinx', 'sphinx.ext.todo', 'sphinx_copybutton'] @@ -31,9 +27,6 @@ # The name for this set of Sphinx documents. html_title = "" -# Additional static files. -html_static_path = ['tools/static'] - # The name of an image file (relative to this directory) to place at the top # of the sidebar. html_logo = "python-logo.png" @@ -56,8 +49,3 @@ 'https://discuss.python.org/groups/moderators', 'https://discuss.python.org/groups/admins', ] - -# Use our custom CSS stylesheet to differentiate us from the official python -# docs. -def setup(app): - app.add_css_file('custom.css') diff --git a/tools/static/custom.css b/tools/static/custom.css deleted file mode 100644 index 84d378196e..0000000000 --- a/tools/static/custom.css +++ /dev/null @@ -1,13 +0,0 @@ -div.related { - background-color: #6BA81E; - color: #DDD; - border-radius: 5px; -} - -div.related a { - color: #FFF; -} - -div.related a:hover { - color: #EEF; -} From 9fba18519027a7b5e027789a9cb966d97f407277 Mon Sep 17 00:00:00 2001 From: Adam Turner <9087854+aa-turner@users.noreply.github.com> Date: Wed, 15 Jun 2022 14:26:06 +0100 Subject: [PATCH 07/17] Remove rstlint --- make.bat | 2 +- tools/rstlint.py | 319 ----------------------------------------------- 2 files changed, 1 insertion(+), 320 deletions(-) delete mode 100755 tools/rstlint.py diff --git a/make.bat b/make.bat index ca3ac39d8b..facf22ce4e 100644 --- a/make.bat +++ b/make.bat @@ -49,7 +49,7 @@ if "%1" == "help" ( echo. changes to make an overview over all changed/added/deprecated items echo. linkcheck to check all external links for integrity echo. doctest to run all doctests embedded in the documentation if enabled - echo. check to check for stylistic and formal issues using rstlint + echo. check to check for stylistic and formal issues using sphinx-lint goto end ) diff --git a/tools/rstlint.py b/tools/rstlint.py deleted file mode 100755 index ed236fd33c..0000000000 --- a/tools/rstlint.py +++ /dev/null @@ -1,319 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- - -# Check for stylistic and formal issues in .rst and .py -# files included in the documentation. -# -# 01/2009, Georg Brandl - -# TODO: - wrong versions in versionadded/changed -# - wrong markup after versionchanged directive - -from __future__ import with_statement - -import os -import re -import sys -import getopt -from os.path import join, splitext, abspath, exists -from collections import defaultdict - -directives = [ - # standard docutils ones - 'admonition', - 'attention', - 'caution', - 'class', - 'compound', - 'container', - 'contents', - 'csv-table', - 'danger', - 'date', - 'default-role', - 'epigraph', - 'error', - 'figure', - 'footer', - 'header', - 'highlights', - 'hint', - 'image', - 'important', - 'include', - 'line-block', - 'list-table', - 'meta', - 'note', - 'parsed-literal', - 'pull-quote', - 'raw', - 'replace', - 'restructuredtext-test-directive', - 'role', - 'rubric', - 'sectnum', - 'sidebar', - 'table', - 'target-notes', - 'tip', - 'title', - 'topic', - 'unicode', - 'warning', - # Sphinx and Python docs custom ones - 'acks', - 'attribute', - 'autoattribute', - 'autoclass', - 'autodata', - 'autoexception', - 'autofunction', - 'automethod', - 'automodule', - 'centered', - 'cfunction', - 'class', - 'classmethod', - 'cmacro', - 'cmdoption', - 'cmember', - 'code-block', - 'confval', - 'cssclass', - 'ctype', - 'currentmodule', - 'cvar', - 'data', - 'decorator', - 'decoratormethod', - 'deprecated-removed', - 'deprecated(?!-removed)', - 'describe', - 'directive', - 'doctest', - 'envvar', - 'event', - 'exception', - 'function', - 'glossary', - 'highlight', - 'highlightlang', - 'impl-detail', - 'index', - 'literalinclude', - 'method', - 'miscnews', - 'module', - 'moduleauthor', - 'opcode', - 'pdbcommand', - 'productionlist', - 'program', - 'role', - 'sectionauthor', - 'seealso', - 'sourcecode', - 'staticmethod', - 'tabularcolumns', - 'testcode', - 'testoutput', - 'testsetup', - 'toctree', - 'todo', - 'todolist', - 'versionadded', - 'versionchanged', -] - -all_directives = '(' + '|'.join(directives) + ')' -seems_directive_re = re.compile(r'(? 81: - # don't complain about tables, links and function signatures - if ( - line.lstrip()[0] not in '+|' - and 'http://' not in line - and not line.lstrip().startswith( - ('.. function', '.. method', '.. cfunction') - ) - ): - yield lno + 1, "line too long" - - -@checker('.html', severity=2, falsepositives=True) -def check_leaked_markup(fn, lines): - """Check HTML files for leaked reST markup; this only works if - the HTML files have been built. - """ - for lno, line in enumerate(lines): - if leaked_markup_re.search(line): - yield lno + 1, 'possibly leaked markup: %r' % line - - -def main(argv): - usage = '''\ -Usage: %s [-v] [-f] [-s sev] [-i path]* [path] - -Options: -v verbose (print all checked file names) - -f enable checkers that yield many false positives - -s sev only show problems with severity >= sev - -i path ignore subdir or file path -''' % argv[0] - - try: - gopts, args = getopt.getopt(argv[1:], 'vfs:i:') - except getopt.GetoptError: - print(usage) - return 2 - - verbose = False - severity = 1 - ignore = [] - falsepos = False - for opt, val in gopts: - if opt == '-v': - verbose = True - elif opt == '-f': - falsepos = True - elif opt == '-s': - severity = int(val) - elif opt == '-i': - ignore.append(abspath(val)) - - if len(args) == 0: - path = '.' - elif len(args) == 1: - path = args[0] - else: - print(usage) - return 2 - - if not exists(path): - print('Error: path %s does not exist' % path) - return 2 - - count = defaultdict(int) - - for root, dirs, files in os.walk(path): - # ignore subdirs in ignore list - if abspath(root) in ignore: - del dirs[:] - continue - - for fn in files: - fn = join(root, fn) - if fn[:2] == './': - fn = fn[2:] - - # ignore files in ignore list - if abspath(fn) in ignore: - continue - - ext = splitext(fn)[1] - checkerlist = checkers.get(ext, None) - if not checkerlist: - continue - - if verbose: - print('Checking %s...' % fn) - - try: - with open(fn, 'r', encoding='utf-8') as f: - lines = list(f) - except (IOError, OSError) as err: - print('%s: cannot open: %s' % (fn, err)) - count[4] += 1 - continue - - for checker in checkerlist: - if checker.falsepositives and not falsepos: - continue - csev = checker.severity - if csev >= severity: - for lno, msg in checker(fn, lines): - print('[%d] %s:%d: %s' % (csev, fn, lno, msg)) - count[csev] += 1 - if verbose: - print() - if not count: - if severity > 1: - print('No problems with severity >= %d found.' % severity) - else: - print('No problems found.') - else: - for severity in sorted(count): - number = count[severity] - print('%d problem%s with severity %d found.' % - (number, 's' if number > 1 else '', severity)) - return int(bool(count)) - - -if __name__ == '__main__': - sys.exit(main(sys.argv)) From c0f309e1c8e0461d6874307ee8fb15ed17a1364a Mon Sep 17 00:00:00 2001 From: Adam Turner <9087854+aa-turner@users.noreply.github.com> Date: Wed, 15 Jun 2022 14:28:38 +0100 Subject: [PATCH 08/17] Reformat conf.py --- conf.py | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/conf.py b/conf.py index 0efa12562c..4804003e91 100644 --- a/conf.py +++ b/conf.py @@ -1,10 +1,10 @@ import time -# Add any Sphinx extension module names here, as strings. They can be extensions -# coming with Sphinx (named 'sphinx.ext.*') or your custom ones. -extensions = ['sphinx.ext.intersphinx', 'sphinx.ext.todo', 'sphinx_copybutton'] -intersphinx_mapping = {'python': ('https://docs.python.org/3', None)} -todo_include_todos = True +extensions = [ + 'sphinx.ext.intersphinx', + 'sphinx.ext.todo', + 'sphinx_copybutton', +] # The master toctree document. master_doc = 'index' @@ -15,10 +15,13 @@ # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. -exclude_patterns = ['_build', 'venv*', 'env*', 'README.rst', '.github'] - -# The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' +exclude_patterns = [ + '_build', + 'venv*', + 'env*', + 'README.rst', + '.github', +] # Use the upstream python-docs-theme html_theme = 'furo' @@ -49,3 +52,9 @@ 'https://discuss.python.org/groups/moderators', 'https://discuss.python.org/groups/admins', ] + +intersphinx_mapping = { + 'python': ('https://docs.python.org/3', None), +} + +todo_include_todos = True From 971b339a1d87c77c029ab5a2b940f50d8f84e563 Mon Sep 17 00:00:00 2001 From: Adam Turner <9087854+aa-turner@users.noreply.github.com> Date: Wed, 15 Jun 2022 14:33:55 +0100 Subject: [PATCH 09/17] Make the site logo smaller --- conf.py | 5 ++++- static/adjust_logo_size.css | 5 +++++ 2 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 static/adjust_logo_size.css diff --git a/conf.py b/conf.py index 4804003e91..9f67b4bd00 100644 --- a/conf.py +++ b/conf.py @@ -23,9 +23,12 @@ '.github', ] -# Use the upstream python-docs-theme html_theme = 'furo' html_theme_options = {} +html_static_path = ['static'] +html_css_files = [ + 'adjust_logo_size.css', +] # The name for this set of Sphinx documents. html_title = "" diff --git a/static/adjust_logo_size.css b/static/adjust_logo_size.css new file mode 100644 index 0000000000..3bd09de1eb --- /dev/null +++ b/static/adjust_logo_size.css @@ -0,0 +1,5 @@ +/* Make the site logo smaller */ + +.sidebar-logo { + width: 50%; +} From 8628c5c256b9db9c90e2fe183fb85a41076507c5 Mon Sep 17 00:00:00 2001 From: Adam Turner <9087854+aa-turner@users.noreply.github.com> Date: Wed, 15 Jun 2022 14:36:35 +0100 Subject: [PATCH 10/17] Move logo to static --- conf.py | 7 ++----- python-logo.png => static/python-logo.png | Bin 2 files changed, 2 insertions(+), 5 deletions(-) rename python-logo.png => static/python-logo.png (100%) diff --git a/conf.py b/conf.py index 9f67b4bd00..5aa4b5cf6a 100644 --- a/conf.py +++ b/conf.py @@ -29,14 +29,11 @@ html_css_files = [ 'adjust_logo_size.css', ] +html_logo = "static/python-logo.png" -# The name for this set of Sphinx documents. +# Set to '' to prevent appending "documentation" to the site title html_title = "" -# The name of an image file (relative to this directory) to place at the top -# of the sidebar. -html_logo = "python-logo.png" - # ignore linkcheck anchors for /#/$ANCHOR since it is used for # dynamic pages such as http://buildbot.python.org/all/#/console # http://www.sphinx-doc.org/en/stable/config.html?highlight=linkcheck#confval-linkcheck_anchors_ignore diff --git a/python-logo.png b/static/python-logo.png similarity index 100% rename from python-logo.png rename to static/python-logo.png From 07ae263ba7d00039751545f5a04927d70cde2982 Mon Sep 17 00:00:00 2001 From: Adam Turner <9087854+aa-turner@users.noreply.github.com> Date: Wed, 15 Jun 2022 22:28:52 +0100 Subject: [PATCH 11/17] Rename to `_static` to align with the other PR --- {static => _static}/adjust_logo_size.css | 0 {static => _static}/python-logo.png | Bin 2 files changed, 0 insertions(+), 0 deletions(-) rename {static => _static}/adjust_logo_size.css (100%) rename {static => _static}/python-logo.png (100%) diff --git a/static/adjust_logo_size.css b/_static/adjust_logo_size.css similarity index 100% rename from static/adjust_logo_size.css rename to _static/adjust_logo_size.css diff --git a/static/python-logo.png b/_static/python-logo.png similarity index 100% rename from static/python-logo.png rename to _static/python-logo.png From 39bfccb2654661231624bf1461cd0c70f785e6e8 Mon Sep 17 00:00:00 2001 From: Adam Turner <9087854+aa-turner@users.noreply.github.com> Date: Sun, 19 Jun 2022 21:36:05 +0100 Subject: [PATCH 12/17] Fix path --- conf.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/conf.py b/conf.py index 5aa4b5cf6a..e138b55445 100644 --- a/conf.py +++ b/conf.py @@ -25,11 +25,11 @@ html_theme = 'furo' html_theme_options = {} -html_static_path = ['static'] +html_static_path = ['_static'] html_css_files = [ 'adjust_logo_size.css', ] -html_logo = "static/python-logo.png" +html_logo = "_static/python-logo.png" # Set to '' to prevent appending "documentation" to the site title html_title = "" From 8b336d25d384ca84b10aae63d4ae04b231fabbb8 Mon Sep 17 00:00:00 2001 From: Adam Turner <9087854+aa-turner@users.noreply.github.com> Date: Sun, 19 Jun 2022 21:45:41 +0100 Subject: [PATCH 13/17] Rename CSS overrides --- _static/{adjust_logo_size.css => devguide_overrides.css} | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) rename _static/{adjust_logo_size.css => devguide_overrides.css} (63%) diff --git a/_static/adjust_logo_size.css b/_static/devguide_overrides.css similarity index 63% rename from _static/adjust_logo_size.css rename to _static/devguide_overrides.css index 3bd09de1eb..f4566d1767 100644 --- a/_static/adjust_logo_size.css +++ b/_static/devguide_overrides.css @@ -1,5 +1,6 @@ -/* Make the site logo smaller */ +/* Style overrides for the devguide */ +/* Make the site logo smaller */ .sidebar-logo { width: 50%; } From ebab648027c9ce3f9bd07c000bc481e232038480 Mon Sep 17 00:00:00 2001 From: Adam Turner <9087854+aa-turner@users.noreply.github.com> Date: Sun, 19 Jun 2022 22:44:29 +0100 Subject: [PATCH 14/17] Add 128px image --- _static/devguide_overrides.css | 2 +- _static/python-logo-128x128.png | Bin 0 -> 7941 bytes conf.py | 4 ++-- 3 files changed, 3 insertions(+), 3 deletions(-) create mode 100644 _static/python-logo-128x128.png diff --git a/_static/devguide_overrides.css b/_static/devguide_overrides.css index f4566d1767..ea4c5edac4 100644 --- a/_static/devguide_overrides.css +++ b/_static/devguide_overrides.css @@ -2,5 +2,5 @@ /* Make the site logo smaller */ .sidebar-logo { - width: 50%; + width: 128px; } diff --git a/_static/python-logo-128x128.png b/_static/python-logo-128x128.png new file mode 100644 index 0000000000000000000000000000000000000000..9b585e895787f67bc63105d36ac442b5ed6b51be GIT binary patch literal 7941 zcmZ8`c{J4DAO0A|U}R_POQo{JFxg{JiU`@uHjn{`&pSJ@-E6-ursadHr$E>v_(7y*4$zeU3$t1q1?}Gtj?jc80kB zO(w>(wN1;Z=L{I!bnfbaKwlGJG$+W}UffyV>@EoO^3qvc1PFBazxZVk$R7a$t)f97 z^)wI&?w!?e@A}yV<3q#SH$kWW8@bIz$!8}}KZCn^&?QE0-pfLtIo+Cir@UpI8O&S6;u%uKPbTrfZ%Ixb$sIij1B9^jPET z2oE2z$2qkg#-)ZW_WsIA(-cx=@w+zv3k?n51Et^vL0}_r<=(wN`Nx{C-(mtxg2sAH zp9^1b)ky%ePQtJ<_E7Uy!1$H1vzU%H5L^~3UJ#3YEO z;4KXJp)Jd~R*z-=MHB2kauEH`KQIw!_@l8eWWd%dK27fl4uMneU03l*rld76>>#j%NlTdy>sOrJhOc%Loz{8K8;wNWiszCsc_F>)M!hppFH-Iol}d-nm-`IBwbH2}l)(3q z7U~;A*BR`<80ne%zkDic1$W`u_iNo@Z8lP*!+rahCD-1&a-p2Ap-^Ejj*Hgs57Wdj zFI5tFu*$@VAO6t!3#5+Rm8Dg;?bwzer|E~rkzeoO{t3xT#-E2@6D;pqZ$m@x$0#ec z4s>p@x4>sPG9W|-n$j|sv*N%x)T*|wkvw7#!u|Ubitj{@ab6SjBCT^ri98bI(^6`K z->0S_oVj+b28$rj^arIO`>AVuK`IgcaCBRzp@er8Hh5YgE#$w7=AXI+=P@X(2=JY} z6;bnm*x4=%uob!6PCws@IJ~M&0a-cirIN_U6qv;02SZO^twBy-Un?ytR8#UJxg`C?Eq3#m~X zNmVT4pe*{P_QbUr6*KC`9&@tp@1G{?xb`jWatQYP>ppmMy)nZ-Tbz5qL|AqVBY6y^ z|1!2>>*?X3$5!*wjiRTSnU9|;Ev#L^URdt2zdW1P>O~lbs@e{=5C0NPWx_KWLHU<0 ze@9G21;K$HY_Z+nA7ix;uT1ThawzdL+2oz*;63wx!;(VNBmP{OaK#Uo_|Od*A9wjH zN<^tx+6l~bV|{;iB<9k`I;**{Qc&LA!Xk!)pp$1@B^G4`7kkLnWVcr%x0Ohxn@;Fv z7V!cqTrDUuhedc=KHY!onDObr+}GUcH9R5Ckwxs0uPfh}CO3byT<-0xYZz|+8dg=I zs+Y%|hR$?@UtEB+R-b-WTT^{ctaV#93UWL2!o5$|r1zeY!l{#5b6nH=!Y8_T0l!MT#d2wkP~y z07_o`w>Ene_ZZFIq0aU~sPl*B=|ElEK2+-816&3#$@bRT=Ay)f;dm|%kUVb|ZiTa5 zZtxD;q_RJU?ny+s5e*AWc0C!9!LC|?*iBJXEMCD~JZDHq_2r7D1SPO0lX?D9=pdhV z&d(XNIBoYz#zU&<1)A~F@mxu89})J0ZZa$KMEf`8XdN*3b2@<&e9NlyZN!U7uqYObpt;Dvj~4eQRr+yvDqM zIJa(4;QLwsQ@!o65dYv#Y(qkmnu99M^Uww8y8H$Yz7|G+iR!ioEuZ+@5_(s#7`l;c z91Oa(lSNU-yA)e#Y^9hKq{#mozoJvdLUE^Cf5qEmu9zxu$B`P8xfOEtRmq#NzC=A? z+%~)ouhh5LCwn1OL;J}c)1w;T zWt-W*0|9DEzt@trd{J|%s(u-_Us2~qvM*=Vd2hDiq{+P_8}sCh>r1OahG-oYAj?;7 z>5Ilzbz3|p1(~K;`FgKF^(xXt6=J2K7C#w!jDDYnIjuT>sQh&%D$Yis1XQ~SAf3*q z$D!z7puPvQPH0Rw3$Wsl&UyG!g)U<7EPIXQ$!|jy*fU@5?jUHd_g~>cQTeWZ6BG7wy)11w=#aF(Df9f6OC>^nE54xni`R>X%bN)9 zBc>y6%5PGj%iae{*irf8Y44`id~6j0VzZAT-f`{_y;-S2aP7~AH8GFNH;+tbcE^g+ zvP_Rh6M3K1!~#cd>{;yO+0ax=xxYgf?fdV95UopvX%@9ekQPsy{Az*OPF0g4PoH|j zeWo{3uTkW6$XtwNsE{H2wo3MOxNwl3)GYA}<=j>yE8K|T$NCp*=Kv|-8FEs-Y}%xC zYjQ^_e5-nCy(0{GkKgL~lD!^A>dM*{?f7BgxA3}6h7@(CLp& z&_O_8XdV8P<(>wXPfOsJzl(0e48*|{X$3y*fspGN_&QYx7WQAl);B^Q?S#}lB^ zgRcJWha0U$ti+fdTe>ElPfmeTGv=V)51*>#fzBzI0E{x(G`D6z)ee?Ne?)WH;f=%+ zQ`*F-f($K}O9E0u@|*^iujB;JX~=_p(R&Xm|M|5jKcTuj(2}O!Pg{Vt_?kUbW-B~j zU!fWoMBchk(r>}Z1~LY{@>1t4`VHl*T>?`q&<{_55iz0|A3br)=DsIYGJoR^&}jK{ z5B=wc&s17>d$v5LXVIEsyeSZ#>|Dv*(drZhYo*6IhumjlC!7GW42pNCza)p{KJ}vA zd4S62`~j&xJ3+O*a{g>(=W`n|!@>s{?XR;O%?ROK^r3cU}dLf}}O`G!Ylqx;iBdh_DMR z4E07Ti=Ec58OuV@iQ=YZyinJQ9c3&4XLIgM!h1pjZfsw}n;fFMbRDxhhMk z&EzBjv2U5)%)P5EYy?!Y3)4Hj;!$Be5vuS~qm?%Cfl$+Nf)$QT>z48u)CmU=ef5w2 zoLfWY)VnwR6^jxSg3sJ#+4!2tZ<=+R`9(h`o}V|4sxZfm9X-v>G?u{JqHjsFrtZzt@ z_PGIyP}Ik1-6W-Xy>J5O&O@^G60w&D!H)9itUO_2Y}+4lpH+_A7NVd?a*#$oXX~k$ z`c33%vyck$;E{GP{s@}nsIh(MQtohHZHcEn;U^T^5-G_AN#hTse*cg`Vx#!9`#twe zFET(L6nrz=s${~d_(djLy=rpF)SF=Qgf#Ll+Ak!M5q#272 zZ42RFFbVD+_u51;Y5fhKjaT3uvd8huQ#Vxp(~78L+x4Yf`q-#Ydv0Ff!>e8TSLxwL zE4GYd4I+ zeZ4dH)38JgW5)N56HHbmdpS0os|?j^5MCdPb4hLtcozJ|5wql(qyOPwPpU+(nqD-+ z+kVmup?Tbwp4yl(d1RezG$GC$+!8{NWCx-oIQ|^jtcIWR55Y-VoVRJCS&#olE*xYw z>N)M9Onz@Sr%Z0ziZS-8kKw?}Us-=o~#E z%_j4iu1_3}wkvnQC);l$prUuCvd(3}0+G&+7009il{9^WyADLXuHwT-(+xSo-@5Ma zdp+mxPJ8%gT{L(-%N}3v1|DF{VR`WEeZXIf$XS6}3mkg^F!{Y&SAS;M!nf!2+_K2r z4zG1pVPM5dtIB?^W6;GoJe%&l;fjiFzjhxT)gW2GZjg@j?A3Rp&*_x7q!6*-Fyq}w z$0Wbti$e#72Q|+F8fU-BSMjcguN*19`$kl?yMg-Ml_pGBrf@3O&(wC7g>?4wV&H*Q;%2;epB@Z+IBD zt>e)H-#qVs0}r&8D>e%Tm_ts+N)gC&?#n-paZM$4FAR%9^;jFQxDBUC$L2*qQj-lc z^l>AbX?vq6d_J+lCqU>#v;$aS59Po)+0N#sEROjYDEmF4uzw3L-U;evWmj*q@|WLGR01rw)7S@v?RA$pgw92mtFf2SJ~ zm{Tkv^%~xe8hGtfMx(s2wC z^P^e*NXu1g%%4|@f$loX)CR8XB23m0A~tv~X*1>K+Gr}?H_e9&U^)FYOj}l?Z>jQf zSjEKLI<9Z^=&PyQmxl1j?u^WOW3cKi(Z0P zaRkU9JJEXPbD0^y@k(nfEr~)=msqgXL@J`BbL}Z8e%*R(Q$`yY~Bn5u$OC7ErnL z;_KXz_eDe>XpGt0XD2guEPoG{6CG79L4ma|ju z(mn+_$v3KWiU(Qb?8qjqWV^Lw5{`}(rNd@r>`aI-#~)2_ zs5(`HW^R~rB0tH=by8W6r{stncm@1g|=u5-1@oo5_!xEvv zq}BGjnKFIdaxVD!XQmeWUR#&F^juy&as#1=7o>fU`{QE@L1z*U!3J2&R5J+Z=ZjK# zz@JzMk-zWqQkTeMAZlU_QS#sJs(7V6DSF!OZ-CNJ3&)`51ZIwquc}+Nl%Nd{yz2iO zk|zxyB}TZZEM^^*O1TC55N*+b$1Rx<#6?-##req;DQ&7Y2+K%kfliJRbNlkaBR96)7v(&Le0HEfu!YJJ^IwV^M zW$Bc$pH*je>aX4I9l6BDHqZi;(`u-qBx)5!>1|~!gGTr{e5ggkmVERxA|SioRF3P&BpE~dd75~) zJ&pPg*{I)u_oL~aY2}s9bY$Z!n zk95Yc2|n!J(H|S#+&8ntEu5zT)CI4$nToxpSmr!|hhu4q<6`UR!5n?3FktALzQfQr zdMf95|J|)7o}|Do@(YZf$!tjVI z9p?+u;&cC~)he6gJoUU9M$(z6DWBXwe3$XtPYpMub00o?%Qj&tok4f%_k4OC%Y zYG<$Ra|erkyP@#v23Y;y7VAXRjK#e~3i_w52$s+!nL#S!9~1I~*N6>0pa@*D zBYFUCeAxpNm+AZy=&_xKrWG^JU}Nw>Nox@(qSV(B3J0 zctYCOCfTk2n-!a36xBC$L)@#7txr;E(l2ZKJ!GtpUOq3;Qi1n{c>JF0l4|^}XtR&> zmWzoSz{{Bz&r8-PkU4UnK{&)y-#LSD-LV=xuaZ%#gkZrX}Djd@;OtSdvzTb?1&QoETr?Y1`UQiqfTm>r95M&fzXG z8?@Y-uxc1#6^Qw;q?J3Wfa9U>&46gYifj!o9+t1b$peR!v#R>#yjhy{%^gh0`^5G> zV|w4?6R`@2eqrkb^HlLcYxz#vi_5GL>?>IHOqC=48k2p?fP!i;UWv3y8~&Nx?DRQE z+NK=L&)_u9V4p0|nZSf4yl+yZMj97x8aam!O1a)@I?#)>j8SfRwL)TjAzAS))woc0 zu-yp%?(x?fWh@-RCm}pt;`Xm!a16I3IC9X|qmn-Z5`TXSOKG*T=B+sEe zJ**lpW;_lpt$C5?64HLQ(Z+T+p438bE#R42CFTtVo};V(`Ka{NS-F-guh7+gpcQ8q zFjdQdF5aQ+g=)Q|bo$~FGQN5`2&pp?FP!}mn3$+1B{P1#c)Lq~7th{^=$D9T`ShJR z9R5*k%wg3u7!KkP_L1B^ZV|Vl1r2sdDy8xfqoUY19AoZ?{$ef_#Ly9v>&s=Bo!d_$)U8iUdan=p{YeY1Y`H{BF-o}$IN?9`;D!mt7K-ahHVTcqIH zj=aaG3vaT)psJdz@cD7I%4)_fh{Nlu-p@@?_eW_Cb`+KYhW13CxZBGnncaffwQgz^y>+y}Y zGJAR3;fJCiDVTE!C>!y&BvnyO(@=O^x-GtK{Tk&W1uedAT)Rvk{AsM;Z7x^~pQO6l z@r%(8W+z7tSg-4eX#KY^vU-fzV;N)y&u7L*y9#qLLIw78DbzjX(i;Y}&3--_EjQKa zdxMU(OOpSa;IOMC69|f2H&UIqQhy8oT_Wdaxy*GZ9&w=uVno3uq0o(z)l$1VlYTT{>}ot=kKj?7q@^+26U zHI>GfCWUOL4%2x8($}4M#f4m30-02@eTqc>Wv4QP&0EI&n$DVpSHUab59QG+1~Pp% z&ur+K43s~%zp|PS9W+J@R(5eD=x+xggKdV|_*>w6<9444+phWVQfmR7xl{VFa+q*9 z8Q3}N6HEH(+4wzj@^evle(rJxAVq|t;#Gw5RRuK*MFn-Fn!19j3<9B!K-`E9UHX3r kPrV*Jb`ARf2#Tueipc* Date: Sun, 19 Jun 2022 22:46:57 +0100 Subject: [PATCH 15/17] Also specify height --- _static/devguide_overrides.css | 1 + 1 file changed, 1 insertion(+) diff --git a/_static/devguide_overrides.css b/_static/devguide_overrides.css index ea4c5edac4..30ff1441e2 100644 --- a/_static/devguide_overrides.css +++ b/_static/devguide_overrides.css @@ -3,4 +3,5 @@ /* Make the site logo smaller */ .sidebar-logo { width: 128px; + height: 128px; } From d4004e2f754c52f758bc348dea0048d22c9a720b Mon Sep 17 00:00:00 2001 From: Adam Turner <9087854+aa-turner@users.noreply.github.com> Date: Sat, 25 Jun 2022 13:12:14 +0100 Subject: [PATCH 16/17] Use vector logo --- _static/devguide_overrides.css | 4 ++-- _static/python-logo-128x128.png | Bin 7941 -> 0 bytes _static/python-logo.png | Bin 9955 -> 0 bytes _static/python-logo.svg | 18 ++++++++++++++++++ conf.py | 2 +- 5 files changed, 21 insertions(+), 3 deletions(-) delete mode 100644 _static/python-logo-128x128.png delete mode 100644 _static/python-logo.png create mode 100644 _static/python-logo.svg diff --git a/_static/devguide_overrides.css b/_static/devguide_overrides.css index 30ff1441e2..8cafebebfd 100644 --- a/_static/devguide_overrides.css +++ b/_static/devguide_overrides.css @@ -2,6 +2,6 @@ /* Make the site logo smaller */ .sidebar-logo { - width: 128px; - height: 128px; + width: 111px; + height: 110px; } diff --git a/_static/python-logo-128x128.png b/_static/python-logo-128x128.png deleted file mode 100644 index 9b585e895787f67bc63105d36ac442b5ed6b51be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7941 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 P#sMr$Y>g`n>2d!b!VCd- diff --git a/_static/python-logo.svg b/_static/python-logo.svg new file mode 100644 index 0000000000..f69d24a746 --- /dev/null +++ b/_static/python-logo.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + diff --git a/conf.py b/conf.py index a68762cd55..b006fff66d 100644 --- a/conf.py +++ b/conf.py @@ -29,7 +29,7 @@ html_css_files = [ 'devguide_overrides.css', ] -html_logo = "_static/python-logo-128x128.png" +html_logo = "_static/python-logo.svg" # Set to '' to prevent appending "documentation" to the site title html_title = "" From 596fa71170cd28a6775e61a2ce5a027b5e04c485 Mon Sep 17 00:00:00 2001 From: Ezio Melotti Date: Tue, 12 Jul 2022 02:10:30 +0200 Subject: [PATCH 17/17] Add newline at the end of `conf.py`. --- conf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf.py b/conf.py index 6eb0167dde..7b5712eef5 100644 --- a/conf.py +++ b/conf.py @@ -96,4 +96,4 @@ 'python': ('https://docs.python.org/3', None), } -todo_include_todos = True \ No newline at end of file +todo_include_todos = True