diff --git a/stubs/pyasn1/pyasn1/codec/ber/encoder.pyi b/stubs/pyasn1/pyasn1/codec/ber/encoder.pyi index 58a9193b1a17..4f71096c6dfc 100644 --- a/stubs/pyasn1/pyasn1/codec/ber/encoder.pyi +++ b/stubs/pyasn1/pyasn1/codec/ber/encoder.pyi @@ -1,64 +1,71 @@ from _typeshed import Unused from abc import abstractmethod +from typing import TypeAlias from pyasn1.type.base import Asn1Type -from pyasn1.type.tag import TagSet +from pyasn1.type.tag import Tag, TagSet __all__ = ["Encoder", "encode"] +_EncodedValue: TypeAlias = tuple[bytes | tuple[int, ...], bool, bool] + class AbstractItemEncoder: supportIndefLenMode: bool eooIntegerSubstrate: tuple[int, int] eooOctetsSubstrate: bytes - def encodeTag(self, singleTag, isConstructed): ... - def encodeLength(self, length, defMode): ... + def encodeTag(self, singleTag: Tag, isConstructed: bool) -> tuple[int, ...]: ... + def encodeLength(self, length: int, defMode: bool) -> tuple[int, ...]: ... @abstractmethod - def encodeValue(self, value, asn1Spec, encodeFun, **options) -> None: ... - def encode(self, value, asn1Spec: Asn1Type | None = None, encodeFun=None, **options): ... + def encodeValue(self, value, asn1Spec, encodeFun, **options) -> _EncodedValue: ... + def encode(self, value, asn1Spec=None, encodeFun=None, **options) -> bytes: ... class EndOfOctetsEncoder(AbstractItemEncoder): - def encodeValue(self, value, asn1Spec, encodeFun, **options): ... + def encodeValue(self, value, asn1Spec, encodeFun, **options) -> _EncodedValue: ... class BooleanEncoder(AbstractItemEncoder): supportIndefLenMode: bool - def encodeValue(self, value, asn1Spec, encodeFun, **options): ... + def encodeValue(self, value, asn1Spec, encodeFun, **options) -> _EncodedValue: ... class IntegerEncoder(AbstractItemEncoder): supportIndefLenMode: bool supportCompactZero: bool - def encodeValue(self, value, asn1Spec, encodeFun, **options): ... + def encodeValue(self, value, asn1Spec, encodeFun, **options) -> _EncodedValue: ... class BitStringEncoder(AbstractItemEncoder): - def encodeValue(self, value, asn1Spec, encodeFun, **options): ... + def encodeValue(self, value, asn1Spec, encodeFun, **options) -> _EncodedValue: ... class OctetStringEncoder(AbstractItemEncoder): - def encodeValue(self, value, asn1Spec, encodeFun, **options): ... + def encodeValue(self, value, asn1Spec, encodeFun, **options) -> _EncodedValue: ... class NullEncoder(AbstractItemEncoder): supportIndefLenMode: bool - def encodeValue(self, value, asn1Spec, encodeFun, **options): ... + def encodeValue(self, value, asn1Spec, encodeFun, **options) -> _EncodedValue: ... class ObjectIdentifierEncoder(AbstractItemEncoder): supportIndefLenMode: bool - def encodeValue(self, value, asn1Spec, encodeFun, **options): ... + def encodeValue(self, value, asn1Spec, encodeFun, **options) -> _EncodedValue: ... + +class RelativeOIDEncoder(AbstractItemEncoder): + supportIndefLenMode: bool + def encodeValue(self, value, asn1Spec, encodeFun, **options) -> _EncodedValue: ... class RealEncoder(AbstractItemEncoder): supportIndefLenMode: bool binEncBase: int - def encodeValue(self, value, asn1Spec, encodeFun, **options): ... + def encodeValue(self, value, asn1Spec, encodeFun, **options) -> _EncodedValue: ... class SequenceEncoder(AbstractItemEncoder): omitEmptyOptionals: bool - def encodeValue(self, value, asn1Spec, encodeFun, **options): ... + def encodeValue(self, value, asn1Spec, encodeFun, **options) -> _EncodedValue: ... class SequenceOfEncoder(AbstractItemEncoder): - def encodeValue(self, value, asn1Spec, encodeFun, **options): ... + def encodeValue(self, value, asn1Spec, encodeFun, **options) -> _EncodedValue: ... class ChoiceEncoder(AbstractItemEncoder): - def encodeValue(self, value, asn1Spec, encodeFun, **options): ... + def encodeValue(self, value, asn1Spec, encodeFun, **options) -> _EncodedValue: ... class AnyEncoder(OctetStringEncoder): - def encodeValue(self, value, asn1Spec, encodeFun, **options): ... + def encodeValue(self, value, asn1Spec, encodeFun, **options) -> _EncodedValue: ... TAG_MAP: dict[TagSet, AbstractItemEncoder] TYPE_MAP: dict[int, AbstractItemEncoder] @@ -73,12 +80,11 @@ class SingleItemEncoder: TYPE_MAP: dict[int, AbstractItemEncoder] def __init__(self, tagMap=..., typeMap=..., **ignored: Unused) -> None: ... - def __call__(self, value, asn1Spec: Asn1Type | None = None, **options): ... + def __call__(self, value, asn1Spec: Asn1Type | None = None, **options) -> bytes: ... class Encoder: SINGLE_ITEM_ENCODER: type[SingleItemEncoder] - def __init__(self, tagMap=..., typeMap=..., **options: Unused) -> None: ... - def __call__(self, pyObject, asn1Spec: Asn1Type | None = None, **options): ... + def __call__(self, pyObject, asn1Spec: Asn1Type | None = None, **options) -> bytes: ... encode: Encoder