"""
Common functions for providing cross-python version compatibility. """ import sys import re import binascii from six import integer_types
def str_idx_as_int(string, index): """Take index'th byte from string, return as integer"""
val = string[index] if isinstance(val, integer_types): return val return ord(val)
if sys.version_info < (3, 0): # pragma: no branch import platform
def normalise_bytes(buffer_object): """Cast the input into array of bytes.""" # flake8 runs on py3 where `buffer` indeed doesn't exist... return buffer(buffer_object) # noqa: F821
def hmac_compat(ret): return ret
if (
sys.version_info < (2, 7) or sys.version_info < (2, 7, 4) or platform.system() == "Java"
): # pragma: no branch
def remove_whitespace(text): """Removes all whitespace from passed in string""" return re.sub(r"\s+", "", text)
def compat26_str(val): return str(val)
def bit_length(val): if val == 0: return0 return len(bin(val)) - 2
else:
def remove_whitespace(text): """Removes all whitespace from passed in string""" return re.sub(r"\s+", "", text, flags=re.UNICODE)
def compat26_str(val): return val
def bit_length(val): """Return number of bits necessary to represent an integer.""" return val.bit_length()
# pylint: disable=invalid-name # pylint is stupid here and doesn't notice it's a function, not # constant
bytes_to_int = int.from_bytes # pylint: enable=invalid-name
def bit_length(val): """Return number of bits necessary to represent an integer.""" return val.bit_length()
def int_to_bytes(val, length=None, byteorder="big"): """Convert integer to bytes.""" if length isNone:
length = byte_length(val) # for gmpy we need to convert back to native int ifnot isinstance(val, int):
val = int(val) return bytearray(val.to_bytes(length=length, byteorder=byteorder))
def byte_length(val): """Return number of bytes necessary to represent an integer."""
length = bit_length(val) return (length + 7) // 8
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.