Python-Markdown / markdown

A Python implementation of John Gruber’s Markdown with Extension support.
https://python-markdown.github.io/
BSD 3-Clause "New" or "Revised" License
3.74k stars 858 forks source link

Markdown 3.4.4 breaks with Python 3.7.17 #1385

Closed arcivanov closed 11 months ago

arcivanov commented 11 months ago
File "/tmp/IntegrationTestSupportra7d4guif8dc6b4edae644beac90ae6fb348216b/.pybuilder/plugins/cpython-3.7.17.final.0/lib/python3.7/site-packages/markdown/util.py", line 87, in <module>
            INSTALLED_EXTENSIONS = metadata.entry_points().get('markdown.extensions', ())
        AttributeError: 'EntryPoints' object has no attribute 'get'
arcivanov commented 11 months ago

It's a conflict with flake8 for Python 3.7

mvaled commented 6 months ago

@arcivanov I'm seeing this error on Python 3.12 without flake8 installed.

Here is myrequirements file:

requirements-dev.txt

From what I see in the docs of importlib.metadata there's no method .get for this collection. Instead there's a select method to get the entry points.

Calling it returns this:

>>> metadata.entry_points().select(group="markdown.extensions")
(EntryPoint(name='abbr', value='markdown.extensions.abbr:AbbrExtension', group='markdown.extensions'),
 EntryPoint(name='admonition', value='markdown.extensions.admonition:AdmonitionExtension', group='markdown.extensions'),
 EntryPoint(name='attr_list', value='markdown.extensions.attr_list:AttrListExtension', group='markdown.extensions'),
 EntryPoint(name='codehilite', value='markdown.extensions.codehilite:CodeHiliteExtension', group='markdown.extensions'),
 EntryPoint(name='def_list', value='markdown.extensions.def_list:DefListExtension', group='markdown.extensions'),
 EntryPoint(name='extra', value='markdown.extensions.extra:ExtraExtension', group='markdown.extensions'),
 EntryPoint(name='fenced_code', value='markdown.extensions.fenced_code:FencedCodeExtension', group='markdown.extensions'),
 EntryPoint(name='footnotes', value='markdown.extensions.footnotes:FootnoteExtension', group='markdown.extensions'),
 EntryPoint(name='legacy_attrs', value='markdown.extensions.legacy_attrs:LegacyAttrExtension', group='markdown.extensions'),
 EntryPoint(name='legacy_em', value='markdown.extensions.legacy_em:LegacyEmExtension', group='markdown.extensions'),
 EntryPoint(name='md_in_html', value='markdown.extensions.md_in_html:MarkdownInHtmlExtension', group='markdown.extensions'),
 EntryPoint(name='meta', value='markdown.extensions.meta:MetaExtension', group='markdown.extensions'),
 EntryPoint(name='nl2br', value='markdown.extensions.nl2br:Nl2BrExtension', group='markdown.extensions'),
 EntryPoint(name='sane_lists', value='markdown.extensions.sane_lists:SaneListExtension', group='markdown.extensions'),
 EntryPoint(name='smarty', value='markdown.extensions.smarty:SmartyExtension', group='markdown.extensions'),
 EntryPoint(name='tables', value='markdown.extensions.tables:TableExtension', group='markdown.extensions'),
 EntryPoint(name='toc', value='markdown.extensions.toc:TocExtension', group='markdown.extensions'),
 EntryPoint(name='wikilinks', value='markdown.extensions.wikilinks:WikiLinkExtension', group='markdown.extensions'))