From 291963af49a12a05c40d9ed6fd000cba8b15595b Mon Sep 17 00:00:00 2001 From: Ben Gamari <ben@smart-cactus.org> Date: Wed, 9 Aug 2023 01:35:58 -0400 Subject: [PATCH] users_guide: Restore compatibility with pre-packaging Python The `packaging` package is not available in Ubuntu 18.04 or Debian 9. Fall back to distutils in this case to avoid incurring an extra dependency. --- docs/users_guide/flags.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/docs/users_guide/flags.py b/docs/users_guide/flags.py index 474d1b65d4bd..50cde1f4a3d6 100644 --- a/docs/users_guide/flags.py +++ b/docs/users_guide/flags.py @@ -50,7 +50,12 @@ import sphinx from sphinx import addnodes from sphinx.domains.std import GenericObject from sphinx.errors import SphinxError -from packaging.version import parse +try: + from packaging.version import parse as parse_version +except ImportError as e: + # N.B. `packaging` is not available in Ubuntu 18.04 or Debian 9 + from distutils.version import LooseVersion as parse_version + from utils import build_table_from_list import os.path @@ -628,8 +633,8 @@ def purge_flags(app, env, docname): def setup(app): # The override argument to add_directive_to_domain is only supported by >= 1.8 - sphinx_version = parse(sphinx.__version__) - override_arg = {'override': True} if sphinx_version >= parse('1.8') else {} + sphinx_version = parse_version(sphinx.__version__) + override_arg = {'override': True} if sphinx_version >= parse_version('1.8') else {} # Add ghc-flag directive, and override the class with our own app.add_object_type('ghc-flag', 'ghc-flag') -- GitLab