##// END OF EJS Templates
sha1dc: use buffer protocol when parsing arguments...
sha1dc: use buffer protocol when parsing arguments Without this, functions won't accept bytearray, memoryview, or other types that can be exposed as bytes to the C API. The most resilient way to obtain a bytes-like object from the C API is using the Py_buffer interface. This commit converts use of s#/y# to s*/y* and uses Py_buffer for accessing the underlying bytes array. I checked how hashlib is implemented in CPython and the the implementation agrees with its use of the Py_buffer interface as well as using BufferError in cases of bad buffer types. Sadly, there's no good way to test for ndim > 1 without writing our own C-backed Python type. Differential Revision: https://phab.mercurial-scm.org/D7879

File last commit:

r34398:765eb17a default
r44546:dc9b5348 default
Show More
__init__.py
71 lines | 1.1 KiB | text/x-python | PythonLexer
from __future__ import absolute_import, division, print_function
from ._funcs import (
asdict,
assoc,
astuple,
evolve,
has,
)
from ._make import (
Attribute,
Factory,
NOTHING,
attr,
attributes,
fields,
make_class,
validate,
)
from ._config import (
get_run_validators,
set_run_validators,
)
from . import exceptions
from . import filters
from . import converters
from . import validators
__version__ = "17.2.0"
__title__ = "attrs"
__description__ = "Classes Without Boilerplate"
__uri__ = "http://www.attrs.org/"
__doc__ = __description__ + " <" + __uri__ + ">"
__author__ = "Hynek Schlawack"
__email__ = "hs@ox.cx"
__license__ = "MIT"
__copyright__ = "Copyright (c) 2015 Hynek Schlawack"
s = attrs = attributes
ib = attrib = attr
__all__ = [
"Attribute",
"Factory",
"NOTHING",
"asdict",
"assoc",
"astuple",
"attr",
"attrib",
"attributes",
"attrs",
"converters",
"evolve",
"exceptions",
"fields",
"filters",
"get_run_validators",
"has",
"ib",
"make_class",
"s",
"set_run_validators",
"validate",
"validators",
]