laforge has uploaded this change for review. ( 
https://gerrit.osmocom.org/c/pysim/+/35814?usp=email )


Change subject: pylint: sms.py
......................................................................

pylint: sms.py

pySim/sms.py:23:0: W0404: Reimport 'Flag' (imported line 23) (reimported)
pySim/sms.py:54:4: C0103: Method name "fromBytes" doesn't conform to snake_case 
naming style (invalid-name)
pySim/sms.py:60:4: C0103: Method name "toBytes" doesn't conform to snake_case 
naming style (invalid-name)
pySim/sms.py:120:4: C0103: Method name "fromBytes" doesn't conform to 
snake_case naming style (invalid-name)
pySim/sms.py:132:4: C0103: Method name "fromSmpp" doesn't conform to snake_case 
naming style (invalid-name)
pySim/sms.py:137:4: C0103: Method name "toSmpp" doesn't conform to snake_case 
naming style (invalid-name)
pySim/sms.py:141:4: C0103: Method name "toBytes" doesn't conform to snake_case 
naming style (invalid-name)
pySim/sms.py:188:4: C0103: Method name "fromBytes" doesn't conform to 
snake_case naming style (invalid-name)
pySim/sms.py:192:8: W0612: Unused variable 'flags' (unused-variable)
pySim/sms.py:209:4: C0103: Method name "toBytes" doesn't conform to snake_case 
naming style (invalid-name)
pySim/sms.py:228:4: C0103: Method name "fromSmpp" doesn't conform to snake_case 
naming style (invalid-name)
pySim/sms.py:236:4: C0103: Method name "fromSmppSubmit" doesn't conform to 
snake_case naming style (invalid-name)
pySim/sms.py:279:4: C0103: Method name "fromBytes" doesn't conform to 
snake_case naming style (invalid-name)
pySim/sms.py:306:12: W0107: Unnecessary pass statement (unnecessary-pass)
pySim/sms.py:311:12: W0107: Unnecessary pass statement (unnecessary-pass)
pySim/sms.py:319:4: C0103: Method name "toBytes" doesn't conform to snake_case 
naming style (invalid-name)
pySim/sms.py:339:4: C0103: Method name "fromSmpp" doesn't conform to snake_case 
naming style (invalid-name)
pySim/sms.py:347:4: C0103: Method name "fromSmppSubmit" doesn't conform to 
snake_case naming style (invalid-name)
pySim/sms.py:373:4: C0103: Method name "toSmpp" doesn't conform to snake_case 
naming style (invalid-nam

Change-Id: I8082a01443ef568eebda696239572f0af7b56f1b
---
M pySim/iso7816_4.py
M pySim/sms.py
M tests/test_sms.py
3 files changed, 78 insertions(+), 51 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/14/35814/1

diff --git a/pySim/iso7816_4.py b/pySim/iso7816_4.py
index 9d1229e..64d814d 100644
--- a/pySim/iso7816_4.py
+++ b/pySim/iso7816_4.py
@@ -17,7 +17,7 @@
 along with this program.  If not, see <http://www.gnu.org/licenses/>.
 """

-from construct import GreedyBytes
+from construct import GreedyBytes, GreedyString
 from pySim.construct import *
 from pySim.utils import *
 from pySim.filesystem import *
diff --git a/pySim/sms.py b/pySim/sms.py
index 88ee27a..3a2e990 100644
--- a/pySim/sms.py
+++ b/pySim/sms.py
@@ -20,7 +20,7 @@
 import typing
 import abc
 from bidict import bidict
-from construct import Int8ub, Byte, Bytes, Bit, Flag, BitsInteger, Flag
+from construct import Int8ub, Byte, Bytes, Bit, Flag, BitsInteger
 from construct import Struct, Enum, Tell, BitStruct, this, Padding
 from construct import Prefixed, GreedyRange, GreedyBytes

@@ -51,13 +51,13 @@
         return False

     @classmethod
-    def fromBytes(cls, inb: BytesOrHex) -> typing.Tuple['UserDataHeader', 
bytes]:
+    def from_bytes(cls, inb: BytesOrHex) -> typing.Tuple['UserDataHeader', 
bytes]:
         if isinstance(inb, str):
             inb = h2b(inb)
         res = cls._construct.parse(inb)
         return cls(res['ies']), res['data']

-    def toBytes(self) -> bytes:
+    def to_bytes(self) -> bytes:
         return self._construct.build({'ies':self.ies, 'data':b''})


@@ -117,7 +117,7 @@
         return 'AddressField(TON=%s, NPI=%s, %s)' % (self.ton, self.npi, 
self.digits)
 
     @classmethod
-    def fromBytes(cls, inb: BytesOrHex) -> typing.Tuple['AddressField', bytes]:
+    def from_bytes(cls, inb: BytesOrHex) -> typing.Tuple['AddressField', 
bytes]:
         """Construct an AddressField instance from the binary T-PDU address 
format."""
         if isinstance(inb, str):
             inb = h2b(inb)
@@ -129,16 +129,16 @@
         return cls(res['digits'][:res['addr_len']], ton, npi), 
inb[res['tell']:]

     @classmethod
-    def fromSmpp(cls, addr, ton, npi) -> 'AddressField':
+    def from_smpp(cls, addr, ton, npi) -> 'AddressField':
         """Construct an AddressField from {source,dest}_addr_{,ton,npi} 
attributes of smpp.pdu."""
         # return the resulting instance
         return cls(addr.decode('ascii'), AddressField.smpp_map_ton[ton.name], 
AddressField.smpp_map_npi[npi.name])

-    def toSmpp(self):
+    def to_smpp(self):
         """Return smpp.pdo.*.source,dest}_addr_{,ton,npi} attributes for given 
AddressField."""
         return (self.digits, self.smpp_map_ton.inverse[self.ton], 
self.smpp_map_npi.inverse[self.npi])

-    def toBytes(self) -> bytes:
+    def to_bytes(self) -> bytes:
         """Encode the AddressField into the binary representation as used in 
T-PDU."""
         num_digits = len(self.digits)
         if num_digits % 2:
@@ -185,13 +185,13 @@
         return '%s(MTI=%s, MMS=%s, LP=%s, RP=%s, UDHI=%s, SRI=%s, OA=%s, 
PID=%2x, DCS=%x, SCTS=%s, UDL=%u, UD=%s)' % (self.__class__.__name__, 
self.tp_mti, self.tp_mms, self.tp_lp, self.tp_rp, self.tp_udhi, self.tp_sri, 
self.tp_oa, self.tp_pid, self.tp_dcs, self.tp_scts, self.tp_udl, self.tp_ud)

     @classmethod
-    def fromBytes(cls, inb: BytesOrHex) -> 'SMS_DELIVER':
+    def from_bytes(cls, inb: BytesOrHex) -> 'SMS_DELIVER':
         """Construct a SMS_DELIVER instance from the binary encoded format as 
used in T-PDU."""
         if isinstance(inb, str):
             inb = h2b(inb)
         flags = inb[0]
-        d = SMS_DELIVER.flags_construct.parse(inb)
-        oa, remainder = AddressField.fromBytes(inb[1:])
+        d = SMS_DELIVER.flags_construct.parse(flags)
+        oa, remainder = AddressField.from_bytes(inb[1:])
         d['tp_oa'] = oa
         offset = 0
         d['tp_pid'] = remainder[offset]
@@ -206,7 +206,7 @@
         d['tp_ud'] = remainder[offset:]
         return cls(**d)

-    def toBytes(self) -> bytes:
+    def to_bytes(self) -> bytes:
         """Encode a SMS_DELIVER instance to the binary encoded format as used 
in T-PDU."""
         outb = bytearray()
         d = {
@@ -215,7 +215,7 @@
             }
         flags = SMS_DELIVER.flags_construct.build(d)
         outb.extend(flags)
-        outb.extend(self.tp_oa.toBytes())
+        outb.extend(self.tp_oa.to_bytes())
         outb.append(self.tp_pid)
         outb.append(self.tp_dcs)
         outb.extend(self.tp_scts)
@@ -225,18 +225,18 @@
         return outb

     @classmethod
-    def fromSmpp(cls, smpp_pdu) -> 'SMS_DELIVER':
+    def from_smpp(cls, smpp_pdu) -> 'SMS_DELIVER':
         """Construct a SMS_DELIVER instance from the deliver format used by 
smpp.pdu."""
         if smpp_pdu.id == pdu_types.CommandId.submit_sm:
-            return cls.fromSmppSubmit(smpp_pdu)
+            return cls.from_smpp_submit(smpp_pdu)
         else:
             raise ValueError('Unsupported SMPP commandId %s' % smpp_pdu.id)

     @classmethod
-    def fromSmppSubmit(cls, smpp_pdu) -> 'SMS_DELIVER':
+    def from_smpp_submit(cls, smpp_pdu) -> 'SMS_DELIVER':
         """Construct a SMS_DELIVER instance from the submit format used by 
smpp.pdu."""
         ensure_smpp_is_8bit(smpp_pdu.params['data_coding'])
-        tp_oa = AddressField.fromSmpp(smpp_pdu.params['source_addr'],
+        tp_oa = AddressField.from_smpp(smpp_pdu.params['source_addr'],
                                       smpp_pdu.params['source_addr_ton'],
                                       smpp_pdu.params['source_addr_npi'])
         tp_ud = smpp_pdu.params['short_message']
@@ -276,7 +276,7 @@
         return '%s(MTI=%s, RD=%s, VPF=%u, RP=%s, UDHI=%s, SRR=%s, DA=%s, 
PID=%2x, DCS=%x, VP=%s, UDL=%u, UD=%s)' % (self.__class__.__name__, 
self.tp_mti, self.tp_rd, self.tp_vpf, self.tp_rp, self.tp_udhi, self.tp_srr, 
self.tp_da, self.tp_pid, self.tp_dcs, self.tp_vp, self.tp_udl, self.tp_ud)

     @classmethod
-    def fromBytes(cls, inb:BytesOrHex) -> 'SMS_SUBMIT':
+    def from_bytes(cls, inb:BytesOrHex) -> 'SMS_SUBMIT':
         """Construct a SMS_SUBMIT instance from the binary encoded format as 
used in T-PDU."""
         offset = 0
         if isinstance(inb, str):
@@ -285,7 +285,7 @@
         offset += 1
         d['tp_mr']= inb[offset]
         offset += 1
-        da, remainder = AddressField.fromBytes(inb[2:])
+        da, remainder = AddressField.from_bytes(inb[2:])
         d['tp_da'] = da

         offset = 0
@@ -303,12 +303,10 @@
             # TODO: further decode
             d['tp_vp'] = remainder[offset:offset+7]
             offset += 7
-            pass
         elif d['tp_vpf'] == 'absolute':
             # TODO: further decode
             d['tp_vp'] = remainder[offset:offset+7]
             offset += 7
-            pass
         else:
             raise ValueError('Invalid VPF: %s' % d['tp_vpf'])
         d['tp_udl'] = remainder[offset]
@@ -316,7 +314,7 @@
         d['tp_ud'] = remainder[offset:]
         return cls(**d)

-    def toBytes(self) -> bytes:
+    def to_bytes(self) -> bytes:
         """Encode a SMS_SUBMIT instance to the binary encoded format as used 
in T-PDU."""
         outb = bytearray()
         d = {
@@ -326,7 +324,7 @@
         flags = SMS_SUBMIT.flags_construct.build(d)
         outb.extend(flags)
         outb.append(self.tp_mr)
-        outb.extend(self.tp_da.toBytes())
+        outb.extend(self.tp_da.to_bytes())
         outb.append(self.tp_pid)
         outb.append(self.tp_dcs)
         if self.tp_vpf != 'none':
@@ -336,20 +334,20 @@
         return outb

     @classmethod
-    def fromSmpp(cls, smpp_pdu) -> 'SMS_SUBMIT':
+    def from_smpp(cls, smpp_pdu) -> 'SMS_SUBMIT':
         """Construct a SMS_SUBMIT instance from the format used by smpp.pdu."""
         if smpp_pdu.id == pdu_types.CommandId.submit_sm:
-            return cls.fromSmppSubmit(smpp_pdu)
+            return cls.from_smpp_submit(smpp_pdu)
         else:
             raise ValueError('Unsupported SMPP commandId %s' % smpp_pdu.id)

     @classmethod
-    def fromSmppSubmit(cls, smpp_pdu) -> 'SMS_SUBMIT':
+    def from_smpp_submit(cls, smpp_pdu) -> 'SMS_SUBMIT':
         """Construct a SMS_SUBMIT instance from the submit format used by 
smpp.pdu."""
         ensure_smpp_is_8bit(smpp_pdu.params['data_coding'])
-        tp_da = AddressField.fromSmpp(smpp_pdu.params['destination_addr'],
-                                      smpp_pdu.params['dest_addr_ton'],
-                                      smpp_pdu.params['dest_addr_npi'])
+        tp_da = AddressField.from_smpp(smpp_pdu.params['destination_addr'],
+                                       smpp_pdu.params['dest_addr_ton'],
+                                       smpp_pdu.params['dest_addr_npi'])
         tp_ud = smpp_pdu.params['short_message']
         #vp_smpp = smpp_pdu.params['validity_period']
         #if not vp_smpp:
@@ -370,7 +368,7 @@
             }
         return cls(**d)

-    def toSmpp(self) -> pdu_types.PDU:
+    def to_smpp(self) -> pdu_types.PDU:
         """Translate a SMS_SUBMIT instance to a smpp.pdu.operations.SubmitSM 
instance."""
         esm_class = pdu_types.EsmClass(pdu_types.EsmClassMode.DEFAULT, 
pdu_types.EsmClassType.DEFAULT)
         reg_del = 
pdu_types.RegisteredDelivery(pdu_types.RegisteredDeliveryReceipt.NO_SMSC_DELIVERY_RECEIPT_REQUESTED)
@@ -382,7 +380,7 @@
         if self.tp_dcs != 0xF6:
             raise ValueError('Unsupported DCS: We only support DCS=0xF6 for 
now')
         dc = pdu_types.DataCoding(pdu_types.DataCodingScheme.DEFAULT, 
pdu_types.DataCodingDefault.OCTET_UNSPECIFIED)
-        (daddr, ton, npi) = self.tp_da.toSmpp()
+        (daddr, ton, npi) = self.tp_da.to_smpp()
         return operations.SubmitSM(service_type='',
                                    
source_addr_ton=pdu_types.AddrTon.ALPHANUMERIC,
                                    source_addr_npi=pdu_types.AddrNpi.UNKNOWN,
diff --git a/tests/test_sms.py b/tests/test_sms.py
index 8355224..7130399 100644
--- a/tests/test_sms.py
+++ b/tests/test_sms.py
@@ -6,7 +6,7 @@

 class Test_SMS_UDH(unittest.TestCase):
     def test_single_ie(self):
-        udh, tail = UserDataHeader.fromBytes('027100')
+        udh, tail = UserDataHeader.from_bytes('027100')
         self.assertEqual(len(udh.ies), 1)
         ie = udh.ies[0]
         self.assertEqual(ie.iei, 0x71)
@@ -15,7 +15,7 @@
         self.assertEqual(tail, b'')

     def test_single_ie_tail(self):
-        udh, tail = UserDataHeader.fromBytes('027100abcdef')
+        udh, tail = UserDataHeader.from_bytes('027100abcdef')
         self.assertEqual(len(udh.ies), 1)
         ie = udh.ies[0]
         self.assertEqual(ie.iei, 0x71)
@@ -24,7 +24,7 @@
         self.assertEqual(tail, b'\xab\xcd\xef')

     def test_single_ie_value(self):
-        udh, tail = UserDataHeader.fromBytes('03710110')
+        udh, tail = UserDataHeader.from_bytes('03710110')
         self.assertEqual(len(udh.ies), 1)
         ie = udh.ies[0]
         self.assertEqual(ie.iei, 0x71)
@@ -33,7 +33,7 @@
         self.assertEqual(tail, b'')

     def test_two_ie_data_tail(self):
-        udh, tail = UserDataHeader.fromBytes('0571007001ffabcd')
+        udh, tail = UserDataHeader.from_bytes('0571007001ffabcd')
         self.assertEqual(len(udh.ies), 2)
         ie = udh.ies[0]
         self.assertEqual(ie.iei, 0x71)
@@ -45,42 +45,42 @@
         self.assertEqual(ie.value, b'\xff')
         self.assertEqual(tail, b'\xab\xcd')

-    def test_toBytes(self):
+    def test_to_bytes(self):
         indata = h2b('0571007001ff')
-        udh, tail = UserDataHeader.fromBytes(indata)
-        encoded = udh.toBytes()
+        udh, tail = UserDataHeader.from_bytes(indata)
+        encoded = udh.to_bytes()
         self.assertEqual(encoded, indata)

 class Test_AddressField(unittest.TestCase):
-    def test_fromBytes(self):
+    def test_from_bytes(self):
         encoded = h2b('0480214399')
-        af, trailer = AddressField.fromBytes(encoded)
+        af, trailer = AddressField.from_bytes(encoded)
         self.assertEqual(trailer, b'\x99')
         self.assertEqual(af.ton, 'unknown')
         self.assertEqual(af.npi, 'unknown')
         self.assertEqual(af.digits, '1234')

-    def test_fromBytes_odd(self):
-        af, trailer = AddressField.fromBytes('038021f399')
+    def test_from_bytes_odd(self):
+        af, trailer = AddressField.from_bytes('038021f399')
         self.assertEqual(trailer, b'\x99')
         self.assertEqual(af.ton, 'unknown')
         self.assertEqual(af.npi, 'unknown')
         self.assertEqual(af.digits, '123')

-    def test_toBytes(self):
+    def test_to_bytes(self):
         encoded = h2b('04802143')
-        af, trailer = AddressField.fromBytes(encoded)
-        self.assertEqual(af.toBytes(), encoded)
+        af, trailer = AddressField.from_bytes(encoded)
+        self.assertEqual(af.to_bytes(), encoded)

-    def test_toBytes_odd(self):
+    def test_to_bytes_odd(self):
         af = AddressField('12345', 'international', 'isdn_e164')
-        encoded = af.toBytes()
+        encoded = af.to_bytes()
         self.assertEqual(encoded, h2b('05912143f5'))


 class Test_SUBMIT(unittest.TestCase):
-    def test_fromBytes(self):
-        s = 
SMS_SUBMIT.fromBytes('550d0b911614261771f000f5a78c0b050423f423f40003010201424547494e3a56434152440d0a56455253494f4e3a322e310d0a4e3a4d650d0a54454c3b505245463b43454c4c3b564f4943453a2b36313431363237313137300d0a54454c3b484f4d453b564f4943453a2b36313339353337303437310d0a54454c3b574f524b3b564f4943453a2b36313339363734373031350d0a454e443a')
+    def test_from_bytes(self):
+        s = 
SMS_SUBMIT.from_bytes('550d0b911614261771f000f5a78c0b050423f423f40003010201424547494e3a56434152440d0a56455253494f4e3a322e310d0a4e3a4d650d0a54454c3b505245463b43454c4c3b564f4943453a2b36313431363237313137300d0a54454c3b484f4d453b564f4943453a2b36313339353337303437310d0a54454c3b574f524b3b564f4943453a2b36313339363734373031350d0a454e443a')
         self.assertEqual(s.tp_mti, 1)
         self.assertEqual(s.tp_rd, True)
         self.assertEqual(s.tp_vpf, 'relative')
@@ -92,8 +92,8 @@
         self.assertEqual(s.tp_udl, 140)

 class Test_DELIVER(unittest.TestCase):
-    def test_fromBytes(self):
-        d = 
SMS_DELIVER.fromBytes('0408D0E5759A0E7FF6907090307513000824010101BB400101')
+    def test_from_bytes(self):
+        d = 
SMS_DELIVER.from_bytes('0408D0E5759A0E7FF6907090307513000824010101BB400101')
         self.assertEqual(d.tp_mti, 0)
         self.assertEqual(d.tp_mms, True)
         self.assertEqual(d.tp_lp, False)

--
To view, visit https://gerrit.osmocom.org/c/pysim/+/35814?usp=email
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: pysim
Gerrit-Branch: master
Gerrit-Change-Id: I8082a01443ef568eebda696239572f0af7b56f1b
Gerrit-Change-Number: 35814
Gerrit-PatchSet: 1
Gerrit-Owner: laforge <[email protected]>
Gerrit-MessageType: newchange

Reply via email to