Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

mdx_gist: inherit from InlineProcessor, work on Python 3.11 (#3630) #3631

Merged
merged 2 commits into from
Jun 21, 2022

Commits on Jun 21, 2022

  1. mdx_gist: inherit from InlineProcessor, work on Python 3.11 (getnikol…

    …a#3630)
    
    The gist-rst pattern crashes Python 3.11, because its pattern
    tries to set the multiline flag - it starts with `(?m)` - but
    Markdown's `Pattern` class `__init__`, which is called by our
    `GistPattern.__init__`, 'wraps' the pattern with additional
    capture groups before compiling it. This causes the multiline
    flag not to be at the start of the 'wrapped' pattern. From
    Python 3.6 to Python 3.10 flags not being at the start of the
    pattern was deprecated and triggered a warning when trying to
    compile it; in Python 3.11 it's an error.
    
    Markdown 3.0.0 added a preferred `InlineProcessor` class:
    Python-Markdown/markdown#629
    which does not do this wrapping. It requires the subclass to
    implement `handleMatch`, which we already do. Our `handleMatch`
    uses named capture groups, so the change in the number of
    capture groups in the compiled expression shouldn't matter. So
    simply switching to inheriting from `InlineProcessor` instead
    of `Pattern` (and slightly adjusting the signature and return
    values to match what's expected of `InlineProcessor` subclasses)
    should solve the problem.
    
    We already required Markdown 3.0.0, so this does not mean we
    require a newer Markdown than before.
    
    Signed-off-by: Adam Williamson <awilliam@redhat.com>
    AdamWill committed Jun 21, 2022
    Configuration menu
    Copy the full SHA
    6edac30 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    499a9ea View commit details
    Browse the repository at this point in the history