common
common ¶
EnumByteString ¶
Bases: str
Like EnumIntegerString but for Bytes.
new staticmethod
¶
new(bytevalue: bytes, stringvalue: str) -> EnumByteString
Create EnumByteString object as a class constructor
Source code in src/itksn/common.py
@staticmethod
def new(bytevalue: bytes, stringvalue: str) -> EnumByteString:
"""
Create EnumByteString object as a class constructor
"""
ret = EnumByteString(stringvalue)
ret.bytevalue = bytevalue
return ret
EnumStr ¶
EnumStr(subcon: Construct[bytes, bytes], **mapping: bytes)
Bases: TheAdapter
This is exactly the same as construct.Enum, but supports byte subcons.
Source code in src/itksn/common.py
def __init__(self: Self, subcon: Construct[bytes, bytes], **mapping: bytes) -> None:
super().__init__(subcon)
self.encmapping: dict[str, bytes] = {
EnumByteString.new(v, k): v for k, v in mapping.items()
}
self.decmapping: dict[bytes, EnumByteString] = {
v: EnumByteString.new(v, k) for k, v in mapping.items()
}
self.ksymapping: dict[bytes, str] = {v: k for k, v in mapping.items()}