/
githubmirror
/
XX-Net
Обзор
Документация
Войти
/
githubmirror
/
XX-Net
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
code/default/lib/noarch/hyper/compat.py
81 строка
2 KB
Michael.X
v4.6.0 compactiable with python 2.7.
26 янв 2022, 10:04
26 янв 2022, 10:04
0820c04
Код
Авторство
О чём код?
# -*- coding: utf-8 -*- """ hyper/compat ~~~~~~~~~ Normalizes the Python 2/3 API for internal use. """ from contextlib import contextmanager import sys import zlib try: from . import ssl_compat except ImportError: # TODO log? ssl_compat = None _ver = sys.version_info is_py2 = _ver[0] == 2 is_py2_7_9_or_later = _ver[0] >= 2 and _ver[1] >= 7 and _ver[2] >= 9 is_py3 = _ver[0] == 3 is_py3_3 = is_py3 and _ver[1] >= 3 @contextmanager def ignore_missing(): try: yield except (AttributeError, NotImplementedError): # pragma: no cover pass if is_py2: if is_py2_7_9_or_later: import ssl else: ssl = ssl_compat from urllib import urlencode from urlparse import urlparse, urlsplit from itertools import imap def to_byte(char): return ord(char) def decode_hex(b): return b.decode('hex') def write_to_stdout(data): sys.stdout.write(data + '\n') sys.stdout.flush() # The standard zlib.compressobj() accepts only positional arguments. def zlib_compressobj(level=6, method=zlib.DEFLATED, wbits=15, memlevel=8, strategy=zlib.Z_DEFAULT_STRATEGY): return zlib.compressobj(level, method, wbits, memlevel, strategy) str = str bytes = str elif is_py3: from urllib.parse import urlparse, urlsplit imap = map def to_byte(char): return char def decode_hex(b): return bytes.fromhex(b) def write_to_stdout(data): sys.stdout.buffer.write(data + b'\n') sys.stdout.buffer.flush() zlib_compressobj = zlib.compressobj if is_py3_3: ssl = ssl_compat else: pass str = str bytes = bytes