laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/37436?usp=email )
Change subject: pySim.tlv: Fix ComprTlvMeta() not passing kwargs to parent __new__ ......................................................................
pySim.tlv: Fix ComprTlvMeta() not passing kwargs to parent __new__
This fixes commit cdf661b24cfebb63b57405c2b55b3c42a8f277c8 "pySim.tlv.COMPR_TLV_IE: Patch comprehension bit if derived class misses it" where we introduce a comprehension-TLV specific derived metaclass, which forgets to pass the kwargs through to the parent metaclass.
Change-Id: If65a8169bcf91bb2f943d0316f1140e07f0b8b8e --- M pySim/cat.py M pySim/tlv.py 2 files changed, 17 insertions(+), 3 deletions(-)
Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved
diff --git a/pySim/cat.py b/pySim/cat.py index 2f05b93..d2f39f7 100644 --- a/pySim/cat.py +++ b/pySim/cat.py @@ -126,7 +126,7 @@ 'time_interval'/Int8ub)
# TS 102 223 Section 8.9 -class Item(COMPR_TLV_IE, tag=0x0f): +class Item(COMPR_TLV_IE, tag=0x8f): _construct = Struct('identifier'/Int8ub, 'text_string'/GsmStringAdapter(GreedyBytes))
@@ -703,7 +703,7 @@ _construct = HexAdapter(GreedyBytes)
# TS 102 223 Section 8.103 -class RefreshEnforcementPolicy(COMPR_TLV_IE, tag=0x3A): +class RefreshEnforcementPolicy(COMPR_TLV_IE, tag=0xBA): _construct = FlagsEnum(Byte, even_if_navigating_menus=0, even_if_data_call=1, even_if_voice_call=2)
# TS 102 223 Section 8.104 diff --git a/pySim/tlv.py b/pySim/tlv.py index 3d7a420..d7c6876 100644 --- a/pySim/tlv.py +++ b/pySim/tlv.py @@ -270,7 +270,7 @@
class ComprTlvMeta(TlvMeta): def __new__(mcs, name, bases, namespace, **kwargs): - x = super().__new__(mcs, name, bases, namespace) + x = super().__new__(mcs, name, bases, namespace, **kwargs) if x.tag: # we currently assume that the tag values always have the comprehension bit set; # let's fix it up if a derived class has forgotten about that