| """ |
| Python Markdown |
| |
| A Python implementation of John Gruber's Markdown. |
| |
| Documentation: https://python-markdown.github.io/ |
| GitHub: https://github.com/Python-Markdown/markdown/ |
| PyPI: https://pypi.org/project/Markdown/ |
| |
| Started by Manfred Stienstra (http://www.dwerg.net/). |
| Maintained for a few years by Yuri Takhteyev (http://www.freewisdom.org). |
| Currently maintained by Waylan Limberg (https://github.com/waylan), |
| Dmitry Shachnev (https://github.com/mitya57) and Isaac Muse (https://github.com/facelessuser). |
| |
| Copyright 2007-2018 The Python Markdown Project (v. 1.7 and later) |
| Copyright 2004, 2005, 2006 Yuri Takhteyev (v. 0.2-1.6b) |
| Copyright 2004 Manfred Stienstra (the original version) |
| |
| License: BSD (see LICENSE.md for details). |
| """ |
| |
| import sys |
| |
| # TODO: Remove this check at some point in the future. |
| # (also remove flake8's 'ignore E402' comments below) |
| if sys.version_info[0] < 3: # pragma: no cover |
| raise ImportError('A recent version of Python 3 is required.') |
| |
| from .core import Markdown, markdown, markdownFromFile # noqa: E402 |
| from .util import PY37 # noqa: E402 |
| from .pep562 import Pep562 # noqa: E402 |
| from .__meta__ import __version__, __version_info__ # noqa: E402 |
| import warnings # noqa: E402 |
| |
| # For backward compatibility as some extensions expect it... |
| from .extensions import Extension # noqa |
| |
| __all__ = ['Markdown', 'markdown', 'markdownFromFile'] |
| |
| __deprecated__ = { |
| "version": ("__version__", __version__), |
| "version_info": ("__version_info__", __version_info__) |
| } |
| |
| |
| def __getattr__(name): |
| """Get attribute.""" |
| |
| deprecated = __deprecated__.get(name) |
| if deprecated: |
| warnings.warn( |
| "'{}' is deprecated. Use '{}' instead.".format(name, deprecated[0]), |
| category=DeprecationWarning, |
| stacklevel=(3 if PY37 else 4) |
| ) |
| return deprecated[1] |
| raise AttributeError("module '{}' has no attribute '{}'".format(__name__, name)) |
| |
| |
| if not PY37: |
| Pep562(__name__) |