Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ matrix:
packages:
- aspell
- aspell-en
- env: TOXENV=pep517check

addons:
apt:
Expand Down
5 changes: 5 additions & 0 deletions docs/change_log/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,11 @@ title: Change Log
Python-Markdown Change Log
=========================

_______, 2019: Released version 3.1.1 (a bug-fix release).

* Fixed import failure in `setup.py` when the source directory is not
on `sys.path` (#823).

Mar 25, 2019: Released version 3.1 ([Notes](release-3.1.md)).

Sept 28, 2018: Released version 3.0.1 (a bug-fix release).
Expand Down
35 changes: 1 addition & 34 deletions markdown/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,47 +25,14 @@
from .core import Markdown, markdown, markdownFromFile
from .util import PY37
from .pep562 import Pep562
from pkg_resources.extern import packaging
from .__meta__ import __version__, __version_info__
import warnings

# For backward compatibility as some extensions expect it...
from .extensions import Extension # noqa

__all__ = ['Markdown', 'markdown', 'markdownFromFile']

# version must conform to PEP 440
# https://www.python.org/dev/peps/pep-0440/

# __version_info__ format:
# (major, minor, patch, dev/alpha/beta/rc/final, #)
# (1, 1, 2, 'dev', 0) => "1.1.2.dev0"
# (1, 1, 2, 'alpha', 1) => "1.1.2a1"
# (1, 2, 0, 'beta', 2) => "1.2b2"
# (1, 2, 0, 'rc', 4) => "1.2rc4"
# (1, 2, 0, 'final', 0) => "1.2"
__version_info__ = (3, 1, 0, 'final', 0)


def _get_version(): # pragma: no cover
" Returns a PEP 440-compliant version number from version_info. "
assert len(__version_info__) == 5
assert __version_info__[3] in ('dev', 'alpha', 'beta', 'rc', 'final')

parts = 2 if __version_info__[2] == 0 else 3
v = '.'.join(map(str, __version_info__[:parts]))

if __version_info__[3] == 'dev':
v += '.dev' + str(__version_info__[4])
elif __version_info__[3] != 'final':
mapping = {'alpha': 'a', 'beta': 'b', 'rc': 'rc'}
v += mapping[__version_info__[3]] + str(__version_info__[4])

# Ensure version is valid and normalized
return str(packaging.version.Version(v))


__version__ = _get_version()

__deprecated__ = {
"version": ("__version__", __version__),
"version_info": ("__version_info__", __version_info__)
Expand Down
53 changes: 53 additions & 0 deletions markdown/__meta__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
# -*- coding: utf-8 -*-
"""
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).
"""

from pkg_resources.extern import packaging

# __version_info__ format:
# (major, minor, patch, dev/alpha/beta/rc/final, #)
# (1, 1, 2, 'dev', 0) => "1.1.2.dev0"
# (1, 1, 2, 'alpha', 1) => "1.1.2a1"
# (1, 2, 0, 'beta', 2) => "1.2b2"
# (1, 2, 0, 'rc', 4) => "1.2rc4"
# (1, 2, 0, 'final', 0) => "1.2"
__version_info__ = (3, 1, 0, 'final', 0)


def _get_version(): # pragma: no cover
" Returns a PEP 440-compliant version number from version_info. "
assert len(__version_info__) == 5
assert __version_info__[3] in ('dev', 'alpha', 'beta', 'rc', 'final')

parts = 2 if __version_info__[2] == 0 else 3
v = '.'.join(map(str, __version_info__[:parts]))

if __version_info__[3] == 'dev':
v += '.dev' + str(__version_info__[4])
elif __version_info__[3] != 'final':
mapping = {'alpha': 'a', 'beta': 'b', 'rc': 'rc'}
v += mapping[__version_info__[3]] + str(__version_info__[4])

# Ensure version is valid and normalized
return str(packaging.version.Version(v))


__version__ = _get_version()
21 changes: 20 additions & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,29 @@
"""


import os
import sys
from setuptools import setup
from markdown import __version__, __version_info__


def get_version():
"""Get version and version_info from markdown/__meta__.py file."""
module_path = os.path.join(os.path.dirname('__file__'), 'markdown', '__meta__.py')

if sys.version_info[0] == 2:
import imp
meta = imp.load_source('__meta__', module_path)
return meta.__version__, meta.__version_info__

import importlib.util
spec = importlib.util.spec_from_file_location('__meta__', module_path)
meta = importlib.util.module_from_spec(spec)
spec.loader.exec_module(meta)
return meta.__version__, meta.__version_info__


__version__, __version_info__ = get_version()

# Get development Status for classifiers
dev_status_map = {
'dev': '2 - Pre-Alpha',
Expand Down
6 changes: 5 additions & 1 deletion tox.ini
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[tox]
envlist = py27, py35, py36, py37, pypy, pypy3, flake8, checkspelling
envlist = py27, py35, py36, py37, pypy, pypy3, flake8, checkspelling, pep517check
requires = setuptools>=36
isolated_build = True

Expand All @@ -19,6 +19,10 @@ deps =
mkdocs_nature
commands = {toxinidir}/checkspelling.sh

[testenv:pep517check]
deps = pep517
commands = python -m pep517.check {toxinidir}

[flake8]
max-line-length = 119
exclude=markdown/pep562.py