summaryrefslogtreecommitdiff
path: root/src/lxml
diff options
context:
space:
mode:
authorHugo <hugovk@users.noreply.github.com>2018-08-25 20:53:59 +0300
committerHugo <hugovk@users.noreply.github.com>2018-08-25 20:53:59 +0300
commitbeaa4eb8904b9209d75d98059b5b92b26fdfebe3 (patch)
treeef93682f795b4771f8d569af549b8d9d1933ceb4 /src/lxml
parent396ded1558c4ea7a3723be994c76304b7c5edff8 (diff)
downloadpython-lxml-beaa4eb8904b9209d75d98059b5b92b26fdfebe3.tar.gz
Remove redundant code for Python <= 2.6
Diffstat (limited to 'src/lxml')
-rw-r--r--src/lxml/apihelpers.pxi5
-rw-r--r--src/lxml/etree.pyx11
-rw-r--r--src/lxml/html/clean.py5
-rw-r--r--src/lxml/html/tests/test_autolink.py3
-rw-r--r--src/lxml/html/tests/test_basic.py3
-rw-r--r--src/lxml/html/tests/test_clean.py7
-rw-r--r--src/lxml/html/tests/test_diff.py5
-rw-r--r--src/lxml/html/tests/test_feedparser_data.py26
-rw-r--r--src/lxml/html/tests/test_formfill.py3
-rw-r--r--src/lxml/html/tests/test_forms.py3
-rw-r--r--src/lxml/html/tests/test_html5parser.py20
-rw-r--r--src/lxml/html/tests/test_rewritelinks.py3
-rw-r--r--src/lxml/includes/etree_defs.h9
-rw-r--r--src/lxml/python.pxd2
-rw-r--r--src/lxml/tests/dummy_http_server.py2
-rw-r--r--src/lxml/tests/test_doctestcompare.py3
-rw-r--r--src/lxml/tests/test_etree.py6
-rw-r--r--src/lxml/tests/test_external_document.py2
-rw-r--r--src/lxml/tests/test_http_io.py2
-rw-r--r--src/lxml/tests/test_io.py11
-rw-r--r--src/lxml/tests/test_objectify.py4
21 files changed, 39 insertions, 96 deletions
diff --git a/src/lxml/apihelpers.pxi b/src/lxml/apihelpers.pxi
index eb122a21..1a99d2a7 100644
--- a/src/lxml/apihelpers.pxi
+++ b/src/lxml/apihelpers.pxi
@@ -247,7 +247,7 @@ cdef _iter_nsmap(nsmap):
if len(nsmap) <= 1:
return nsmap.items()
# nsmap will usually be a plain unordered dict => avoid type checking overhead
- if OrderedDict is not None and type(nsmap) is not dict and isinstance(nsmap, OrderedDict):
+ if type(nsmap) is not dict and isinstance(nsmap, OrderedDict):
return nsmap.items() # keep existing order
if None not in nsmap:
return sorted(nsmap.items())
@@ -273,8 +273,7 @@ cdef _iter_attrib(attrib):
# attrib will usually be a plain unordered dict
if type(attrib) is dict:
return sorted(attrib.items())
- elif isinstance(attrib, _Attrib) or (
- OrderedDict is not None and isinstance(attrib, OrderedDict)):
+ elif isinstance(attrib, _Attrib) or (isinstance(attrib, OrderedDict)):
return attrib.items()
else:
# assume it's an unordered mapping of some kind
diff --git a/src/lxml/etree.pyx b/src/lxml/etree.pyx
index acea9d20..59aeb487 100644
--- a/src/lxml/etree.pyx
+++ b/src/lxml/etree.pyx
@@ -66,10 +66,7 @@ cdef object BytesIO, StringIO
from io import BytesIO, StringIO
cdef object OrderedDict = None
-try:
- from collections import OrderedDict
-except ImportError:
- pass
+from collections import OrderedDict
cdef object _elementpath
from lxml import _elementpath
@@ -91,7 +88,7 @@ cdef object ITER_EMPTY = iter(())
try:
from collections.abc import MutableMapping # Py3.3+
except ImportError:
- from collections import MutableMapping # Py2.6+
+ from collections import MutableMapping # Py2.7
class _ImmutableMapping(MutableMapping):
def __getitem__(self, key):
@@ -3437,7 +3434,6 @@ def adopt_external_document(capsule, _BaseParser parser=None):
This allows external libraries to build XML/HTML trees using libxml2
and then pass them efficiently into lxml for further processing.
- Requires Python 2.7 or later.
If a ``parser`` is provided, it will be used for configuring the
lxml document. No parsing will be done.
@@ -3461,9 +3457,6 @@ def adopt_external_document(capsule, _BaseParser parser=None):
If no copy is made, later modifications of the tree outside of lxml
should not be attempted after transferring the ownership.
"""
- if python.PY_VERSION_HEX < 0x02070000:
- raise NotImplementedError("PyCapsule usage requires Python 2.7+")
-
cdef xmlDoc* c_doc
cdef bint is_owned = False
c_doc = <xmlDoc*> python.lxml_unpack_xmldoc_capsule(capsule, &is_owned)
diff --git a/src/lxml/html/clean.py b/src/lxml/html/clean.py
index adc3f450..f9570449 100644
--- a/src/lxml/html/clean.py
+++ b/src/lxml/html/clean.py
@@ -27,11 +27,6 @@ except NameError:
# Python 3
unicode = str
try:
- bytes
-except NameError:
- # Python < 2.6
- bytes = str
-try:
basestring
except NameError:
basestring = (str, bytes)
diff --git a/src/lxml/html/tests/test_autolink.py b/src/lxml/html/tests/test_autolink.py
index 61b474ce..77ba8ae1 100644
--- a/src/lxml/html/tests/test_autolink.py
+++ b/src/lxml/html/tests/test_autolink.py
@@ -3,8 +3,7 @@ from lxml.tests.common_imports import make_doctest
def test_suite():
suite = unittest.TestSuite()
- if sys.version_info >= (2,4):
- suite.addTests([make_doctest('test_autolink.txt')])
+ suite.addTests([make_doctest('test_autolink.txt')])
return suite
if __name__ == '__main__':
diff --git a/src/lxml/html/tests/test_basic.py b/src/lxml/html/tests/test_basic.py
index fd4896a7..4f8214f3 100644
--- a/src/lxml/html/tests/test_basic.py
+++ b/src/lxml/html/tests/test_basic.py
@@ -4,8 +4,7 @@ import lxml.html
def test_suite():
suite = unittest.TestSuite()
- if sys.version_info >= (2,4):
- suite.addTests([make_doctest('test_basic.txt')])
+ suite.addTests([make_doctest('test_basic.txt')])
suite.addTests([doctest.DocTestSuite(lxml.html)])
return suite
diff --git a/src/lxml/html/tests/test_clean.py b/src/lxml/html/tests/test_clean.py
index 3bcaaf5a..a8187219 100644
--- a/src/lxml/html/tests/test_clean.py
+++ b/src/lxml/html/tests/test_clean.py
@@ -72,9 +72,8 @@ class CleanerTest(unittest.TestCase):
def test_suite():
suite = unittest.TestSuite()
- if sys.version_info >= (2,4):
- suite.addTests([make_doctest('test_clean.txt')])
- if LIBXML_VERSION >= (2,6,31):
- suite.addTests([make_doctest('test_clean_embed.txt')])
+ suite.addTests([make_doctest('test_clean.txt')])
+ if LIBXML_VERSION >= (2,6,31):
+ suite.addTests([make_doctest('test_clean_embed.txt')])
suite.addTests(unittest.makeSuite(CleanerTest))
return suite
diff --git a/src/lxml/html/tests/test_diff.py b/src/lxml/html/tests/test_diff.py
index f1fba4bc..4b279e96 100644
--- a/src/lxml/html/tests/test_diff.py
+++ b/src/lxml/html/tests/test_diff.py
@@ -5,9 +5,8 @@ from lxml.html import diff
def test_suite():
suite = unittest.TestSuite()
- if sys.version_info >= (2,4):
- suite.addTests([make_doctest('test_diff.txt'),
- doctest.DocTestSuite(diff)])
+ suite.addTests([make_doctest('test_diff.txt'),
+ doctest.DocTestSuite(diff)])
return suite
if __name__ == '__main__':
diff --git a/src/lxml/html/tests/test_feedparser_data.py b/src/lxml/html/tests/test_feedparser_data.py
index eaf8c29e..ebf3462d 100644
--- a/src/lxml/html/tests/test_feedparser_data.py
+++ b/src/lxml/html/tests/test_feedparser_data.py
@@ -8,8 +8,7 @@ except ImportError:
from email import message_from_file as Message
import unittest
from lxml.tests.common_imports import doctest
-if sys.version_info >= (2,4):
- from lxml.doctestcompare import LHTMLOutputChecker
+from lxml.doctestcompare import LHTMLOutputChecker
from lxml.html.clean import clean, Cleaner
@@ -83,16 +82,15 @@ class FeedTestCase(unittest.TestCase):
def test_suite():
suite = unittest.TestSuite()
- if sys.version_info >= (2,4):
- for dir in feed_dirs:
- for fn in os.listdir(dir):
- fn = os.path.join(dir, fn)
- if fn.endswith('.data'):
- case = FeedTestCase(fn)
- suite.addTests([case])
- # This is my lazy way of stopping on first error:
- try:
- case.runTest()
- except:
- break
+ for dir in feed_dirs:
+ for fn in os.listdir(dir):
+ fn = os.path.join(dir, fn)
+ if fn.endswith('.data'):
+ case = FeedTestCase(fn)
+ suite.addTests([case])
+ # This is my lazy way of stopping on first error:
+ try:
+ case.runTest()
+ except:
+ break
return suite
diff --git a/src/lxml/html/tests/test_formfill.py b/src/lxml/html/tests/test_formfill.py
index 7893c20b..8e7e9cfa 100644
--- a/src/lxml/html/tests/test_formfill.py
+++ b/src/lxml/html/tests/test_formfill.py
@@ -3,6 +3,5 @@ from lxml.tests.common_imports import make_doctest
def test_suite():
suite = unittest.TestSuite()
- if sys.version_info >= (2,4):
- suite.addTests([make_doctest('test_formfill.txt')])
+ suite.addTests([make_doctest('test_formfill.txt')])
return suite
diff --git a/src/lxml/html/tests/test_forms.py b/src/lxml/html/tests/test_forms.py
index e8b00c4d..2ad107e2 100644
--- a/src/lxml/html/tests/test_forms.py
+++ b/src/lxml/html/tests/test_forms.py
@@ -3,8 +3,7 @@ from lxml.tests.common_imports import make_doctest
def test_suite():
suite = unittest.TestSuite()
- if sys.version_info >= (2,4):
- suite.addTests([make_doctest('test_forms.txt')])
+ suite.addTests([make_doctest('test_forms.txt')])
return suite
if __name__ == '__main__':
diff --git a/src/lxml/html/tests/test_html5parser.py b/src/lxml/html/tests/test_html5parser.py
index 6a4eba57..8d703a14 100644
--- a/src/lxml/html/tests/test_html5parser.py
+++ b/src/lxml/html/tests/test_html5parser.py
@@ -7,23 +7,9 @@ except ImportError: # python 3
import sys
import tempfile
import unittest
-try:
- from unittest import skipUnless
-except ImportError:
- # sys.version < (2, 7)
- def skipUnless(condition, reason):
- return lambda f: condition and f or None
-
-if sys.version_info < (2,6):
- class NamedTemporaryFile(object):
- def __init__(self, delete=True, **kwargs):
- self._tmpfile = tempfile.NamedTemporaryFile(**kwargs)
- def close(self):
- self._tmpfile.flush()
- def __getattr__(self, name):
- return getattr(self._tmpfile, name)
-else:
- NamedTemporaryFile = tempfile.NamedTemporaryFile
+from unittest import skipUnless
+
+NamedTemporaryFile = tempfile.NamedTemporaryFile
from lxml.builder import ElementMaker
from lxml.etree import Element, ElementTree, ParserError
diff --git a/src/lxml/html/tests/test_rewritelinks.py b/src/lxml/html/tests/test_rewritelinks.py
index b4653234..c7b86257 100644
--- a/src/lxml/html/tests/test_rewritelinks.py
+++ b/src/lxml/html/tests/test_rewritelinks.py
@@ -3,8 +3,7 @@ from lxml.tests.common_imports import make_doctest
def test_suite():
suite = unittest.TestSuite()
- if sys.version_info >= (2,4):
- suite.addTests([make_doctest('test_rewritelinks.txt')])
+ suite.addTests([make_doctest('test_rewritelinks.txt')])
return suite
if __name__ == '__main__':
diff --git a/src/lxml/includes/etree_defs.h b/src/lxml/includes/etree_defs.h
index f935a79e..ccf35a59 100644
--- a/src/lxml/includes/etree_defs.h
+++ b/src/lxml/includes/etree_defs.h
@@ -6,8 +6,8 @@
#ifndef PY_VERSION_HEX
# error the development package of Python (header files etc.) is not installed correctly
#else
-# if PY_VERSION_HEX < 0x02060000 || PY_MAJOR_VERSION >= 3 && PY_VERSION_HEX < 0x03020000
-# error this version of lxml requires Python 2.6, 2.7, 3.2 or later
+# if PY_VERSION_HEX < 0x02070000 || PY_MAJOR_VERSION >= 3 && PY_VERSION_HEX < 0x03030000
+# error this version of lxml requires Python 2.7, 3.3 or later
# endif
#endif
@@ -262,8 +262,6 @@ long _ftol2( double dblSource ) { return _ftol( dblSource ); }
(((c_node)->ns == 0) ? 0 : ((c_node)->ns->href))
-/* PyCapsule was added in Py2.7 */
-#if PY_VERSION_HEX >= 0x02070000
#include "string.h"
static void* lxml_unpack_xmldoc_capsule(PyObject* capsule, int* is_owned) {
xmlDoc *c_doc;
@@ -301,9 +299,6 @@ static void* lxml_unpack_xmldoc_capsule(PyObject* capsule, int* is_owned) {
}
return c_doc;
}
-#else
-# define lxml_unpack_xmldoc_capsule(capsule, is_owned) ((((void)capsule, 0) || ((void)is_owned, 0)) ? NULL : NULL)
-#endif
/* Macro pair implementation of a depth first tree walker
*
diff --git a/src/lxml/python.pxd b/src/lxml/python.pxd
index 5eb9271c..0d26cdd5 100644
--- a/src/lxml/python.pxd
+++ b/src/lxml/python.pxd
@@ -29,7 +29,7 @@ cdef extern from "Python.h":
char* encoding, char* errors)
cdef cython.unicode PyUnicode_DecodeUTF8(char* s, Py_ssize_t size, char* errors)
cdef cython.unicode PyUnicode_DecodeLatin1(char* s, Py_ssize_t size, char* errors)
- cdef object PyUnicode_RichCompare(object o1, object o2, int op) # not in Py2.4
+ cdef object PyUnicode_RichCompare(object o1, object o2, int op)
cdef bytes PyUnicode_AsUTF8String(object ustring)
cdef bytes PyUnicode_AsASCIIString(object ustring)
cdef char* PyUnicode_AS_DATA(object ustring)
diff --git a/src/lxml/tests/dummy_http_server.py b/src/lxml/tests/dummy_http_server.py
index b92c5a5f..70ef8d6a 100644
--- a/src/lxml/tests/dummy_http_server.py
+++ b/src/lxml/tests/dummy_http_server.py
@@ -1,5 +1,5 @@
"""
-Simple HTTP request dumper for tests in Python 2.5+.
+Simple HTTP request dumper for tests.
"""
import sys
diff --git a/src/lxml/tests/test_doctestcompare.py b/src/lxml/tests/test_doctestcompare.py
index 44179d91..e3cc2ab6 100644
--- a/src/lxml/tests/test_doctestcompare.py
+++ b/src/lxml/tests/test_doctestcompare.py
@@ -123,8 +123,7 @@ class DoctestCompareTest(HelperTestCase):
def test_suite():
suite = unittest.TestSuite()
- if sys.version_info >= (2,4):
- suite.addTests([unittest.makeSuite(DoctestCompareTest)])
+ suite.addTests([unittest.makeSuite(DoctestCompareTest)])
return suite
diff --git a/src/lxml/tests/test_etree.py b/src/lxml/tests/test_etree.py
index 89f77eba..79daa24a 100644
--- a/src/lxml/tests/test_etree.py
+++ b/src/lxml/tests/test_etree.py
@@ -4613,10 +4613,8 @@ def test_suite():
suite.addTests(doctest.DocTestSuite(etree))
suite.addTests(
[make_doctest('../../../doc/tutorial.txt')])
- if sys.version_info >= (2,6):
- # now requires the 'with' statement
- suite.addTests(
- [make_doctest('../../../doc/api.txt')])
+ suite.addTests(
+ [make_doctest('../../../doc/api.txt')])
suite.addTests(
[make_doctest('../../../doc/FAQ.txt')])
suite.addTests(
diff --git a/src/lxml/tests/test_external_document.py b/src/lxml/tests/test_external_document.py
index d28328a3..b0dd3f2f 100644
--- a/src/lxml/tests/test_external_document.py
+++ b/src/lxml/tests/test_external_document.py
@@ -14,8 +14,6 @@ DOC_NAME = b'libxml2:xmlDoc'
DESTRUCTOR_NAME = b'destructor:xmlFreeDoc'
-@skipIf(sys.version_info[:2] < (2, 7),
- 'Not supported for python < 2.7')
class ExternalDocumentTestCase(HelperTestCase):
def setUp(self):
import ctypes
diff --git a/src/lxml/tests/test_http_io.py b/src/lxml/tests/test_http_io.py
index 2e62626e..d058fad2 100644
--- a/src/lxml/tests/test_http_io.py
+++ b/src/lxml/tests/test_http_io.py
@@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
"""
-Web IO test cases that need Python 2.5+ (wsgiref)
+Web IO test cases (wsgiref)
"""
from __future__ import with_statement
diff --git a/src/lxml/tests/test_io.py b/src/lxml/tests/test_io.py
index 06199875..bafa196d 100644
--- a/src/lxml/tests/test_io.py
+++ b/src/lxml/tests/test_io.py
@@ -15,16 +15,7 @@ from common_imports import etree, ElementTree, _str, _bytes
from common_imports import SillyFileLike, LargeFileLike, HelperTestCase
from common_imports import read_file, write_to_file, BytesIO
-if sys.version_info < (2,6):
- class NamedTemporaryFile(object):
- def __init__(self, delete=True, **kwargs):
- self._tmpfile = tempfile.NamedTemporaryFile(**kwargs)
- def close(self):
- self._tmpfile.flush()
- def __getattr__(self, name):
- return getattr(self._tmpfile, name)
-else:
- NamedTemporaryFile = tempfile.NamedTemporaryFile
+NamedTemporaryFile = tempfile.NamedTemporaryFile
class _IOTestCaseBase(HelperTestCase):
diff --git a/src/lxml/tests/test_objectify.py b/src/lxml/tests/test_objectify.py
index 68b9d7a8..71c194bb 100644
--- a/src/lxml/tests/test_objectify.py
+++ b/src/lxml/tests/test_objectify.py
@@ -2621,9 +2621,7 @@ def test_suite():
suite = unittest.TestSuite()
suite.addTests([unittest.makeSuite(ObjectifyTestCase)])
suite.addTests(doctest.DocTestSuite(objectify))
- if sys.version_info >= (2,4):
- suite.addTests(
- [make_doctest('../../../doc/objectify.txt')])
+ suite.addTests([make_doctest('../../../doc/objectify.txt')])
return suite
if __name__ == '__main__':