diff options
author | Gunnar Aastrand Grimnes <gromgull@gmail.com> | 2017-01-30 21:50:05 +0100 |
---|---|---|
committer | Gunnar Aastrand Grimnes <gromgull@gmail.com> | 2017-01-30 21:50:05 +0100 |
commit | bfcde8482401393ea183242f0ddca5bff73afc2c (patch) | |
tree | a638c67c850c2ba952cf419f448034a5e8b18196 | |
parent | ff4616e6e58e83fae518770f0af2e6ca4922ac42 (diff) | |
download | rdflib-bfcde8482401393ea183242f0ddca5bff73afc2c.tar.gz |
removed most of the six import from py3compat
now six is used throughout.
84 files changed, 223 insertions, 309 deletions
diff --git a/.travis.yml b/.travis.yml index fa9a4473..3e875c5d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -16,7 +16,6 @@ python: - 3.6 before_install: - - pip install -U setuptools pip # seems travis comes with a too old setuptools for html5lib - bash .travis.fuseki_install_optional.sh install: diff --git a/examples/film.py b/examples/film.py index b18341e8..0672840a 100644 --- a/examples/film.py +++ b/examples/film.py @@ -32,7 +32,7 @@ except ImportError: from rdflib import BNode, ConjunctiveGraph, URIRef, Literal, Namespace, RDF from rdflib.namespace import FOAF, DC -from rdflib.py3compat import input +from six.moves import input storefn = os.path.expanduser('~/movies.n3') #storefn = '/home/simon/codes/film.dev/movies.n3' diff --git a/examples/graph_digest_benchmark.py b/examples/graph_digest_benchmark.py index 5e940c3d..2e64e1bf 100644 --- a/examples/graph_digest_benchmark.py +++ b/examples/graph_digest_benchmark.py @@ -10,7 +10,8 @@ from __future__ import print_function from rdflib import Namespace, Graph from rdflib.compare import to_isomorphic -from rdflib.py3compat import urlopen, queue +from six.moves.urllib.request import urlopen +from six.moves import queue import sys, csv from io import StringIO @@ -75,7 +76,7 @@ def files_benchmark(ontologies, output_file, threads): print('ERROR', stats['id'], e) stats['error'] = str(e) finished_tasks.put(stats) - except Empty: + except queue.Empty: pass for i in range(int(threads)): print("Starting worker", i) diff --git a/rdflib/compare.py b/rdflib/compare.py index 07aedc87..fb9b1902 100644 --- a/rdflib/compare.py +++ b/rdflib/compare.py @@ -93,7 +93,7 @@ from hashlib import sha256 from datetime import datetime from collections import defaultdict -from .py3compat import text_type +from six import text_type def _total_seconds(td): @@ -147,7 +147,7 @@ class IsomorphicGraph(ConjunctiveGraph): sum and SHA-256 <http://www.hpl.hp.com/techreports/2003/HPL-2003-235R1.pdf> and traces <http://pallini.di.uniroma1.it>, an average case polynomial time algorithm for graph canonicalization. - + McCusker, J. P. (2015). WebSig: A Digital Signature Framework for the Web. Rensselaer Polytechnic Institute, Troy, NY. http://gradworks.umi.com/3727015.pdf diff --git a/rdflib/extras/describer.py b/rdflib/extras/describer.py index b0c2f09e..1cecfa87 100644 --- a/rdflib/extras/describer.py +++ b/rdflib/extras/describer.py @@ -4,7 +4,7 @@ from __future__ import absolute_import from __future__ import division from __future__ import print_function -from ..py3compat import format_doctest_out +from rdflib.py3compat import format_doctest_out __doc__ = format_doctest_out(""" A Describer is a stateful utility for creating RDF statements in a semi-declarative manner. It has methods for creating literal values, rel and diff --git a/rdflib/extras/infixowl.py b/rdflib/extras/infixowl.py index 0213331e..7d5e9a14 100644 --- a/rdflib/extras/infixowl.py +++ b/rdflib/extras/infixowl.py @@ -4,8 +4,8 @@ from __future__ import absolute_import from __future__ import division from __future__ import print_function -from ..py3compat import PY3 -from ..py3compat import format_doctest_out +from six import PY3 +from rdflib.py3compat import format_doctest_out __doc__ = format_doctest_out(""" RDFLib Python binding for OWL Abstract Syntax diff --git a/rdflib/graph.py b/rdflib/graph.py index 06b02b3b..e87ecea6 100644 --- a/rdflib/graph.py +++ b/rdflib/graph.py @@ -6,7 +6,7 @@ from rdflib.term import Literal # required for doctests assert Literal # avoid warning from rdflib.namespace import Namespace # required for doctests assert Namespace # avoid warning -from .py3compat import format_doctest_out +from rdflib.py3compat import format_doctest_out __doc__ = format_doctest_out("""\ @@ -266,9 +266,9 @@ import os import shutil import tempfile -from .py3compat import BytesIO -from .py3compat import b -from .py3compat import urlparse +from six import BytesIO +from six import b +from six.moves.urllib.parse import urlparse __all__ = [ 'Graph', 'ConjunctiveGraph', 'QuotedGraph', 'Seq', diff --git a/rdflib/namespace.py b/rdflib/namespace.py index 5d3842bf..e65f10b0 100644 --- a/rdflib/namespace.py +++ b/rdflib/namespace.py @@ -2,7 +2,7 @@ from __future__ import absolute_import from __future__ import division from __future__ import print_function -from rdflib.py3compat import format_doctest_out +from .py3compat import format_doctest_out __doc__ = format_doctest_out(""" =================== @@ -65,12 +65,12 @@ logger = logging.getLogger(__name__) import os -from .py3compat import string_types -from .py3compat import text_type +from six import string_types +from six import text_type -from .py3compat import pathname2url -from .py3compat import urldefrag -from .py3compat import urljoin +from six.moves.urllib.request import pathname2url +from six.moves.urllib.parse import urldefrag +from six.moves.urllib.parse import urljoin from rdflib.term import URIRef, Variable, _XSD_PFX, _is_valid_uri diff --git a/rdflib/parser.py b/rdflib/parser.py index 6e3b6113..d98006e2 100644 --- a/rdflib/parser.py +++ b/rdflib/parser.py @@ -16,15 +16,15 @@ from __future__ import print_function import os import sys -from .py3compat import BytesIO -from .py3compat import string_types -from .py3compat import text_type - -from .py3compat import pathname2url -from .py3compat import Request -from .py3compat import url2pathname -from .py3compat import urljoin -from .py3compat import urlopen +from six import BytesIO +from six import string_types +from six import text_type + +from six.moves.urllib.request import pathname2url +from six.moves.urllib.request import Request +from six.moves.urllib.request import url2pathname +from six.moves.urllib.parse import urljoin +from six.moves.urllib.request import urlopen from xml.sax import xmlreader diff --git a/rdflib/paths.py b/rdflib/paths.py index 31e2230f..e745f8cf 100644 --- a/rdflib/paths.py +++ b/rdflib/paths.py @@ -1,4 +1,5 @@ -from rdflib.py3compat import PY3, format_doctest_out +from six import PY3 +from rdflib.py3compat import format_doctest_out __doc__ = format_doctest_out(""" diff --git a/rdflib/plugins/memory.py b/rdflib/plugins/memory.py index fb12e000..f1cb5870 100644 --- a/rdflib/plugins/memory.py +++ b/rdflib/plugins/memory.py @@ -4,7 +4,7 @@ from __future__ import print_function from rdflib.term import BNode from rdflib.store import Store, NO_STORE, VALID_STORE -from ..py3compat import iteritems +from six import iteritems __all__ = ['Memory', 'IOMemory'] diff --git a/rdflib/plugins/parsers/notation3.py b/rdflib/plugins/parsers/notation3.py index e196cb2a..e046e0d5 100755 --- a/rdflib/plugins/parsers/notation3.py +++ b/rdflib/plugins/parsers/notation3.py @@ -46,14 +46,14 @@ from uuid import uuid4 from rdflib.term import URIRef, BNode, Literal, Variable, _XSD_PFX, _unique_id from rdflib.graph import QuotedGraph, ConjunctiveGraph, Graph -from ...py3compat import b -from ...py3compat import binary_type -from ...py3compat import format_doctest_out -from ...py3compat import long_type -from ...py3compat import string_types -from ...py3compat import text_type -from ...py3compat import unichr -from ...py3compat import narrow_build +from six import b +from six import binary_type +from rdflib.py3compat import format_doctest_out +from rdflib.py3compat import long_type +from six import string_types +from six import text_type +from six import unichr +from rdflib.py3compat import narrow_build __all__ = ['BadSyntax', 'N3Parser', 'TurtleParser', "splitFragP", "join", "base", diff --git a/rdflib/plugins/parsers/nquads.py b/rdflib/plugins/parsers/nquads.py index 7437aa22..5857c9e4 100644 --- a/rdflib/plugins/parsers/nquads.py +++ b/rdflib/plugins/parsers/nquads.py @@ -28,7 +28,7 @@ from __future__ import print_function from codecs import getreader -from rdflib.py3compat import b +from six import b from rdflib import ConjunctiveGraph diff --git a/rdflib/plugins/parsers/ntriples.py b/rdflib/plugins/parsers/ntriples.py index 4c112c43..0ddd0fc7 100644 --- a/rdflib/plugins/parsers/ntriples.py +++ b/rdflib/plugins/parsers/ntriples.py @@ -17,14 +17,14 @@ from rdflib.term import BNode as bNode from rdflib.term import Literal -from ...py3compat import cast_bytes -from ...py3compat import decodeUnicodeEscape -from ...py3compat import ascii - -from ...py3compat import BytesIO -from ...py3compat import string_types -from ...py3compat import text_type -from ...py3compat import unichr +from rdflib.py3compat import cast_bytes +from rdflib.py3compat import decodeUnicodeEscape +from rdflib.py3compat import ascii + +from six import BytesIO +from six import string_types +from six import text_type +from six import unichr __all__ = ['unquote', 'uriquote', 'Sink', 'NTriplesParser'] diff --git a/rdflib/plugins/parsers/pyMicrodata/__init__.py b/rdflib/plugins/parsers/pyMicrodata/__init__.py index 6dd9d96e..e5d8dec5 100644 --- a/rdflib/plugins/parsers/pyMicrodata/__init__.py +++ b/rdflib/plugins/parsers/pyMicrodata/__init__.py @@ -52,7 +52,8 @@ __contact__ = 'Ivan Herman, ivan@w3.org' import sys -from rdflib.py3compat import StringIO, urlparse, string_types +from six import StringIO, string_types +from six.moves.urllib.parse import urlparse import datetime diff --git a/rdflib/plugins/parsers/pyMicrodata/microdata.py b/rdflib/plugins/parsers/pyMicrodata/microdata.py index 9d025902..ec6525ab 100644 --- a/rdflib/plugins/parsers/pyMicrodata/microdata.py +++ b/rdflib/plugins/parsers/pyMicrodata/microdata.py @@ -29,7 +29,7 @@ from rdflib import Namespace from rdflib import RDF as ns_rdf from rdflib import XSD as ns_xsd -from rdflib.py3compat import urlsplit, urlunsplit +from six.moves.urllib.parse import urlsplit, urlunsplit ns_owl = Namespace("http://www.w3.org/2002/07/owl#") diff --git a/rdflib/plugins/parsers/pyMicrodata/utils.py b/rdflib/plugins/parsers/pyMicrodata/utils.py index 88b1f96d..ac76d1b0 100644 --- a/rdflib/plugins/parsers/pyMicrodata/utils.py +++ b/rdflib/plugins/parsers/pyMicrodata/utils.py @@ -14,7 +14,10 @@ $Date: 2014-12-17 08:52:43 $ """ import sys, socket -from rdflib.py3compat import urlparse, build_opener, quote, urljoin, Request, HTTPError, BaseHTTPRequestHandler +from six.moves.urllib.parse import urlparse, quote, urljoin +from six.moves.urllib.request import build_opener, Request +from six.moves.urllib.error import HTTPError +from six.moves.BaseHTTPServer import BaseHTTPRequestHandler # The separate W3C branch is necessary for the local security setup at W3C. It is ugly to have this # in the code, but I was lazy to make it more generic... diff --git a/rdflib/plugins/parsers/pyRdfa/__init__.py b/rdflib/plugins/parsers/pyRdfa/__init__.py index 449a6306..f2daf4f4 100644 --- a/rdflib/plugins/parsers/pyRdfa/__init__.py +++ b/rdflib/plugins/parsers/pyRdfa/__init__.py @@ -166,7 +166,8 @@ __license__ = 'W3C® SOFTWARE NOTICE AND LICENSE, http://www.w3.org/Consortium/L import sys -from rdflib.py3compat import StringIO, urlparse, string_types +from six import StringIO, string_types +from six.moves.urllib.parse import urlparse import os import xml.dom.minidom diff --git a/rdflib/plugins/parsers/pyRdfa/embeddedRDF.py b/rdflib/plugins/parsers/pyRdfa/embeddedRDF.py index 084af8f5..e48b433b 100644 --- a/rdflib/plugins/parsers/pyRdfa/embeddedRDF.py +++ b/rdflib/plugins/parsers/pyRdfa/embeddedRDF.py @@ -10,7 +10,7 @@ U{W3C® SOFTWARE NOTICE AND LICENSE<href="http://www.w3.org/Consortium/Legal/200 @version: $Id: embeddedRDF.py,v 1.15 2012/11/16 17:51:53 ivan Exp $ """ -from rdflib.py3compat import StringIO +from six import StringIO from .host import accept_embedded_rdf_xml, accept_embedded_turtle from .utils import return_XML diff --git a/rdflib/plugins/parsers/pyRdfa/extras/httpheader.py b/rdflib/plugins/parsers/pyRdfa/extras/httpheader.py index abe91c60..267a5b09 100644 --- a/rdflib/plugins/parsers/pyRdfa/extras/httpheader.py +++ b/rdflib/plugins/parsers/pyRdfa/extras/httpheader.py @@ -102,7 +102,7 @@ License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA """ -from rdflib.py3compat import string_types, text_type +from six import string_types, text_type # Character classes from RFC 2616 section 2.2 SEPARATORS = '()<>@,;:\\"/[]?={} \t' diff --git a/rdflib/plugins/parsers/pyRdfa/options.py b/rdflib/plugins/parsers/pyRdfa/options.py index 8148f41e..d1b46695 100644 --- a/rdflib/plugins/parsers/pyRdfa/options.py +++ b/rdflib/plugins/parsers/pyRdfa/options.py @@ -23,7 +23,7 @@ from rdflib import Namespace from rdflib import Graph from rdflib import RDF as ns_rdf -from rdflib.py3compat import string_types +from six import string_types from .host import HostLanguage, content_to_host_language, predefined_1_0_rel, require_embedded_rdf from . import ns_xsd, ns_distill, ns_rdfa diff --git a/rdflib/plugins/parsers/pyRdfa/state.py b/rdflib/plugins/parsers/pyRdfa/state.py index ae0ee136..7832ebb4 100644 --- a/rdflib/plugins/parsers/pyRdfa/state.py +++ b/rdflib/plugins/parsers/pyRdfa/state.py @@ -39,7 +39,7 @@ from . import err_non_legal_CURIE_ref from . import err_undefined_CURIE -from rdflib.py3compat import urlparse, urlunparse, urlsplit, urljoin +from six.moves.urllib.parse import urlparse, urlunparse, urlsplit, urljoin class ListStructure : """Special class to handle the C{@inlist} type structures in RDFa 1.1; stores the "origin", i.e, diff --git a/rdflib/plugins/parsers/pyRdfa/termorcurie.py b/rdflib/plugins/parsers/pyRdfa/termorcurie.py index 2fbce750..78252a54 100644 --- a/rdflib/plugins/parsers/pyRdfa/termorcurie.py +++ b/rdflib/plugins/parsers/pyRdfa/termorcurie.py @@ -25,7 +25,7 @@ $Date: 2013-10-16 11:48:54 $ import re -from rdflib.py3compat import urlsplit +from six.moves.urllib.parse import urlsplit from rdflib import URIRef from rdflib import BNode diff --git a/rdflib/plugins/parsers/pyRdfa/utils.py b/rdflib/plugins/parsers/pyRdfa/utils.py index 776adfe0..d8634c8b 100644 --- a/rdflib/plugins/parsers/pyRdfa/utils.py +++ b/rdflib/plugins/parsers/pyRdfa/utils.py @@ -18,7 +18,11 @@ $Date: 2012/11/16 17:51:53 $ """ import sys, datetime -from rdflib.py3compat import Request, urlopen, urljoin, HTTPError, quote, BaseHTTPRequestHandler, text_type +from six.moves.urllib.request import Request, urlopen +from six.moves.urllib.parse import urljoin, quote +from six.moves.urllib.error import HTTPError +from six.moves.BaseHTTPServer import BaseHTTPRequestHandler +from six import text_type from .extras.httpheader import content_type, parse_http_datetime diff --git a/rdflib/plugins/parsers/rdfxml.py b/rdflib/plugins/parsers/rdfxml.py index 4a342018..6e6d2df2 100644 --- a/rdflib/plugins/parsers/rdfxml.py +++ b/rdflib/plugins/parsers/rdfxml.py @@ -7,7 +7,7 @@ from xml.sax.handler import ErrorHandler from xml.sax.saxutils import handler, quoteattr, escape -from rdflib.py3compat import urldefrag, urljoin +from six.moves.urllib.parse import urldefrag, urljoin from rdflib.namespace import RDF, is_ncname from rdflib.term import URIRef from rdflib.term import BNode diff --git a/rdflib/plugins/parsers/trix.py b/rdflib/plugins/parsers/trix.py index 0ff97302..26e0e35b 100644 --- a/rdflib/plugins/parsers/trix.py +++ b/rdflib/plugins/parsers/trix.py @@ -8,7 +8,7 @@ from rdflib.term import Literal from rdflib.graph import Graph, ConjunctiveGraph from rdflib.exceptions import ParserError from rdflib.parser import Parser -from rdflib.py3compat import text_type +from six import text_type from xml.sax.saxutils import handler from xml.sax import make_parser diff --git a/rdflib/plugins/serializers/nquads.py b/rdflib/plugins/serializers/nquads.py index 66c5e6f1..f2ed7860 100644 --- a/rdflib/plugins/serializers/nquads.py +++ b/rdflib/plugins/serializers/nquads.py @@ -2,7 +2,7 @@ import warnings from rdflib.term import Literal from rdflib.serializer import Serializer -from rdflib.py3compat import b +from six import b from rdflib.plugins.serializers.nt import _quoteLiteral diff --git a/rdflib/plugins/serializers/nt.py b/rdflib/plugins/serializers/nt.py index ca9eadf5..a85545f3 100644 --- a/rdflib/plugins/serializers/nt.py +++ b/rdflib/plugins/serializers/nt.py @@ -5,7 +5,7 @@ format. """ from rdflib.term import Literal from rdflib.serializer import Serializer -from rdflib.py3compat import b +from six import b import warnings import codecs diff --git a/rdflib/plugins/serializers/rdfxml.py b/rdflib/plugins/serializers/rdfxml.py index ee87c09d..71602438 100644 --- a/rdflib/plugins/serializers/rdfxml.py +++ b/rdflib/plugins/serializers/rdfxml.py @@ -11,7 +11,7 @@ from rdflib.serializer import Serializer # from rdflib.exceptions import Error -from rdflib.py3compat import b +from six import b from xml.sax.saxutils import quoteattr, escape import xml.dom.minidom diff --git a/rdflib/plugins/serializers/trig.py b/rdflib/plugins/serializers/trig.py index a8e35da2..6ccd8e10 100644 --- a/rdflib/plugins/serializers/trig.py +++ b/rdflib/plugins/serializers/trig.py @@ -7,7 +7,7 @@ from collections import defaultdict from rdflib.plugins.serializers.turtle import TurtleSerializer, _GEN_QNAME_FOR_DT, VERB from rdflib.term import BNode, Literal -from rdflib.py3compat import b +from six import b __all__ = ['TrigSerializer'] diff --git a/rdflib/plugins/serializers/trix.py b/rdflib/plugins/serializers/trix.py index de5f7e7b..84b9f820 100644 --- a/rdflib/plugins/serializers/trix.py +++ b/rdflib/plugins/serializers/trix.py @@ -6,7 +6,7 @@ from rdflib.namespace import Namespace from rdflib.graph import Graph, ConjunctiveGraph -from rdflib.py3compat import b, text_type +from six import text_type, b __all__ = ['TriXSerializer'] diff --git a/rdflib/plugins/serializers/turtle.py b/rdflib/plugins/serializers/turtle.py index 1f6bef0f..22cca7de 100644 --- a/rdflib/plugins/serializers/turtle.py +++ b/rdflib/plugins/serializers/turtle.py @@ -10,7 +10,7 @@ from rdflib.term import BNode, Literal, URIRef from rdflib.exceptions import Error from rdflib.serializer import Serializer from rdflib.namespace import RDF, RDFS -from rdflib.py3compat import b, text_type +from six import b, text_type __all__ = ['RecursiveSerializer', 'TurtleSerializer'] diff --git a/rdflib/plugins/sleepycat.py b/rdflib/plugins/sleepycat.py index 8597d2d0..c265e190 100644 --- a/rdflib/plugins/sleepycat.py +++ b/rdflib/plugins/sleepycat.py @@ -1,6 +1,7 @@ from rdflib.store import Store, VALID_STORE, NO_STORE from rdflib.term import URIRef -from rdflib.py3compat import b, pathname2url +from six import b +from six.moves.urllib.request import pathname2url def bb(u): diff --git a/rdflib/plugins/sparql/aggregates.py b/rdflib/plugins/sparql/aggregates.py index df4083e4..3e657c99 100644 --- a/rdflib/plugins/sparql/aggregates.py +++ b/rdflib/plugins/sparql/aggregates.py @@ -1,6 +1,6 @@ from rdflib import Literal, XSD -from rdflib.py3compat import text_type, itervalues +from six import text_type, itervalues from rdflib.plugins.sparql.evalutils import _eval, NotBoundError, _val from rdflib.plugins.sparql.operators import numeric from rdflib.plugins.sparql.datatypes import type_promotion diff --git a/rdflib/plugins/sparql/evaluate.py b/rdflib/plugins/sparql/evaluate.py index 4eb34196..03b52bfa 100644 --- a/rdflib/plugins/sparql/evaluate.py +++ b/rdflib/plugins/sparql/evaluate.py @@ -17,7 +17,7 @@ also return a dict of list of dicts import collections from rdflib import Variable, Graph, BNode, URIRef, Literal -from rdflib.py3compat import iteritems, itervalues +from six import iteritems, itervalues from rdflib.plugins.sparql import CUSTOM_EVALS from rdflib.plugins.sparql.parserutils import value diff --git a/rdflib/plugins/sparql/operators.py b/rdflib/plugins/sparql/operators.py index 8117d000..f488921f 100644 --- a/rdflib/plugins/sparql/operators.py +++ b/rdflib/plugins/sparql/operators.py @@ -25,7 +25,8 @@ from rdflib.plugins.sparql.parserutils import CompValue, Expr from rdflib.plugins.sparql.datatypes import XSD_DTs, type_promotion from rdflib import URIRef, BNode, Variable, Literal, XSD, RDF from rdflib.term import Node -from rdflib.py3compat import text_type, quote +from six import text_type +from six.moves.urllib.parse import quote from pyparsing import ParseResults diff --git a/rdflib/plugins/sparql/parser.py b/rdflib/plugins/sparql/parser.py index a00bac3c..f7db07eb 100644 --- a/rdflib/plugins/sparql/parser.py +++ b/rdflib/plugins/sparql/parser.py @@ -19,7 +19,8 @@ from pyparsing import CaselessKeyword as Keyword # watch out :) from .parserutils import Comp, Param, ParamList from . import operators as op -from rdflib.py3compat import decodeUnicodeEscape, bytestype, unichr +from rdflib.py3compat import decodeUnicodeEscape +from six import binary_type, unichr import rdflib @@ -1053,7 +1054,7 @@ def expandUnicodeEscapes(q): def parseQuery(q): if hasattr(q, 'read'): q = q.read() - if isinstance(q, bytestype): + if isinstance(q, binary_type): q = q.decode('utf-8') q = expandUnicodeEscapes(q) @@ -1064,7 +1065,7 @@ def parseUpdate(q): if hasattr(q, 'read'): q = q.read() - if isinstance(q, bytestype): + if isinstance(q, binary_type): q = q.decode('utf-8') q = expandUnicodeEscapes(q) diff --git a/rdflib/plugins/sparql/processor.py b/rdflib/plugins/sparql/processor.py index 4b9331de..5ecbb435 100644 --- a/rdflib/plugins/sparql/processor.py +++ b/rdflib/plugins/sparql/processor.py @@ -6,7 +6,7 @@ These should be automatically registered with RDFLib """ -from rdflib.py3compat import string_types +from six import string_types from rdflib.query import Processor, Result, UpdateProcessor diff --git a/rdflib/plugins/sparql/results/csvresults.py b/rdflib/plugins/sparql/results/csvresults.py index 2a96e23a..e0412b0c 100644 --- a/rdflib/plugins/sparql/results/csvresults.py +++ b/rdflib/plugins/sparql/results/csvresults.py @@ -10,7 +10,9 @@ http://www.w3.org/TR/sparql11-results-csv-tsv/ import codecs import csv -from rdflib import Variable, BNode, URIRef, Literal, py3compat +from six import binary_type, PY3 + +from rdflib import Variable, BNode, URIRef, Literal from rdflib.query import Result, ResultSerializer, ResultParser @@ -23,7 +25,7 @@ class CSVResultParser(ResultParser): r = Result('SELECT') - if isinstance(source.read(0), py3compat.bytestype): + if isinstance(source.read(0), binary_type): # if reading from source returns bytes do utf-8 decoding source = codecs.getreader('utf-8')(source) @@ -63,7 +65,7 @@ class CSVResultSerializer(ResultSerializer): def serialize(self, stream, encoding='utf-8'): - if py3compat.PY3: + if PY3: # the serialiser writes bytes in the given encoding # in py3 csv.writer is unicode aware and writes STRINGS, # so we encode afterwards @@ -84,7 +86,7 @@ class CSVResultSerializer(ResultSerializer): def serializeTerm(self, term, encoding): if term is None: return "" - if not py3compat.PY3: + if not PY3: return term.encode(encoding) else: return term diff --git a/rdflib/plugins/sparql/results/jsonresults.py b/rdflib/plugins/sparql/results/jsonresults.py index 933a0240..4bffb515 100644 --- a/rdflib/plugins/sparql/results/jsonresults.py +++ b/rdflib/plugins/sparql/results/jsonresults.py @@ -4,7 +4,7 @@ from rdflib.query import ( Result, ResultException, ResultSerializer, ResultParser) from rdflib import Literal, URIRef, BNode, Variable -from rdflib.py3compat import bytestype, text_type +from six import binary_type, text_type """A Serializer for SPARQL results in JSON: @@ -23,7 +23,7 @@ class JSONResultParser(ResultParser): def parse(self, source): inp = source.read() - if isinstance(inp, bytestype): + if isinstance(inp, binary_type): inp = inp.decode('utf-8') return JSONResult(json.loads(inp)) diff --git a/rdflib/plugins/sparql/results/tsvresults.py b/rdflib/plugins/sparql/results/tsvresults.py index e706e4a9..dfc7657e 100644 --- a/rdflib/plugins/sparql/results/tsvresults.py +++ b/rdflib/plugins/sparql/results/tsvresults.py @@ -20,7 +20,7 @@ from rdflib.plugins.sparql.parserutils import Comp, Param, CompValue from rdflib import Literal as RDFLiteral -from rdflib.py3compat import bytestype +from six import binary_type ParserElement.setDefaultWhitespaceChars(" \n") @@ -49,7 +49,7 @@ HEADER.parseWithTabs() class TSVResultParser(ResultParser): def parse(self, source): - if isinstance(source.read(0), bytestype): + if isinstance(source.read(0), binary_type): # if reading from source returns bytes do utf-8 decoding source = codecs.getreader('utf-8')(source) diff --git a/rdflib/plugins/sparql/results/xmlresults.py b/rdflib/plugins/sparql/results/xmlresults.py index 2f34870e..20da0b2c 100644 --- a/rdflib/plugins/sparql/results/xmlresults.py +++ b/rdflib/plugins/sparql/results/xmlresults.py @@ -4,7 +4,7 @@ from xml.dom import XML_NAMESPACE from xml.sax.xmlreader import AttributesNSImpl from rdflib.compat import etree -from rdflib.py3compat import iteritems +from six import iteritems from rdflib import Literal, URIRef, BNode, Graph, Variable from rdflib.query import ( @@ -14,7 +14,7 @@ from rdflib.query import ( ResultException ) -from rdflib.py3compat import text_type +from six import text_type SPARQL_XML_NAMESPACE = u'http://www.w3.org/2005/sparql-results#' RESULTS_NS_ET = '{%s}' % SPARQL_XML_NAMESPACE diff --git a/rdflib/plugins/sparql/sparql.py b/rdflib/plugins/sparql/sparql.py index 96f2ed65..e4cd124d 100644 --- a/rdflib/plugins/sparql/sparql.py +++ b/rdflib/plugins/sparql/sparql.py @@ -5,7 +5,7 @@ import itertools import datetime from collections import Mapping, MutableMapping -from rdflib.py3compat import text_type, iteritems +from six import text_type, iteritems from rdflib.namespace import NamespaceManager from rdflib import Variable, BNode, Graph, ConjunctiveGraph, URIRef, Literal diff --git a/rdflib/plugins/sparql/update.py b/rdflib/plugins/sparql/update.py index 5894e6a3..d06d104e 100644 --- a/rdflib/plugins/sparql/update.py +++ b/rdflib/plugins/sparql/update.py @@ -6,7 +6,7 @@ Code for carrying out Update Operations from rdflib import Graph, Variable -from rdflib.py3compat import iteritems +from six import iteritems from rdflib.plugins.sparql.sparql import QueryContext from rdflib.plugins.sparql.evalutils import _fillTemplate, _join diff --git a/rdflib/plugins/stores/regexmatching.py b/rdflib/plugins/stores/regexmatching.py index 3f186a12..a3e188f8 100644 --- a/rdflib/plugins/stores/regexmatching.py +++ b/rdflib/plugins/stores/regexmatching.py @@ -11,7 +11,7 @@ matching against the results from the store it's wrapping. from rdflib.store import Store from rdflib.graph import Graph -from rdflib.py3compat import text_type +from six import text_type import re diff --git a/rdflib/plugins/stores/sparqlstore.py b/rdflib/plugins/stores/sparqlstore.py index 0f6731a8..d8084d46 100644 --- a/rdflib/plugins/stores/sparqlstore.py +++ b/rdflib/plugins/stores/sparqlstore.py @@ -32,7 +32,7 @@ from rdflib import Variable, Namespace, BNode, URIRef, Literal from rdflib.graph import DATASET_DEFAULT_GRAPH_ID from rdflib.term import Node -from rdflib.py3compat import text_type, string_types +from six import text_type, string_types class NSSPARQLWrapper(SPARQLWrapper): nsBindings = {} diff --git a/rdflib/py3compat.py b/rdflib/py3compat.py index 49191fc1..4710cd42 100644 --- a/rdflib/py3compat.py +++ b/rdflib/py3compat.py @@ -4,81 +4,20 @@ Utility functions and objects to ease Python 3 compatibility. from __future__ import absolute_import from __future__ import division from __future__ import print_function -# from __future__ import unicode_literals -import sys import re import codecs import warnings import six -from six import PY2 -from six import PY3 -# from six import b # see below! -from six import binary_type -from six import integer_types -from six import string_types -from six import text_type -from six import unichr - -from six import iteritems -from six import iterkeys -from six import itervalues - -# from six import BytesIO # see below! -from six import StringIO - -from six.moves import input -from six.moves import cPickle, configparser -from six.moves.urllib.parse import quote -from six.moves.urllib.parse import urldefrag -from six.moves.urllib.parse import urljoin -from six.moves.urllib.parse import urlparse -from six.moves.urllib.parse import urlsplit -from six.moves.urllib.parse import urlunsplit -from six.moves.urllib.parse import urlunparse - - -from six.moves.urllib.request import Request -from six.moves.urllib.request import pathname2url -from six.moves.urllib.request import url2pathname -from six.moves.urllib.request import urlopen -from six.moves.urllib.request import build_opener - -from six.moves.urllib.error import URLError -from six.moves.urllib.error import HTTPError - -from six.moves.BaseHTTPServer import BaseHTTPRequestHandler -from six.moves.BaseHTTPServer import HTTPServer - -if PY3: - import _thread as thread - from html.entities import name2codepoint - import queue -else: - import thread - import Queue as queue - from htmlentitydefs import name2codepoint - - -try: - from functools import wraps - assert wraps -except ImportError: - # No-op wraps decorator - def wraps(f): - def dec(newf): - return newf - return dec +from functools import wraps def cast_bytes(s, enc='utf-8'): - if isinstance(s, text_type): + if isinstance(s, six.text_type): return s.encode(enc) return s - - def _modify_str_or_docstring(str_change_func): @wraps(str_change_func) def wrapper(func_or_str): @@ -98,11 +37,9 @@ def _modify_str_or_docstring(str_change_func): return wrapper -if PY3: +if six.PY3: # Python 3: # --------- - def b(s): - return s.encode('ascii') def ascii(stream): return codecs.getreader('ascii')(stream) @@ -110,12 +47,8 @@ if PY3: def bopen(*args, **kwargs): return open(*args, mode = 'rb', **kwargs) - bytestype = bytes - long_type = int - from io import BytesIO - # Abstract u'abc' syntax: @_modify_str_or_docstring def format_doctest_out(s): @@ -131,23 +64,6 @@ if PY3: return '' return s % {'u': '', 'b': 'b', 'L': '', 'unicode': 'str'} - def type_cmp(a, b): - """Python 2 style comparison based on type""" - ta, tb = type(a).__name__, type(b).__name__ - # Ugly hack: some tests rely on tuple sorting before unicode, and I - # don't know if that's important. Better retain it for now. - if ta == 'str': - ta = 'unicode' - if tb == 'str': - tb = 'unicode' - # return 1 if ta > tb else -1 if ta < tb else 0 - if ta > tb: - return 1 - elif ta < tb: - return -1 - else: - return 0 - def sign(n): if n < 0: return -1 @@ -158,20 +74,14 @@ if PY3: else: # Python 2 # -------- - def b(s): - return s def ascii(stream): return stream bopen = open - bytestype = str - long_type = long - from cStringIO import StringIO as BytesIO - # Abstract u'abc' syntax: @_modify_str_or_docstring def format_doctest_out(s): @@ -186,15 +96,6 @@ else: return '' return s % {'u': 'u', 'b': '', 'L': 'L', 'unicode': 'unicode'} - def type_cmp(a, b): - # return 1 if a > b else -1 if a < b else 0 - if a > b: - return 1 - elif a < b: - return -1 - else: - return 0 - def sign(n): return cmp(n, 0) @@ -229,7 +130,7 @@ def decodeStringEscape(s): s is byte-string - replace \ escapes in string """ - if not PY3: + if not six.PY3: s = s.decode('string-escape') else: s = s.replace('\\t', '\t') @@ -249,7 +150,7 @@ def decodeUnicodeEscape(s): s is a unicode string replace \n and \\u00AC unicode escapes """ - if not PY3: + if not six.PY3: s = s.encode('utf-8').decode('string-escape') s = _unicodeExpand(s) else: diff --git a/rdflib/query.py b/rdflib/query.py index 8f6d5784..e835e889 100644 --- a/rdflib/query.py +++ b/rdflib/query.py @@ -9,10 +9,10 @@ import warnings import types from . import py3compat -from .py3compat import BytesIO -from .py3compat import PY2 -from .py3compat import text_type -from .py3compat import urlparse +from six import BytesIO +from six import PY2 +from six import text_type +from six.moves.urllib.parse import urlparse __all__ = ['Processor', 'Result', 'ResultParser', 'ResultSerializer', 'ResultException'] diff --git a/rdflib/resource.py b/rdflib/resource.py index 00ebab85..a4c7f235 100644 --- a/rdflib/resource.py +++ b/rdflib/resource.py @@ -4,7 +4,7 @@ from __future__ import division from __future__ import print_function from . import py3compat -from .py3compat import text_type +from six import text_type, PY3 __doc__ = py3compat.format_doctest_out(""" @@ -357,7 +357,7 @@ class Resource(object): def __unicode__(self): return text_type(self._identifier) - if py3compat.PY3: + if PY3: __str__ = __unicode__ def add(self, p, o): diff --git a/rdflib/store.py b/rdflib/store.py index 6c3230a0..3688c642 100644 --- a/rdflib/store.py +++ b/rdflib/store.py @@ -37,8 +37,8 @@ UNKNOWN = None from rdflib.events import Dispatcher, Event -from .py3compat import cPickle -from .py3compat import BytesIO +from six.moves import cPickle +from six import BytesIO Pickler = cPickle.Pickler Unpickler = cPickle.Unpickler UnpicklingError = cPickle.UnpicklingError diff --git a/rdflib/term.py b/rdflib/term.py index 1369aebc..3c1fd669 100644 --- a/rdflib/term.py +++ b/rdflib/term.py @@ -56,16 +56,16 @@ from isodate import parse_time, parse_date, parse_datetime import rdflib from . import py3compat -from .py3compat import PY2 -from .py3compat import PY3 -from .py3compat import b -from .py3compat import integer_types -from .py3compat import long_type -from .py3compat import string_types -from .py3compat import text_type -from .py3compat import urldefrag -from .py3compat import urljoin -from .py3compat import urlparse +from six import PY2 +from six import PY3 +from six import b +from six import integer_types +from rdflib.py3compat import long_type +from six import string_types +from six import text_type +from six.moves.urllib.parse import urldefrag +from six.moves.urllib.parse import urljoin +from six.moves.urllib.parse import urlparse skolem_genid = "/.well-known/genid/" rdflib_skolem_genid = "/.well-known/genid/rdflib/" @@ -91,7 +91,7 @@ def _is_valid_unicode(value): """ if isinstance(value, bytes): coding_func, param = getattr(value, 'decode'), 'utf-8' - elif py3compat.PY3: + elif PY3: coding_func, param = str, value else: coding_func, param = unicode, value @@ -432,7 +432,7 @@ class BNode(Identifier): class Literal(Identifier): - __doc__ = py3compat.format_doctest_out(""" + __doc__ = rdflib.py3compat.format_doctest_out(""" RDF Literal: http://www.w3.org/TR/rdf-concepts/#section-Graph-Literal The lexical value of the literal is the unicode object @@ -519,7 +519,7 @@ class Literal(Identifier): """) - if not py3compat.PY3: + if not PY3: __slots__ = ("language", "datatype", "value", "_language", "_datatype", "_value") else: @@ -576,7 +576,7 @@ class Literal(Identifier): if datatype: lang = None - if py3compat.PY3 and isinstance(lexical_or_value, bytes): + if PY3 and isinstance(lexical_or_value, bytes): lexical_or_value = lexical_or_value.decode('utf-8') try: @@ -589,7 +589,7 @@ class Literal(Identifier): inst._value = value return inst - @py3compat.format_doctest_out + @rdflib.py3compat.format_doctest_out def normalize(self): """ Returns a new literal with a normalised lexical representation @@ -632,7 +632,7 @@ class Literal(Identifier): self._language = d["language"] self._datatype = d["datatype"] - @py3compat.format_doctest_out + @rdflib.py3compat.format_doctest_out def __add__(self, val): """ >>> Literal(1) + 1 @@ -663,7 +663,7 @@ class Literal(Identifier): if PY2: __nonzero__ = __bool__ - @py3compat.format_doctest_out + @rdflib.py3compat.format_doctest_out def __neg__(self): """ >>> (- Literal(1)) @@ -686,7 +686,7 @@ class Literal(Identifier): else: raise TypeError("Not a number; %s" % repr(self)) - @py3compat.format_doctest_out + @rdflib.py3compat.format_doctest_out def __pos__(self): """ >>> (+ Literal(1)) @@ -707,7 +707,7 @@ class Literal(Identifier): else: raise TypeError("Not a number; %s" % repr(self)) - @py3compat.format_doctest_out + @rdflib.py3compat.format_doctest_out def __abs__(self): """ >>> abs(Literal(-1)) @@ -727,7 +727,7 @@ class Literal(Identifier): else: raise TypeError("Not a number; %s" % repr(self)) - @py3compat.format_doctest_out + @rdflib.py3compat.format_doctest_out def __invert__(self): """ >>> ~(Literal(-1)) @@ -933,7 +933,7 @@ class Literal(Identifier): res ^= hash(self.datatype) return res - @py3compat.format_doctest_out + @rdflib.py3compat.format_doctest_out def __eq__(self, other): """ Literals are only equal to other literals. @@ -1081,7 +1081,7 @@ class Literal(Identifier): def neq(self, other): return not self.eq(other) - @py3compat.format_doctest_out + @rdflib.py3compat.format_doctest_out def n3(self, namespace_manager = None): r''' Returns a representation in the N3 format. @@ -1141,7 +1141,7 @@ class Literal(Identifier): else: return self._literal_n3() - @py3compat.format_doctest_out + @rdflib.py3compat.format_doctest_out def _literal_n3(self, use_plain=False, qname_callback=None): ''' Using plain literal (shorthand) output:: diff --git a/rdflib/tools/rdfpipe.py b/rdflib/tools/rdfpipe.py index b7a56453..568e52e0 100644 --- a/rdflib/tools/rdfpipe.py +++ b/rdflib/tools/rdfpipe.py @@ -20,7 +20,7 @@ from rdflib.parser import Parser from rdflib.serializer import Serializer from rdflib.util import guess_format -from rdflib.py3compat import PY3 +from six import PY3 DEFAULT_INPUT_FORMAT = 'xml' diff --git a/rdflib/util.py b/rdflib/util.py index b565959e..cdb30b14 100644 --- a/rdflib/util.py +++ b/rdflib/util.py @@ -53,7 +53,7 @@ from rdflib.namespace import NamespaceManager from rdflib.term import BNode from rdflib.term import Literal from rdflib.term import URIRef -from .py3compat import sign +from rdflib.py3compat import sign __all__ = [ 'list2set', 'first', 'uniq', 'more_than', 'to_term', 'from_n3', diff --git a/test/manifest.py b/test/manifest.py index 14dc256c..4f91dd6d 100644 --- a/test/manifest.py +++ b/test/manifest.py @@ -4,7 +4,7 @@ from collections import namedtuple from nose.tools import nottest from rdflib import Graph, RDF, RDFS, Namespace -from rdflib.py3compat import text_type +from six import text_type MF = Namespace('http://www.w3.org/2001/sw/DataAccess/tests/test-manifest#') QT = Namespace('http://www.w3.org/2001/sw/DataAccess/tests/test-query#') diff --git a/test/rdfa/run_w3c_rdfa_testsuite.py b/test/rdfa/run_w3c_rdfa_testsuite.py index b9ca6d13..fec3bc12 100644 --- a/test/rdfa/run_w3c_rdfa_testsuite.py +++ b/test/rdfa/run_w3c_rdfa_testsuite.py @@ -18,7 +18,7 @@ from operator import attrgetter import re import os -from rdflib.py3compat import urlopen, url2pathname +from six.moves.urllib.request import urlopen, url2pathname from rdflib.graph import Graph from rdflib.namespace import Namespace, RDF diff --git a/test/rdfa/test_non_xhtml.py b/test/rdfa/test_non_xhtml.py index 8fe714eb..a6f56a58 100644 --- a/test/rdfa/test_non_xhtml.py +++ b/test/rdfa/test_non_xhtml.py @@ -1,5 +1,5 @@ from unittest import TestCase -from rdflib.py3compat import URLError +from six.moves.urllib.error import URLError from rdflib.graph import ConjunctiveGraph @@ -36,5 +36,5 @@ class NonXhtmlTest(TestCase): try: import html5lib return True - except: + except: return False diff --git a/test/test_aggregate_graphs.py b/test/test_aggregate_graphs.py index f790345d..a289d1a3 100644 --- a/test/test_aggregate_graphs.py +++ b/test/test_aggregate_graphs.py @@ -1,7 +1,7 @@ import unittest from rdflib.namespace import Namespace, RDF, RDFS from rdflib import plugin -from rdflib.py3compat import StringIO +from six import StringIO from rdflib.term import URIRef from rdflib.store import Store from rdflib.graph import Graph @@ -55,7 +55,7 @@ WHERE { GRAPH ?graph { ?member a ?class } }""" sparqlQ3 =\ """ -PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX log: <http://www.w3.org/2000/10/swap/log#> SELECT ?n3Doc WHERE {?n3Doc a log:N3Document }""" @@ -71,7 +71,7 @@ class GraphAggregates1(unittest.TestCase): (testGraph2N3,self.graph2), (testGraph3N3,self.graph3)]: graph.parse(StringIO(n3Str),format='n3') - + self.G = ReadOnlyGraphAggregate([self.graph1,self.graph2,self.graph3]) def testAggregateRaw(self): @@ -79,20 +79,20 @@ class GraphAggregates1(unittest.TestCase): assert len(list(self.G.triples((None,RDF.type,None)))) == 4 assert len(list(self.G.triples((URIRef("http://test/bar"),None,None)))) == 2 assert len(list(self.G.triples((None,URIRef("http://test/d"),None)))) == 3 - + #Test __len__ assert len(self.G) == 8 - + #assert context iteration for g in self.G.contexts(): assert isinstance(g,Graph) - + #Test __contains__ assert (URIRef("http://test/foo"),RDF.type,RDFS.Resource) in self.G - + barPredicates = [URIRef("http://test/d"),RDFS.isDefinedBy] assert len(list(self.G.triples_choices((URIRef("http://test/bar"),barPredicates,None)))) == 2 - + class GraphAggregates2(unittest.TestCase): known_issue = True @@ -103,12 +103,12 @@ class GraphAggregates2(unittest.TestCase): self.graph1 = Graph(memStore,URIRef("http://example.com/graph1")) self.graph2 = Graph(memStore,URIRef("http://example.com/graph2")) self.graph3 = Graph(memStore,URIRef("http://example.com/graph3")) - + for n3Str,graph in [(testGraph1N3,self.graph1), (testGraph2N3,self.graph2), (testGraph3N3,self.graph3)]: graph.parse(StringIO(n3Str),format='n3') - + self.graph4 = Graph(memStore,RDFS) self.graph4.parse(RDFS.uri) self.G = ConjunctiveGraph(memStore) diff --git a/test/test_canonicalization.py b/test/test_canonicalization.py index ef2b8589..d1e38d1a 100644 --- a/test/test_canonicalization.py +++ b/test/test_canonicalization.py @@ -1,6 +1,6 @@ from rdflib import Graph, RDF, BNode, URIRef from rdflib.compare import to_isomorphic, to_canonical_graph -from rdflib.py3compat import text_type +from six import text_type from io import StringIO def get_digest_value(rdf, mimetype): diff --git a/test/test_conneg.py b/test/test_conneg.py index 479cefc9..d0777a00 100644 --- a/test/test_conneg.py +++ b/test/test_conneg.py @@ -2,10 +2,12 @@ import time from rdflib import Graph -from rdflib.py3compat import HTTPServer, BaseHTTPRequestHandler, thread + +from six.moves import _thread +from six.moves.BaseHTTPServer import HTTPServer, BaseHTTPRequestHandler """ -Test that correct content negoation headers are passed +Test that correct content negoation headers are passed by graph.parse """ @@ -33,7 +35,7 @@ class TestHTTPHandler(BaseHTTPRequestHandler): def do_GET(self): self.send_response(200, "OK") - # fun fun fun parsing accept header. + # fun fun fun parsing accept header. acs=self.headers["Accept"].split(",") acq=[x.split(";") for x in acs if ";" in x] @@ -41,22 +43,22 @@ class TestHTTPHandler(BaseHTTPRequestHandler): acs=[(x[0], float(x[1].strip()[2:])) for x in acq+acn] ac=sorted(acs, key=lambda x: x[1]) ct=ac[-1] - - if "application/rdf+xml" in ct: + + if "application/rdf+xml" in ct: rct="application/rdf+xml" content=xmltestdoc - elif "text/n3" in ct: + elif "text/n3" in ct: rct="text/n3" content=n3testdoc - elif "text/plain" in ct: + elif "text/plain" in ct: rct="text/plain" - content=nttestdoc + content=nttestdoc self.send_header("Content-type",rct) self.end_headers() self.wfile.write(content.encode('utf-8')) - def log_message(self, *args): + def log_message(self, *args): pass def runHttpServer(server_class=HTTPServer, @@ -64,14 +66,14 @@ def runHttpServer(server_class=HTTPServer, """Start a server than can handle 3 requests :)""" server_address = ('localhost', 12345) httpd = server_class(server_address, handler_class) - + httpd.handle_request() httpd.handle_request() httpd.handle_request() -def testConNeg(): - thread.start_new_thread(runHttpServer, tuple()) +def testConNeg(): + _thread.start_new_thread(runHttpServer, tuple()) # hang on a second while server starts time.sleep(1) graph=Graph() @@ -84,5 +86,5 @@ if __name__ == "__main__": import sys import nose - if len(sys.argv)==1: + if len(sys.argv)==1: nose.main(defaultTest=sys.argv[0]) diff --git a/test/test_dataset.py b/test/test_dataset.py index d166cebd..50eb2805 100644 --- a/test/test_dataset.py +++ b/test/test_dataset.py @@ -173,7 +173,7 @@ for s in plugin.plugins(pluginname, plugin.Store): continue if s.name == "SPARQLUpdateStore": - from rdflib.py3compat import urlopen + from six.moves.urllib.request import urlopen try: assert len(urlopen(HOST).read()) > 0 except: diff --git a/test/test_datetime.py b/test/test_datetime.py index df1b25fa..3d4b2abc 100644 --- a/test/test_datetime.py +++ b/test/test_datetime.py @@ -9,7 +9,7 @@ from isodate.isostrf import DATE_EXT_COMPLETE, TZ_EXT from rdflib.term import URIRef from rdflib.term import Literal from rdflib.namespace import XSD -from rdflib.py3compat import text_type +from six import text_type class TestRelativeBase(unittest.TestCase): diff --git a/test/test_dawg.py b/test/test_dawg.py index ed72fe2b..66a195f3 100644 --- a/test/test_dawg.py +++ b/test/test_dawg.py @@ -42,7 +42,9 @@ from rdflib.plugins.sparql.parser import parseQuery, parseUpdate from rdflib.plugins.sparql.results.rdfresults import RDFResultParser from rdflib.plugins.sparql.update import evalUpdate -from rdflib.py3compat import decodeStringEscape, bopen, urljoin, BytesIO +from rdflib.py3compat import decodeStringEscape, bopen +from six.moves.urllib.parse import urljoin +from six import BytesIO from nose.tools import nottest, eq_ from nose import SkipTest diff --git a/test/test_empty_xml_base.py b/test/test_empty_xml_base.py index fd490ca4..fdbf05d8 100644 --- a/test/test_empty_xml_base.py +++ b/test/test_empty_xml_base.py @@ -9,7 +9,7 @@ from rdflib.graph import ConjunctiveGraph from rdflib.term import URIRef from rdflib.namespace import Namespace from rdflib.namespace import RDF -from rdflib.py3compat import StringIO +from six import StringIO import unittest @@ -60,4 +60,3 @@ class TestRelativeBase(unittest.TestCase): if __name__ == "__main__": unittest.main() - diff --git a/test/test_extras_external_graph_libs.py b/test/test_extras_external_graph_libs.py index 7254df47..83286ca5 100644 --- a/test/test_extras_external_graph_libs.py +++ b/test/test_extras_external_graph_libs.py @@ -1,6 +1,6 @@ from nose import SkipTest from rdflib import Graph, URIRef, Literal -from rdflib.py3compat import text_type +from six import text_type def test_rdflib_to_networkx(): try: diff --git a/test/test_finalnewline.py b/test/test_finalnewline.py index 17209e84..2c3b9a6b 100644 --- a/test/test_finalnewline.py +++ b/test/test_finalnewline.py @@ -2,7 +2,7 @@ from rdflib import ConjunctiveGraph, URIRef import rdflib.plugin -from rdflib.py3compat import b +from six import b def testFinalNewline(): """ @@ -33,5 +33,5 @@ if __name__ == "__main__": import sys import nose - if len(sys.argv)==1: + if len(sys.argv)==1: nose.main(defaultTest=sys.argv[0]) diff --git a/test/test_issue084.py b/test/test_issue084.py index 0a659a03..88f2faa4 100644 --- a/test/test_issue084.py +++ b/test/test_issue084.py @@ -1,5 +1,5 @@ from codecs import getreader -from rdflib.py3compat import BytesIO, StringIO +from six import BytesIO, StringIO from rdflib import URIRef, Literal from rdflib.graph import Graph @@ -16,7 +16,7 @@ rdf = u"""@prefix skos: skos:broaderTransitive :world. :CI rdf:type skos:Concept; skos:prefLabel "C\u00f4te d'Ivoire"@fr; - skos:broaderTransitive :africa. + skos:broaderTransitive :africa. """ @@ -26,7 +26,7 @@ rdf_reader = getreader('utf-8')(BytesIO(rdf.encode('utf-8'))) - + def test_a(): """Test reading N3 from a unicode objects as data""" g = Graph() @@ -83,7 +83,7 @@ rdfxml_utf8 = rdfxml.encode('utf-8') rdfxml_reader = getreader('utf-8')(BytesIO(rdfxml.encode('utf-8'))) - + def test_xml_a(): """Test reading XML from a unicode object as data""" import platform diff --git a/test/test_issue154.py b/test/test_issue154.py index 4ba80895..5efd91a0 100644 --- a/test/test_issue154.py +++ b/test/test_issue154.py @@ -3,7 +3,8 @@ import platform import warnings from unittest import TestCase from rdflib.graph import ConjunctiveGraph, URIRef -from rdflib.py3compat import unichr, name2codepoint +from rdflib.py3compat import unichr +from six.moves.html_entities import name2codepoint from nose.exc import SkipTest # Workaround for otherwise-dropped HTML entities diff --git a/test/test_issue161.py b/test/test_issue161.py index 2925b7ce..8448ecda 100644 --- a/test/test_issue161.py +++ b/test/test_issue161.py @@ -1,5 +1,5 @@ from unittest import TestCase -from rdflib.py3compat import b +from six import b from rdflib.graph import ConjunctiveGraph @@ -14,25 +14,21 @@ class EntityTest(TestCase): @prefix p_9: <urn:test:> . @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . - p_9:a p_9:b p_9:c . + p_9:a p_9:b p_9:c . <http://data.linkedmdb.org/resource/director/1> a <http://data.linkedmdb.org/resource/movie/director>; rdfs:label "Cecil B. DeMille (Director)"; _9:director_name "Cecil B. DeMille" .""" - + g.parse(data=n3, format='n3') turtle = g.serialize(format="turtle") - + # Check round-tripping, just for kicks. g = ConjunctiveGraph() g.parse(data=turtle, format='turtle') # Shouldn't have got to here s=g.serialize(format="turtle") - - self.assertTrue(b('@prefix _9') not in s) - - - + self.assertTrue(b('@prefix _9') not in s) diff --git a/test/test_issue457.py b/test/test_issue457.py index f59746f9..e375e0b8 100644 --- a/test/test_issue457.py +++ b/test/test_issue457.py @@ -5,7 +5,7 @@ from xml.etree import ElementTree import rdflib from rdflib.plugins.stores.sparqlstore import _node_from_result -from rdflib.py3compat import b +from six import b def test_issue457(): s = b("""<ns0:literal xmlns:ns0="http://www.w3.org/2005/sparql-results#" />""") diff --git a/test/test_literal.py b/test/test_literal.py index d1a98297..58c73e93 100644 --- a/test/test_literal.py +++ b/test/test_literal.py @@ -2,7 +2,7 @@ import unittest import rdflib # needed for eval(repr(...)) below from rdflib.term import Literal, URIRef, _XSD_DOUBLE, bind -from rdflib.py3compat import integer_types +from six import integer_types from rdflib.py3compat import format_doctest_out as uformat diff --git a/test/test_n3.py b/test/test_n3.py index 40448770..7a0f63bd 100644 --- a/test/test_n3.py +++ b/test/test_n3.py @@ -1,7 +1,8 @@ from rdflib.term import Literal, URIRef from rdflib.plugins.parsers.notation3 import BadSyntax -from rdflib.py3compat import b, URLError +from six import b +from six.moves.urllib.error import URLError test_data = """ # Definitions of terms describing the n3 model diff --git a/test/test_namespace.py b/test/test_namespace.py index d6aa8e68..520bde9c 100644 --- a/test/test_namespace.py +++ b/test/test_namespace.py @@ -2,7 +2,7 @@ import unittest from rdflib.graph import Graph from rdflib.term import URIRef -from rdflib.py3compat import b +from six import b class NamespacePrefixTest(unittest.TestCase): @@ -14,7 +14,7 @@ class NamespacePrefixTest(unittest.TestCase): self.assertEqual(g.compute_qname(URIRef("http://foo/bar#baz")), ("ns2", URIRef("http://foo/bar#"), "baz")) - + # should skip to ns4 when ns3 is already assigned g.bind("ns3", URIRef("http://example.org/")) self.assertEqual(g.compute_qname(URIRef("http://blip/blop")), @@ -28,7 +28,7 @@ class NamespacePrefixTest(unittest.TestCase): n3 = g.serialize(format="n3") # Gunnar disagrees that this is right: # self.assertTrue("<http://example.com/foo> ns1:bar <http://example.com/baz> ." in n3) - # as this is much prettier, and ns1 is already defined: + # as this is much prettier, and ns1 is already defined: self.assertTrue(b("ns1:foo ns1:bar ns1:baz .") in n3) def test_n32(self): @@ -40,4 +40,3 @@ class NamespacePrefixTest(unittest.TestCase): n3 = g.serialize(format="n3") self.assertTrue(b("<http://example1.com/foo> ns1:bar <http://example3.com/baz> .") in n3) - diff --git a/test/test_nquads.py b/test/test_nquads.py index 599a6144..18ae94c8 100644 --- a/test/test_nquads.py +++ b/test/test_nquads.py @@ -1,6 +1,6 @@ import unittest from rdflib import ConjunctiveGraph, URIRef, Namespace -from rdflib.py3compat import b +from six import b TEST_BASE = 'test/nquads.rdflib' diff --git a/test/test_nt_misc.py b/test/test_nt_misc.py index 204482da..3eb3f064 100644 --- a/test/test_nt_misc.py +++ b/test/test_nt_misc.py @@ -4,7 +4,9 @@ import os import re from rdflib import Graph, Literal, URIRef from rdflib.plugins.parsers import ntriples -from rdflib.py3compat import bytestype, text_type, b, urlopen +from six import binary_type, text_type, b +from six.moves.urllib.request import urlopen + log = logging.getLogger(__name__) class NTTestCase(unittest.TestCase): @@ -13,7 +15,7 @@ class NTTestCase(unittest.TestCase): g = Graph() g.add((URIRef("foo"), URIRef("foo"), Literal(u"R\u00E4ksm\u00F6rg\u00E5s"))) s = g.serialize(format='nt') - self.assertEqual(type(s), bytestype) + self.assertEqual(type(s), binary_type) self.assertTrue(b(r"R\u00E4ksm\u00F6rg\u00E5s") in s) def testIssue146(self): diff --git a/test/test_prefixTypes.py b/test/test_prefixTypes.py index 78c6d3ef..d49b6abc 100644 --- a/test/test_prefixTypes.py +++ b/test/test_prefixTypes.py @@ -2,7 +2,7 @@ import unittest from rdflib import Graph -from rdflib.py3compat import b +from six import b graph = Graph().parse(format='n3', data=""" @prefix dct: <http://purl.org/dc/terms/> . @@ -13,9 +13,9 @@ graph = Graph().parse(format='n3', data=""" dct:created "2011-03-20"^^xsd:date . """) -class PrefixTypesTest(unittest.TestCase): - - """N3/Turtle serializers should use prefixes, +class PrefixTypesTest(unittest.TestCase): + + """N3/Turtle serializers should use prefixes, also for types and datatypes This is issue 161 @@ -33,5 +33,3 @@ class PrefixTypesTest(unittest.TestCase): if __name__ == '__main__': unittest.main() - - diff --git a/test/test_prettyxml.py b/test/test_prettyxml.py index a1455e98..08071591 100644 --- a/test/test_prettyxml.py +++ b/test/test_prettyxml.py @@ -1,7 +1,7 @@ # -*- coding: UTF-8 -*- from rdflib.term import URIRef, BNode, Literal from rdflib.namespace import RDF, RDFS -from rdflib.py3compat import b, BytesIO +from six import b, BytesIO from rdflib.plugins.serializers.rdfxml import PrettyXMLSerializer @@ -125,7 +125,7 @@ class TestPrettyXmlSerializer(SerializerTestBase): #assert not '<rdfs:subClassOf ' in rdfXml, onlyBNodesMsg def test_result_fragments_with_base(self): - rdfXml = serialize(self.sourceGraph, self.serializer, + rdfXml = serialize(self.sourceGraph, self.serializer, extra_args={'base':"http://example.org/", 'xml_base':"http://example.org/"}) assert b('xml:base="http://example.org/"') in rdfXml assert b('<Test rdf:about="data/a">') in rdfXml @@ -164,5 +164,3 @@ def _assert_expected_object_types_for_predicates(graph, predicates, types): someTrue = [isinstance(o, t) for t in types] assert True in someTrue, \ "Bad type %s for object when predicate is <%s>." % (type(o), p) - - diff --git a/test/test_rdfxml.py b/test/test_rdfxml.py index 80977f9c..d4e78eaf 100644 --- a/test/test_rdfxml.py +++ b/test/test_rdfxml.py @@ -4,7 +4,8 @@ import unittest import os import os.path -from rdflib.py3compat import url2pathname, urlopen + +from six.moves.urllib.request import url2pathname, urlopen from rdflib import RDF, RDFS, URIRef, BNode, Literal, Namespace, Graph from rdflib.exceptions import ParserError @@ -237,19 +238,19 @@ if __name__ == "__main__": except getopt.GetoptError as msg: write(msg) # usage() - + try: argv = sys.argv if len(argv)>1: _logger.setLevel(logging.INFO) _logger.addHandler(logging.StreamHandler()) - for arg in argv[1:]: + for arg in argv[1:]: verbose = 1 case = URIRef(arg) write(u"Testing: %s" % case) if (case, RDF.type, TEST["PositiveParserTest"]) in manifest: - result = _testPositive(case, manifest) + result = _testPositive(case, manifest) write(u"Positive test %s" % ["PASSED", "FAILED"][result]) elif (case, RDF.type, TEST["NegativeParserTest"]) in manifest: result = _testNegative(case, manifest) diff --git a/test/test_serializexml.py b/test/test_serializexml.py index 097e5f87..3c04e677 100644 --- a/test/test_serializexml.py +++ b/test/test_serializexml.py @@ -1,6 +1,6 @@ from rdflib.term import URIRef, BNode from rdflib.namespace import RDFS -from rdflib.py3compat import b, BytesIO +from six import b, BytesIO from rdflib.plugins.serializers.rdfxml import XMLSerializer @@ -124,7 +124,7 @@ class TestXMLSerializer(SerializerTestBase): assert b('<rdf:Description rdf:nodeID="') in rdfXml, "expected one identified bnode in serialized graph" def test_result_fragments_with_base(self): - rdfXml = serialize(self.sourceGraph, self.serializer, + rdfXml = serialize(self.sourceGraph, self.serializer, extra_args={'base':"http://example.org/", 'xml_base':"http://example.org/"}) #print "--------" #print rdfXml @@ -148,5 +148,3 @@ def _assert_expected_object_types_for_predicates(graph, predicates, types): someTrue = [isinstance(o, t) for t in types] assert True in someTrue, \ "Bad type %s for object when predicate is <%s>." % (type(o), p) - - diff --git a/test/test_sparqlstore.py b/test/test_sparqlstore.py index d5091e03..8e963971 100644 --- a/test/test_sparqlstore.py +++ b/test/test_sparqlstore.py @@ -7,10 +7,10 @@ try: except ImportError: raise SkipTest("SPARQLWrapper not installed") -if os.getenv("TRAVIS"): +if os.getenv("TRAVIS"): raise SkipTest("Doesn't work in travis") -from rdflib.py3compat import urlopen +from six.moves.urllib.request import urlopen try: assert len(urlopen("http://dbpedia.org/sparql").read()) > 0 except: diff --git a/test/test_sparqlupdatestore.py b/test/test_sparqlupdatestore.py index c286e0ae..82b938aa 100644 --- a/test/test_sparqlupdatestore.py +++ b/test/test_sparqlupdatestore.py @@ -6,7 +6,8 @@ import unittest import re from rdflib import ConjunctiveGraph, URIRef, Literal -from rdflib.py3compat import text_type, urlopen +from six import text_type +from six.moves.urllib.request import urlopen HOST = 'http://localhost:3031' DB = '/db/' diff --git a/test/test_trig.py b/test/test_trig.py index 8b3bd68f..59c4e818 100644 --- a/test/test_trig.py +++ b/test/test_trig.py @@ -3,7 +3,7 @@ import rdflib import re from nose import SkipTest -from rdflib.py3compat import b +from six import b TRIPLE = (rdflib.URIRef("http://example.com/s"), rdflib.RDFS.label, diff --git a/test/test_trix_serialize.py b/test/test_trix_serialize.py index 667eb044..f1b68de4 100644 --- a/test/test_trix_serialize.py +++ b/test/test_trix_serialize.py @@ -5,7 +5,7 @@ import unittest from rdflib.graph import ConjunctiveGraph from rdflib.term import URIRef, Literal from rdflib.graph import Graph -from rdflib.py3compat import BytesIO +from six import BytesIO class TestTrixSerialize(unittest.TestCase): diff --git a/test/test_tsvresults.py b/test/test_tsvresults.py index 8f05cc7c..d5222a34 100644 --- a/test/test_tsvresults.py +++ b/test/test_tsvresults.py @@ -1,5 +1,5 @@ import unittest -from rdflib.py3compat import StringIO +from six import StringIO from rdflib.plugins.sparql.results.tsvresults import TSVResultParser diff --git a/test/test_turtle_serialize.py b/test/test_turtle_serialize.py index 995b0066..e3fb018f 100644 --- a/test/test_turtle_serialize.py +++ b/test/test_turtle_serialize.py @@ -1,7 +1,7 @@ from rdflib import Graph, URIRef, BNode, RDF, Literal, Namespace from rdflib.collection import Collection from rdflib.plugins.serializers.turtle import TurtleSerializer -from rdflib.py3compat import b +from six import b def testTurtleFinalDot(): |