Blame tools/extra/packager/jsonschema-2.3.0/jsonschema/compat.py

Packit 534379
from __future__ import unicode_literals
Packit 534379
import sys
Packit 534379
import operator
Packit 534379
Packit 534379
try:
Packit 534379
    from collections import MutableMapping, Sequence  # noqa
Packit 534379
except ImportError:
Packit 534379
    from collections.abc import MutableMapping, Sequence  # noqa
Packit 534379
Packit 534379
PY3 = sys.version_info[0] >= 3
Packit 534379
Packit 534379
if PY3:
Packit 534379
    zip = zip
Packit 534379
    from urllib.parse import (
Packit 534379
        unquote, urljoin, urlunsplit, SplitResult, urlsplit as _urlsplit
Packit 534379
    )
Packit 534379
    from urllib.request import urlopen
Packit 534379
    str_types = str,
Packit 534379
    int_types = int,
Packit 534379
    iteritems = operator.methodcaller("items")
Packit 534379
else:
Packit 534379
    from itertools import izip as zip  # noqa
Packit 534379
    from urlparse import (
Packit 534379
        urljoin, urlunsplit, SplitResult, urlsplit as _urlsplit  # noqa
Packit 534379
    )
Packit 534379
    from urllib import unquote  # noqa
Packit 534379
    from urllib2 import urlopen  # noqa
Packit 534379
    str_types = basestring
Packit 534379
    int_types = int, long
Packit 534379
    iteritems = operator.methodcaller("iteritems")
Packit 534379
Packit 534379
Packit 534379
# On python < 3.3 fragments are not handled properly with unknown schemes
Packit 534379
def urlsplit(url):
Packit 534379
    scheme, netloc, path, query, fragment = _urlsplit(url)
Packit 534379
    if "#" in path:
Packit 534379
        path, fragment = path.split("#", 1)
Packit 534379
    return SplitResult(scheme, netloc, path, query, fragment)
Packit 534379
Packit 534379
Packit 534379
def urldefrag(url):
Packit 534379
    if "#" in url:
Packit 534379
        s, n, p, q, frag = urlsplit(url)
Packit 534379
        defrag = urlunsplit((s, n, p, q, ''))
Packit 534379
    else:
Packit 534379
        defrag = url
Packit 534379
        frag = ''
Packit 534379
    return defrag, frag
Packit 534379
Packit 534379
Packit 534379
# flake8: noqa