From 6d63712b51ba3c77361f9dd11f6fe672b0ddedca Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Tue, 20 Feb 2024 22:16:42 +0100 Subject: [PATCH] saip.personalization: automatically compute class 'name' attribute We can use the metaclass to set a proper non-camel-case name attribute. Change-Id: If02df436c8f5ce01d21e9ee077ad3736e669d103 --- pySim/esim/saip/personalization.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pySim/esim/saip/personalization.py b/pySim/esim/saip/personalization.py index 7ac0dbd3..3dad2089 100644 --- a/pySim/esim/saip/personalization.py +++ b/pySim/esim/saip/personalization.py @@ -19,6 +19,7 @@ import abc import io from typing import List, Tuple +from pySim.tlv import camel_to_snake from pySim.utils import enc_iccid, enc_imsi, h2b, rpad, sanitize_iccid from pySim.esim.saip import ProfileElement, ProfileElementSequence @@ -41,6 +42,7 @@ class ClassVarMeta(abc.ABCMeta): x = super().__new__(metacls, name, bases, namespace) for k, v in kwargs.items(): setattr(x, k, v) + setattr(x, 'name', camel_to_snake(name)) return x class ConfigurableParameter(abc.ABC, metaclass=ClassVarMeta): @@ -63,7 +65,6 @@ class ConfigurableParameter(abc.ABC, metaclass=ClassVarMeta): class Iccid(ConfigurableParameter): """Configurable ICCID. Expects the value to be a string of decimal digits. If the string of digits is only 18 digits long, a Luhn check digit will be added.""" - name = 'iccid' def validate(self): # convert to string as it migt be an integer @@ -83,7 +84,6 @@ class Iccid(ConfigurableParameter): class Imsi(ConfigurableParameter): """Configurable IMSI. Expects value to be a string of digits. Automatically sets the ACC to the last digit of the IMSI.""" - name = 'imsi' def validate(self): # convert to string as it migt be an integer