changeset 249:feaa552cbe98

Some overhowl of the docs configuration in conf.py. Sync with other projects.
author Franz Glasner <fzglas.hg@dom66.de>
date Sat, 16 May 2026 15:16:42 +0200
parents d76f090d991f
children 5d3f7d80766f
files docs/conf.py
diffstat 1 files changed, 46 insertions(+), 40 deletions(-) [+]
line wrap: on
line diff
--- a/docs/conf.py	Sat May 16 13:03:02 2026 +0200
+++ b/docs/conf.py	Sat May 16 15:16:42 2026 +0200
@@ -43,48 +43,53 @@
 project = 'Pygments Pseudocode Lexer'
 copyright = u'2026 Franz Glasner. © Copyright 2015 Simon Wachter'
 author = 'Franz Glasner'
+
 #
 # Determine "release" and other release metadata dynamically from the
 # package's "__version__" or other VCS data.
 #
+
+#
+# Optimistically assume that all keywords are expanded properly everywhere:
+# do not define special VCSxxx keyword below.
+#
+define_rest_keywords = False
 with io.open("../pygments_lexer_pseudocode2/__init__.py",
              "rt",
              encoding="utf-8") as relfp:
     verfiledata = relfp.read()
-    release = ast.literal_eval(
-        re.search(r"""^\s*__version__\s*=\s*(("|')[^"']*\2)""",
-                  verfiledata,
-                  re.MULTILINE).group(1))
-    release_date = today = (
-        ast.literal_eval(
-            re.search(r"""^\s*__date__\s*=\s*(("|')[^"']*\2)""",
-                      verfiledata,
-                      re.MULTILINE).group(1))
-        or "dev-%s" % (current_date,)
-    )
-    release_rev = ast.literal_eval(
-        re.search(r"""^\s*__revision__\s*=\s*(("|')[^"']*\2)""",
-                  verfiledata,
-                  re.MULTILINE).group(1))
-    if release_rev.startswith("|") or release_rev.endswith("|"):
-        # Assume that make export (hg kwarchive) may not has been called.
-        import subprocess
-        try:
-            release_rev = subprocess.check_output(
-                ["hg", "id", "-i"], stderr=subprocess.STDOUT)
-        except Exception:
-            release_rev = "<unknown>"
-        else:
-            if sys.version_info[0] >= 3:
-                release_rev = release_rev.decode("ascii")
-            release_rev = "dev-%s" % (release_rev.strip(),)
-        define_rest_keywords = True
+release = ast.literal_eval(
+    re.search(r"""^\s*__version__\s*=\s*(("|')[^"']*\2)""",
+              verfiledata,
+              re.MULTILINE).group(1))
+release_date = today = ast.literal_eval(
+    re.search(r"""^\s*__date__\s*=\s*(("|')[^"']*\2)""",
+              verfiledata,
+              re.MULTILINE).group(1))
+if (not release_date
+        or (release_date.startswith("|") and release_date.endswith("|"))):
+    release_date = today = "dev-%s" % (current_date,)
+release_rev = ast.literal_eval(
+    re.search(r"""^\s*__revision__\s*=\s*(("|')[^"']*\2)""",
+              verfiledata,
+              re.MULTILINE).group(1))
+if (not release_rev
+        or (release_rev.startswith("|") or release_rev.endswith("|"))):
+    #
+    # Above assumption is not true: "hg kwarchive" may not have been called.
+    # Try to determine from VCS.
+    #
+    import subprocess
+    try:
+        release_rev = subprocess.check_output(
+            ["hg", "id", "-i"], stderr=subprocess.STDOUT)
+    except Exception:
+        release_rev = "<UNKNOWN>"
     else:
-        #
-        # Assume that all keywords are expanded properly everywhere:
-        # do not define special VCSxxx keyword below.
-        #
-        define_rest_keywords = False
+        if sys.version_info[0] >= 3:
+            release_rev = release_rev.decode("ascii")
+        release_rev = "dev-%s" % (release_rev.strip(),)
+    define_rest_keywords = True
 
 version = release
 primary_domain = None
@@ -150,8 +155,8 @@
     "releasename": "Version",
     "fncychap": r"\usepackage[Sonny]{fncychap}",
     "preamble": r"\usepackage[stdtitle=false]{my-doc-style}",
-    "maketitle": r"\builddate{%s}\vcsrevision{%s}\sphinxmaketitle" \
-      % (current_date, release_rev),
+    "maketitle": r"\builddate{%s}\vcsrevision{%s}\sphinxmaketitle"
+        % (current_date, release_rev),
 }
 latex_theme = "manual"
 latex_show_urls = "footnote"
@@ -169,6 +174,7 @@
     "examples/algorithm-edmonds-karp.pseudocode",
 ]
 
+
 def setup(app):
     #
     # Custom release_date and commit id variables with a custom substitution
@@ -208,7 +214,7 @@
     try:
         if not pygments.lexers.find_lexer_class("AlgPseudocode"):
             sphinx.util.logging.getLogger("conf-setup").info(
-                "%s","Installing lexer `AlgPseudocode' and language variants")
+                "%s", "Installing lexer `AlgPseudocode' and language variants")
             for clsname, lexer in (
                     ("AlgPseudocodeLexer", AlgPseudocodeLexer),
                     ("AlgPseudocodeLexer_DE", AlgPseudocodeLexer_DE),
@@ -221,7 +227,7 @@
                 tuple(lexer.mimetypes))
         if not pygments.lexers.find_lexer_class("FrPseudocode"):
             sphinx.util.logging.getLogger("conf-setup").info(
-                "%s","Installing lexer `FrPseudocode'")
+                "%s", "Installing lexer `FrPseudocode'")
             for clsname, lexer in (
                     ("FrPseudocodeLexer", FrPseudocodeLexer),):
                 pygments.lexers.LEXERS[clsname] = (
@@ -232,12 +238,12 @@
                 tuple(lexer.mimetypes))
         if not pygments.filters.find_filter_class("tokenreplace"):
             sphinx.util.logging.getLogger("conf-setup").info(
-                "%s","Installing filter `tokenreplace'")
+                "%s", "Installing filter `tokenreplace'")
             pygments.filters.FILTERS["tokenreplace"] = TokenReplaceFilter
         if not pygments.filters.find_filter_class("errortogenericerror"):
             sphinx.util.logging.getLogger("conf-setup").info(
-                "%s","Installing filter `errortogenericerror'")
-            pygments.filters.FILTERS["errortogenericerror"]  = \
+                "%s", "Installing filter `errortogenericerror'")
+            pygments.filters.FILTERS["errortogenericerror"] = \
                 ErrorToGenericErrorTokenFilter
     except Exception as ex:
         sphinx.util.logging.getLogger("conf-setup").error("%s", str(ex))