Current Dir: /snap/core22/2955/usr/lib/python3/dist-packages/jsonschema/
[DIR] benchmarks [ delete | rename ]
[DIR] schemas [ delete | rename ]
[DIR] tests [ delete | rename ]
[DIR] __pycache__ [ delete | rename ]
[FILE] cli.py [ edit | delete | rename ]
[FILE] compat.py [ edit | delete | rename ]
[FILE] exceptions.py [ edit | delete | rename ]
[FILE] validators.py [ edit | delete | rename ]
[FILE] _format.py [ edit | delete | rename ]
[FILE] _legacy_validators.py [ edit | delete | rename ]
[FILE] _reflect.py [ edit | delete | rename ]
[FILE] _types.py [ edit | delete | rename ]
[FILE] _utils.py [ edit | delete | rename ]
[FILE] _validators.py [ edit | delete | rename ]
[FILE] __init__.py [ edit | delete | rename ]
[FILE] __main__.py [ edit | delete | rename ]
Viewing: /snap/core22/2955/usr/lib/python3/dist-packages/jsonschema/compat.py
"""
Python 2/3 compatibility helpers.
Note: This module is *not* public API.
"""
import contextlib
import operator
import sys
try:
from collections.abc import MutableMapping, Sequence # noqa
except ImportError:
from collections import MutableMapping, Sequence # noqa
PY3 = sys.version_info[0] >= 3
if PY3:
zip = zip
from functools import lru_cache
from io import StringIO as NativeIO
from urllib.parse import (
unquote, urljoin, urlunsplit, SplitResult, urlsplit
)
from urllib.request import pathname2url, urlopen
str_types = str,
int_types = int,
iteritems = operator.methodcaller("items")
else:
from itertools import izip as zip # noqa
from io import BytesIO as NativeIO
from urlparse import urljoin, urlunsplit, SplitResult, urlsplit
from urllib import pathname2url, unquote # noqa
import urllib2 # noqa
def urlopen(*args, **kwargs):
return contextlib.closing(urllib2.urlopen(*args, **kwargs))
str_types = basestring
int_types = int, long
iteritems = operator.methodcaller("iteritems")
from functools32 import lru_cache
def urldefrag(url):
if "#" in url:
s, n, p, q, frag = urlsplit(url)
defrag = urlunsplit((s, n, p, q, ""))
else:
defrag = url
frag = ""
return defrag, frag
# flake8: noqa