merged .py and .pyi
This commit is contained in:
parent
1e7ced992d
commit
6b4a52e73a
2 changed files with 148 additions and 125 deletions
|
|
@ -1,38 +1,170 @@
|
|||
import binascii
|
||||
import io
|
||||
import typing as t
|
||||
|
||||
import pytest
|
||||
from construct import *
|
||||
from construct.lib import *
|
||||
|
||||
import construct_typed as cst
|
||||
|
||||
xfail = pytest.mark.xfail
|
||||
skip = pytest.mark.skip
|
||||
skipif = pytest.mark.skipif
|
||||
|
||||
import os, math, random, collections, itertools, io, hashlib, binascii
|
||||
Buffer = t.Union[bytes, memoryview, bytearray]
|
||||
ParsedType = t.TypeVar("ParsedType")
|
||||
BuildTypes = t.TypeVar("BuildTypes")
|
||||
ContainerType = t.TypeVar("ContainerType", bound=cst.TContainerMixin)
|
||||
T = t.TypeVar("T")
|
||||
|
||||
from construct import *
|
||||
from construct.lib import *
|
||||
IdentType = t.TypeVar("IdentType")
|
||||
|
||||
|
||||
class ZeroIO(io.BufferedIOBase):
|
||||
def read(self, __size=None):
|
||||
def read(self, __size: t.Optional[int] = None):
|
||||
if __size is not None:
|
||||
return bytes(__size)
|
||||
else:
|
||||
return bytes(0)
|
||||
|
||||
def read1(self, __size=0):
|
||||
def read1(self, __size: int = 0):
|
||||
return bytes(__size)
|
||||
|
||||
|
||||
ident = lambda x: x
|
||||
devzero = ZeroIO()
|
||||
def ident(x: IdentType) -> IdentType:
|
||||
return x
|
||||
|
||||
|
||||
def raises(func, *args, **kw):
|
||||
devzero: t.BinaryIO = ZeroIO() # type: ignore
|
||||
|
||||
|
||||
def raises(
|
||||
func: t.Callable[..., t.Any], *args: t.Any, **kw: t.Any
|
||||
) -> t.Union[t.Any, Exception]:
|
||||
try:
|
||||
return func(*args, **kw)
|
||||
except Exception as e:
|
||||
return e.__class__
|
||||
|
||||
|
||||
def common(format, datasample, objsample, sizesample=SizeofError, **kw):
|
||||
@t.overload
|
||||
def common(
|
||||
format: cst.TStruct[ContainerType],
|
||||
datasample: Buffer,
|
||||
objsample: t.Union[ContainerType, t.Dict[str, t.Any]],
|
||||
sizesample: t.Union[int, t.Type[Exception]] = ...,
|
||||
**kw: t.Any
|
||||
) -> None:
|
||||
...
|
||||
|
||||
|
||||
@t.overload
|
||||
def common(
|
||||
format: "Construct[ListContainer[ParsedType], t.Any]",
|
||||
datasample: Buffer,
|
||||
objsample: t.List[ParsedType],
|
||||
sizesample: t.Union[int, t.Type[Exception]] = ...,
|
||||
**kw: t.Any
|
||||
) -> None:
|
||||
...
|
||||
|
||||
|
||||
@t.overload
|
||||
def common(
|
||||
format: "Construct[Container[t.Any], t.Any]",
|
||||
datasample: Buffer,
|
||||
objsample: t.Dict[str, t.Any],
|
||||
sizesample: t.Union[int, t.Type[Exception]] = ...,
|
||||
**kw: t.Any
|
||||
) -> None:
|
||||
...
|
||||
|
||||
|
||||
@t.overload
|
||||
def common(
|
||||
format: "Construct[t.Union[EnumInteger, EnumIntegerString], t.Any]",
|
||||
datasample: Buffer,
|
||||
objsample: t.Union[int, str],
|
||||
sizesample: t.Union[int, t.Type[Exception]] = ...,
|
||||
**kw: t.Any
|
||||
) -> None:
|
||||
...
|
||||
|
||||
|
||||
@t.overload
|
||||
def common(
|
||||
format: "Construct[HexDisplayedInteger, t.Any]",
|
||||
datasample: Buffer,
|
||||
objsample: t.Union[HexDisplayedInteger, int],
|
||||
sizesample: t.Union[int, t.Type[Exception]] = ...,
|
||||
**kw: t.Any
|
||||
) -> None:
|
||||
...
|
||||
|
||||
|
||||
@t.overload
|
||||
def common(
|
||||
format: "Construct[HexDisplayedBytes, t.Any]",
|
||||
datasample: Buffer,
|
||||
objsample: t.Union[HexDisplayedBytes, bytes],
|
||||
sizesample: t.Union[int, t.Type[Exception]] = ...,
|
||||
**kw: t.Any
|
||||
) -> None:
|
||||
...
|
||||
|
||||
|
||||
@t.overload
|
||||
def common(
|
||||
format: "Construct[HexDisplayedDict[str, t.Any], t.Any]",
|
||||
datasample: Buffer,
|
||||
objsample: t.Dict[str, t.Any],
|
||||
sizesample: t.Union[int, t.Type[Exception]] = ...,
|
||||
**kw: t.Any
|
||||
) -> None:
|
||||
...
|
||||
|
||||
|
||||
@t.overload
|
||||
def common(
|
||||
format: "Construct[HexDumpDisplayedBytes, t.Any]",
|
||||
datasample: Buffer,
|
||||
objsample: t.Union[HexDumpDisplayedBytes, bytes],
|
||||
sizesample: t.Union[int, t.Type[Exception]] = ...,
|
||||
**kw: t.Any
|
||||
) -> None:
|
||||
...
|
||||
|
||||
|
||||
@t.overload
|
||||
def common(
|
||||
format: "Construct[HexDumpDisplayedDict[str, t.Any], t.Any]",
|
||||
datasample: Buffer,
|
||||
objsample: t.Dict[str, t.Any],
|
||||
sizesample: t.Union[int, t.Type[Exception]] = ...,
|
||||
**kw: t.Any
|
||||
) -> None:
|
||||
...
|
||||
|
||||
|
||||
@t.overload
|
||||
def common(
|
||||
format: "Construct[ParsedType, t.Any]",
|
||||
datasample: Buffer,
|
||||
objsample: ParsedType,
|
||||
sizesample: t.Union[int, t.Type[Exception]] = ...,
|
||||
**kw: t.Any
|
||||
) -> None:
|
||||
...
|
||||
|
||||
|
||||
def common(
|
||||
format: "Construct[t.Any, t.Any]",
|
||||
datasample: Buffer,
|
||||
objsample: t.Any,
|
||||
sizesample: t.Union[int, t.Type[Exception]] = SizeofError,
|
||||
**kw: t.Any
|
||||
) -> None:
|
||||
obj = format.parse(datasample, **kw)
|
||||
assert obj == objsample
|
||||
data = format.build(objsample, **kw)
|
||||
|
|
@ -48,31 +180,31 @@ def common(format, datasample, objsample, sizesample=SizeofError, **kw):
|
|||
assert size == sizesample
|
||||
|
||||
|
||||
def setattrs(obj, **kwargs):
|
||||
""" Set multiple named values of an object """
|
||||
def setattrs(obj: T, **kwargs: t.Any) -> T:
|
||||
"""Set multiple named values of an object"""
|
||||
for name, value in kwargs.items():
|
||||
setattr(obj, name, value)
|
||||
return obj
|
||||
|
||||
|
||||
def commonhex(format, hexdata):
|
||||
def commonhex(format: "Construct[t.Any, t.Any]", hexdata: str):
|
||||
commonbytes(format, binascii.unhexlify(hexdata))
|
||||
|
||||
|
||||
def commondumpdeprecated(format, filename):
|
||||
def commondumpdeprecated(format: "Construct[t.Any, t.Any]", filename: str):
|
||||
filename = "tests/deprecated_gallery/blobs/" + filename
|
||||
with open(filename, "rb") as f:
|
||||
data = f.read()
|
||||
commonbytes(format, data)
|
||||
|
||||
|
||||
def commondump(format, filename):
|
||||
def commondump(format: "Construct[t.Any, t.Any]", filename: str):
|
||||
filename = "tests/gallery/blobs/" + filename
|
||||
with open(filename, "rb") as f:
|
||||
data = f.read()
|
||||
commonbytes(format, data)
|
||||
|
||||
|
||||
def commonbytes(format, data):
|
||||
def commonbytes(format: "Construct[t.Any, t.Any]", data: bytes):
|
||||
obj = format.parse(data)
|
||||
data2 = format.build(obj)
|
||||
format.build(obj)
|
||||
|
|
|
|||
|
|
@ -1,109 +0,0 @@
|
|||
import typing as t
|
||||
from construct import *
|
||||
from construct.lib import *
|
||||
import construct_typed as cst
|
||||
|
||||
Buffer = t.Union[bytes, memoryview, bytearray]
|
||||
ParsedType = t.TypeVar("ParsedType")
|
||||
BuildTypes = t.TypeVar("BuildTypes")
|
||||
ContainerType = t.TypeVar("ContainerType", bound=cst.TContainerMixin)
|
||||
T = t.TypeVar("T")
|
||||
|
||||
IdentType = t.TypeVar("IdentType")
|
||||
|
||||
def ident(p1: IdentType) -> IdentType: ...
|
||||
|
||||
devzero: t.BinaryIO
|
||||
|
||||
def raises(
|
||||
func: t.Callable[..., t.Any], *args: t.Any, **kw: t.Any
|
||||
) -> t.Union[t.Any, Exception]: ...
|
||||
@t.overload
|
||||
def common(
|
||||
format: cst.TStruct[ContainerType],
|
||||
datasample: Buffer,
|
||||
objsample: t.Union[ContainerType, t.Dict[str, t.Any]],
|
||||
sizesample: t.Union[int, t.Type[Exception]] = ...,
|
||||
**kw: t.Any
|
||||
) -> None: ...
|
||||
@t.overload
|
||||
def common(
|
||||
format: Construct[ListContainer[ParsedType], t.Any],
|
||||
datasample: Buffer,
|
||||
objsample: t.List[ParsedType],
|
||||
sizesample: t.Union[int, t.Type[Exception]] = ...,
|
||||
**kw: t.Any
|
||||
) -> None: ...
|
||||
@t.overload
|
||||
def common(
|
||||
format: Construct[Container[t.Any], t.Any],
|
||||
datasample: Buffer,
|
||||
objsample: t.Dict[str, t.Any],
|
||||
sizesample: t.Union[int, t.Type[Exception]] = ...,
|
||||
**kw: t.Any
|
||||
) -> None: ...
|
||||
@t.overload
|
||||
def common(
|
||||
format: Construct[t.Union[EnumInteger, EnumIntegerString], t.Any],
|
||||
datasample: Buffer,
|
||||
objsample: t.Union[int, str],
|
||||
sizesample: t.Union[int, t.Type[Exception]] = ...,
|
||||
**kw: t.Any
|
||||
) -> None: ...
|
||||
@t.overload
|
||||
def common(
|
||||
format: Construct[HexDisplayedInteger, t.Any],
|
||||
datasample: Buffer,
|
||||
objsample: t.Union[HexDisplayedInteger, int],
|
||||
sizesample: t.Union[int, t.Type[Exception]] = ...,
|
||||
**kw: t.Any
|
||||
) -> None: ...
|
||||
@t.overload
|
||||
def common(
|
||||
format: Construct[HexDisplayedBytes, t.Any],
|
||||
datasample: Buffer,
|
||||
objsample: t.Union[HexDisplayedBytes, bytes],
|
||||
sizesample: t.Union[int, t.Type[Exception]] = ...,
|
||||
**kw: t.Any
|
||||
) -> None: ...
|
||||
@t.overload
|
||||
def common(
|
||||
format: Construct[HexDisplayedDict[str, t.Any], t.Any],
|
||||
datasample: Buffer,
|
||||
objsample: t.Dict[str, t.Any],
|
||||
sizesample: t.Union[int, t.Type[Exception]] = ...,
|
||||
**kw: t.Any
|
||||
) -> None: ...
|
||||
@t.overload
|
||||
def common(
|
||||
format: Construct[HexDumpDisplayedBytes, t.Any],
|
||||
datasample: Buffer,
|
||||
objsample: t.Union[HexDumpDisplayedBytes, bytes],
|
||||
sizesample: t.Union[int, t.Type[Exception]] = ...,
|
||||
**kw: t.Any
|
||||
) -> None: ...
|
||||
@t.overload
|
||||
def common(
|
||||
format: Construct[HexDumpDisplayedDict[str, t.Any], t.Any],
|
||||
datasample: Buffer,
|
||||
objsample: t.Dict[str, t.Any],
|
||||
sizesample: t.Union[int, t.Type[Exception]] = ...,
|
||||
**kw: t.Any
|
||||
) -> None: ...
|
||||
@t.overload
|
||||
def common(
|
||||
format: Construct[ParsedType, t.Any],
|
||||
datasample: Buffer,
|
||||
objsample: ParsedType,
|
||||
sizesample: t.Union[int, t.Type[Exception]] = ...,
|
||||
**kw: t.Any
|
||||
) -> None: ...
|
||||
def setattrs(obj: T, **kwargs: t.Any) -> T: ...
|
||||
def commonhex(format: Construct[t.Any, t.Any], hexdata: str) -> None: ...
|
||||
def commondumpdeprecated(
|
||||
format: Construct[t.Any, t.Any], filename: str
|
||||
) -> None: ...
|
||||
def commondump(format: Construct[t.Any, t.Any], filename: str) -> None: ...
|
||||
def commonbytes(
|
||||
format: Construct[ParsedType, t.Any], data: ParsedType
|
||||
) -> None: ...
|
||||
Loading…
Add table
Add a link
Reference in a new issue