laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/33659 )
Change subject: pySim/transport: Use newly-defined ResTuple type ......................................................................
pySim/transport: Use newly-defined ResTuple type
Let's use the newly-added ResTuple type annotation rather than open-coding it everywhere.
Change-Id: I122589e8aec4bf66dc2e86d7602ebecb771dcb93 --- M pySim/transport/__init__.py M pySim/transport/calypso.py M pySim/transport/modem_atcmd.py M pySim/transport/pcsc.py M pySim/transport/serial.py 5 files changed, 30 insertions(+), 18 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/59/33659/1
diff --git a/pySim/transport/__init__.py b/pySim/transport/__init__.py index a16fdb3..c8079f6 100644 --- a/pySim/transport/__init__.py +++ b/pySim/transport/__init__.py @@ -10,12 +10,12 @@
from pySim.exceptions import * from pySim.construct import filter_dict -from pySim.utils import sw_match, b2h, h2b, i2h, Hexstr, SwHexstr, SwMatchstr +from pySim.utils import sw_match, b2h, h2b, i2h, Hexstr, SwHexstr, SwMatchstr, ResTuple from pySim.cat import ProactiveCommand, CommandDetails, DeviceIdentities, Result
# # Copyright (C) 2009-2010 Sylvain Munaut tnt@246tNt.com -# Copyright (C) 2021-2022 Harald Welte laforge@osmocom.org +# Copyright (C) 2021-2023 Harald Welte laforge@osmocom.org # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -68,7 +68,7 @@ self.proactive_handler = proactive_handler
@abc.abstractmethod - def _send_apdu_raw(self, pdu: Hexstr) -> Tuple[Hexstr, Hexstr]: + def _send_apdu_raw(self, pdu: Hexstr) -> ResTuple: """Implementation specific method for sending the PDU."""
def set_sw_interpreter(self, interp): @@ -99,7 +99,7 @@ """Resets the card (power down/up) """
- def send_apdu_raw(self, pdu: Hexstr) -> Tuple[Hexstr, SwHexstr]: + def send_apdu_raw(self, pdu: Hexstr) -> ResTuple: """Sends an APDU with minimal processing
Args: @@ -116,7 +116,7 @@ self.apdu_tracer.trace_response(pdu, sw, data) return (data, sw)
- def send_apdu(self, pdu: Hexstr) -> Tuple[Hexstr, SwHexstr]: + def send_apdu(self, pdu: Hexstr) -> ResTuple: """Sends an APDU and auto fetch response data
Args: @@ -145,7 +145,7 @@
return data, sw
- def send_apdu_checksw(self, pdu: Hexstr, sw: SwMatchstr = "9000") -> Tuple[Hexstr, SwHexstr]: + def send_apdu_checksw(self, pdu: Hexstr, sw: SwMatchstr = "9000") -> ResTuple: """Sends an APDU and check returned SW
Args: diff --git a/pySim/transport/calypso.py b/pySim/transport/calypso.py index 4244b23..34fc646 100644 --- a/pySim/transport/calypso.py +++ b/pySim/transport/calypso.py @@ -21,11 +21,11 @@ import socket import os
-from typing import Optional, Tuple +from typing import Optional
from pySim.transport import LinkBase from pySim.exceptions import * -from pySim.utils import h2b, b2h, Hexstr, SwHexstr +from pySim.utils import h2b, b2h, Hexstr, ResTuple
class L1CTLMessage: @@ -123,7 +123,7 @@ def wait_for_card(self, timeout: Optional[int] = None, newcardonly: bool = False): pass # Nothing to do really ...
- def _send_apdu_raw(self, pdu: Hexstr) -> Tuple[Hexstr, SwHexstr]: + def _send_apdu_raw(self, pdu: Hexstr) -> ResTuple:
# Request FULL reset req_msg = L1CTLMessageSIM(h2b(pdu)) diff --git a/pySim/transport/modem_atcmd.py b/pySim/transport/modem_atcmd.py index c6f6c57..e99762d 100644 --- a/pySim/transport/modem_atcmd.py +++ b/pySim/transport/modem_atcmd.py @@ -20,9 +20,9 @@ import serial import time import re -from typing import Optional, Tuple +from typing import Optional
-from pySim.utils import Hexstr, SwHexstr +from pySim.utils import Hexstr, ResTuple from pySim.transport import LinkBase from pySim.exceptions import *
@@ -141,7 +141,7 @@ def wait_for_card(self, timeout: Optional[int] = None, newcardonly: bool = False): pass # Nothing to do really ...
- def _send_apdu_raw(self, pdu: Hexstr) -> Tuple[Hexstr, SwHexstr]: + def _send_apdu_raw(self, pdu: Hexstr) -> ResTuple: # Make sure pdu has upper case hex digits [A-F] pdu = pdu.upper()
diff --git a/pySim/transport/pcsc.py b/pySim/transport/pcsc.py index 8e49716..d156dca 100644 --- a/pySim/transport/pcsc.py +++ b/pySim/transport/pcsc.py @@ -17,7 +17,7 @@ # along with this program. If not, see http://www.gnu.org/licenses/. #
-from Typing import Optional, Tuple +from Typing import Optional
from smartcard.CardConnection import CardConnection from smartcard.CardRequest import CardRequest @@ -26,7 +26,7 @@
from pySim.exceptions import NoCardError, ProtocolError, ReaderError from pySim.transport import LinkBase -from pySim.utils import h2i, i2h, Hexstr, SwHexstr +from pySim.utils import h2i, i2h, Hexstr, ResTuple
class PcscSimLink(LinkBase): @@ -81,7 +81,7 @@ self.connect() return 1
- def _send_apdu_raw(self, pdu: Hexstr) -> Tuple[Hexstr, SwHexstr]: + def _send_apdu_raw(self, pdu: Hexstr) -> ResTuple:
apdu = h2i(pdu)
diff --git a/pySim/transport/serial.py b/pySim/transport/serial.py index daf2eb8..998d1d8 100644 --- a/pySim/transport/serial.py +++ b/pySim/transport/serial.py @@ -19,11 +19,11 @@ import serial import time import os.path -from typing import Optional, Tuple +from typing import Optional
from pySim.exceptions import NoCardError, ProtocolError from pySim.transport import LinkBase -from pySim.utils import h2b, b2h, Hexstr, SwHexstr +from pySim.utils import h2b, b2h, Hexstr, ResTuple
class SerialSimLink(LinkBase): @@ -185,7 +185,7 @@ def _rx_byte(self): return self._sl.read()
- def _send_apdu_raw(self, pdu: Hexstr) -> Tuple[Hexstr, SwHexstr]: + def _send_apdu_raw(self, pdu: Hexstr) -> ResTuple:
pdu = h2b(pdu) data_len = pdu[4] # P3