From 2cbee873af41dca1728afc04f8e7cd06b8007d5c Mon Sep 17 00:00:00 2001 From: Avasam Date: Sat, 31 Dec 2022 23:04:53 -0500 Subject: [PATCH 1/6] Initial stub --- pyrightconfig.stricter.json | 1 + stubs/pyasn1/@tests/stubtest_allowlist.txt | 11 + stubs/pyasn1/METADATA.toml | 4 + stubs/pyasn1/pyasn1/__init__.pyi | 0 stubs/pyasn1/pyasn1/codec/__init__.pyi | 0 stubs/pyasn1/pyasn1/codec/ber/__init__.pyi | 0 stubs/pyasn1/pyasn1/codec/ber/decoder.pyi | 326 +++++++++++++++ stubs/pyasn1/pyasn1/codec/ber/encoder.pyi | 63 +++ stubs/pyasn1/pyasn1/codec/ber/eoo.pyi | 10 + stubs/pyasn1/pyasn1/codec/cer/__init__.pyi | 0 stubs/pyasn1/pyasn1/codec/cer/decoder.pyi | 25 ++ stubs/pyasn1/pyasn1/codec/cer/encoder.pyi | 45 +++ stubs/pyasn1/pyasn1/codec/der/__init__.pyi | 0 stubs/pyasn1/pyasn1/codec/der/decoder.pyi | 12 + stubs/pyasn1/pyasn1/codec/der/encoder.pyi | 9 + stubs/pyasn1/pyasn1/codec/native/__init__.pyi | 0 stubs/pyasn1/pyasn1/codec/native/decoder.pyi | 22 + stubs/pyasn1/pyasn1/codec/native/encoder.pyi | 49 +++ stubs/pyasn1/pyasn1/compat/__init__.pyi | 0 stubs/pyasn1/pyasn1/compat/binary.pyi | 1 + stubs/pyasn1/pyasn1/compat/calling.pyi | 1 + stubs/pyasn1/pyasn1/compat/dateandtime.pyi | 1 + stubs/pyasn1/pyasn1/compat/integer.pyi | 9 + stubs/pyasn1/pyasn1/compat/octets.pyi | 14 + stubs/pyasn1/pyasn1/compat/string.pyi | 1 + stubs/pyasn1/pyasn1/debug.pyi | 25 ++ stubs/pyasn1/pyasn1/error.pyi | 11 + stubs/pyasn1/pyasn1/type/__init__.pyi | 0 stubs/pyasn1/pyasn1/type/base.pyi | 146 +++++++ stubs/pyasn1/pyasn1/type/char.pyi | 86 ++++ stubs/pyasn1/pyasn1/type/constraint.pyi | 42 ++ stubs/pyasn1/pyasn1/type/error.pyi | 3 + stubs/pyasn1/pyasn1/type/namedtype.pyi | 75 ++++ stubs/pyasn1/pyasn1/type/namedval.pyi | 24 ++ stubs/pyasn1/pyasn1/type/opentype.pyi | 12 + stubs/pyasn1/pyasn1/type/tag.pyi | 51 +++ stubs/pyasn1/pyasn1/type/tagmap.pyi | 18 + stubs/pyasn1/pyasn1/type/univ.pyi | 376 ++++++++++++++++++ stubs/pyasn1/pyasn1/type/useful.pyi | 31 ++ 39 files changed, 1504 insertions(+) create mode 100644 stubs/pyasn1/@tests/stubtest_allowlist.txt create mode 100644 stubs/pyasn1/METADATA.toml create mode 100644 stubs/pyasn1/pyasn1/__init__.pyi create mode 100644 stubs/pyasn1/pyasn1/codec/__init__.pyi create mode 100644 stubs/pyasn1/pyasn1/codec/ber/__init__.pyi create mode 100644 stubs/pyasn1/pyasn1/codec/ber/decoder.pyi create mode 100644 stubs/pyasn1/pyasn1/codec/ber/encoder.pyi create mode 100644 stubs/pyasn1/pyasn1/codec/ber/eoo.pyi create mode 100644 stubs/pyasn1/pyasn1/codec/cer/__init__.pyi create mode 100644 stubs/pyasn1/pyasn1/codec/cer/decoder.pyi create mode 100644 stubs/pyasn1/pyasn1/codec/cer/encoder.pyi create mode 100644 stubs/pyasn1/pyasn1/codec/der/__init__.pyi create mode 100644 stubs/pyasn1/pyasn1/codec/der/decoder.pyi create mode 100644 stubs/pyasn1/pyasn1/codec/der/encoder.pyi create mode 100644 stubs/pyasn1/pyasn1/codec/native/__init__.pyi create mode 100644 stubs/pyasn1/pyasn1/codec/native/decoder.pyi create mode 100644 stubs/pyasn1/pyasn1/codec/native/encoder.pyi create mode 100644 stubs/pyasn1/pyasn1/compat/__init__.pyi create mode 100644 stubs/pyasn1/pyasn1/compat/binary.pyi create mode 100644 stubs/pyasn1/pyasn1/compat/calling.pyi create mode 100644 stubs/pyasn1/pyasn1/compat/dateandtime.pyi create mode 100644 stubs/pyasn1/pyasn1/compat/integer.pyi create mode 100644 stubs/pyasn1/pyasn1/compat/octets.pyi create mode 100644 stubs/pyasn1/pyasn1/compat/string.pyi create mode 100644 stubs/pyasn1/pyasn1/debug.pyi create mode 100644 stubs/pyasn1/pyasn1/error.pyi create mode 100644 stubs/pyasn1/pyasn1/type/__init__.pyi create mode 100644 stubs/pyasn1/pyasn1/type/base.pyi create mode 100644 stubs/pyasn1/pyasn1/type/char.pyi create mode 100644 stubs/pyasn1/pyasn1/type/constraint.pyi create mode 100644 stubs/pyasn1/pyasn1/type/error.pyi create mode 100644 stubs/pyasn1/pyasn1/type/namedtype.pyi create mode 100644 stubs/pyasn1/pyasn1/type/namedval.pyi create mode 100644 stubs/pyasn1/pyasn1/type/opentype.pyi create mode 100644 stubs/pyasn1/pyasn1/type/tag.pyi create mode 100644 stubs/pyasn1/pyasn1/type/tagmap.pyi create mode 100644 stubs/pyasn1/pyasn1/type/univ.pyi create mode 100644 stubs/pyasn1/pyasn1/type/useful.pyi diff --git a/pyrightconfig.stricter.json b/pyrightconfig.stricter.json index 4e6211a71ed0..aad99df73d48 100644 --- a/pyrightconfig.stricter.json +++ b/pyrightconfig.stricter.json @@ -56,6 +56,7 @@ "stubs/pika", "stubs/psutil", "stubs/psycopg2", + "stubs/pyasn1", "stubs/pyflakes", "stubs/Pygments", "stubs/PyMySQL", diff --git a/stubs/pyasn1/@tests/stubtest_allowlist.txt b/stubs/pyasn1/@tests/stubtest_allowlist.txt new file mode 100644 index 000000000000..0c854316e101 --- /dev/null +++ b/stubs/pyasn1/@tests/stubtest_allowlist.txt @@ -0,0 +1,11 @@ +# Unintended re-exports +pyasn1.compat.binary.version_info +pyasn1.compat.octets.version_info +pyasn1.compat.string.version_info + +# type_check_only +pyasn1.type.base.NoValue.plug + +# Attempted "__ne__" operation on ASN.1 schema object +pyasn1.type.base +pyasn1.type.univ diff --git a/stubs/pyasn1/METADATA.toml b/stubs/pyasn1/METADATA.toml new file mode 100644 index 000000000000..de6579f75d05 --- /dev/null +++ b/stubs/pyasn1/METADATA.toml @@ -0,0 +1,4 @@ +version = "0.4.*" + +[tool.stubtest] +ignore_missing_stub = false diff --git a/stubs/pyasn1/pyasn1/__init__.pyi b/stubs/pyasn1/pyasn1/__init__.pyi new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/stubs/pyasn1/pyasn1/codec/__init__.pyi b/stubs/pyasn1/pyasn1/codec/__init__.pyi new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/stubs/pyasn1/pyasn1/codec/ber/__init__.pyi b/stubs/pyasn1/pyasn1/codec/ber/__init__.pyi new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/stubs/pyasn1/pyasn1/codec/ber/decoder.pyi b/stubs/pyasn1/pyasn1/codec/ber/decoder.pyi new file mode 100644 index 000000000000..d048dbae229d --- /dev/null +++ b/stubs/pyasn1/pyasn1/codec/ber/decoder.pyi @@ -0,0 +1,326 @@ +from _typeshed import Incomplete + +class AbstractDecoder: + protoComponent: Incomplete + def valueDecoder( + self, + substrate, + asn1Spec, + tagSet: Incomplete | None = ..., + length: Incomplete | None = ..., + state: Incomplete | None = ..., + decodeFun: Incomplete | None = ..., + substrateFun: Incomplete | None = ..., + **options, + ) -> None: ... + def indefLenValueDecoder( + self, + substrate, + asn1Spec, + tagSet: Incomplete | None = ..., + length: Incomplete | None = ..., + state: Incomplete | None = ..., + decodeFun: Incomplete | None = ..., + substrateFun: Incomplete | None = ..., + **options, + ) -> None: ... + +class AbstractSimpleDecoder(AbstractDecoder): + @staticmethod + def substrateCollector(asn1Object, substrate, length): ... + +class ExplicitTagDecoder(AbstractSimpleDecoder): + protoComponent: Incomplete + def valueDecoder( + self, + substrate, + asn1Spec, + tagSet: Incomplete | None = ..., + length: Incomplete | None = ..., + state: Incomplete | None = ..., + decodeFun: Incomplete | None = ..., + substrateFun: Incomplete | None = ..., + **options, + ): ... + def indefLenValueDecoder( + self, + substrate, + asn1Spec, + tagSet: Incomplete | None = ..., + length: Incomplete | None = ..., + state: Incomplete | None = ..., + decodeFun: Incomplete | None = ..., + substrateFun: Incomplete | None = ..., + **options, + ): ... + +class IntegerDecoder(AbstractSimpleDecoder): + protoComponent: Incomplete + def valueDecoder( + self, + substrate, + asn1Spec, + tagSet: Incomplete | None = ..., + length: Incomplete | None = ..., + state: Incomplete | None = ..., + decodeFun: Incomplete | None = ..., + substrateFun: Incomplete | None = ..., + **options, + ): ... + +class BooleanDecoder(IntegerDecoder): + protoComponent: Incomplete + +class BitStringDecoder(AbstractSimpleDecoder): + protoComponent: Incomplete + supportConstructedForm: bool + def valueDecoder( + self, + substrate, + asn1Spec, + tagSet: Incomplete | None = ..., + length: Incomplete | None = ..., + state: Incomplete | None = ..., + decodeFun: Incomplete | None = ..., + substrateFun: Incomplete | None = ..., + **options, + ): ... + def indefLenValueDecoder( + self, + substrate, + asn1Spec, + tagSet: Incomplete | None = ..., + length: Incomplete | None = ..., + state: Incomplete | None = ..., + decodeFun: Incomplete | None = ..., + substrateFun: Incomplete | None = ..., + **options, + ): ... + +class OctetStringDecoder(AbstractSimpleDecoder): + protoComponent: Incomplete + supportConstructedForm: bool + def valueDecoder( + self, + substrate, + asn1Spec, + tagSet: Incomplete | None = ..., + length: Incomplete | None = ..., + state: Incomplete | None = ..., + decodeFun: Incomplete | None = ..., + substrateFun: Incomplete | None = ..., + **options, + ): ... + def indefLenValueDecoder( + self, + substrate, + asn1Spec, + tagSet: Incomplete | None = ..., + length: Incomplete | None = ..., + state: Incomplete | None = ..., + decodeFun: Incomplete | None = ..., + substrateFun: Incomplete | None = ..., + **options, + ): ... + +class NullDecoder(AbstractSimpleDecoder): + protoComponent: Incomplete + def valueDecoder( + self, + substrate, + asn1Spec, + tagSet: Incomplete | None = ..., + length: Incomplete | None = ..., + state: Incomplete | None = ..., + decodeFun: Incomplete | None = ..., + substrateFun: Incomplete | None = ..., + **options, + ): ... + +class ObjectIdentifierDecoder(AbstractSimpleDecoder): + protoComponent: Incomplete + def valueDecoder( + self, + substrate, + asn1Spec, + tagSet: Incomplete | None = ..., + length: Incomplete | None = ..., + state: Incomplete | None = ..., + decodeFun: Incomplete | None = ..., + substrateFun: Incomplete | None = ..., + **options, + ): ... + +class RealDecoder(AbstractSimpleDecoder): + protoComponent: Incomplete + def valueDecoder( + self, + substrate, + asn1Spec, + tagSet: Incomplete | None = ..., + length: Incomplete | None = ..., + state: Incomplete | None = ..., + decodeFun: Incomplete | None = ..., + substrateFun: Incomplete | None = ..., + **options, + ): ... + +class AbstractConstructedDecoder(AbstractDecoder): + protoComponent: Incomplete + +class UniversalConstructedTypeDecoder(AbstractConstructedDecoder): + protoRecordComponent: Incomplete + protoSequenceComponent: Incomplete + def valueDecoder( + self, + substrate, + asn1Spec, + tagSet: Incomplete | None = ..., + length: Incomplete | None = ..., + state: Incomplete | None = ..., + decodeFun: Incomplete | None = ..., + substrateFun: Incomplete | None = ..., + **options, + ): ... + def indefLenValueDecoder( + self, + substrate, + asn1Spec, + tagSet: Incomplete | None = ..., + length: Incomplete | None = ..., + state: Incomplete | None = ..., + decodeFun: Incomplete | None = ..., + substrateFun: Incomplete | None = ..., + **options, + ): ... + +class SequenceOrSequenceOfDecoder(UniversalConstructedTypeDecoder): + protoRecordComponent: Incomplete + protoSequenceComponent: Incomplete + +class SequenceDecoder(SequenceOrSequenceOfDecoder): + protoComponent: Incomplete + +class SequenceOfDecoder(SequenceOrSequenceOfDecoder): + protoComponent: Incomplete + +class SetOrSetOfDecoder(UniversalConstructedTypeDecoder): + protoRecordComponent: Incomplete + protoSequenceComponent: Incomplete + +class SetDecoder(SetOrSetOfDecoder): + protoComponent: Incomplete + +class SetOfDecoder(SetOrSetOfDecoder): + protoComponent: Incomplete + +class ChoiceDecoder(AbstractConstructedDecoder): + protoComponent: Incomplete + def valueDecoder( + self, + substrate, + asn1Spec, + tagSet: Incomplete | None = ..., + length: Incomplete | None = ..., + state: Incomplete | None = ..., + decodeFun: Incomplete | None = ..., + substrateFun: Incomplete | None = ..., + **options, + ): ... + def indefLenValueDecoder( + self, + substrate, + asn1Spec, + tagSet: Incomplete | None = ..., + length: Incomplete | None = ..., + state: Incomplete | None = ..., + decodeFun: Incomplete | None = ..., + substrateFun: Incomplete | None = ..., + **options, + ): ... + +class AnyDecoder(AbstractSimpleDecoder): + protoComponent: Incomplete + def valueDecoder( + self, + substrate, + asn1Spec, + tagSet: Incomplete | None = ..., + length: Incomplete | None = ..., + state: Incomplete | None = ..., + decodeFun: Incomplete | None = ..., + substrateFun: Incomplete | None = ..., + **options, + ): ... + def indefLenValueDecoder( + self, + substrate, + asn1Spec, + tagSet: Incomplete | None = ..., + length: Incomplete | None = ..., + state: Incomplete | None = ..., + decodeFun: Incomplete | None = ..., + substrateFun: Incomplete | None = ..., + **options, + ): ... + +class UTF8StringDecoder(OctetStringDecoder): + protoComponent: Incomplete + +class NumericStringDecoder(OctetStringDecoder): + protoComponent: Incomplete + +class PrintableStringDecoder(OctetStringDecoder): + protoComponent: Incomplete + +class TeletexStringDecoder(OctetStringDecoder): + protoComponent: Incomplete + +class VideotexStringDecoder(OctetStringDecoder): + protoComponent: Incomplete + +class IA5StringDecoder(OctetStringDecoder): + protoComponent: Incomplete + +class GraphicStringDecoder(OctetStringDecoder): + protoComponent: Incomplete + +class VisibleStringDecoder(OctetStringDecoder): + protoComponent: Incomplete + +class GeneralStringDecoder(OctetStringDecoder): + protoComponent: Incomplete + +class UniversalStringDecoder(OctetStringDecoder): + protoComponent: Incomplete + +class BMPStringDecoder(OctetStringDecoder): + protoComponent: Incomplete + +class ObjectDescriptorDecoder(OctetStringDecoder): + protoComponent: Incomplete + +class GeneralizedTimeDecoder(OctetStringDecoder): + protoComponent: Incomplete + +class UTCTimeDecoder(OctetStringDecoder): + protoComponent: Incomplete + +class Decoder: + defaultErrorState: Incomplete + defaultRawDecoder: Incomplete + supportIndefLength: bool + def __init__(self, tagMap, typeMap=...) -> None: ... + def __call__( + self, + substrate, + asn1Spec: Incomplete | None = ..., + tagSet: Incomplete | None = ..., + length: Incomplete | None = ..., + state=..., + decodeFun: Incomplete | None = ..., + substrateFun: Incomplete | None = ..., + **options, + ): ... + +decode: Decoder diff --git a/stubs/pyasn1/pyasn1/codec/ber/encoder.pyi b/stubs/pyasn1/pyasn1/codec/ber/encoder.pyi new file mode 100644 index 000000000000..a76dc2e3fdc9 --- /dev/null +++ b/stubs/pyasn1/pyasn1/codec/ber/encoder.pyi @@ -0,0 +1,63 @@ +from _typeshed import Incomplete + +class AbstractItemEncoder: + supportIndefLenMode: bool + eooIntegerSubstrate: Incomplete + eooOctetsSubstrate: Incomplete + def encodeTag(self, singleTag, isConstructed): ... + def encodeLength(self, length, defMode): ... + def encodeValue(self, value, asn1Spec, encodeFun, **options) -> None: ... + def encode(self, value, asn1Spec: Incomplete | None = ..., encodeFun: Incomplete | None = ..., **options): ... + +class EndOfOctetsEncoder(AbstractItemEncoder): + def encodeValue(self, value, asn1Spec, encodeFun, **options): ... + +class BooleanEncoder(AbstractItemEncoder): + supportIndefLenMode: bool + def encodeValue(self, value, asn1Spec, encodeFun, **options): ... + +class IntegerEncoder(AbstractItemEncoder): + supportIndefLenMode: bool + supportCompactZero: bool + def encodeValue(self, value, asn1Spec, encodeFun, **options): ... + +class BitStringEncoder(AbstractItemEncoder): + def encodeValue(self, value, asn1Spec, encodeFun, **options): ... + +class OctetStringEncoder(AbstractItemEncoder): + def encodeValue(self, value, asn1Spec, encodeFun, **options): ... + +class NullEncoder(AbstractItemEncoder): + supportIndefLenMode: bool + def encodeValue(self, value, asn1Spec, encodeFun, **options): ... + +class ObjectIdentifierEncoder(AbstractItemEncoder): + supportIndefLenMode: bool + def encodeValue(self, value, asn1Spec, encodeFun, **options): ... + +class RealEncoder(AbstractItemEncoder): + # Mistake in the module, should be False, but is 0 at runtime + supportIndefLenMode: int # type: ignore[assignment] + binEncBase: int + def encodeValue(self, value, asn1Spec, encodeFun, **options): ... + +class SequenceEncoder(AbstractItemEncoder): + omitEmptyOptionals: bool + def encodeValue(self, value, asn1Spec, encodeFun, **options): ... + +class SequenceOfEncoder(AbstractItemEncoder): + def encodeValue(self, value, asn1Spec, encodeFun, **options): ... + +class ChoiceEncoder(AbstractItemEncoder): + def encodeValue(self, value, asn1Spec, encodeFun, **options): ... + +class AnyEncoder(OctetStringEncoder): + def encodeValue(self, value, asn1Spec, encodeFun, **options): ... + +class Encoder: + fixedDefLengthMode: Incomplete + fixedChunkSize: Incomplete + def __init__(self, tagMap, typeMap=...) -> None: ... + def __call__(self, value, asn1Spec: Incomplete | None = ..., **options): ... + +encode: Encoder diff --git a/stubs/pyasn1/pyasn1/codec/ber/eoo.pyi b/stubs/pyasn1/pyasn1/codec/ber/eoo.pyi new file mode 100644 index 000000000000..f51fa9c7a659 --- /dev/null +++ b/stubs/pyasn1/pyasn1/codec/ber/eoo.pyi @@ -0,0 +1,10 @@ +from _typeshed import Incomplete + +from pyasn1.type import base + +class EndOfOctets(base.SimpleAsn1Type): + defaultValue: int + tagSet: Incomplete + def __new__(cls, *args, **kwargs): ... + +endOfOctets: Incomplete diff --git a/stubs/pyasn1/pyasn1/codec/cer/__init__.pyi b/stubs/pyasn1/pyasn1/codec/cer/__init__.pyi new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/stubs/pyasn1/pyasn1/codec/cer/decoder.pyi b/stubs/pyasn1/pyasn1/codec/cer/decoder.pyi new file mode 100644 index 000000000000..399be371f0d9 --- /dev/null +++ b/stubs/pyasn1/pyasn1/codec/cer/decoder.pyi @@ -0,0 +1,25 @@ +from _typeshed import Incomplete + +from pyasn1.codec.ber import decoder + +class BooleanDecoder(decoder.AbstractSimpleDecoder): + protoComponent: Incomplete + def valueDecoder( + self, + substrate, + asn1Spec, + tagSet: Incomplete | None = ..., + length: Incomplete | None = ..., + state: Incomplete | None = ..., + decodeFun: Incomplete | None = ..., + substrateFun: Incomplete | None = ..., + **options, + ): ... + +BitStringDecoder = decoder.BitStringDecoder +OctetStringDecoder = decoder.OctetStringDecoder +RealDecoder = decoder.RealDecoder + +class Decoder(decoder.Decoder): ... + +decode: Decoder diff --git a/stubs/pyasn1/pyasn1/codec/cer/encoder.pyi b/stubs/pyasn1/pyasn1/codec/cer/encoder.pyi new file mode 100644 index 000000000000..3da8790999f1 --- /dev/null +++ b/stubs/pyasn1/pyasn1/codec/cer/encoder.pyi @@ -0,0 +1,45 @@ +from _typeshed import Incomplete + +from pyasn1.codec.ber import encoder + +class BooleanEncoder(encoder.IntegerEncoder): + def encodeValue(self, value, asn1Spec, encodeFun, **options): ... + +class RealEncoder(encoder.RealEncoder): ... + +class TimeEncoderMixIn: + Z_CHAR: Incomplete + PLUS_CHAR: Incomplete + MINUS_CHAR: Incomplete + COMMA_CHAR: Incomplete + DOT_CHAR: Incomplete + ZERO_CHAR: Incomplete + MIN_LENGTH: int + MAX_LENGTH: int + def encodeValue(self, value, asn1Spec, encodeFun, **options): ... + +class GeneralizedTimeEncoder(TimeEncoderMixIn, encoder.OctetStringEncoder): + MIN_LENGTH: int + MAX_LENGTH: int + +class UTCTimeEncoder(TimeEncoderMixIn, encoder.OctetStringEncoder): + MIN_LENGTH: int + MAX_LENGTH: int + +class SetOfEncoder(encoder.SequenceOfEncoder): + def encodeValue(self, value, asn1Spec, encodeFun, **options): ... + +class SequenceOfEncoder(encoder.SequenceOfEncoder): + def encodeValue(self, value, asn1Spec, encodeFun, **options): ... + +class SetEncoder(encoder.SequenceEncoder): + def encodeValue(self, value, asn1Spec, encodeFun, **options): ... + +class SequenceEncoder(encoder.SequenceEncoder): + omitEmptyOptionals: bool + +class Encoder(encoder.Encoder): + fixedDefLengthMode: bool + fixedChunkSize: int + +encode: Encoder diff --git a/stubs/pyasn1/pyasn1/codec/der/__init__.pyi b/stubs/pyasn1/pyasn1/codec/der/__init__.pyi new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/stubs/pyasn1/pyasn1/codec/der/decoder.pyi b/stubs/pyasn1/pyasn1/codec/der/decoder.pyi new file mode 100644 index 000000000000..68aeb5993c48 --- /dev/null +++ b/stubs/pyasn1/pyasn1/codec/der/decoder.pyi @@ -0,0 +1,12 @@ +from pyasn1.codec.cer import decoder + +class BitStringDecoder(decoder.BitStringDecoder): + supportConstructedForm: bool + +class OctetStringDecoder(decoder.OctetStringDecoder): + supportConstructedForm: bool + +class Decoder(decoder.Decoder): + supportIndefLength: bool + +decode: Decoder diff --git a/stubs/pyasn1/pyasn1/codec/der/encoder.pyi b/stubs/pyasn1/pyasn1/codec/der/encoder.pyi new file mode 100644 index 000000000000..55c024e6c8f6 --- /dev/null +++ b/stubs/pyasn1/pyasn1/codec/der/encoder.pyi @@ -0,0 +1,9 @@ +from pyasn1.codec.cer import encoder + +class SetEncoder(encoder.SetEncoder): ... + +class Encoder(encoder.Encoder): + fixedDefLengthMode: bool + fixedChunkSize: int + +encode: Encoder diff --git a/stubs/pyasn1/pyasn1/codec/native/__init__.pyi b/stubs/pyasn1/pyasn1/codec/native/__init__.pyi new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/stubs/pyasn1/pyasn1/codec/native/decoder.pyi b/stubs/pyasn1/pyasn1/codec/native/decoder.pyi new file mode 100644 index 000000000000..f48c42ad77cd --- /dev/null +++ b/stubs/pyasn1/pyasn1/codec/native/decoder.pyi @@ -0,0 +1,22 @@ +from _typeshed import Incomplete + +class AbstractScalarDecoder: + def __call__(self, pyObject, asn1Spec, decodeFun: Incomplete | None = ..., **options): ... + +class BitStringDecoder(AbstractScalarDecoder): + def __call__(self, pyObject, asn1Spec, decodeFun: Incomplete | None = ..., **options): ... + +class SequenceOrSetDecoder: + def __call__(self, pyObject, asn1Spec, decodeFun: Incomplete | None = ..., **options): ... + +class SequenceOfOrSetOfDecoder: + def __call__(self, pyObject, asn1Spec, decodeFun: Incomplete | None = ..., **options): ... + +class ChoiceDecoder: + def __call__(self, pyObject, asn1Spec, decodeFun: Incomplete | None = ..., **options): ... + +class Decoder: + def __init__(self, tagMap, typeMap) -> None: ... + def __call__(self, pyObject, asn1Spec, **options): ... + +decode: Incomplete diff --git a/stubs/pyasn1/pyasn1/codec/native/encoder.pyi b/stubs/pyasn1/pyasn1/codec/native/encoder.pyi new file mode 100644 index 000000000000..3e75135f8bca --- /dev/null +++ b/stubs/pyasn1/pyasn1/codec/native/encoder.pyi @@ -0,0 +1,49 @@ +from _typeshed import Incomplete + +class AbstractItemEncoder: + def encode(self, value, encodeFun, **options) -> None: ... + +class BooleanEncoder(AbstractItemEncoder): + def encode(self, value, encodeFun, **options): ... + +class IntegerEncoder(AbstractItemEncoder): + def encode(self, value, encodeFun, **options): ... + +class BitStringEncoder(AbstractItemEncoder): + def encode(self, value, encodeFun, **options): ... + +class OctetStringEncoder(AbstractItemEncoder): + def encode(self, value, encodeFun, **options): ... + +class TextStringEncoder(AbstractItemEncoder): + def encode(self, value, encodeFun, **options): ... + +class NullEncoder(AbstractItemEncoder): + def encode(self, value, encodeFun, **options) -> None: ... + +class ObjectIdentifierEncoder(AbstractItemEncoder): + def encode(self, value, encodeFun, **options): ... + +class RealEncoder(AbstractItemEncoder): + def encode(self, value, encodeFun, **options): ... + +class SetEncoder(AbstractItemEncoder): + protoDict: Incomplete + def encode(self, value, encodeFun, **options): ... + +class SequenceEncoder(SetEncoder): + protoDict: Incomplete + +class SequenceOfEncoder(AbstractItemEncoder): + def encode(self, value, encodeFun, **options): ... + +class ChoiceEncoder(SequenceEncoder): ... + +class AnyEncoder(AbstractItemEncoder): + def encode(self, value, encodeFun, **options): ... + +class Encoder: + def __init__(self, tagMap, typeMap=...) -> None: ... + def __call__(self, value, **options): ... + +encode: Incomplete diff --git a/stubs/pyasn1/pyasn1/compat/__init__.pyi b/stubs/pyasn1/pyasn1/compat/__init__.pyi new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/stubs/pyasn1/pyasn1/compat/binary.pyi b/stubs/pyasn1/pyasn1/compat/binary.pyi new file mode 100644 index 000000000000..d034c5045efb --- /dev/null +++ b/stubs/pyasn1/pyasn1/compat/binary.pyi @@ -0,0 +1 @@ +from builtins import bin as bin diff --git a/stubs/pyasn1/pyasn1/compat/calling.pyi b/stubs/pyasn1/pyasn1/compat/calling.pyi new file mode 100644 index 000000000000..9b1d682f394d --- /dev/null +++ b/stubs/pyasn1/pyasn1/compat/calling.pyi @@ -0,0 +1 @@ +from builtins import callable as callable diff --git a/stubs/pyasn1/pyasn1/compat/dateandtime.pyi b/stubs/pyasn1/pyasn1/compat/dateandtime.pyi new file mode 100644 index 000000000000..1a8f94715a85 --- /dev/null +++ b/stubs/pyasn1/pyasn1/compat/dateandtime.pyi @@ -0,0 +1 @@ +def strptime(text, dateFormat): ... diff --git a/stubs/pyasn1/pyasn1/compat/integer.pyi b/stubs/pyasn1/pyasn1/compat/integer.pyi new file mode 100644 index 000000000000..26ea1c2f2dd4 --- /dev/null +++ b/stubs/pyasn1/pyasn1/compat/integer.pyi @@ -0,0 +1,9 @@ +from _typeshed import Incomplete +from typing_extensions import Literal + +implementation: Incomplete +null: Literal[b""] + +def from_bytes(octets, signed: bool = ...): ... +def to_bytes(value, signed: bool = ..., length: int = ...): ... +def bitLength(number): ... diff --git a/stubs/pyasn1/pyasn1/compat/octets.pyi b/stubs/pyasn1/pyasn1/compat/octets.pyi new file mode 100644 index 000000000000..28ccc9da9bb8 --- /dev/null +++ b/stubs/pyasn1/pyasn1/compat/octets.pyi @@ -0,0 +1,14 @@ +from _typeshed import Incomplete +from typing_extensions import Literal + +int2oct: Incomplete +ints2octs: Incomplete +null: Literal[b""] +oct2int = ord +octs2ints: Incomplete +str2octs: Incomplete +octs2str: Incomplete +isOctetsType: Incomplete +isStringType: Incomplete +ensureString = bytes +ints2octs = bytes diff --git a/stubs/pyasn1/pyasn1/compat/string.pyi b/stubs/pyasn1/pyasn1/compat/string.pyi new file mode 100644 index 000000000000..2264e318fc94 --- /dev/null +++ b/stubs/pyasn1/pyasn1/compat/string.pyi @@ -0,0 +1 @@ +def partition(string, sep): ... diff --git a/stubs/pyasn1/pyasn1/debug.pyi b/stubs/pyasn1/pyasn1/debug.pyi new file mode 100644 index 000000000000..e7fec6603180 --- /dev/null +++ b/stubs/pyasn1/pyasn1/debug.pyi @@ -0,0 +1,25 @@ +import logging +from _typeshed import Incomplete + +class Printer: + def __init__( + self, logger: Incomplete | None = ..., handler: Incomplete | None = ..., formatter: Incomplete | None = ... + ) -> None: ... + def __call__(self, msg) -> None: ... + +NullHandler = logging.NullHandler + +class Debug: + defaultPrinter: Incomplete + def __init__(self, *flags, **options) -> None: ... + def __call__(self, msg) -> None: ... + def __and__(self, flag): ... + def __rand__(self, flag): ... + +def setLogger(userLogger) -> None: ... +def hexdump(octets): ... + +class Scope: + def __init__(self) -> None: ... + def push(self, token) -> None: ... + def pop(self): ... diff --git a/stubs/pyasn1/pyasn1/error.pyi b/stubs/pyasn1/pyasn1/error.pyi new file mode 100644 index 000000000000..d93364cfc05d --- /dev/null +++ b/stubs/pyasn1/pyasn1/error.pyi @@ -0,0 +1,11 @@ +from _typeshed import Incomplete + +class PyAsn1Error(Exception): ... +class ValueConstraintError(PyAsn1Error): ... +class SubstrateUnderrunError(PyAsn1Error): ... + +class PyAsn1UnicodeError(PyAsn1Error, UnicodeError): + def __init__(self, message, unicode_error: Incomplete | None = ...) -> None: ... + +class PyAsn1UnicodeDecodeError(PyAsn1UnicodeError, UnicodeDecodeError): ... +class PyAsn1UnicodeEncodeError(PyAsn1UnicodeError, UnicodeEncodeError): ... diff --git a/stubs/pyasn1/pyasn1/type/__init__.pyi b/stubs/pyasn1/pyasn1/type/__init__.pyi new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/stubs/pyasn1/pyasn1/type/base.pyi b/stubs/pyasn1/pyasn1/type/base.pyi new file mode 100644 index 000000000000..259efcfd5b0b --- /dev/null +++ b/stubs/pyasn1/pyasn1/type/base.pyi @@ -0,0 +1,146 @@ +from _typeshed import Incomplete +from typing import type_check_only +from typing_extensions import final + +class Asn1Item: + @classmethod + def getTypeId(cls, increment: int = ...): ... + +class Asn1Type(Asn1Item): + tagSet: Incomplete + subtypeSpec: Incomplete + typeId: Incomplete + def __init__(self, **kwargs) -> None: ... + def __setattr__(self, name, value) -> None: ... + @property + def readOnly(self): ... + @property + def effectiveTagSet(self): ... + @property + def tagMap(self): ... + def isSameTypeWith(self, other, matchTags: bool = ..., matchConstraints: bool = ...): ... + def isSuperTypeOf(self, other, matchTags: bool = ..., matchConstraints: bool = ...): ... + @staticmethod + def isNoValue(*values): ... + def prettyPrint(self, scope: int = ...) -> None: ... + def getTagSet(self): ... + def getEffectiveTagSet(self): ... + def getTagMap(self): ... + def getSubtypeSpec(self): ... + def hasValue(self): ... + +Asn1ItemBase = Asn1Type + +@final +class NoValue: + skipMethods: Incomplete + def __new__(cls): ... + def __getattr__(self, attr) -> None: ... + # def __new__..getPlug..plug + @type_check_only + def plug(self, *args: object, **kw: object): ... + # Magic methods assigned dynamically, priority from right to left: plug < str < int < list < dict + __abs__ = int.__abs__ + __add__ = list.__add__ + __and__ = int.__and__ + __bool__ = int.__bool__ + __ceil__ = int.__ceil__ + __class_getitem__ = plug + __contains__ = dict.__contains__ + __delitem__ = dict.__delitem__ + __dir__ = plug + __divmod__ = int.__divmod__ + __float__ = int.__float__ + __floor__ = int.__floor__ + __floordiv__ = int.__floordiv__ + __ge__ = list.__ge__ + __getitem__ = dict.__getitem__ + __gt__ = list.__gt__ + __iadd__ = list.__iadd__ + __imul__ = list.__imul__ + __index__ = int.__index__ + # self instead of cls + __init_subclass__ = plug # pyright: ignore[reportGeneralTypeIssues] + __int__ = int.__int__ + __invert__ = int.__invert__ + __ior__ = plug + __iter__ = dict.__iter__ + __le__ = list.__le__ + __len__ = dict.__len__ + __lshift__ = int.__lshift__ + __lt__ = list.__lt__ + __mod__ = int.__mod__ + __mul__ = list.__mul__ + __neg__ = int.__neg__ + __or__ = int.__or__ + __pos__ = int.__pos__ + __pow__ = int.__pow__ + __radd__ = int.__radd__ + __rand__ = int.__rand__ + __rdivmod__ = int.__rdivmod__ + __reversed__ = list.__reversed__ + __rfloordiv__ = int.__rfloordiv__ + __rlshift__ = int.__rlshift__ + __rmod__ = int.__rmod__ + __rmul__ = list.__rmul__ + __ror__ = int.__ror__ + __round__ = int.__round__ + __rpow__ = int.__rpow__ + __rrshift__ = int.__rrshift__ + __rshift__ = int.__rshift__ + __rsub__ = int.__rsub__ + __rtruediv__ = int.__rtruediv__ + __rxor__ = int.__rxor__ + __setitem__ = list.__setitem__ + __str__ = plug + __sub__ = int.__sub__ + __truediv__ = int.__truediv__ + __trunc__ = int.__trunc__ + __xor__ = int.__xor__ + +class SimpleAsn1Type(Asn1Type): + defaultValue: Incomplete + def __init__(self, value=..., **kwargs) -> None: ... + def __eq__(self, other): ... + def __ne__(self, other): ... + def __lt__(self, other): ... + def __le__(self, other): ... + def __gt__(self, other): ... + def __ge__(self, other): ... + def __bool__(self) -> bool: ... + def __hash__(self): ... + @property + def isValue(self): ... + def clone(self, value=..., **kwargs): ... + def subtype(self, value=..., **kwargs): ... + def prettyIn(self, value): ... + def prettyOut(self, value): ... + def prettyPrint(self, scope: int = ...): ... + def prettyPrintType(self, scope: int = ...): ... + +AbstractSimpleAsn1Item = SimpleAsn1Type + +class ConstructedAsn1Type(Asn1Type): + strictConstraints: bool + componentType: Incomplete + sizeSpec: Incomplete + def __init__(self, **kwargs) -> None: ... + def __eq__(self, other): ... + def __ne__(self, other): ... + def __lt__(self, other): ... + def __le__(self, other): ... + def __gt__(self, other): ... + def __ge__(self, other): ... + def __bool__(self) -> bool: ... + @property + def components(self) -> None: ... + def clone(self, **kwargs): ... + def subtype(self, **kwargs): ... + def getComponentByPosition(self, idx) -> None: ... + def setComponentByPosition(self, idx, value, verifyConstraints: bool = ...) -> None: ... + def setComponents(self, *args, **kwargs): ... + def setDefaultComponents(self) -> None: ... + def getComponentType(self): ... + def verifySizeSpec(self) -> None: ... + +AbstractConstructedAsn1Item = ConstructedAsn1Type diff --git a/stubs/pyasn1/pyasn1/type/char.pyi b/stubs/pyasn1/pyasn1/type/char.pyi new file mode 100644 index 000000000000..e75c18e2551b --- /dev/null +++ b/stubs/pyasn1/pyasn1/type/char.pyi @@ -0,0 +1,86 @@ +from _typeshed import Incomplete + +from pyasn1.type import univ + +class AbstractCharacterString(univ.OctetString): + def __bytes__(self) -> bytes: ... + def prettyIn(self, value): ... + def asOctets(self, padding: bool = ...): ... + def asNumbers(self, padding: bool = ...): ... + def prettyOut(self, value): ... + def prettyPrint(self, scope: int = ...): ... + def __reversed__(self): ... + +class NumericString(AbstractCharacterString): + __doc__: Incomplete + tagSet: Incomplete + encoding: str + typeId: Incomplete + +class PrintableString(AbstractCharacterString): + __doc__: Incomplete + tagSet: Incomplete + encoding: str + typeId: Incomplete + +class TeletexString(AbstractCharacterString): + __doc__: Incomplete + tagSet: Incomplete + encoding: str + typeId: Incomplete + +class T61String(TeletexString): + __doc__: Incomplete + typeId: Incomplete + +class VideotexString(AbstractCharacterString): + __doc__: Incomplete + tagSet: Incomplete + encoding: str + typeId: Incomplete + +class IA5String(AbstractCharacterString): + __doc__: Incomplete + tagSet: Incomplete + encoding: str + typeId: Incomplete + +class GraphicString(AbstractCharacterString): + __doc__: Incomplete + tagSet: Incomplete + encoding: str + typeId: Incomplete + +class VisibleString(AbstractCharacterString): + __doc__: Incomplete + tagSet: Incomplete + encoding: str + typeId: Incomplete + +class ISO646String(VisibleString): + __doc__: Incomplete + typeId: Incomplete + +class GeneralString(AbstractCharacterString): + __doc__: Incomplete + tagSet: Incomplete + encoding: str + typeId: Incomplete + +class UniversalString(AbstractCharacterString): + __doc__: Incomplete + tagSet: Incomplete + encoding: str + typeId: Incomplete + +class BMPString(AbstractCharacterString): + __doc__: Incomplete + tagSet: Incomplete + encoding: str + typeId: Incomplete + +class UTF8String(AbstractCharacterString): + __doc__: Incomplete + tagSet: Incomplete + encoding: str + typeId: Incomplete diff --git a/stubs/pyasn1/pyasn1/type/constraint.pyi b/stubs/pyasn1/pyasn1/type/constraint.pyi new file mode 100644 index 000000000000..7e3121dd9f52 --- /dev/null +++ b/stubs/pyasn1/pyasn1/type/constraint.pyi @@ -0,0 +1,42 @@ +from _typeshed import Incomplete + +class AbstractConstraint: + def __init__(self, *values) -> None: ... + def __call__(self, value, idx: Incomplete | None = ...) -> None: ... + def __eq__(self, other): ... + def __ne__(self, other): ... + def __lt__(self, other): ... + def __le__(self, other): ... + def __gt__(self, other): ... + def __ge__(self, other): ... + def __bool__(self) -> bool: ... + def __hash__(self): ... + def getValueMap(self): ... + def isSuperTypeOf(self, otherConstraint): ... + def isSubTypeOf(self, otherConstraint): ... + +class SingleValueConstraint(AbstractConstraint): + def __contains__(self, item) -> bool: ... + def __iter__(self): ... + def __add__(self, constraint): ... + def __sub__(self, constraint): ... + +class ContainedSubtypeConstraint(AbstractConstraint): ... +class ValueRangeConstraint(AbstractConstraint): ... +class ValueSizeConstraint(ValueRangeConstraint): ... +class PermittedAlphabetConstraint(SingleValueConstraint): ... +class ComponentPresentConstraint(AbstractConstraint): ... +class ComponentAbsentConstraint(AbstractConstraint): ... +class WithComponentsConstraint(AbstractConstraint): ... +class InnerTypeConstraint(AbstractConstraint): ... +class ConstraintsExclusion(AbstractConstraint): ... + +class AbstractConstraintSet(AbstractConstraint): + def __getitem__(self, idx): ... + def __iter__(self): ... + def __add__(self, value): ... + def __radd__(self, value): ... + def __len__(self) -> int: ... + +class ConstraintsIntersection(AbstractConstraintSet): ... +class ConstraintsUnion(AbstractConstraintSet): ... diff --git a/stubs/pyasn1/pyasn1/type/error.pyi b/stubs/pyasn1/pyasn1/type/error.pyi new file mode 100644 index 000000000000..b2562205991b --- /dev/null +++ b/stubs/pyasn1/pyasn1/type/error.pyi @@ -0,0 +1,3 @@ +from pyasn1.error import PyAsn1Error + +class ValueConstraintError(PyAsn1Error): ... diff --git a/stubs/pyasn1/pyasn1/type/namedtype.pyi b/stubs/pyasn1/pyasn1/type/namedtype.pyi new file mode 100644 index 000000000000..e4b7d2795722 --- /dev/null +++ b/stubs/pyasn1/pyasn1/type/namedtype.pyi @@ -0,0 +1,75 @@ +from _typeshed import Incomplete + +class NamedType: + isOptional: bool + isDefaulted: bool + def __init__(self, name, asn1Object, openType: Incomplete | None = ...) -> None: ... + def __eq__(self, other): ... + def __ne__(self, other): ... + def __lt__(self, other): ... + def __le__(self, other): ... + def __gt__(self, other): ... + def __ge__(self, other): ... + def __hash__(self): ... + def __getitem__(self, idx): ... + def __iter__(self): ... + @property + def name(self): ... + @property + def asn1Object(self): ... + @property + def openType(self): ... + def getName(self): ... + def getType(self): ... + +class OptionalNamedType(NamedType): + __doc__: Incomplete + isOptional: bool + +class DefaultedNamedType(NamedType): + __doc__: Incomplete + isDefaulted: bool + +class NamedTypes: + def __init__(self, *namedTypes, **kwargs) -> None: ... + def __eq__(self, other): ... + def __ne__(self, other): ... + def __lt__(self, other): ... + def __le__(self, other): ... + def __gt__(self, other): ... + def __ge__(self, other): ... + def __hash__(self): ... + def __getitem__(self, idx): ... + def __contains__(self, key) -> bool: ... + def __iter__(self): ... + def __bool__(self) -> bool: ... + def __len__(self) -> int: ... + def values(self): ... + def keys(self): ... + def items(self): ... + def clone(self): ... + + class PostponedError: + def __init__(self, errorMsg) -> None: ... + def __getitem__(self, item) -> None: ... + + def getTypeByPosition(self, idx): ... + def getPositionByType(self, tagSet): ... + def getNameByPosition(self, idx): ... + def getPositionByName(self, name): ... + def getTagMapNearPosition(self, idx): ... + def getPositionNearType(self, tagSet, idx): ... + @property + def minTagSet(self): ... + @property + def tagMap(self): ... + @property + def tagMapUnique(self): ... + @property + def hasOptionalOrDefault(self): ... + @property + def hasOpenTypes(self): ... + @property + def namedTypes(self): ... + @property + def requiredComponents(self): ... diff --git a/stubs/pyasn1/pyasn1/type/namedval.pyi b/stubs/pyasn1/pyasn1/type/namedval.pyi new file mode 100644 index 000000000000..348fb9174417 --- /dev/null +++ b/stubs/pyasn1/pyasn1/type/namedval.pyi @@ -0,0 +1,24 @@ +from _typeshed import Incomplete +from collections.abc import Generator + +class NamedValues: + def __init__(self, *args, **kwargs) -> None: ... + def __eq__(self, other): ... + def __ne__(self, other): ... + def __lt__(self, other): ... + def __le__(self, other): ... + def __gt__(self, other): ... + def __ge__(self, other): ... + def __hash__(self): ... + def __getitem__(self, key): ... + def __len__(self) -> int: ... + def __contains__(self, key) -> bool: ... + def __iter__(self): ... + def values(self): ... + def keys(self): ... + def items(self) -> Generator[Incomplete, None, None]: ... + def __add__(self, namedValues): ... + def clone(self, *args, **kwargs): ... + def getName(self, value): ... + def getValue(self, name): ... + def getValues(self, *names): ... diff --git a/stubs/pyasn1/pyasn1/type/opentype.pyi b/stubs/pyasn1/pyasn1/type/opentype.pyi new file mode 100644 index 000000000000..fdab6aaf46ce --- /dev/null +++ b/stubs/pyasn1/pyasn1/type/opentype.pyi @@ -0,0 +1,12 @@ +from _typeshed import Incomplete + +class OpenType: + def __init__(self, name, typeMap: Incomplete | None = ...) -> None: ... + @property + def name(self): ... + def values(self): ... + def keys(self): ... + def items(self): ... + def __contains__(self, key) -> bool: ... + def __getitem__(self, key): ... + def __iter__(self): ... diff --git a/stubs/pyasn1/pyasn1/type/tag.pyi b/stubs/pyasn1/pyasn1/type/tag.pyi new file mode 100644 index 000000000000..8c484dd60301 --- /dev/null +++ b/stubs/pyasn1/pyasn1/type/tag.pyi @@ -0,0 +1,51 @@ +tagClassUniversal: int +tagClassApplication: int +tagClassContext: int +tagClassPrivate: int +tagFormatSimple: int +tagFormatConstructed: int +tagCategoryImplicit: int +tagCategoryExplicit: int +tagCategoryUntagged: int + +class Tag: + def __init__(self, tagClass, tagFormat, tagId) -> None: ... + def __eq__(self, other): ... + def __ne__(self, other): ... + def __lt__(self, other): ... + def __le__(self, other): ... + def __gt__(self, other): ... + def __ge__(self, other): ... + def __hash__(self): ... + def __getitem__(self, idx): ... + def __iter__(self): ... + def __and__(self, otherTag): ... + def __or__(self, otherTag): ... + @property + def tagClass(self): ... + @property + def tagFormat(self): ... + @property + def tagId(self): ... + +class TagSet: + def __init__(self, baseTag=..., *superTags) -> None: ... + def __add__(self, superTag): ... + def __radd__(self, superTag): ... + def __getitem__(self, i): ... + def __eq__(self, other): ... + def __ne__(self, other): ... + def __lt__(self, other): ... + def __le__(self, other): ... + def __gt__(self, other): ... + def __ge__(self, other): ... + def __hash__(self): ... + def __len__(self) -> int: ... + @property + def baseTag(self): ... + @property + def superTags(self): ... + def tagExplicitly(self, superTag): ... + def tagImplicitly(self, superTag): ... + def isSuperTagSetOf(self, tagSet): ... + def getBaseTag(self): ... diff --git a/stubs/pyasn1/pyasn1/type/tagmap.pyi b/stubs/pyasn1/pyasn1/type/tagmap.pyi new file mode 100644 index 000000000000..19726a559821 --- /dev/null +++ b/stubs/pyasn1/pyasn1/type/tagmap.pyi @@ -0,0 +1,18 @@ +from _typeshed import Incomplete + +class TagMap: + def __init__( + self, presentTypes: Incomplete | None = ..., skipTypes: Incomplete | None = ..., defaultType: Incomplete | None = ... + ) -> None: ... + def __contains__(self, tagSet) -> bool: ... + def __getitem__(self, tagSet): ... + def __iter__(self): ... + @property + def presentTypes(self): ... + @property + def skipTypes(self): ... + @property + def defaultType(self): ... + def getPosMap(self): ... + def getNegMap(self): ... + def getDef(self): ... diff --git a/stubs/pyasn1/pyasn1/type/univ.pyi b/stubs/pyasn1/pyasn1/type/univ.pyi new file mode 100644 index 000000000000..757c5f612eca --- /dev/null +++ b/stubs/pyasn1/pyasn1/type/univ.pyi @@ -0,0 +1,376 @@ +from _typeshed import Incomplete +from collections.abc import Generator + +from pyasn1.type import base + +NoValue: Incomplete +noValue: Incomplete + +class Integer(base.SimpleAsn1Type): + tagSet: Incomplete + subtypeSpec: Incomplete + namedValues: Incomplete + typeId: Incomplete + def __init__(self, value=..., **kwargs) -> None: ... + def __and__(self, value): ... + def __rand__(self, value): ... + def __or__(self, value): ... + def __ror__(self, value): ... + def __xor__(self, value): ... + def __rxor__(self, value): ... + def __lshift__(self, value): ... + def __rshift__(self, value): ... + def __add__(self, value): ... + def __radd__(self, value): ... + def __sub__(self, value): ... + def __rsub__(self, value): ... + def __mul__(self, value): ... + def __rmul__(self, value): ... + def __mod__(self, value): ... + def __rmod__(self, value): ... + def __pow__(self, value, modulo: Incomplete | None = ...): ... + def __rpow__(self, value): ... + def __floordiv__(self, value): ... + def __rfloordiv__(self, value): ... + def __truediv__(self, value): ... + def __rtruediv__(self, value): ... + def __divmod__(self, value): ... + def __rdivmod__(self, value): ... + __hash__: Incomplete + def __int__(self) -> int: ... + def __float__(self) -> float: ... + def __abs__(self): ... + def __index__(self) -> int: ... + def __pos__(self): ... + def __neg__(self): ... + def __invert__(self): ... + def __round__(self, n: int = ...): ... + def __floor__(self): ... + def __ceil__(self): ... + def __trunc__(self): ... + def __lt__(self, value): ... + def __le__(self, value): ... + def __eq__(self, value): ... + def __ne__(self, value): ... + def __gt__(self, value): ... + def __ge__(self, value): ... + def prettyIn(self, value): ... + def prettyOut(self, value): ... + def getNamedValues(self): ... + +class Boolean(Integer): + tagSet: Incomplete + subtypeSpec: Incomplete + namedValues: Incomplete + typeId: Incomplete + +SizedIntegerBase = int + +class SizedInteger(SizedIntegerBase): + bitLength: Incomplete + leadingZeroBits: Incomplete + def setBitLength(self, bitLength): ... + def __len__(self) -> int: ... + +class BitString(base.SimpleAsn1Type): + tagSet: Incomplete + subtypeSpec: Incomplete + namedValues: Incomplete + typeId: Incomplete + defaultBinValue: Incomplete + defaultHexValue: Incomplete + def __init__(self, value=..., **kwargs) -> None: ... + def __eq__(self, other): ... + def __ne__(self, other): ... + def __lt__(self, other): ... + def __le__(self, other): ... + def __gt__(self, other): ... + def __ge__(self, other): ... + def __len__(self) -> int: ... + def __getitem__(self, i): ... + def __iter__(self): ... + def __reversed__(self): ... + def __add__(self, value): ... + def __radd__(self, value): ... + def __mul__(self, value): ... + def __rmul__(self, value): ... + def __lshift__(self, count): ... + def __rshift__(self, count): ... + def __int__(self) -> int: ... + def __float__(self) -> float: ... + def asNumbers(self): ... + def asOctets(self): ... + def asInteger(self): ... + def asBinary(self): ... + @classmethod + def fromHexString(cls, value, internalFormat: bool = ..., prepend: Incomplete | None = ...): ... + @classmethod + def fromBinaryString(cls, value, internalFormat: bool = ..., prepend: Incomplete | None = ...): ... + @classmethod + def fromOctetString(cls, value, internalFormat: bool = ..., prepend: Incomplete | None = ..., padding: int = ...): ... + def prettyIn(self, value): ... + +class OctetString(base.SimpleAsn1Type): + tagSet: Incomplete + subtypeSpec: Incomplete + typeId: Incomplete + defaultBinValue: Incomplete + defaultHexValue: Incomplete + encoding: str + def __init__(self, value=..., **kwargs) -> None: ... + def prettyIn(self, value): ... + def __bytes__(self) -> bytes: ... + def asOctets(self): ... + def asNumbers(self): ... + def prettyOut(self, value): ... + def prettyPrint(self, scope: int = ...): ... + @staticmethod + def fromBinaryString(value): ... + @staticmethod + def fromHexString(value): ... + def __len__(self) -> int: ... + def __getitem__(self, i): ... + def __iter__(self): ... + def __contains__(self, value) -> bool: ... + def __add__(self, value): ... + def __radd__(self, value): ... + def __mul__(self, value): ... + def __rmul__(self, value): ... + def __int__(self) -> int: ... + def __float__(self) -> float: ... + def __reversed__(self): ... + +class Null(OctetString): + tagSet: Incomplete + subtypeSpec: Incomplete + typeId: Incomplete + def prettyIn(self, value): ... + +class ObjectIdentifier(base.SimpleAsn1Type): + tagSet: Incomplete + subtypeSpec: Incomplete + typeId: Incomplete + def __add__(self, other): ... + def __radd__(self, other): ... + def asTuple(self): ... + def __len__(self) -> int: ... + def __getitem__(self, i): ... + def __iter__(self): ... + def __contains__(self, value) -> bool: ... + def index(self, suboid): ... + def isPrefixOf(self, other): ... + def prettyIn(self, value): ... + def prettyOut(self, value): ... + +class Real(base.SimpleAsn1Type): + binEncBase: Incomplete + tagSet: Incomplete + subtypeSpec: Incomplete + typeId: Incomplete + def prettyIn(self, value): ... + def prettyPrint(self, scope: int = ...): ... + @property + def isPlusInf(self): ... + @property + def isMinusInf(self): ... + @property + def isInf(self): ... + def __add__(self, value): ... + def __radd__(self, value): ... + def __mul__(self, value): ... + def __rmul__(self, value): ... + def __sub__(self, value): ... + def __rsub__(self, value): ... + def __mod__(self, value): ... + def __rmod__(self, value): ... + def __pow__(self, value, modulo: Incomplete | None = ...): ... + def __rpow__(self, value): ... + def __truediv__(self, value): ... + def __rtruediv__(self, value): ... + def __divmod__(self, value): ... + def __rdivmod__(self, value): ... + def __int__(self) -> int: ... + def __float__(self) -> float: ... + def __abs__(self): ... + def __pos__(self): ... + def __neg__(self): ... + def __round__(self, n: int = ...): ... + def __floor__(self): ... + def __ceil__(self): ... + def __trunc__(self): ... + def __lt__(self, value): ... + def __le__(self, value): ... + def __eq__(self, value): ... + def __ne__(self, value): ... + def __gt__(self, value): ... + def __ge__(self, value): ... + def __bool__(self) -> bool: ... + __hash__: Incomplete + def __getitem__(self, idx): ... + def isPlusInfinity(self): ... + def isMinusInfinity(self): ... + def isInfinity(self): ... + +class Enumerated(Integer): + tagSet: Incomplete + subtypeSpec: Incomplete + typeId: Incomplete + namedValues: Incomplete + +class SequenceOfAndSetOfBase(base.ConstructedAsn1Type): + def __init__(self, *args, **kwargs) -> None: ... + def __getitem__(self, idx): ... + def __setitem__(self, idx, value) -> None: ... + def append(self, value) -> None: ... + def count(self, value): ... + def extend(self, values) -> None: ... + def index(self, value, start: int = ..., stop: Incomplete | None = ...): ... + def reverse(self) -> None: ... + def sort(self, key: Incomplete | None = ..., reverse: bool = ...) -> None: ... + def __len__(self) -> int: ... + def __iter__(self): ... + def getComponentByPosition(self, idx, default=..., instantiate: bool = ...): ... + def setComponentByPosition( + self, idx, value=..., verifyConstraints: bool = ..., matchTags: bool = ..., matchConstraints: bool = ... + ): ... + @property + def componentTagMap(self): ... + @property + def components(self): ... + def clear(self): ... + def reset(self): ... + def prettyPrint(self, scope: int = ...): ... + def prettyPrintType(self, scope: int = ...): ... + @property + def isValue(self): ... + @property + def isInconsistent(self): ... + +class SequenceOf(SequenceOfAndSetOfBase): + __doc__: Incomplete + tagSet: Incomplete + componentType: Incomplete + subtypeSpec: Incomplete + typeId: Incomplete + +class SetOf(SequenceOfAndSetOfBase): + __doc__: Incomplete + tagSet: Incomplete + componentType: Incomplete + subtypeSpec: Incomplete + typeId: Incomplete + +class SequenceAndSetBase(base.ConstructedAsn1Type): + componentType: Incomplete + + class DynamicNames: + def __init__(self) -> None: ... + def __len__(self) -> int: ... + def __contains__(self, item) -> bool: ... + def __iter__(self): ... + def __getitem__(self, item): ... + def getNameByPosition(self, idx): ... + def getPositionByName(self, name): ... + def addField(self, idx) -> None: ... + + def __init__(self, **kwargs) -> None: ... + def __getitem__(self, idx): ... + def __setitem__(self, idx, value) -> None: ... + def __contains__(self, key) -> bool: ... + def __len__(self) -> int: ... + def __iter__(self): ... + def values(self) -> Generator[Incomplete, None, None]: ... + def keys(self): ... + def items(self) -> Generator[Incomplete, None, None]: ... + def update(self, *iterValue, **mappingValue) -> None: ... + def clear(self): ... + def reset(self): ... + @property + def components(self): ... + def getComponentByName(self, name, default=..., instantiate: bool = ...): ... + def setComponentByName( + self, name, value=..., verifyConstraints: bool = ..., matchTags: bool = ..., matchConstraints: bool = ... + ): ... + def getComponentByPosition(self, idx, default=..., instantiate: bool = ...): ... + def setComponentByPosition( + self, idx, value=..., verifyConstraints: bool = ..., matchTags: bool = ..., matchConstraints: bool = ... + ): ... + @property + def isValue(self): ... + @property + def isInconsistent(self): ... + def prettyPrint(self, scope: int = ...): ... + def prettyPrintType(self, scope: int = ...): ... + def setDefaultComponents(self): ... + def getComponentType(self): ... + def getNameByPosition(self, idx): ... + +class Sequence(SequenceAndSetBase): + __doc__: Incomplete + tagSet: Incomplete + subtypeSpec: Incomplete + componentType: Incomplete + typeId: Incomplete + def getComponentTagMapNearPosition(self, idx): ... + def getComponentPositionNearType(self, tagSet, idx): ... + +class Set(SequenceAndSetBase): + __doc__: Incomplete + tagSet: Incomplete + componentType: Incomplete + subtypeSpec: Incomplete + typeId: Incomplete + def getComponent(self, innerFlag: bool = ...): ... + def getComponentByType(self, tagSet, default=..., instantiate: bool = ..., innerFlag: bool = ...): ... + def setComponentByType( + self, + tagSet, + value=..., + verifyConstraints: bool = ..., + matchTags: bool = ..., + matchConstraints: bool = ..., + innerFlag: bool = ..., + ): ... + @property + def componentTagMap(self): ... + +class Choice(Set): + tagSet: Incomplete + componentType: Incomplete + subtypeSpec: Incomplete + typeId: Incomplete + def __eq__(self, other): ... + def __ne__(self, other): ... + def __lt__(self, other): ... + def __le__(self, other): ... + def __gt__(self, other): ... + def __ge__(self, other): ... + def __bool__(self) -> bool: ... + def __len__(self) -> int: ... + def __contains__(self, key) -> bool: ... + def __iter__(self): ... + def values(self) -> Generator[Incomplete, None, None]: ... + def keys(self) -> Generator[Incomplete, None, None]: ... + def items(self) -> Generator[Incomplete, None, None]: ... + def checkConsistency(self) -> None: ... + def getComponentByPosition(self, idx, default=..., instantiate: bool = ...): ... + def setComponentByPosition( + self, idx, value=..., verifyConstraints: bool = ..., matchTags: bool = ..., matchConstraints: bool = ... + ): ... + @property + def effectiveTagSet(self): ... + @property + def tagMap(self): ... + def getComponent(self, innerFlag: bool = ...): ... + def getName(self, innerFlag: bool = ...): ... + @property + def isValue(self): ... + def clear(self): ... + def getMinTagSet(self): ... + +class Any(OctetString): + tagSet: Incomplete + subtypeSpec: Incomplete + typeId: Incomplete + @property + def tagMap(self): ... diff --git a/stubs/pyasn1/pyasn1/type/useful.pyi b/stubs/pyasn1/pyasn1/type/useful.pyi new file mode 100644 index 000000000000..d05104446a17 --- /dev/null +++ b/stubs/pyasn1/pyasn1/type/useful.pyi @@ -0,0 +1,31 @@ +import datetime +from _typeshed import Incomplete + +from pyasn1.type import char + +class ObjectDescriptor(char.GraphicString): + __doc__: Incomplete + tagSet: Incomplete + typeId: Incomplete + +class TimeMixIn: + class FixedOffset(datetime.tzinfo): + def __init__(self, offset: int = ..., name: str = ...) -> None: ... + def utcoffset(self, dt): ... + def tzname(self, dt): ... + def dst(self, dt): ... + UTC: Incomplete + @property + def asDateTime(self): ... + @classmethod + def fromDateTime(cls, dt): ... + +class GeneralizedTime(char.VisibleString, TimeMixIn): + __doc__: Incomplete + tagSet: Incomplete + typeId: Incomplete + +class UTCTime(char.VisibleString, TimeMixIn): + __doc__: Incomplete + tagSet: Incomplete + typeId: Incomplete From ade1913ab87968912d04deb1283a3f73f184160d Mon Sep 17 00:00:00 2001 From: Avasam Date: Sun, 1 Jan 2023 01:49:22 -0500 Subject: [PATCH 2/6] Completed most Incomplete types --- stubs/pyasn1/@tests/stubtest_allowlist.txt | 4 + stubs/pyasn1/pyasn1/codec/ber/decoder.pyi | 275 ++++++++++--------- stubs/pyasn1/pyasn1/codec/ber/encoder.pyi | 19 +- stubs/pyasn1/pyasn1/codec/ber/eoo.pyi | 7 +- stubs/pyasn1/pyasn1/codec/cer/decoder.pyi | 18 +- stubs/pyasn1/pyasn1/codec/cer/encoder.pyi | 14 +- stubs/pyasn1/pyasn1/codec/native/decoder.pyi | 19 +- stubs/pyasn1/pyasn1/codec/native/encoder.pyi | 12 +- stubs/pyasn1/pyasn1/compat/integer.pyi | 3 +- stubs/pyasn1/pyasn1/compat/octets.pyi | 25 +- stubs/pyasn1/pyasn1/debug.pyi | 9 +- stubs/pyasn1/pyasn1/error.pyi | 4 +- stubs/pyasn1/pyasn1/type/base.pyi | 17 +- stubs/pyasn1/pyasn1/type/char.pyi | 79 +++--- stubs/pyasn1/pyasn1/type/constraint.pyi | 8 +- stubs/pyasn1/pyasn1/type/namedtype.pyi | 8 +- stubs/pyasn1/pyasn1/type/opentype.pyi | 5 +- stubs/pyasn1/pyasn1/type/tagmap.pyi | 9 +- stubs/pyasn1/pyasn1/type/univ.pyi | 166 +++++------ stubs/pyasn1/pyasn1/type/useful.pyi | 22 +- 20 files changed, 387 insertions(+), 336 deletions(-) diff --git a/stubs/pyasn1/@tests/stubtest_allowlist.txt b/stubs/pyasn1/@tests/stubtest_allowlist.txt index 0c854316e101..93df54d3fbbe 100644 --- a/stubs/pyasn1/@tests/stubtest_allowlist.txt +++ b/stubs/pyasn1/@tests/stubtest_allowlist.txt @@ -6,6 +6,10 @@ pyasn1.compat.string.version_info # type_check_only pyasn1.type.base.NoValue.plug +# typeshed typing differences with runtime collections.OrderedDict and builtins.dict +pyasn1.codec.native.encoder.SequenceEncoder.protoDict +pyasn1.codec.native.encoder.SetEncoder.protoDict + # Attempted "__ne__" operation on ASN.1 schema object pyasn1.type.base pyasn1.type.univ diff --git a/stubs/pyasn1/pyasn1/codec/ber/decoder.pyi b/stubs/pyasn1/pyasn1/codec/ber/decoder.pyi index d048dbae229d..980500dd3fda 100644 --- a/stubs/pyasn1/pyasn1/codec/ber/decoder.pyi +++ b/stubs/pyasn1/pyasn1/codec/ber/decoder.pyi @@ -1,325 +1,336 @@ from _typeshed import Incomplete +from abc import ABCMeta, abstractmethod +from collections.abc import Callable +from typing_extensions import TypeAlias -class AbstractDecoder: - protoComponent: Incomplete +from pyasn1.type import base, char, univ, useful +from pyasn1.type.base import Asn1Type +from pyasn1.type.tag import TagSet + +_Unused: TypeAlias = object + +class AbstractDecoder(metaclass=ABCMeta): + protoComponent: Asn1Type | None + @abstractmethod def valueDecoder( self, substrate, asn1Spec, - tagSet: Incomplete | None = ..., - length: Incomplete | None = ..., + tagSet: TagSet | None = ..., + length: int | None = ..., state: Incomplete | None = ..., - decodeFun: Incomplete | None = ..., - substrateFun: Incomplete | None = ..., + decodeFun: Callable[..., Incomplete] | None = ..., + substrateFun: Callable[..., Incomplete] | None = ..., **options, ) -> None: ... + # Abstract, but implementation is optional def indefLenValueDecoder( self, substrate, asn1Spec, - tagSet: Incomplete | None = ..., - length: Incomplete | None = ..., + tagSet: TagSet | None = ..., + length: int | None = ..., state: Incomplete | None = ..., - decodeFun: Incomplete | None = ..., - substrateFun: Incomplete | None = ..., + decodeFun: Callable[..., Incomplete] | None = ..., + substrateFun: Callable[..., Incomplete] | None = ..., **options, ) -> None: ... -class AbstractSimpleDecoder(AbstractDecoder): +class AbstractSimpleDecoder(AbstractDecoder, metaclass=ABCMeta): @staticmethod def substrateCollector(asn1Object, substrate, length): ... class ExplicitTagDecoder(AbstractSimpleDecoder): - protoComponent: Incomplete + protoComponent: univ.Any def valueDecoder( self, substrate, asn1Spec, - tagSet: Incomplete | None = ..., - length: Incomplete | None = ..., - state: Incomplete | None = ..., - decodeFun: Incomplete | None = ..., - substrateFun: Incomplete | None = ..., + tagSet: TagSet | None = ..., + length: int | None = ..., + state: _Unused = ..., + decodeFun: Callable[..., Incomplete] | None = ..., + substrateFun: Callable[..., Incomplete] | None = ..., **options, ): ... def indefLenValueDecoder( self, substrate, asn1Spec, - tagSet: Incomplete | None = ..., - length: Incomplete | None = ..., - state: Incomplete | None = ..., - decodeFun: Incomplete | None = ..., - substrateFun: Incomplete | None = ..., + tagSet: TagSet | None = ..., + length: int | None = ..., + state: _Unused = ..., + decodeFun: Callable[..., Incomplete] | None = ..., + substrateFun: Callable[..., Incomplete] | None = ..., **options, ): ... class IntegerDecoder(AbstractSimpleDecoder): - protoComponent: Incomplete + protoComponent: univ.Integer def valueDecoder( self, substrate, asn1Spec, - tagSet: Incomplete | None = ..., - length: Incomplete | None = ..., - state: Incomplete | None = ..., - decodeFun: Incomplete | None = ..., - substrateFun: Incomplete | None = ..., + tagSet: TagSet | None = ..., + length: int | None = ..., + state: _Unused = ..., + decodeFun: _Unused = ..., + substrateFun: _Unused = ..., **options, ): ... class BooleanDecoder(IntegerDecoder): - protoComponent: Incomplete + protoComponent: univ.Boolean class BitStringDecoder(AbstractSimpleDecoder): - protoComponent: Incomplete + protoComponent: univ.BitString supportConstructedForm: bool def valueDecoder( self, substrate, asn1Spec, - tagSet: Incomplete | None = ..., - length: Incomplete | None = ..., - state: Incomplete | None = ..., - decodeFun: Incomplete | None = ..., - substrateFun: Incomplete | None = ..., + tagSet: TagSet | None = ..., + length: int | None = ..., + state: _Unused = ..., + decodeFun: Callable[..., Incomplete] | None = ..., + substrateFun: Callable[..., Incomplete] | None = ..., **options, ): ... def indefLenValueDecoder( self, substrate, asn1Spec, - tagSet: Incomplete | None = ..., - length: Incomplete | None = ..., - state: Incomplete | None = ..., - decodeFun: Incomplete | None = ..., - substrateFun: Incomplete | None = ..., + tagSet: TagSet | None = ..., + length: int | None = ..., + state: _Unused = ..., + decodeFun: Callable[..., Incomplete] | None = ..., + substrateFun: Callable[..., Incomplete] | None = ..., **options, ): ... class OctetStringDecoder(AbstractSimpleDecoder): - protoComponent: Incomplete + protoComponent: univ.OctetString supportConstructedForm: bool def valueDecoder( self, substrate, asn1Spec, - tagSet: Incomplete | None = ..., - length: Incomplete | None = ..., - state: Incomplete | None = ..., - decodeFun: Incomplete | None = ..., - substrateFun: Incomplete | None = ..., + tagSet: TagSet | None = ..., + length: int | None = ..., + state: _Unused = ..., + decodeFun: Callable[..., Incomplete] | None = ..., + substrateFun: Callable[..., Incomplete] | None = ..., **options, ): ... def indefLenValueDecoder( self, substrate, asn1Spec, - tagSet: Incomplete | None = ..., - length: Incomplete | None = ..., - state: Incomplete | None = ..., - decodeFun: Incomplete | None = ..., - substrateFun: Incomplete | None = ..., + tagSet: TagSet | None = ..., + length: int | None = ..., + state: _Unused = ..., + decodeFun: Callable[..., Incomplete] | None = ..., + substrateFun: Callable[..., Incomplete] | None = ..., **options, ): ... class NullDecoder(AbstractSimpleDecoder): - protoComponent: Incomplete + protoComponent: univ.Null def valueDecoder( self, substrate, asn1Spec, - tagSet: Incomplete | None = ..., - length: Incomplete | None = ..., - state: Incomplete | None = ..., - decodeFun: Incomplete | None = ..., - substrateFun: Incomplete | None = ..., + tagSet: TagSet | None = ..., + length: int | None = ..., + state: _Unused = ..., + decodeFun: _Unused = ..., + substrateFun: _Unused = ..., **options, ): ... class ObjectIdentifierDecoder(AbstractSimpleDecoder): - protoComponent: Incomplete + protoComponent: univ.ObjectIdentifier def valueDecoder( self, substrate, asn1Spec, - tagSet: Incomplete | None = ..., - length: Incomplete | None = ..., - state: Incomplete | None = ..., - decodeFun: Incomplete | None = ..., - substrateFun: Incomplete | None = ..., + tagSet: TagSet | None = ..., + length: int | None = ..., + state: _Unused = ..., + decodeFun: _Unused = ..., + substrateFun: _Unused = ..., **options, ): ... class RealDecoder(AbstractSimpleDecoder): - protoComponent: Incomplete + protoComponent: univ.Real def valueDecoder( self, substrate, asn1Spec, - tagSet: Incomplete | None = ..., - length: Incomplete | None = ..., - state: Incomplete | None = ..., - decodeFun: Incomplete | None = ..., - substrateFun: Incomplete | None = ..., + tagSet: TagSet | None = ..., + length: int | None = ..., + state: _Unused = ..., + decodeFun: _Unused = ..., + substrateFun: _Unused = ..., **options, ): ... -class AbstractConstructedDecoder(AbstractDecoder): - protoComponent: Incomplete +class AbstractConstructedDecoder(AbstractDecoder, metaclass=ABCMeta): + protoComponent: base.ConstructedAsn1Type | None class UniversalConstructedTypeDecoder(AbstractConstructedDecoder): - protoRecordComponent: Incomplete - protoSequenceComponent: Incomplete + protoRecordComponent: univ.SequenceAndSetBase | None + protoSequenceComponent: univ.SequenceOfAndSetOfBase | None def valueDecoder( self, substrate, asn1Spec, - tagSet: Incomplete | None = ..., - length: Incomplete | None = ..., - state: Incomplete | None = ..., - decodeFun: Incomplete | None = ..., - substrateFun: Incomplete | None = ..., + tagSet: TagSet | None = ..., + length: int | None = ..., + state: _Unused = ..., + decodeFun: Callable[..., Incomplete] | None = ..., + substrateFun: Callable[..., Incomplete] | None = ..., **options, ): ... def indefLenValueDecoder( self, substrate, asn1Spec, - tagSet: Incomplete | None = ..., - length: Incomplete | None = ..., - state: Incomplete | None = ..., - decodeFun: Incomplete | None = ..., - substrateFun: Incomplete | None = ..., + tagSet: TagSet | None = ..., + length: int | None = ..., + state: _Unused = ..., + decodeFun: Callable[..., Incomplete] | None = ..., + substrateFun: Callable[..., Incomplete] | None = ..., **options, ): ... class SequenceOrSequenceOfDecoder(UniversalConstructedTypeDecoder): - protoRecordComponent: Incomplete - protoSequenceComponent: Incomplete + protoRecordComponent: univ.Sequence + protoSequenceComponent: univ.SequenceOf class SequenceDecoder(SequenceOrSequenceOfDecoder): - protoComponent: Incomplete + protoComponent: univ.Sequence class SequenceOfDecoder(SequenceOrSequenceOfDecoder): - protoComponent: Incomplete + protoComponent: univ.SequenceOf class SetOrSetOfDecoder(UniversalConstructedTypeDecoder): - protoRecordComponent: Incomplete - protoSequenceComponent: Incomplete + protoRecordComponent: univ.Set + protoSequenceComponent: univ.SetOf class SetDecoder(SetOrSetOfDecoder): - protoComponent: Incomplete + protoComponent: univ.Set class SetOfDecoder(SetOrSetOfDecoder): - protoComponent: Incomplete + protoComponent: univ.SetOf class ChoiceDecoder(AbstractConstructedDecoder): - protoComponent: Incomplete + protoComponent: univ.Choice def valueDecoder( self, substrate, asn1Spec, - tagSet: Incomplete | None = ..., - length: Incomplete | None = ..., + tagSet: TagSet | None = ..., + length: int | None = ..., state: Incomplete | None = ..., - decodeFun: Incomplete | None = ..., - substrateFun: Incomplete | None = ..., + decodeFun: Callable[..., Incomplete] | None = ..., + substrateFun: Callable[..., Incomplete] | None = ..., **options, ): ... def indefLenValueDecoder( self, substrate, asn1Spec, - tagSet: Incomplete | None = ..., - length: Incomplete | None = ..., + tagSet: TagSet | None = ..., + length: int | None = ..., state: Incomplete | None = ..., - decodeFun: Incomplete | None = ..., - substrateFun: Incomplete | None = ..., + decodeFun: Callable[..., Incomplete] | None = ..., + substrateFun: Callable[..., Incomplete] | None = ..., **options, ): ... class AnyDecoder(AbstractSimpleDecoder): - protoComponent: Incomplete + protoComponent: univ.Any def valueDecoder( self, substrate, asn1Spec, - tagSet: Incomplete | None = ..., - length: Incomplete | None = ..., - state: Incomplete | None = ..., - decodeFun: Incomplete | None = ..., - substrateFun: Incomplete | None = ..., + tagSet: TagSet | None = ..., + length: int | None = ..., + state: _Unused = ..., + decodeFun: _Unused = ..., + substrateFun: Callable[..., Incomplete] | None = ..., **options, ): ... def indefLenValueDecoder( self, substrate, asn1Spec, - tagSet: Incomplete | None = ..., - length: Incomplete | None = ..., - state: Incomplete | None = ..., - decodeFun: Incomplete | None = ..., - substrateFun: Incomplete | None = ..., + tagSet: TagSet | None = ..., + length: int | None = ..., + state: _Unused = ..., + decodeFun: Callable[..., Incomplete] | None = ..., + substrateFun: Callable[..., Incomplete] | None = ..., **options, ): ... class UTF8StringDecoder(OctetStringDecoder): - protoComponent: Incomplete + protoComponent: char.UTF8String class NumericStringDecoder(OctetStringDecoder): - protoComponent: Incomplete + protoComponent: char.NumericString class PrintableStringDecoder(OctetStringDecoder): - protoComponent: Incomplete + protoComponent: char.PrintableString class TeletexStringDecoder(OctetStringDecoder): - protoComponent: Incomplete + protoComponent: char.TeletexString class VideotexStringDecoder(OctetStringDecoder): - protoComponent: Incomplete + protoComponent: char.VideotexString class IA5StringDecoder(OctetStringDecoder): - protoComponent: Incomplete + protoComponent: char.IA5String class GraphicStringDecoder(OctetStringDecoder): - protoComponent: Incomplete + protoComponent: char.GraphicString class VisibleStringDecoder(OctetStringDecoder): - protoComponent: Incomplete + protoComponent: char.VisibleString class GeneralStringDecoder(OctetStringDecoder): - protoComponent: Incomplete + protoComponent: char.GeneralString class UniversalStringDecoder(OctetStringDecoder): - protoComponent: Incomplete + protoComponent: char.UniversalString class BMPStringDecoder(OctetStringDecoder): - protoComponent: Incomplete + protoComponent: char.BMPString class ObjectDescriptorDecoder(OctetStringDecoder): - protoComponent: Incomplete + protoComponent: useful.ObjectDescriptor class GeneralizedTimeDecoder(OctetStringDecoder): - protoComponent: Incomplete + protoComponent: useful.GeneralizedTime class UTCTimeDecoder(OctetStringDecoder): - protoComponent: Incomplete + protoComponent: useful.UTCTime class Decoder: - defaultErrorState: Incomplete - defaultRawDecoder: Incomplete + defaultErrorState: int + defaultRawDecoder: AnyDecoder supportIndefLength: bool def __init__(self, tagMap, typeMap=...) -> None: ... def __call__( self, substrate, - asn1Spec: Incomplete | None = ..., - tagSet: Incomplete | None = ..., - length: Incomplete | None = ..., + asn1Spec: Asn1Type | None = ..., + tagSet: TagSet | None = ..., + length: int | None = ..., state=..., - decodeFun: Incomplete | None = ..., - substrateFun: Incomplete | None = ..., + decodeFun: _Unused = ..., + substrateFun: Callable[..., Incomplete] | None = ..., **options, ): ... diff --git a/stubs/pyasn1/pyasn1/codec/ber/encoder.pyi b/stubs/pyasn1/pyasn1/codec/ber/encoder.pyi index a76dc2e3fdc9..234278305ee6 100644 --- a/stubs/pyasn1/pyasn1/codec/ber/encoder.pyi +++ b/stubs/pyasn1/pyasn1/codec/ber/encoder.pyi @@ -1,13 +1,16 @@ -from _typeshed import Incomplete +from abc import ABC, abstractmethod -class AbstractItemEncoder: +from pyasn1.type.base import Asn1Type + +class AbstractItemEncoder(ABC): supportIndefLenMode: bool - eooIntegerSubstrate: Incomplete - eooOctetsSubstrate: Incomplete + eooIntegerSubstrate: tuple[int, int] + eooOctetsSubstrate: bytes def encodeTag(self, singleTag, isConstructed): ... def encodeLength(self, length, defMode): ... + @abstractmethod def encodeValue(self, value, asn1Spec, encodeFun, **options) -> None: ... - def encode(self, value, asn1Spec: Incomplete | None = ..., encodeFun: Incomplete | None = ..., **options): ... + def encode(self, value, asn1Spec: Asn1Type | None = ..., encodeFun: object | None = ..., **options): ... class EndOfOctetsEncoder(AbstractItemEncoder): def encodeValue(self, value, asn1Spec, encodeFun, **options): ... @@ -55,9 +58,9 @@ class AnyEncoder(OctetStringEncoder): def encodeValue(self, value, asn1Spec, encodeFun, **options): ... class Encoder: - fixedDefLengthMode: Incomplete - fixedChunkSize: Incomplete + fixedDefLengthMode: bool | None + fixedChunkSize: int | None def __init__(self, tagMap, typeMap=...) -> None: ... - def __call__(self, value, asn1Spec: Incomplete | None = ..., **options): ... + def __call__(self, value, asn1Spec: Asn1Type | None = ..., **options): ... encode: Encoder diff --git a/stubs/pyasn1/pyasn1/codec/ber/eoo.pyi b/stubs/pyasn1/pyasn1/codec/ber/eoo.pyi index f51fa9c7a659..b34fb621f382 100644 --- a/stubs/pyasn1/pyasn1/codec/ber/eoo.pyi +++ b/stubs/pyasn1/pyasn1/codec/ber/eoo.pyi @@ -1,10 +1,9 @@ -from _typeshed import Incomplete - from pyasn1.type import base +from pyasn1.type.tag import TagSet class EndOfOctets(base.SimpleAsn1Type): defaultValue: int - tagSet: Incomplete + tagSet: TagSet def __new__(cls, *args, **kwargs): ... -endOfOctets: Incomplete +endOfOctets: EndOfOctets diff --git a/stubs/pyasn1/pyasn1/codec/cer/decoder.pyi b/stubs/pyasn1/pyasn1/codec/cer/decoder.pyi index 399be371f0d9..fc9640151414 100644 --- a/stubs/pyasn1/pyasn1/codec/cer/decoder.pyi +++ b/stubs/pyasn1/pyasn1/codec/cer/decoder.pyi @@ -1,18 +1,22 @@ -from _typeshed import Incomplete +from typing_extensions import TypeAlias from pyasn1.codec.ber import decoder +from pyasn1.type import univ +from pyasn1.type.tag import TagSet + +_Unused: TypeAlias = object class BooleanDecoder(decoder.AbstractSimpleDecoder): - protoComponent: Incomplete + protoComponent: univ.Boolean def valueDecoder( self, substrate, asn1Spec, - tagSet: Incomplete | None = ..., - length: Incomplete | None = ..., - state: Incomplete | None = ..., - decodeFun: Incomplete | None = ..., - substrateFun: Incomplete | None = ..., + tagSet: TagSet | None = ..., + length: int | None = ..., + state: _Unused = ..., + decodeFun: _Unused = ..., + substrateFun: _Unused = ..., **options, ): ... diff --git a/stubs/pyasn1/pyasn1/codec/cer/encoder.pyi b/stubs/pyasn1/pyasn1/codec/cer/encoder.pyi index 3da8790999f1..9a4adaab9562 100644 --- a/stubs/pyasn1/pyasn1/codec/cer/encoder.pyi +++ b/stubs/pyasn1/pyasn1/codec/cer/encoder.pyi @@ -1,5 +1,3 @@ -from _typeshed import Incomplete - from pyasn1.codec.ber import encoder class BooleanEncoder(encoder.IntegerEncoder): @@ -8,12 +6,12 @@ class BooleanEncoder(encoder.IntegerEncoder): class RealEncoder(encoder.RealEncoder): ... class TimeEncoderMixIn: - Z_CHAR: Incomplete - PLUS_CHAR: Incomplete - MINUS_CHAR: Incomplete - COMMA_CHAR: Incomplete - DOT_CHAR: Incomplete - ZERO_CHAR: Incomplete + Z_CHAR: int + PLUS_CHAR: int + MINUS_CHAR: int + COMMA_CHAR: int + DOT_CHAR: int + ZERO_CHAR: int MIN_LENGTH: int MAX_LENGTH: int def encodeValue(self, value, asn1Spec, encodeFun, **options): ... diff --git a/stubs/pyasn1/pyasn1/codec/native/decoder.pyi b/stubs/pyasn1/pyasn1/codec/native/decoder.pyi index f48c42ad77cd..6aa0b3e8972e 100644 --- a/stubs/pyasn1/pyasn1/codec/native/decoder.pyi +++ b/stubs/pyasn1/pyasn1/codec/native/decoder.pyi @@ -1,22 +1,27 @@ from _typeshed import Incomplete +from abc import ABC +from collections.abc import Callable +from typing_extensions import TypeAlias -class AbstractScalarDecoder: - def __call__(self, pyObject, asn1Spec, decodeFun: Incomplete | None = ..., **options): ... +_Unused: TypeAlias = object + +class AbstractScalarDecoder(ABC): + def __call__(self, pyObject, asn1Spec, decodeFun: _Unused = ..., **options): ... class BitStringDecoder(AbstractScalarDecoder): - def __call__(self, pyObject, asn1Spec, decodeFun: Incomplete | None = ..., **options): ... + def __call__(self, pyObject, asn1Spec, decodeFun: _Unused = ..., **options): ... class SequenceOrSetDecoder: - def __call__(self, pyObject, asn1Spec, decodeFun: Incomplete | None = ..., **options): ... + def __call__(self, pyObject, asn1Spec, decodeFun: Callable[..., Incomplete] | None = ..., **options): ... class SequenceOfOrSetOfDecoder: - def __call__(self, pyObject, asn1Spec, decodeFun: Incomplete | None = ..., **options): ... + def __call__(self, pyObject, asn1Spec, decodeFun: Callable[..., Incomplete] | None = ..., **options): ... class ChoiceDecoder: - def __call__(self, pyObject, asn1Spec, decodeFun: Incomplete | None = ..., **options): ... + def __call__(self, pyObject, asn1Spec, decodeFun: Callable[..., Incomplete] | None = ..., **options): ... class Decoder: def __init__(self, tagMap, typeMap) -> None: ... def __call__(self, pyObject, asn1Spec, **options): ... -decode: Incomplete +decode: Decoder diff --git a/stubs/pyasn1/pyasn1/codec/native/encoder.pyi b/stubs/pyasn1/pyasn1/codec/native/encoder.pyi index 3e75135f8bca..96305e283494 100644 --- a/stubs/pyasn1/pyasn1/codec/native/encoder.pyi +++ b/stubs/pyasn1/pyasn1/codec/native/encoder.pyi @@ -1,6 +1,8 @@ -from _typeshed import Incomplete +from abc import ABC, abstractmethod +from collections import OrderedDict -class AbstractItemEncoder: +class AbstractItemEncoder(ABC): + @abstractmethod def encode(self, value, encodeFun, **options) -> None: ... class BooleanEncoder(AbstractItemEncoder): @@ -28,11 +30,11 @@ class RealEncoder(AbstractItemEncoder): def encode(self, value, encodeFun, **options): ... class SetEncoder(AbstractItemEncoder): - protoDict: Incomplete + protoDict = dict def encode(self, value, encodeFun, **options): ... class SequenceEncoder(SetEncoder): - protoDict: Incomplete + protoDict = OrderedDict class SequenceOfEncoder(AbstractItemEncoder): def encode(self, value, encodeFun, **options): ... @@ -46,4 +48,4 @@ class Encoder: def __init__(self, tagMap, typeMap=...) -> None: ... def __call__(self, value, **options): ... -encode: Incomplete +encode: Encoder diff --git a/stubs/pyasn1/pyasn1/compat/integer.pyi b/stubs/pyasn1/pyasn1/compat/integer.pyi index 26ea1c2f2dd4..b7cafe63382e 100644 --- a/stubs/pyasn1/pyasn1/compat/integer.pyi +++ b/stubs/pyasn1/pyasn1/compat/integer.pyi @@ -1,7 +1,6 @@ -from _typeshed import Incomplete from typing_extensions import Literal -implementation: Incomplete +implementation: str null: Literal[b""] def from_bytes(octets, signed: bool = ...): ... diff --git a/stubs/pyasn1/pyasn1/compat/octets.pyi b/stubs/pyasn1/pyasn1/compat/octets.pyi index 28ccc9da9bb8..a5ad961dd450 100644 --- a/stubs/pyasn1/pyasn1/compat/octets.pyi +++ b/stubs/pyasn1/pyasn1/compat/octets.pyi @@ -1,14 +1,19 @@ -from _typeshed import Incomplete +from typing import TypeVar from typing_extensions import Literal -int2oct: Incomplete -ints2octs: Incomplete +_T = TypeVar("_T") + +ints2octs = bytes + +def int2oct(x) -> bytes: ... + null: Literal[b""] -oct2int = ord -octs2ints: Incomplete -str2octs: Incomplete -octs2str: Incomplete -isOctetsType: Incomplete -isStringType: Incomplete + +def oct2int(x: _T) -> _T: ... +def octs2ints(x: _T) -> _T: ... +def str2octs(x: str) -> bytes: ... +def octs2str(x: bytes) -> str: ... +def isOctetsType(s: object) -> bool: ... +def isStringType(s: object) -> bool: ... + ensureString = bytes -ints2octs = bytes diff --git a/stubs/pyasn1/pyasn1/debug.pyi b/stubs/pyasn1/pyasn1/debug.pyi index e7fec6603180..55480cdd527b 100644 --- a/stubs/pyasn1/pyasn1/debug.pyi +++ b/stubs/pyasn1/pyasn1/debug.pyi @@ -1,16 +1,19 @@ import logging -from _typeshed import Incomplete +from typing import TextIO class Printer: def __init__( - self, logger: Incomplete | None = ..., handler: Incomplete | None = ..., formatter: Incomplete | None = ... + self, + logger: logging.Logger | None = ..., + handler: logging.StreamHandler[TextIO] | None = ..., + formatter: logging.Formatter | None = ..., ) -> None: ... def __call__(self, msg) -> None: ... NullHandler = logging.NullHandler class Debug: - defaultPrinter: Incomplete + defaultPrinter: Printer def __init__(self, *flags, **options) -> None: ... def __call__(self, msg) -> None: ... def __and__(self, flag): ... diff --git a/stubs/pyasn1/pyasn1/error.pyi b/stubs/pyasn1/pyasn1/error.pyi index d93364cfc05d..3349f338f31e 100644 --- a/stubs/pyasn1/pyasn1/error.pyi +++ b/stubs/pyasn1/pyasn1/error.pyi @@ -1,11 +1,9 @@ -from _typeshed import Incomplete - class PyAsn1Error(Exception): ... class ValueConstraintError(PyAsn1Error): ... class SubstrateUnderrunError(PyAsn1Error): ... class PyAsn1UnicodeError(PyAsn1Error, UnicodeError): - def __init__(self, message, unicode_error: Incomplete | None = ...) -> None: ... + def __init__(self, message, unicode_error: UnicodeError | object = ...) -> None: ... class PyAsn1UnicodeDecodeError(PyAsn1UnicodeError, UnicodeDecodeError): ... class PyAsn1UnicodeEncodeError(PyAsn1UnicodeError, UnicodeEncodeError): ... diff --git a/stubs/pyasn1/pyasn1/type/base.pyi b/stubs/pyasn1/pyasn1/type/base.pyi index 259efcfd5b0b..455f33c8aff8 100644 --- a/stubs/pyasn1/pyasn1/type/base.pyi +++ b/stubs/pyasn1/pyasn1/type/base.pyi @@ -2,14 +2,17 @@ from _typeshed import Incomplete from typing import type_check_only from typing_extensions import final +from pyasn1.type import constraint, namedtype +from pyasn1.type.tag import TagSet + class Asn1Item: @classmethod def getTypeId(cls, increment: int = ...): ... class Asn1Type(Asn1Item): - tagSet: Incomplete - subtypeSpec: Incomplete - typeId: Incomplete + tagSet: TagSet + subtypeSpec: constraint.ConstraintsIntersection + typeId: int | None def __init__(self, **kwargs) -> None: ... def __setattr__(self, name, value) -> None: ... @property @@ -33,7 +36,7 @@ Asn1ItemBase = Asn1Type @final class NoValue: - skipMethods: Incomplete + skipMethods: set[str] def __new__(cls): ... def __getattr__(self, attr) -> None: ... # def __new__..getPlug..plug @@ -99,7 +102,7 @@ class NoValue: __xor__ = int.__xor__ class SimpleAsn1Type(Asn1Type): - defaultValue: Incomplete + defaultValue: Incomplete | NoValue def __init__(self, value=..., **kwargs) -> None: ... def __eq__(self, other): ... def __ne__(self, other): ... @@ -122,8 +125,8 @@ AbstractSimpleAsn1Item = SimpleAsn1Type class ConstructedAsn1Type(Asn1Type): strictConstraints: bool - componentType: Incomplete - sizeSpec: Incomplete + componentType: namedtype.NamedTypes | None + sizeSpec: constraint.ConstraintsIntersection def __init__(self, **kwargs) -> None: ... def __eq__(self, other): ... def __ne__(self, other): ... diff --git a/stubs/pyasn1/pyasn1/type/char.pyi b/stubs/pyasn1/pyasn1/type/char.pyi index e75c18e2551b..8037d673f200 100644 --- a/stubs/pyasn1/pyasn1/type/char.pyi +++ b/stubs/pyasn1/pyasn1/type/char.pyi @@ -1,8 +1,9 @@ -from _typeshed import Incomplete +from abc import ABC from pyasn1.type import univ +from pyasn1.type.tag import TagSet -class AbstractCharacterString(univ.OctetString): +class AbstractCharacterString(univ.OctetString, ABC): def __bytes__(self) -> bytes: ... def prettyIn(self, value): ... def asOctets(self, padding: bool = ...): ... @@ -12,75 +13,75 @@ class AbstractCharacterString(univ.OctetString): def __reversed__(self): ... class NumericString(AbstractCharacterString): - __doc__: Incomplete - tagSet: Incomplete + __doc__: str + tagSet: TagSet encoding: str - typeId: Incomplete + typeId: int class PrintableString(AbstractCharacterString): - __doc__: Incomplete - tagSet: Incomplete + __doc__: str + tagSet: TagSet encoding: str - typeId: Incomplete + typeId: int class TeletexString(AbstractCharacterString): - __doc__: Incomplete - tagSet: Incomplete + __doc__: str + tagSet: TagSet encoding: str - typeId: Incomplete + typeId: int class T61String(TeletexString): - __doc__: Incomplete - typeId: Incomplete + __doc__: str + typeId: int class VideotexString(AbstractCharacterString): - __doc__: Incomplete - tagSet: Incomplete + __doc__: str + tagSet: TagSet encoding: str - typeId: Incomplete + typeId: int class IA5String(AbstractCharacterString): - __doc__: Incomplete - tagSet: Incomplete + __doc__: str + tagSet: TagSet encoding: str - typeId: Incomplete + typeId: int class GraphicString(AbstractCharacterString): - __doc__: Incomplete - tagSet: Incomplete + __doc__: str + tagSet: TagSet encoding: str - typeId: Incomplete + typeId: int class VisibleString(AbstractCharacterString): - __doc__: Incomplete - tagSet: Incomplete + __doc__: str + tagSet: TagSet encoding: str - typeId: Incomplete + typeId: int class ISO646String(VisibleString): - __doc__: Incomplete - typeId: Incomplete + __doc__: str + typeId: int class GeneralString(AbstractCharacterString): - __doc__: Incomplete - tagSet: Incomplete + __doc__: str + tagSet: TagSet encoding: str - typeId: Incomplete + typeId: int class UniversalString(AbstractCharacterString): - __doc__: Incomplete - tagSet: Incomplete + __doc__: str + tagSet: TagSet encoding: str - typeId: Incomplete + typeId: int class BMPString(AbstractCharacterString): - __doc__: Incomplete - tagSet: Incomplete + __doc__: str + tagSet: TagSet encoding: str - typeId: Incomplete + typeId: int class UTF8String(AbstractCharacterString): - __doc__: Incomplete - tagSet: Incomplete + __doc__: str + tagSet: TagSet encoding: str - typeId: Incomplete + typeId: int diff --git a/stubs/pyasn1/pyasn1/type/constraint.pyi b/stubs/pyasn1/pyasn1/type/constraint.pyi index 7e3121dd9f52..2bb1e8bb21b5 100644 --- a/stubs/pyasn1/pyasn1/type/constraint.pyi +++ b/stubs/pyasn1/pyasn1/type/constraint.pyi @@ -1,8 +1,8 @@ -from _typeshed import Incomplete +from abc import ABC -class AbstractConstraint: +class AbstractConstraint(ABC): def __init__(self, *values) -> None: ... - def __call__(self, value, idx: Incomplete | None = ...) -> None: ... + def __call__(self, value, idx: int | None = ...) -> None: ... def __eq__(self, other): ... def __ne__(self, other): ... def __lt__(self, other): ... @@ -31,7 +31,7 @@ class WithComponentsConstraint(AbstractConstraint): ... class InnerTypeConstraint(AbstractConstraint): ... class ConstraintsExclusion(AbstractConstraint): ... -class AbstractConstraintSet(AbstractConstraint): +class AbstractConstraintSet(AbstractConstraint, ABC): def __getitem__(self, idx): ... def __iter__(self): ... def __add__(self, value): ... diff --git a/stubs/pyasn1/pyasn1/type/namedtype.pyi b/stubs/pyasn1/pyasn1/type/namedtype.pyi index e4b7d2795722..5d3e806bad4a 100644 --- a/stubs/pyasn1/pyasn1/type/namedtype.pyi +++ b/stubs/pyasn1/pyasn1/type/namedtype.pyi @@ -1,9 +1,7 @@ -from _typeshed import Incomplete - class NamedType: isOptional: bool isDefaulted: bool - def __init__(self, name, asn1Object, openType: Incomplete | None = ...) -> None: ... + def __init__(self, name, asn1Object, openType: type | None = ...) -> None: ... def __eq__(self, other): ... def __ne__(self, other): ... def __lt__(self, other): ... @@ -23,11 +21,11 @@ class NamedType: def getType(self): ... class OptionalNamedType(NamedType): - __doc__: Incomplete + __doc__: str isOptional: bool class DefaultedNamedType(NamedType): - __doc__: Incomplete + __doc__: str isDefaulted: bool class NamedTypes: diff --git a/stubs/pyasn1/pyasn1/type/opentype.pyi b/stubs/pyasn1/pyasn1/type/opentype.pyi index fdab6aaf46ce..e11aeac49136 100644 --- a/stubs/pyasn1/pyasn1/type/opentype.pyi +++ b/stubs/pyasn1/pyasn1/type/opentype.pyi @@ -1,7 +1,10 @@ from _typeshed import Incomplete +from collections.abc import Mapping + +from pyasn1.type.base import Asn1Type class OpenType: - def __init__(self, name, typeMap: Incomplete | None = ...) -> None: ... + def __init__(self, name, typeMap: Mapping[Incomplete, Asn1Type] | None = ...) -> None: ... @property def name(self): ... def values(self): ... diff --git a/stubs/pyasn1/pyasn1/type/tagmap.pyi b/stubs/pyasn1/pyasn1/type/tagmap.pyi index 19726a559821..196234b755a1 100644 --- a/stubs/pyasn1/pyasn1/type/tagmap.pyi +++ b/stubs/pyasn1/pyasn1/type/tagmap.pyi @@ -1,8 +1,13 @@ -from _typeshed import Incomplete +from collections.abc import Container, Mapping + +from pyasn1.type.base import Asn1Type class TagMap: def __init__( - self, presentTypes: Incomplete | None = ..., skipTypes: Incomplete | None = ..., defaultType: Incomplete | None = ... + self, + presentTypes: Mapping[TagMap, Asn1Type] | None = ..., + skipTypes: Container[TagMap] | None = ..., + defaultType: Asn1Type | None = ..., ) -> None: ... def __contains__(self, tagSet) -> bool: ... def __getitem__(self, tagSet): ... diff --git a/stubs/pyasn1/pyasn1/type/univ.pyi b/stubs/pyasn1/pyasn1/type/univ.pyi index 757c5f612eca..5dd9b1b91821 100644 --- a/stubs/pyasn1/pyasn1/type/univ.pyi +++ b/stubs/pyasn1/pyasn1/type/univ.pyi @@ -1,16 +1,21 @@ -from _typeshed import Incomplete -from collections.abc import Generator +from _typeshed import Incomplete, ReadableBuffer, Self, SupportsRichComparison, SupportsTrunc +from collections.abc import Callable, Generator +from typing import SupportsInt +from typing_extensions import SupportsIndex, TypeAlias -from pyasn1.type import base +from pyasn1.type import base, constraint, namedtype, namedval +from pyasn1.type.tag import TagSet -NoValue: Incomplete -noValue: Incomplete +_SizedIntegerable: TypeAlias = ReadableBuffer | str | SupportsInt | SupportsIndex | SupportsTrunc + +NoValue = base.NoValue +noValue: NoValue class Integer(base.SimpleAsn1Type): - tagSet: Incomplete - subtypeSpec: Incomplete - namedValues: Incomplete - typeId: Incomplete + tagSet: TagSet + subtypeSpec: constraint.ConstraintsIntersection + namedValues: namedval.NamedValues + typeId: int def __init__(self, value=..., **kwargs) -> None: ... def __and__(self, value): ... def __rand__(self, value): ... @@ -28,7 +33,8 @@ class Integer(base.SimpleAsn1Type): def __rmul__(self, value): ... def __mod__(self, value): ... def __rmod__(self, value): ... - def __pow__(self, value, modulo: Incomplete | None = ...): ... + # Accepts everything builtins.pow does + def __pow__(self: Self, value: complex, modulo: int | None = ...) -> Self: ... def __rpow__(self, value): ... def __floordiv__(self, value): ... def __rfloordiv__(self, value): ... @@ -36,7 +42,7 @@ class Integer(base.SimpleAsn1Type): def __rtruediv__(self, value): ... def __divmod__(self, value): ... def __rdivmod__(self, value): ... - __hash__: Incomplete + __hash__ = base.SimpleAsn1Type.__hash__ def __int__(self) -> int: ... def __float__(self) -> float: ... def __abs__(self): ... @@ -59,26 +65,26 @@ class Integer(base.SimpleAsn1Type): def getNamedValues(self): ... class Boolean(Integer): - tagSet: Incomplete - subtypeSpec: Incomplete - namedValues: Incomplete - typeId: Incomplete + tagSet: TagSet + subtypeSpec: constraint.ConstraintsIntersection + namedValues: namedval.NamedValues + typeId: int SizedIntegerBase = int class SizedInteger(SizedIntegerBase): - bitLength: Incomplete - leadingZeroBits: Incomplete + bitLength: int | None + leadingZeroBits: int | None def setBitLength(self, bitLength): ... def __len__(self) -> int: ... class BitString(base.SimpleAsn1Type): - tagSet: Incomplete - subtypeSpec: Incomplete - namedValues: Incomplete - typeId: Incomplete - defaultBinValue: Incomplete - defaultHexValue: Incomplete + tagSet: TagSet + subtypeSpec: constraint.ConstraintsIntersection + namedValues: namedval.NamedValues + typeId: int + defaultBinValue: str | base.NoValue + defaultHexValue: str | base.NoValue def __init__(self, value=..., **kwargs) -> None: ... def __eq__(self, other): ... def __ne__(self, other): ... @@ -103,19 +109,19 @@ class BitString(base.SimpleAsn1Type): def asInteger(self): ... def asBinary(self): ... @classmethod - def fromHexString(cls, value, internalFormat: bool = ..., prepend: Incomplete | None = ...): ... + def fromHexString(cls, value, internalFormat: bool = ..., prepend: _SizedIntegerable | None = ...): ... @classmethod - def fromBinaryString(cls, value, internalFormat: bool = ..., prepend: Incomplete | None = ...): ... + def fromBinaryString(cls, value, internalFormat: bool = ..., prepend: _SizedIntegerable | None = ...): ... @classmethod - def fromOctetString(cls, value, internalFormat: bool = ..., prepend: Incomplete | None = ..., padding: int = ...): ... + def fromOctetString(cls, value, internalFormat: bool = ..., prepend: _SizedIntegerable | None = ..., padding: int = ...): ... def prettyIn(self, value): ... class OctetString(base.SimpleAsn1Type): - tagSet: Incomplete - subtypeSpec: Incomplete - typeId: Incomplete - defaultBinValue: Incomplete - defaultHexValue: Incomplete + tagSet: TagSet + subtypeSpec: constraint.ConstraintsIntersection + typeId: int + defaultBinValue: str | base.NoValue + defaultHexValue: str | base.NoValue encoding: str def __init__(self, value=..., **kwargs) -> None: ... def prettyIn(self, value): ... @@ -141,15 +147,15 @@ class OctetString(base.SimpleAsn1Type): def __reversed__(self): ... class Null(OctetString): - tagSet: Incomplete - subtypeSpec: Incomplete - typeId: Incomplete + tagSet: TagSet + subtypeSpec: constraint.ConstraintsIntersection + typeId: int def prettyIn(self, value): ... class ObjectIdentifier(base.SimpleAsn1Type): - tagSet: Incomplete - subtypeSpec: Incomplete - typeId: Incomplete + tagSet: TagSet + subtypeSpec: constraint.ConstraintsIntersection + typeId: int def __add__(self, other): ... def __radd__(self, other): ... def asTuple(self): ... @@ -163,10 +169,10 @@ class ObjectIdentifier(base.SimpleAsn1Type): def prettyOut(self, value): ... class Real(base.SimpleAsn1Type): - binEncBase: Incomplete - tagSet: Incomplete - subtypeSpec: Incomplete - typeId: Incomplete + binEncBase: int | None + tagSet: TagSet + subtypeSpec: constraint.ConstraintsIntersection + typeId: int def prettyIn(self, value): ... def prettyPrint(self, scope: int = ...): ... @property @@ -183,7 +189,8 @@ class Real(base.SimpleAsn1Type): def __rsub__(self, value): ... def __mod__(self, value): ... def __rmod__(self, value): ... - def __pow__(self, value, modulo: Incomplete | None = ...): ... + # Accepts everything builtins.pow with a float base does + def __pow__(self: Self, value: complex, modulo: int | None = ...) -> Self: ... def __rpow__(self, value): ... def __truediv__(self, value): ... def __rtruediv__(self, value): ... @@ -205,28 +212,37 @@ class Real(base.SimpleAsn1Type): def __gt__(self, value): ... def __ge__(self, value): ... def __bool__(self) -> bool: ... - __hash__: Incomplete + __hash__ = base.SimpleAsn1Type.__hash__ def __getitem__(self, idx): ... def isPlusInfinity(self): ... def isMinusInfinity(self): ... def isInfinity(self): ... class Enumerated(Integer): - tagSet: Incomplete - subtypeSpec: Incomplete - typeId: Incomplete - namedValues: Incomplete + tagSet: TagSet + subtypeSpec: constraint.ConstraintsIntersection + typeId: int + namedValues: namedval.NamedValues class SequenceOfAndSetOfBase(base.ConstructedAsn1Type): - def __init__(self, *args, **kwargs) -> None: ... + componentType: namedtype.NamedTypes | None + tagSet: TagSet + subtypeSpec: constraint.ConstraintsIntersection + def __init__( + self, + *args, + componentType: namedtype.NamedTypes | None = ..., + tagSet: TagSet = ..., + subtypeSpec: constraint.ConstraintsIntersection = ..., + ) -> None: ... def __getitem__(self, idx): ... def __setitem__(self, idx, value) -> None: ... def append(self, value) -> None: ... def count(self, value): ... def extend(self, values) -> None: ... - def index(self, value, start: int = ..., stop: Incomplete | None = ...): ... + def index(self, value, start: int = ..., stop: int | None = ...): ... def reverse(self) -> None: ... - def sort(self, key: Incomplete | None = ..., reverse: bool = ...) -> None: ... + def sort(self, key: Callable[[Incomplete], SupportsRichComparison] | None = ..., reverse: bool = ...) -> None: ... def __len__(self) -> int: ... def __iter__(self): ... def getComponentByPosition(self, idx, default=..., instantiate: bool = ...): ... @@ -247,21 +263,15 @@ class SequenceOfAndSetOfBase(base.ConstructedAsn1Type): def isInconsistent(self): ... class SequenceOf(SequenceOfAndSetOfBase): - __doc__: Incomplete - tagSet: Incomplete - componentType: Incomplete - subtypeSpec: Incomplete - typeId: Incomplete + __doc__: str + typeId: int class SetOf(SequenceOfAndSetOfBase): - __doc__: Incomplete - tagSet: Incomplete - componentType: Incomplete - subtypeSpec: Incomplete - typeId: Incomplete + __doc__: str + typeId: int class SequenceAndSetBase(base.ConstructedAsn1Type): - componentType: Incomplete + componentType: namedtype.NamedTypes class DynamicNames: def __init__(self) -> None: ... @@ -306,20 +316,20 @@ class SequenceAndSetBase(base.ConstructedAsn1Type): def getNameByPosition(self, idx): ... class Sequence(SequenceAndSetBase): - __doc__: Incomplete - tagSet: Incomplete - subtypeSpec: Incomplete - componentType: Incomplete - typeId: Incomplete + __doc__: str + tagSet: TagSet + subtypeSpec: constraint.ConstraintsIntersection + componentType: namedtype.NamedTypes + typeId: int def getComponentTagMapNearPosition(self, idx): ... def getComponentPositionNearType(self, tagSet, idx): ... class Set(SequenceAndSetBase): - __doc__: Incomplete - tagSet: Incomplete - componentType: Incomplete - subtypeSpec: Incomplete - typeId: Incomplete + __doc__: str + tagSet: TagSet + componentType: namedtype.NamedTypes + subtypeSpec: constraint.ConstraintsIntersection + typeId: int def getComponent(self, innerFlag: bool = ...): ... def getComponentByType(self, tagSet, default=..., instantiate: bool = ..., innerFlag: bool = ...): ... def setComponentByType( @@ -335,10 +345,10 @@ class Set(SequenceAndSetBase): def componentTagMap(self): ... class Choice(Set): - tagSet: Incomplete - componentType: Incomplete - subtypeSpec: Incomplete - typeId: Incomplete + tagSet: TagSet + componentType: namedtype.NamedTypes + subtypeSpec: constraint.ConstraintsIntersection + typeId: int def __eq__(self, other): ... def __ne__(self, other): ... def __lt__(self, other): ... @@ -369,8 +379,8 @@ class Choice(Set): def getMinTagSet(self): ... class Any(OctetString): - tagSet: Incomplete - subtypeSpec: Incomplete - typeId: Incomplete + tagSet: TagSet + subtypeSpec: constraint.ConstraintsIntersection + typeId: int @property def tagMap(self): ... diff --git a/stubs/pyasn1/pyasn1/type/useful.pyi b/stubs/pyasn1/pyasn1/type/useful.pyi index d05104446a17..4a4179c46d06 100644 --- a/stubs/pyasn1/pyasn1/type/useful.pyi +++ b/stubs/pyasn1/pyasn1/type/useful.pyi @@ -1,12 +1,12 @@ import datetime -from _typeshed import Incomplete from pyasn1.type import char +from pyasn1.type.tag import TagSet class ObjectDescriptor(char.GraphicString): - __doc__: Incomplete - tagSet: Incomplete - typeId: Incomplete + __doc__: str + tagSet: TagSet + typeId: int class TimeMixIn: class FixedOffset(datetime.tzinfo): @@ -14,18 +14,18 @@ class TimeMixIn: def utcoffset(self, dt): ... def tzname(self, dt): ... def dst(self, dt): ... - UTC: Incomplete + UTC: FixedOffset @property def asDateTime(self): ... @classmethod def fromDateTime(cls, dt): ... class GeneralizedTime(char.VisibleString, TimeMixIn): - __doc__: Incomplete - tagSet: Incomplete - typeId: Incomplete + __doc__: str + tagSet: TagSet + typeId: int class UTCTime(char.VisibleString, TimeMixIn): - __doc__: Incomplete - tagSet: Incomplete - typeId: Incomplete + __doc__: str + tagSet: TagSet + typeId: int From cac4f6b07599fefcf7fbe2c66e0b932e046686fc Mon Sep 17 00:00:00 2001 From: Avasam Date: Sun, 1 Jan 2023 03:51:48 -0500 Subject: [PATCH 3/6] More direct compat types --- stubs/pyasn1/pyasn1/compat/dateandtime.pyi | 4 +++- stubs/pyasn1/pyasn1/compat/string.pyi | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/stubs/pyasn1/pyasn1/compat/dateandtime.pyi b/stubs/pyasn1/pyasn1/compat/dateandtime.pyi index 1a8f94715a85..739dbe57c9ef 100644 --- a/stubs/pyasn1/pyasn1/compat/dateandtime.pyi +++ b/stubs/pyasn1/pyasn1/compat/dateandtime.pyi @@ -1 +1,3 @@ -def strptime(text, dateFormat): ... +from datetime import datetime + +strptime = datetime.strptime diff --git a/stubs/pyasn1/pyasn1/compat/string.pyi b/stubs/pyasn1/pyasn1/compat/string.pyi index 2264e318fc94..c88881c11d78 100644 --- a/stubs/pyasn1/pyasn1/compat/string.pyi +++ b/stubs/pyasn1/pyasn1/compat/string.pyi @@ -1 +1,2 @@ -def partition(string, sep): ... +# Same as string.partition(sep) +def partition(string: str, sep: str) -> tuple[str, str, str]: ... From b26e252dd161948929ef59befa0035a292c6cf8a Mon Sep 17 00:00:00 2001 From: Avasam Date: Thu, 5 Jan 2023 19:20:38 -0500 Subject: [PATCH 4/6] PR comments --- stubs/pyasn1/pyasn1/codec/ber/encoder.pyi | 7 ++--- stubs/pyasn1/pyasn1/codec/cer/encoder.pyi | 27 +++++++++----------- stubs/pyasn1/pyasn1/codec/native/decoder.pyi | 3 +-- stubs/pyasn1/pyasn1/codec/native/encoder.pyi | 4 +-- stubs/pyasn1/pyasn1/error.pyi | 2 +- stubs/pyasn1/pyasn1/type/base.pyi | 4 --- stubs/pyasn1/pyasn1/type/char.pyi | 17 +----------- stubs/pyasn1/pyasn1/type/constraint.pyi | 8 ++---- stubs/pyasn1/pyasn1/type/namedtype.pyi | 6 ----- stubs/pyasn1/pyasn1/type/namedval.pyi | 2 -- stubs/pyasn1/pyasn1/type/tag.pyi | 4 --- stubs/pyasn1/pyasn1/type/univ.pyi | 20 +++------------ stubs/pyasn1/pyasn1/type/useful.pyi | 3 --- 13 files changed, 27 insertions(+), 80 deletions(-) diff --git a/stubs/pyasn1/pyasn1/codec/ber/encoder.pyi b/stubs/pyasn1/pyasn1/codec/ber/encoder.pyi index 234278305ee6..28156078ceb3 100644 --- a/stubs/pyasn1/pyasn1/codec/ber/encoder.pyi +++ b/stubs/pyasn1/pyasn1/codec/ber/encoder.pyi @@ -1,8 +1,9 @@ -from abc import ABC, abstractmethod +from _typeshed import Incomplete +from abc import abstractmethod from pyasn1.type.base import Asn1Type -class AbstractItemEncoder(ABC): +class AbstractItemEncoder: supportIndefLenMode: bool eooIntegerSubstrate: tuple[int, int] eooOctetsSubstrate: bytes @@ -10,7 +11,7 @@ class AbstractItemEncoder(ABC): def encodeLength(self, length, defMode): ... @abstractmethod def encodeValue(self, value, asn1Spec, encodeFun, **options) -> None: ... - def encode(self, value, asn1Spec: Asn1Type | None = ..., encodeFun: object | None = ..., **options): ... + def encode(self, value, asn1Spec: Asn1Type | None = ..., encodeFun: Incomplete | None = ..., **options): ... class EndOfOctetsEncoder(AbstractItemEncoder): def encodeValue(self, value, asn1Spec, encodeFun, **options): ... diff --git a/stubs/pyasn1/pyasn1/codec/cer/encoder.pyi b/stubs/pyasn1/pyasn1/codec/cer/encoder.pyi index 9a4adaab9562..3b01db7d4e29 100644 --- a/stubs/pyasn1/pyasn1/codec/cer/encoder.pyi +++ b/stubs/pyasn1/pyasn1/codec/cer/encoder.pyi @@ -1,3 +1,5 @@ +from typing import ClassVar + from pyasn1.codec.ber import encoder class BooleanEncoder(encoder.IntegerEncoder): @@ -6,23 +8,18 @@ class BooleanEncoder(encoder.IntegerEncoder): class RealEncoder(encoder.RealEncoder): ... class TimeEncoderMixIn: - Z_CHAR: int - PLUS_CHAR: int - MINUS_CHAR: int - COMMA_CHAR: int - DOT_CHAR: int - ZERO_CHAR: int - MIN_LENGTH: int - MAX_LENGTH: int + Z_CHAR: ClassVar[int] + PLUS_CHAR: ClassVar[int] + MINUS_CHAR: ClassVar[int] + COMMA_CHAR: ClassVar[int] + DOT_CHAR: ClassVar[int] + ZERO_CHAR: ClassVar[int] + MIN_LENGTH: ClassVar[int] + MAX_LENGTH: ClassVar[int] def encodeValue(self, value, asn1Spec, encodeFun, **options): ... -class GeneralizedTimeEncoder(TimeEncoderMixIn, encoder.OctetStringEncoder): - MIN_LENGTH: int - MAX_LENGTH: int - -class UTCTimeEncoder(TimeEncoderMixIn, encoder.OctetStringEncoder): - MIN_LENGTH: int - MAX_LENGTH: int +class GeneralizedTimeEncoder(TimeEncoderMixIn, encoder.OctetStringEncoder): ... +class UTCTimeEncoder(TimeEncoderMixIn, encoder.OctetStringEncoder): ... class SetOfEncoder(encoder.SequenceOfEncoder): def encodeValue(self, value, asn1Spec, encodeFun, **options): ... diff --git a/stubs/pyasn1/pyasn1/codec/native/decoder.pyi b/stubs/pyasn1/pyasn1/codec/native/decoder.pyi index 6aa0b3e8972e..47296d667536 100644 --- a/stubs/pyasn1/pyasn1/codec/native/decoder.pyi +++ b/stubs/pyasn1/pyasn1/codec/native/decoder.pyi @@ -1,11 +1,10 @@ from _typeshed import Incomplete -from abc import ABC from collections.abc import Callable from typing_extensions import TypeAlias _Unused: TypeAlias = object -class AbstractScalarDecoder(ABC): +class AbstractScalarDecoder: def __call__(self, pyObject, asn1Spec, decodeFun: _Unused = ..., **options): ... class BitStringDecoder(AbstractScalarDecoder): diff --git a/stubs/pyasn1/pyasn1/codec/native/encoder.pyi b/stubs/pyasn1/pyasn1/codec/native/encoder.pyi index 96305e283494..ec0cb54cfd23 100644 --- a/stubs/pyasn1/pyasn1/codec/native/encoder.pyi +++ b/stubs/pyasn1/pyasn1/codec/native/encoder.pyi @@ -1,7 +1,7 @@ -from abc import ABC, abstractmethod +from abc import abstractmethod from collections import OrderedDict -class AbstractItemEncoder(ABC): +class AbstractItemEncoder: @abstractmethod def encode(self, value, encodeFun, **options) -> None: ... diff --git a/stubs/pyasn1/pyasn1/error.pyi b/stubs/pyasn1/pyasn1/error.pyi index 3349f338f31e..97eb7898d2f2 100644 --- a/stubs/pyasn1/pyasn1/error.pyi +++ b/stubs/pyasn1/pyasn1/error.pyi @@ -3,7 +3,7 @@ class ValueConstraintError(PyAsn1Error): ... class SubstrateUnderrunError(PyAsn1Error): ... class PyAsn1UnicodeError(PyAsn1Error, UnicodeError): - def __init__(self, message, unicode_error: UnicodeError | object = ...) -> None: ... + def __init__(self, message, unicode_error: UnicodeError | None = ...) -> None: ... class PyAsn1UnicodeDecodeError(PyAsn1UnicodeError, UnicodeDecodeError): ... class PyAsn1UnicodeEncodeError(PyAsn1UnicodeError, UnicodeEncodeError): ... diff --git a/stubs/pyasn1/pyasn1/type/base.pyi b/stubs/pyasn1/pyasn1/type/base.pyi index 455f33c8aff8..81c91b2ebc92 100644 --- a/stubs/pyasn1/pyasn1/type/base.pyi +++ b/stubs/pyasn1/pyasn1/type/base.pyi @@ -104,8 +104,6 @@ class NoValue: class SimpleAsn1Type(Asn1Type): defaultValue: Incomplete | NoValue def __init__(self, value=..., **kwargs) -> None: ... - def __eq__(self, other): ... - def __ne__(self, other): ... def __lt__(self, other): ... def __le__(self, other): ... def __gt__(self, other): ... @@ -128,8 +126,6 @@ class ConstructedAsn1Type(Asn1Type): componentType: namedtype.NamedTypes | None sizeSpec: constraint.ConstraintsIntersection def __init__(self, **kwargs) -> None: ... - def __eq__(self, other): ... - def __ne__(self, other): ... def __lt__(self, other): ... def __le__(self, other): ... def __gt__(self, other): ... diff --git a/stubs/pyasn1/pyasn1/type/char.pyi b/stubs/pyasn1/pyasn1/type/char.pyi index 8037d673f200..b61ce2aa8129 100644 --- a/stubs/pyasn1/pyasn1/type/char.pyi +++ b/stubs/pyasn1/pyasn1/type/char.pyi @@ -1,9 +1,7 @@ -from abc import ABC - from pyasn1.type import univ from pyasn1.type.tag import TagSet -class AbstractCharacterString(univ.OctetString, ABC): +class AbstractCharacterString(univ.OctetString): def __bytes__(self) -> bytes: ... def prettyIn(self, value): ... def asOctets(self, padding: bool = ...): ... @@ -13,75 +11,62 @@ class AbstractCharacterString(univ.OctetString, ABC): def __reversed__(self): ... class NumericString(AbstractCharacterString): - __doc__: str tagSet: TagSet encoding: str typeId: int class PrintableString(AbstractCharacterString): - __doc__: str tagSet: TagSet encoding: str typeId: int class TeletexString(AbstractCharacterString): - __doc__: str tagSet: TagSet encoding: str typeId: int class T61String(TeletexString): - __doc__: str typeId: int class VideotexString(AbstractCharacterString): - __doc__: str tagSet: TagSet encoding: str typeId: int class IA5String(AbstractCharacterString): - __doc__: str tagSet: TagSet encoding: str typeId: int class GraphicString(AbstractCharacterString): - __doc__: str tagSet: TagSet encoding: str typeId: int class VisibleString(AbstractCharacterString): - __doc__: str tagSet: TagSet encoding: str typeId: int class ISO646String(VisibleString): - __doc__: str typeId: int class GeneralString(AbstractCharacterString): - __doc__: str tagSet: TagSet encoding: str typeId: int class UniversalString(AbstractCharacterString): - __doc__: str tagSet: TagSet encoding: str typeId: int class BMPString(AbstractCharacterString): - __doc__: str tagSet: TagSet encoding: str typeId: int class UTF8String(AbstractCharacterString): - __doc__: str tagSet: TagSet encoding: str typeId: int diff --git a/stubs/pyasn1/pyasn1/type/constraint.pyi b/stubs/pyasn1/pyasn1/type/constraint.pyi index 2bb1e8bb21b5..6530f1b96b1e 100644 --- a/stubs/pyasn1/pyasn1/type/constraint.pyi +++ b/stubs/pyasn1/pyasn1/type/constraint.pyi @@ -1,10 +1,6 @@ -from abc import ABC - -class AbstractConstraint(ABC): +class AbstractConstraint: def __init__(self, *values) -> None: ... def __call__(self, value, idx: int | None = ...) -> None: ... - def __eq__(self, other): ... - def __ne__(self, other): ... def __lt__(self, other): ... def __le__(self, other): ... def __gt__(self, other): ... @@ -31,7 +27,7 @@ class WithComponentsConstraint(AbstractConstraint): ... class InnerTypeConstraint(AbstractConstraint): ... class ConstraintsExclusion(AbstractConstraint): ... -class AbstractConstraintSet(AbstractConstraint, ABC): +class AbstractConstraintSet(AbstractConstraint): def __getitem__(self, idx): ... def __iter__(self): ... def __add__(self, value): ... diff --git a/stubs/pyasn1/pyasn1/type/namedtype.pyi b/stubs/pyasn1/pyasn1/type/namedtype.pyi index 5d3e806bad4a..a8fb283d73b4 100644 --- a/stubs/pyasn1/pyasn1/type/namedtype.pyi +++ b/stubs/pyasn1/pyasn1/type/namedtype.pyi @@ -2,8 +2,6 @@ class NamedType: isOptional: bool isDefaulted: bool def __init__(self, name, asn1Object, openType: type | None = ...) -> None: ... - def __eq__(self, other): ... - def __ne__(self, other): ... def __lt__(self, other): ... def __le__(self, other): ... def __gt__(self, other): ... @@ -21,17 +19,13 @@ class NamedType: def getType(self): ... class OptionalNamedType(NamedType): - __doc__: str isOptional: bool class DefaultedNamedType(NamedType): - __doc__: str isDefaulted: bool class NamedTypes: def __init__(self, *namedTypes, **kwargs) -> None: ... - def __eq__(self, other): ... - def __ne__(self, other): ... def __lt__(self, other): ... def __le__(self, other): ... def __gt__(self, other): ... diff --git a/stubs/pyasn1/pyasn1/type/namedval.pyi b/stubs/pyasn1/pyasn1/type/namedval.pyi index 348fb9174417..a6b1873da804 100644 --- a/stubs/pyasn1/pyasn1/type/namedval.pyi +++ b/stubs/pyasn1/pyasn1/type/namedval.pyi @@ -3,8 +3,6 @@ from collections.abc import Generator class NamedValues: def __init__(self, *args, **kwargs) -> None: ... - def __eq__(self, other): ... - def __ne__(self, other): ... def __lt__(self, other): ... def __le__(self, other): ... def __gt__(self, other): ... diff --git a/stubs/pyasn1/pyasn1/type/tag.pyi b/stubs/pyasn1/pyasn1/type/tag.pyi index 8c484dd60301..6599bac1e1de 100644 --- a/stubs/pyasn1/pyasn1/type/tag.pyi +++ b/stubs/pyasn1/pyasn1/type/tag.pyi @@ -10,8 +10,6 @@ tagCategoryUntagged: int class Tag: def __init__(self, tagClass, tagFormat, tagId) -> None: ... - def __eq__(self, other): ... - def __ne__(self, other): ... def __lt__(self, other): ... def __le__(self, other): ... def __gt__(self, other): ... @@ -33,8 +31,6 @@ class TagSet: def __add__(self, superTag): ... def __radd__(self, superTag): ... def __getitem__(self, i): ... - def __eq__(self, other): ... - def __ne__(self, other): ... def __lt__(self, other): ... def __le__(self, other): ... def __gt__(self, other): ... diff --git a/stubs/pyasn1/pyasn1/type/univ.pyi b/stubs/pyasn1/pyasn1/type/univ.pyi index 5dd9b1b91821..a44beada092f 100644 --- a/stubs/pyasn1/pyasn1/type/univ.pyi +++ b/stubs/pyasn1/pyasn1/type/univ.pyi @@ -54,12 +54,10 @@ class Integer(base.SimpleAsn1Type): def __floor__(self): ... def __ceil__(self): ... def __trunc__(self): ... - def __lt__(self, value): ... - def __le__(self, value): ... - def __eq__(self, value): ... - def __ne__(self, value): ... - def __gt__(self, value): ... - def __ge__(self, value): ... + def __lt__(self, value) -> bool: ... + def __le__(self, value) -> bool: ... + def __gt__(self, value) -> bool: ... + def __ge__(self, value) -> bool: ... def prettyIn(self, value): ... def prettyOut(self, value): ... def getNamedValues(self): ... @@ -86,8 +84,6 @@ class BitString(base.SimpleAsn1Type): defaultBinValue: str | base.NoValue defaultHexValue: str | base.NoValue def __init__(self, value=..., **kwargs) -> None: ... - def __eq__(self, other): ... - def __ne__(self, other): ... def __lt__(self, other): ... def __le__(self, other): ... def __gt__(self, other): ... @@ -207,8 +203,6 @@ class Real(base.SimpleAsn1Type): def __trunc__(self): ... def __lt__(self, value): ... def __le__(self, value): ... - def __eq__(self, value): ... - def __ne__(self, value): ... def __gt__(self, value): ... def __ge__(self, value): ... def __bool__(self) -> bool: ... @@ -263,11 +257,9 @@ class SequenceOfAndSetOfBase(base.ConstructedAsn1Type): def isInconsistent(self): ... class SequenceOf(SequenceOfAndSetOfBase): - __doc__: str typeId: int class SetOf(SequenceOfAndSetOfBase): - __doc__: str typeId: int class SequenceAndSetBase(base.ConstructedAsn1Type): @@ -316,7 +308,6 @@ class SequenceAndSetBase(base.ConstructedAsn1Type): def getNameByPosition(self, idx): ... class Sequence(SequenceAndSetBase): - __doc__: str tagSet: TagSet subtypeSpec: constraint.ConstraintsIntersection componentType: namedtype.NamedTypes @@ -325,7 +316,6 @@ class Sequence(SequenceAndSetBase): def getComponentPositionNearType(self, tagSet, idx): ... class Set(SequenceAndSetBase): - __doc__: str tagSet: TagSet componentType: namedtype.NamedTypes subtypeSpec: constraint.ConstraintsIntersection @@ -349,8 +339,6 @@ class Choice(Set): componentType: namedtype.NamedTypes subtypeSpec: constraint.ConstraintsIntersection typeId: int - def __eq__(self, other): ... - def __ne__(self, other): ... def __lt__(self, other): ... def __le__(self, other): ... def __gt__(self, other): ... diff --git a/stubs/pyasn1/pyasn1/type/useful.pyi b/stubs/pyasn1/pyasn1/type/useful.pyi index 4a4179c46d06..33f13a33a061 100644 --- a/stubs/pyasn1/pyasn1/type/useful.pyi +++ b/stubs/pyasn1/pyasn1/type/useful.pyi @@ -4,7 +4,6 @@ from pyasn1.type import char from pyasn1.type.tag import TagSet class ObjectDescriptor(char.GraphicString): - __doc__: str tagSet: TagSet typeId: int @@ -21,11 +20,9 @@ class TimeMixIn: def fromDateTime(cls, dt): ... class GeneralizedTime(char.VisibleString, TimeMixIn): - __doc__: str tagSet: TagSet typeId: int class UTCTime(char.VisibleString, TimeMixIn): - __doc__: str tagSet: TagSet typeId: int From 609bda67528d542e6d002d183de2682e8e4cf0bd Mon Sep 17 00:00:00 2001 From: Alex Waygood Date: Fri, 6 Jan 2023 12:51:09 +0000 Subject: [PATCH 5/6] Apply fix from last round of code review that was missed --- stubs/pyasn1/pyasn1/codec/ber/decoder.pyi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stubs/pyasn1/pyasn1/codec/ber/decoder.pyi b/stubs/pyasn1/pyasn1/codec/ber/decoder.pyi index 980500dd3fda..03afbebd244c 100644 --- a/stubs/pyasn1/pyasn1/codec/ber/decoder.pyi +++ b/stubs/pyasn1/pyasn1/codec/ber/decoder.pyi @@ -9,7 +9,7 @@ from pyasn1.type.tag import TagSet _Unused: TypeAlias = object -class AbstractDecoder(metaclass=ABCMeta): +class AbstractDecoder: protoComponent: Asn1Type | None @abstractmethod def valueDecoder( From 3b42d6e44e309f94ba60f06bb2e91ba2aea7ea3f Mon Sep 17 00:00:00 2001 From: Avasam Date: Fri, 6 Jan 2023 13:07:10 -0500 Subject: [PATCH 6/6] Revert comparison dunder changes --- stubs/pyasn1/pyasn1/type/base.pyi | 4 ++++ stubs/pyasn1/pyasn1/type/constraint.pyi | 2 ++ stubs/pyasn1/pyasn1/type/namedtype.pyi | 4 ++++ stubs/pyasn1/pyasn1/type/namedval.pyi | 2 ++ stubs/pyasn1/pyasn1/type/tag.pyi | 4 ++++ stubs/pyasn1/pyasn1/type/univ.pyi | 16 ++++++++++++---- 6 files changed, 28 insertions(+), 4 deletions(-) diff --git a/stubs/pyasn1/pyasn1/type/base.pyi b/stubs/pyasn1/pyasn1/type/base.pyi index 81c91b2ebc92..455f33c8aff8 100644 --- a/stubs/pyasn1/pyasn1/type/base.pyi +++ b/stubs/pyasn1/pyasn1/type/base.pyi @@ -104,6 +104,8 @@ class NoValue: class SimpleAsn1Type(Asn1Type): defaultValue: Incomplete | NoValue def __init__(self, value=..., **kwargs) -> None: ... + def __eq__(self, other): ... + def __ne__(self, other): ... def __lt__(self, other): ... def __le__(self, other): ... def __gt__(self, other): ... @@ -126,6 +128,8 @@ class ConstructedAsn1Type(Asn1Type): componentType: namedtype.NamedTypes | None sizeSpec: constraint.ConstraintsIntersection def __init__(self, **kwargs) -> None: ... + def __eq__(self, other): ... + def __ne__(self, other): ... def __lt__(self, other): ... def __le__(self, other): ... def __gt__(self, other): ... diff --git a/stubs/pyasn1/pyasn1/type/constraint.pyi b/stubs/pyasn1/pyasn1/type/constraint.pyi index 6530f1b96b1e..313ab6f935c0 100644 --- a/stubs/pyasn1/pyasn1/type/constraint.pyi +++ b/stubs/pyasn1/pyasn1/type/constraint.pyi @@ -1,6 +1,8 @@ class AbstractConstraint: def __init__(self, *values) -> None: ... def __call__(self, value, idx: int | None = ...) -> None: ... + def __eq__(self, other): ... + def __ne__(self, other): ... def __lt__(self, other): ... def __le__(self, other): ... def __gt__(self, other): ... diff --git a/stubs/pyasn1/pyasn1/type/namedtype.pyi b/stubs/pyasn1/pyasn1/type/namedtype.pyi index a8fb283d73b4..a70704160551 100644 --- a/stubs/pyasn1/pyasn1/type/namedtype.pyi +++ b/stubs/pyasn1/pyasn1/type/namedtype.pyi @@ -2,6 +2,8 @@ class NamedType: isOptional: bool isDefaulted: bool def __init__(self, name, asn1Object, openType: type | None = ...) -> None: ... + def __eq__(self, other): ... + def __ne__(self, other): ... def __lt__(self, other): ... def __le__(self, other): ... def __gt__(self, other): ... @@ -26,6 +28,8 @@ class DefaultedNamedType(NamedType): class NamedTypes: def __init__(self, *namedTypes, **kwargs) -> None: ... + def __eq__(self, other): ... + def __ne__(self, other): ... def __lt__(self, other): ... def __le__(self, other): ... def __gt__(self, other): ... diff --git a/stubs/pyasn1/pyasn1/type/namedval.pyi b/stubs/pyasn1/pyasn1/type/namedval.pyi index a6b1873da804..348fb9174417 100644 --- a/stubs/pyasn1/pyasn1/type/namedval.pyi +++ b/stubs/pyasn1/pyasn1/type/namedval.pyi @@ -3,6 +3,8 @@ from collections.abc import Generator class NamedValues: def __init__(self, *args, **kwargs) -> None: ... + def __eq__(self, other): ... + def __ne__(self, other): ... def __lt__(self, other): ... def __le__(self, other): ... def __gt__(self, other): ... diff --git a/stubs/pyasn1/pyasn1/type/tag.pyi b/stubs/pyasn1/pyasn1/type/tag.pyi index 6599bac1e1de..8c484dd60301 100644 --- a/stubs/pyasn1/pyasn1/type/tag.pyi +++ b/stubs/pyasn1/pyasn1/type/tag.pyi @@ -10,6 +10,8 @@ tagCategoryUntagged: int class Tag: def __init__(self, tagClass, tagFormat, tagId) -> None: ... + def __eq__(self, other): ... + def __ne__(self, other): ... def __lt__(self, other): ... def __le__(self, other): ... def __gt__(self, other): ... @@ -31,6 +33,8 @@ class TagSet: def __add__(self, superTag): ... def __radd__(self, superTag): ... def __getitem__(self, i): ... + def __eq__(self, other): ... + def __ne__(self, other): ... def __lt__(self, other): ... def __le__(self, other): ... def __gt__(self, other): ... diff --git a/stubs/pyasn1/pyasn1/type/univ.pyi b/stubs/pyasn1/pyasn1/type/univ.pyi index a44beada092f..c2e3ff45ab1b 100644 --- a/stubs/pyasn1/pyasn1/type/univ.pyi +++ b/stubs/pyasn1/pyasn1/type/univ.pyi @@ -54,10 +54,12 @@ class Integer(base.SimpleAsn1Type): def __floor__(self): ... def __ceil__(self): ... def __trunc__(self): ... - def __lt__(self, value) -> bool: ... - def __le__(self, value) -> bool: ... - def __gt__(self, value) -> bool: ... - def __ge__(self, value) -> bool: ... + def __lt__(self, value): ... + def __le__(self, value): ... + def __eq__(self, value): ... + def __ne__(self, value): ... + def __gt__(self, value): ... + def __ge__(self, value): ... def prettyIn(self, value): ... def prettyOut(self, value): ... def getNamedValues(self): ... @@ -84,6 +86,8 @@ class BitString(base.SimpleAsn1Type): defaultBinValue: str | base.NoValue defaultHexValue: str | base.NoValue def __init__(self, value=..., **kwargs) -> None: ... + def __eq__(self, other): ... + def __ne__(self, other): ... def __lt__(self, other): ... def __le__(self, other): ... def __gt__(self, other): ... @@ -203,6 +207,8 @@ class Real(base.SimpleAsn1Type): def __trunc__(self): ... def __lt__(self, value): ... def __le__(self, value): ... + def __eq__(self, value): ... + def __ne__(self, value): ... def __gt__(self, value): ... def __ge__(self, value): ... def __bool__(self) -> bool: ... @@ -339,6 +345,8 @@ class Choice(Set): componentType: namedtype.NamedTypes subtypeSpec: constraint.ConstraintsIntersection typeId: int + def __eq__(self, other): ... + def __ne__(self, other): ... def __lt__(self, other): ... def __le__(self, other): ... def __gt__(self, other): ...