| @@ -6,4 +6,3 @@ partial_branches = | |||||
| pragma: no branch | pragma: no branch | ||||
| if py3k: | if py3k: | ||||
| if not py3k: | if not py3k: | ||||
| if py26: | |||||
| @@ -1,16 +1,12 @@ | |||||
| language: python | language: python | ||||
| python: | python: | ||||
| - 2.6 | |||||
| - 2.7 | - 2.7 | ||||
| - 3.2 | |||||
| - 3.3 | |||||
| - 3.4 | - 3.4 | ||||
| - 3.5 | - 3.5 | ||||
| - 3.6 | - 3.6 | ||||
| - nightly | - nightly | ||||
| sudo: false | sudo: false | ||||
| install: | install: | ||||
| - if [[ $TRAVIS_PYTHON_VERSION == '3.2' ]]; then pip install coverage==3.7.1; fi | |||||
| - pip install coveralls | - pip install coveralls | ||||
| - python setup.py build | - python setup.py build | ||||
| script: | script: | ||||
| @@ -10,9 +10,7 @@ meant to be imported directly from within the parser's modules. | |||||
| import sys | import sys | ||||
| py26 = (sys.version_info[0] == 2) and (sys.version_info[1] == 6) | |||||
| py3k = (sys.version_info[0] == 3) | py3k = (sys.version_info[0] == 3) | ||||
| py32 = py3k and (sys.version_info[1] == 2) | |||||
| if py3k: | if py3k: | ||||
| bytes = bytes | bytes = bytes | ||||
| @@ -28,7 +28,7 @@ interface for the ``unicode`` type (``str`` on py3k) in a dynamic manner. | |||||
| from __future__ import unicode_literals | from __future__ import unicode_literals | ||||
| from sys import getdefaultencoding | from sys import getdefaultencoding | ||||
| from .compat import bytes, py26, py3k, str | |||||
| from .compat import bytes, py3k, str | |||||
| __all__ = ["StringMixIn"] | __all__ = ["StringMixIn"] | ||||
| @@ -116,14 +116,5 @@ class StringMixIn(object): | |||||
| if py3k: | if py3k: | ||||
| maketrans = str.maketrans # Static method can't rely on __getattr__ | maketrans = str.maketrans # Static method can't rely on __getattr__ | ||||
| if py26: | |||||
| @inheritdoc | |||||
| def encode(self, encoding=None, errors=None): | |||||
| if encoding is None: | |||||
| encoding = getdefaultencoding() | |||||
| if errors is not None: | |||||
| return self.__unicode__().encode(encoding, errors) | |||||
| return self.__unicode__().encode(encoding) | |||||
| del inheritdoc | del inheritdoc | ||||
| @@ -27,15 +27,15 @@ from glob import glob | |||||
| from os import environ | from os import environ | ||||
| import sys | import sys | ||||
| if ((sys.version_info[0] == 2 and sys.version_info[1] < 6) or | |||||
| (sys.version_info[1] == 3 and sys.version_info[1] < 2)): | |||||
| raise RuntimeError("mwparserfromhell needs Python 2.6+ or 3.2+") | |||||
| if ((sys.version_info[0] == 2 and sys.version_info[1] < 7) or | |||||
| (sys.version_info[1] == 3 and sys.version_info[1] < 4)): | |||||
| raise RuntimeError("mwparserfromhell needs Python 2.7 or 3.4+") | |||||
| from setuptools import setup, find_packages, Extension | from setuptools import setup, find_packages, Extension | ||||
| from setuptools.command.build_ext import build_ext | from setuptools.command.build_ext import build_ext | ||||
| from mwparserfromhell import __version__ | from mwparserfromhell import __version__ | ||||
| from mwparserfromhell.compat import py26, py3k | |||||
| from mwparserfromhell.compat import py3k | |||||
| with open("README.rst", **({'encoding':'utf-8'} if py3k else {})) as fp: | with open("README.rst", **({'encoding':'utf-8'} if py3k else {})) as fp: | ||||
| long_docs = fp.read() | long_docs = fp.read() | ||||
| @@ -82,7 +82,6 @@ setup( | |||||
| name = "mwparserfromhell", | name = "mwparserfromhell", | ||||
| packages = find_packages(exclude=("tests",)), | packages = find_packages(exclude=("tests",)), | ||||
| ext_modules = [tokenizer] if use_extension else [], | ext_modules = [tokenizer] if use_extension else [], | ||||
| tests_require = ["unittest2"] if py26 else [], | |||||
| test_suite = "tests.discover", | test_suite = "tests.discover", | ||||
| version = __version__, | version = __version__, | ||||
| author = "Ben Kurtovic", | author = "Ben Kurtovic", | ||||
| @@ -99,11 +98,9 @@ setup( | |||||
| "Intended Audience :: Developers", | "Intended Audience :: Developers", | ||||
| "License :: OSI Approved :: MIT License", | "License :: OSI Approved :: MIT License", | ||||
| "Operating System :: OS Independent", | "Operating System :: OS Independent", | ||||
| "Programming Language :: Python :: 2.6", | |||||
| "Programming Language :: Python :: 2", | |||||
| "Programming Language :: Python :: 2.7", | "Programming Language :: Python :: 2.7", | ||||
| "Programming Language :: Python :: 3", | "Programming Language :: Python :: 3", | ||||
| "Programming Language :: Python :: 3.2", | |||||
| "Programming Language :: Python :: 3.3", | |||||
| "Programming Language :: Python :: 3.4", | "Programming Language :: Python :: 3.4", | ||||
| "Programming Language :: Python :: 3.5", | "Programming Language :: Python :: 3.5", | ||||
| "Programming Language :: Python :: 3.6", | "Programming Language :: Python :: 3.6", | ||||
| @@ -21,11 +21,7 @@ | |||||
| # SOFTWARE. | # SOFTWARE. | ||||
| from __future__ import unicode_literals | from __future__ import unicode_literals | ||||
| try: | |||||
| from unittest2 import TestCase | |||||
| except ImportError: | |||||
| from unittest import TestCase | |||||
| from unittest import TestCase | |||||
| from mwparserfromhell.compat import range | from mwparserfromhell.compat import range | ||||
| from mwparserfromhell.nodes import (Argument, Comment, Heading, HTMLEntity, | from mwparserfromhell.nodes import (Argument, Comment, Heading, HTMLEntity, | ||||
| @@ -1,8 +1,6 @@ | |||||
| # -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||
| """ | """ | ||||
| Discover tests using ``unittest2` for Python 2.6. | |||||
| It appears the default distutils test suite doesn't play nice with | It appears the default distutils test suite doesn't play nice with | ||||
| ``setUpClass`` thereby making some tests fail. Using ``unittest2`` to load | ``setUpClass`` thereby making some tests fail. Using ``unittest2`` to load | ||||
| tests seems to work around that issue. | tests seems to work around that issue. | ||||
| @@ -12,12 +10,7 @@ http://stackoverflow.com/a/17004409/753501 | |||||
| import os.path | import os.path | ||||
| from mwparserfromhell.compat import py26 | |||||
| if py26: | |||||
| import unittest2 as unittest | |||||
| else: | |||||
| import unittest | |||||
| import unittest | |||||
| def additional_tests(): | def additional_tests(): | ||||
| project_root = os.path.split(os.path.dirname(__file__))[0] | project_root = os.path.split(os.path.dirname(__file__))[0] | ||||
| @@ -21,11 +21,7 @@ | |||||
| # SOFTWARE. | # SOFTWARE. | ||||
| from __future__ import unicode_literals | from __future__ import unicode_literals | ||||
| try: | |||||
| import unittest2 as unittest | |||||
| except ImportError: | |||||
| import unittest | |||||
| import unittest | |||||
| from mwparserfromhell.compat import str | from mwparserfromhell.compat import str | ||||
| from mwparserfromhell.nodes import Argument, Text | from mwparserfromhell.nodes import Argument, Text | ||||
| @@ -21,11 +21,7 @@ | |||||
| # SOFTWARE. | # SOFTWARE. | ||||
| from __future__ import unicode_literals | from __future__ import unicode_literals | ||||
| try: | |||||
| import unittest2 as unittest | |||||
| except ImportError: | |||||
| import unittest | |||||
| import unittest | |||||
| from mwparserfromhell.compat import str | from mwparserfromhell.compat import str | ||||
| from mwparserfromhell.nodes import Template | from mwparserfromhell.nodes import Template | ||||
| @@ -21,11 +21,7 @@ | |||||
| # SOFTWARE. | # SOFTWARE. | ||||
| from __future__ import unicode_literals | from __future__ import unicode_literals | ||||
| try: | |||||
| import unittest2 as unittest | |||||
| except ImportError: | |||||
| import unittest | |||||
| import unittest | |||||
| from mwparserfromhell.compat import py3k | from mwparserfromhell.compat import py3k | ||||
| from mwparserfromhell.nodes import (Argument, Comment, ExternalLink, Heading, | from mwparserfromhell.nodes import (Argument, Comment, ExternalLink, Heading, | ||||
| @@ -21,11 +21,7 @@ | |||||
| # SOFTWARE. | # SOFTWARE. | ||||
| from __future__ import unicode_literals | from __future__ import unicode_literals | ||||
| try: | |||||
| import unittest2 as unittest | |||||
| except ImportError: | |||||
| import unittest | |||||
| import unittest | |||||
| from mwparserfromhell.compat import str | from mwparserfromhell.compat import str | ||||
| from mwparserfromhell.nodes import Comment | from mwparserfromhell.nodes import Comment | ||||
| @@ -21,11 +21,7 @@ | |||||
| # SOFTWARE. | # SOFTWARE. | ||||
| from __future__ import unicode_literals | from __future__ import unicode_literals | ||||
| try: | |||||
| import unittest2 as unittest | |||||
| except ImportError: | |||||
| import unittest | |||||
| import unittest | |||||
| try: | try: | ||||
| from mwparserfromhell.parser._tokenizer import CTokenizer | from mwparserfromhell.parser._tokenizer import CTokenizer | ||||
| @@ -23,11 +23,7 @@ | |||||
| from __future__ import print_function, unicode_literals | from __future__ import print_function, unicode_literals | ||||
| import json | import json | ||||
| import os | import os | ||||
| try: | |||||
| import unittest2 as unittest | |||||
| except ImportError: | |||||
| import unittest | |||||
| import unittest | |||||
| import mwparserfromhell | import mwparserfromhell | ||||
| from mwparserfromhell.compat import py3k, str | from mwparserfromhell.compat import py3k, str | ||||
| @@ -21,11 +21,7 @@ | |||||
| # SOFTWARE. | # SOFTWARE. | ||||
| from __future__ import unicode_literals | from __future__ import unicode_literals | ||||
| try: | |||||
| import unittest2 as unittest | |||||
| except ImportError: | |||||
| import unittest | |||||
| import unittest | |||||
| from mwparserfromhell.compat import str | from mwparserfromhell.compat import str | ||||
| from mwparserfromhell.nodes import ExternalLink, Text | from mwparserfromhell.nodes import ExternalLink, Text | ||||
| @@ -21,11 +21,7 @@ | |||||
| # SOFTWARE. | # SOFTWARE. | ||||
| from __future__ import unicode_literals | from __future__ import unicode_literals | ||||
| try: | |||||
| import unittest2 as unittest | |||||
| except ImportError: | |||||
| import unittest | |||||
| import unittest | |||||
| from mwparserfromhell.compat import str | from mwparserfromhell.compat import str | ||||
| from mwparserfromhell.nodes import Heading, Text | from mwparserfromhell.nodes import Heading, Text | ||||
| @@ -21,11 +21,7 @@ | |||||
| # SOFTWARE. | # SOFTWARE. | ||||
| from __future__ import unicode_literals | from __future__ import unicode_literals | ||||
| try: | |||||
| import unittest2 as unittest | |||||
| except ImportError: | |||||
| import unittest | |||||
| import unittest | |||||
| from mwparserfromhell.compat import str | from mwparserfromhell.compat import str | ||||
| from mwparserfromhell.nodes import HTMLEntity | from mwparserfromhell.nodes import HTMLEntity | ||||
| @@ -21,11 +21,7 @@ | |||||
| # SOFTWARE. | # SOFTWARE. | ||||
| from __future__ import unicode_literals | from __future__ import unicode_literals | ||||
| try: | |||||
| import unittest2 as unittest | |||||
| except ImportError: | |||||
| import unittest | |||||
| import unittest | |||||
| from mwparserfromhell.compat import str | from mwparserfromhell.compat import str | ||||
| from mwparserfromhell.nodes import Text | from mwparserfromhell.nodes import Text | ||||
| @@ -21,11 +21,7 @@ | |||||
| # SOFTWARE. | # SOFTWARE. | ||||
| from __future__ import unicode_literals | from __future__ import unicode_literals | ||||
| try: | |||||
| import unittest2 as unittest | |||||
| except ImportError: | |||||
| import unittest | |||||
| import unittest | |||||
| from mwparserfromhell import parser | from mwparserfromhell import parser | ||||
| from mwparserfromhell.compat import range | from mwparserfromhell.compat import range | ||||
| @@ -21,11 +21,7 @@ | |||||
| # SOFTWARE. | # SOFTWARE. | ||||
| from __future__ import unicode_literals | from __future__ import unicode_literals | ||||
| try: | |||||
| import unittest2 as unittest | |||||
| except ImportError: | |||||
| import unittest | |||||
| import unittest | |||||
| from mwparserfromhell.parser.tokenizer import Tokenizer | from mwparserfromhell.parser.tokenizer import Tokenizer | ||||
| @@ -21,11 +21,7 @@ | |||||
| # SOFTWARE. | # SOFTWARE. | ||||
| from __future__ import unicode_literals | from __future__ import unicode_literals | ||||
| try: | |||||
| import unittest2 as unittest | |||||
| except ImportError: | |||||
| import unittest | |||||
| import unittest | |||||
| from ._test_tokenizer import TokenizerTestCase | from ._test_tokenizer import TokenizerTestCase | ||||
| @@ -21,11 +21,7 @@ | |||||
| # SOFTWARE. | # SOFTWARE. | ||||
| from __future__ import unicode_literals | from __future__ import unicode_literals | ||||
| try: | |||||
| import unittest2 as unittest | |||||
| except ImportError: | |||||
| import unittest | |||||
| import unittest | |||||
| from mwparserfromhell.compat import py3k, range | from mwparserfromhell.compat import py3k, range | ||||
| from mwparserfromhell.smart_list import SmartList, _ListProxy | from mwparserfromhell.smart_list import SmartList, _ListProxy | ||||
| @@ -23,13 +23,9 @@ | |||||
| from __future__ import unicode_literals | from __future__ import unicode_literals | ||||
| from sys import getdefaultencoding | from sys import getdefaultencoding | ||||
| from types import GeneratorType | from types import GeneratorType | ||||
| import unittest | |||||
| try: | |||||
| import unittest2 as unittest | |||||
| except ImportError: | |||||
| import unittest | |||||
| from mwparserfromhell.compat import bytes, py3k, py32, range, str | |||||
| from mwparserfromhell.compat import bytes, py3k, range, str | |||||
| from mwparserfromhell.string_mixin import StringMixIn | from mwparserfromhell.string_mixin import StringMixIn | ||||
| class _FakeString(StringMixIn): | class _FakeString(StringMixIn): | ||||
| @@ -54,9 +50,7 @@ class TestStringMixIn(unittest.TestCase): | |||||
| "rsplit", "rstrip", "split", "splitlines", "startswith", "strip", | "rsplit", "rstrip", "split", "splitlines", "startswith", "strip", | ||||
| "swapcase", "title", "translate", "upper", "zfill"] | "swapcase", "title", "translate", "upper", "zfill"] | ||||
| if py3k: | if py3k: | ||||
| if not py32: | |||||
| methods.append("casefold") | |||||
| methods.extend(["format_map", "isidentifier", "isprintable", | |||||
| methods.extend(["casefold", "format_map", "isidentifier", "isprintable", | |||||
| "maketrans"]) | "maketrans"]) | ||||
| else: | else: | ||||
| methods.append("decode") | methods.append("decode") | ||||
| @@ -329,7 +323,7 @@ class TestStringMixIn(unittest.TestCase): | |||||
| self.assertEqual("", str15.lower()) | self.assertEqual("", str15.lower()) | ||||
| self.assertEqual("foobar", str16.lower()) | self.assertEqual("foobar", str16.lower()) | ||||
| self.assertEqual("ß", str22.lower()) | self.assertEqual("ß", str22.lower()) | ||||
| if py3k and not py32: | |||||
| if py3k: | |||||
| self.assertEqual("", str15.casefold()) | self.assertEqual("", str15.casefold()) | ||||
| self.assertEqual("foobar", str16.casefold()) | self.assertEqual("foobar", str16.casefold()) | ||||
| self.assertEqual("ss", str22.casefold()) | self.assertEqual("ss", str22.casefold()) | ||||
| @@ -378,7 +372,7 @@ class TestStringMixIn(unittest.TestCase): | |||||
| self.assertEqual(actual, str25.rsplit(None, 3)) | self.assertEqual(actual, str25.rsplit(None, 3)) | ||||
| actual = [" this is a sentence with", "", "whitespace", ""] | actual = [" this is a sentence with", "", "whitespace", ""] | ||||
| self.assertEqual(actual, str25.rsplit(" ", 3)) | self.assertEqual(actual, str25.rsplit(" ", 3)) | ||||
| if py3k and not py32: | |||||
| if py3k: | |||||
| actual = [" this is a", "sentence", "with", "whitespace"] | actual = [" this is a", "sentence", "with", "whitespace"] | ||||
| self.assertEqual(actual, str25.rsplit(maxsplit=3)) | self.assertEqual(actual, str25.rsplit(maxsplit=3)) | ||||
| @@ -396,7 +390,7 @@ class TestStringMixIn(unittest.TestCase): | |||||
| self.assertEqual(actual, str25.split(None, 3)) | self.assertEqual(actual, str25.split(None, 3)) | ||||
| actual = ["", "", "", "this is a sentence with whitespace "] | actual = ["", "", "", "this is a sentence with whitespace "] | ||||
| self.assertEqual(actual, str25.split(" ", 3)) | self.assertEqual(actual, str25.split(" ", 3)) | ||||
| if py3k and not py32: | |||||
| if py3k: | |||||
| actual = ["this", "is", "a", "sentence with whitespace "] | actual = ["this", "is", "a", "sentence with whitespace "] | ||||
| self.assertEqual(actual, str25.split(maxsplit=3)) | self.assertEqual(actual, str25.split(maxsplit=3)) | ||||
| @@ -21,11 +21,7 @@ | |||||
| # SOFTWARE. | # SOFTWARE. | ||||
| from __future__ import unicode_literals | from __future__ import unicode_literals | ||||
| try: | |||||
| import unittest2 as unittest | |||||
| except ImportError: | |||||
| import unittest | |||||
| import unittest | |||||
| from mwparserfromhell.compat import str | from mwparserfromhell.compat import str | ||||
| from mwparserfromhell.nodes import Tag, Template, Text | from mwparserfromhell.nodes import Tag, Template, Text | ||||
| @@ -22,11 +22,7 @@ | |||||
| from __future__ import unicode_literals | from __future__ import unicode_literals | ||||
| from difflib import unified_diff | from difflib import unified_diff | ||||
| try: | |||||
| import unittest2 as unittest | |||||
| except ImportError: | |||||
| import unittest | |||||
| import unittest | |||||
| from mwparserfromhell.compat import str | from mwparserfromhell.compat import str | ||||
| from mwparserfromhell.nodes import HTMLEntity, Template, Text | from mwparserfromhell.nodes import HTMLEntity, Template, Text | ||||
| @@ -21,11 +21,7 @@ | |||||
| # SOFTWARE. | # SOFTWARE. | ||||
| from __future__ import unicode_literals | from __future__ import unicode_literals | ||||
| try: | |||||
| import unittest2 as unittest | |||||
| except ImportError: | |||||
| import unittest | |||||
| import unittest | |||||
| from mwparserfromhell.compat import str | from mwparserfromhell.compat import str | ||||
| from mwparserfromhell.nodes import Text | from mwparserfromhell.nodes import Text | ||||
| @@ -21,11 +21,7 @@ | |||||
| # SOFTWARE. | # SOFTWARE. | ||||
| from __future__ import unicode_literals | from __future__ import unicode_literals | ||||
| try: | |||||
| import unittest2 as unittest | |||||
| except ImportError: | |||||
| import unittest | |||||
| import unittest | |||||
| from mwparserfromhell.compat import py3k | from mwparserfromhell.compat import py3k | ||||
| from mwparserfromhell.parser import tokens | from mwparserfromhell.parser import tokens | ||||
| @@ -21,11 +21,7 @@ | |||||
| # SOFTWARE. | # SOFTWARE. | ||||
| from __future__ import unicode_literals | from __future__ import unicode_literals | ||||
| try: | |||||
| import unittest2 as unittest | |||||
| except ImportError: | |||||
| import unittest | |||||
| import unittest | |||||
| from mwparserfromhell.nodes import Template, Text | from mwparserfromhell.nodes import Template, Text | ||||
| from mwparserfromhell.utils import parse_anything | from mwparserfromhell.utils import parse_anything | ||||
| @@ -24,11 +24,7 @@ from __future__ import unicode_literals | |||||
| from functools import partial | from functools import partial | ||||
| import re | import re | ||||
| from types import GeneratorType | from types import GeneratorType | ||||
| try: | |||||
| import unittest2 as unittest | |||||
| except ImportError: | |||||
| import unittest | |||||
| import unittest | |||||
| from mwparserfromhell.compat import py3k, str | from mwparserfromhell.compat import py3k, str | ||||
| from mwparserfromhell.nodes import (Argument, Comment, Heading, HTMLEntity, | from mwparserfromhell.nodes import (Argument, Comment, Heading, HTMLEntity, | ||||
| @@ -21,11 +21,7 @@ | |||||
| # SOFTWARE. | # SOFTWARE. | ||||
| from __future__ import unicode_literals | from __future__ import unicode_literals | ||||
| try: | |||||
| import unittest2 as unittest | |||||
| except ImportError: | |||||
| import unittest | |||||
| import unittest | |||||
| from mwparserfromhell.compat import str | from mwparserfromhell.compat import str | ||||
| from mwparserfromhell.nodes import Text, Wikilink | from mwparserfromhell.nodes import Text, Wikilink | ||||