Choice type¶
-
class
pyasn1.type.univ.
Choice
(componentType=None, tagSet=tagSet(), subtypeSpec=ConstraintsIntersection(), sizeSpec=ConstraintsIntersection())¶ Create Choice type.
Choice objects are mutable and duck-type Python
dict
objects.Parameters: - componentType (
NamedType
) – Object holding named ASN.1 types allowed within this collection - tagSet (
TagSet
) – Object representing non-default ASN.1 tag(s) - subtypeSpec (
ConstraintsIntersection
) – Object representing non-default ASN.1 subtype constraint(s) - sizeSpec (
ConstraintsIntersection
) – Object representing collection size constraint
Note
The Choice type can only hold a single component at a time belonging to the list of allowed types.
-
clone
(componentType=None, tagSet=tagSet(), subtypeSpec=ConstraintsIntersection())¶ Create a copy of a Choice type or object.
Any parameters to the clone() method will replace corresponding properties of the Choice object.
Parameters: - tagSet (
TagSet
) – Object representing non-default ASN.1 tag(s) - subtypeSpec (
ConstraintsIntersection
) – Object representing non-default ASN.1 subtype constraint(s) - sizeSpec (
ConstraintsIntersection
) – Object representing non-default ASN.1 size constraint(s)
Returns: new instance of Choice type/value
- tagSet (
-
subtype
(componentType=None, implicitTag=Tag(), explicitTag=Tag(), subtypeSpec=ConstraintsIntersection())¶ Create a copy of a Choice type or object.
Any parameters to the subtype() method will be added to the corresponding properties of the Choice object.
Parameters: - tagSet (
TagSet
) – Object representing non-default ASN.1 tag(s) - subtypeSpec (
ConstraintsIntersection
) – Object representing non-default ASN.1 subtype constraint(s) - sizeSpec (
ConstraintsIntersection
) – Object representing non-default ASN.1 size constraint(s)
Returns: new instance of Choice type/value
- tagSet (
-
tagSet
= TagSet((), )¶ Default
TagSet
object for Choice objects (untagged by default)
-
componentType
= NamedTypes()¶ Default collection of ASN.1 types of component (e.g.
NamedType
) object representing ASN.1 type allowed within Choice type
-
subtypeSpec
= ConstraintsIntersection()¶ Default
ConstraintsIntersection
object imposing size constraint on Choice objects
-
sizeSpec
= ConstraintsIntersection(ValueSizeConstraint(1, 1))¶ Default
ConstraintsIntersection
object imposing size constraint on Choice objects
-
getComponentByName
(name)¶ Returns Choice type component by name.
Equivalent to Python
dict
subscription operation (e.g. []).Parameters: name ( str
) – Choice type component nameReturns: PyAsn1Item
– a pyasn1 object
-
getComponentByPosition
(idx)¶ Returns Choice type component by index.
Equivalent to Python sequence subscription operation (e.g. []).
Parameters: idx ( int
) – component index (zero-based)Returns: PyAsn1Item
– a PyASN1 object
-
getComponentByType
(tagSet, innerFlag=False)¶ Returns Choice type component by ASN.1 tag.
Parameters: tagSet ( TagSet
) – Object representing ASN.1 tagsReturns: PyAsn1Item
– a pyasn1 object
-
isSameTypeWith
(other, matchTags=True, matchConstraints=True)¶ Examine Choice type for equality with other ASN.1 type.
ASN.1 tags (
tag
) and constraints (constraint
) are examined when carrying out ASN.1 types comparison.No Python inheritance relationship between PyASN1 objects is considered.
Parameters: other (a pyasn1 type object) – Class instance representing ASN.1 type. Returns: bool
–True
if other is Choice type,False
otherwise.
-
isSuperTypeOf
(other, matchTags=True, matchConstraints=True)¶ Examine Choice type for subtype relationship with other ASN.1 type.
ASN.1 tags (
tag
) and constraints (constraint
) are examined when carrying out ASN.1 types comparison.No Python inheritance relationship between PyASN1 objects is considered.
Parameters: other (a pyasn1 type object) – Class instance representing ASN.1 type. Returns: bool
–True
if other is a subtype of Choice type,False
otherwise.
-
setComponentByName
(name, value=NoValue(), verifyConstraints=True, matchTags=True, matchConstraints=True)¶ Assign Choice type component by name.
Equivalent to Python
dict
item assignment operation (e.g. []).Parameters: - name (
str
) – Choice type component name - value (
object
orPyAsn1Item
derivative) – A Python or pyasn1 object to assign - verifyConstraints (
bool
) – If False, skip constraints validation - matchTags (
bool
) – If False, skip component tags matching - matchConstraints (
bool
) – If False, skip component constraints matching
Returns: self
- name (
-
setComponentByType
(tagSet, value=NoValue(), verifyConstraints=True, matchTags=True, matchConstraints=True, innerFlag=False)¶ Assign Choice type component by ASN.1 tag.
Parameters: - tagSet (
TagSet
) – Object representing ASN.1 tags - value (
object
orPyAsn1Item
derivative) – A Python or pyasn1 object to assign - verifyConstraints (
bool
) – If False, skip constraints validation - matchTags (
bool
) – If False, skip component tags matching - matchConstraints (
bool
) – If False, skip component constraints matching - innerFlag (
bool
) – If True, search for matching tagSet recursively.
Returns: self
- tagSet (
-
setComponentByPosition
(idx, value=NoValue(), verifyConstraints=True, matchTags=True, matchConstraints=True)¶ Assign Choice type component by position.
Equivalent to Python sequence item assignment operation (e.g. []).
Parameters: - idx (
int
) – component index (zero-based) - value (
object
orPyAsn1Item
derivative) – A Python or pyasn1 object to assign - verifyConstraints (
bool
) – If False, skip constraints validation - matchTags (
bool
) – If False, skip component tags matching - matchConstraints (
bool
) – If False, skip component constraints matching
Returns: self
- idx (
-
getComponent
(innerFlag=0)¶ Return currently assigned component of the Choice object.
Returns: PyAsn1Item
– a PyASN1 object
-
getName
(innerFlag=False)¶ Return the name of currently assigned component of the Choice object.
Returns: str
– Choice component name
- componentType (