python - Pyasn1 nested sequence - incompatible tags -


i need code. have 2 structs, using third.

class bar(univ.sequence):     componenttype = namedtype.namedtypes(     namedtype.namedtype('first',univ.integer().subtype(implicittag=tag.tag(tag.tagclasscontext,tag.tagformatsimple,0))),     namedtype.namedtype('second',univ.integer().subtype(implicittag=tag.tag(tag.tagclasscontext, tag.tagformatsimple, 1)))     )  class foo(univ.sequence):     componenttype = namedtype.namedtypes(     namedtype.optionalnamedtype('test', bar().subtype(implicittag=tag.tag(tag.tagclasscontext,tag.tagformatsimple,3))),     )  class foo1(univ.sequence):     componenttype = namedtype.namedtypes(     namedtype.optionalnamedtype('test', bar().subtype(implicittag=tag.tag(tag.tagclasscontext,tag.tagformatsimple,2))),     ) 

so, in class foo, bar has tag [3] , in class foo1 e.g. [2]. if had 1 class do

tagset = tagbaseset = tag.inittagset(tag.tag(tag.tagclasscontext,tag.tagformatsimple,3)) 

in bar class (and it's working). how cope kind of problem? appreciated.

edit: here's asn1 representation:

bar     ::= sequence { first           [0] integer, second          [1] integer }  foo     ::= sequence {   first             [0] integer,   second            [1] integer optional,   third             [2] integer optional,   bar               [3] bar }  foo1    ::= sequence {   first             [0] integer,   second            [1] integer optional,   bar               [2] bar } 

edit2: code: run , delete comments (i incompatible tags. without tagset in bar, in both cases, too):

from pyasn1.type import univ,namedtype,tag  class bar(univ.sequence):     componenttype = namedtype.namedtypes(     namedtype.namedtype('first',univ.integer().subtype(implicittag=tag.tag(tag.tagclasscontext,tag.tagformatsimple,0))),     namedtype.namedtype('second',univ.integer().subtype(implicittag=tag.tag(tag.tagclasscontext, tag.tagformatsimple, 1)))     )     tagset = tagbaseset = tag.inittagset(tag.tag(tag.tagclasscontext,tag.tagformatconstructed,3))  class foo(univ.sequence):     componenttype = namedtype.namedtypes(     namedtype.optionalnamedtype('test', bar().subtype(implicittag=tag.tag(tag.tagclasscontext,tag.tagformatsimple,3))),     )  class foo1(univ.sequence):     componenttype = namedtype.namedtypes(     namedtype.optionalnamedtype('test', bar().subtype(implicittag=tag.tag(tag.tagclasscontext,tag.tagformatsimple,2))),     )  bar = bar() bar.setcomponentbyname('first',1) bar.setcomponentbyname('second',2)  fo = foo() fo.setcomponentbyname('test',bar)  # fo1 = foo1() # fo1.setcomponentbyname('test',bar)  print fo.prettyprint() # print fo1.prettyprint() 


Comments