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


Change subject: transport: move argument parser setup into concrete classes
......................................................................

transport: move argument parser setup into concrete classes

The argument parser is set up globally for all LinkBase objects in
__init__.py. Since we tend to have only platform independed code in
__init__.py, we should move the argument parser setup into the
specific LinkBase classes.

Related: OS#6210
Change-Id: I22c32aa81ca0588e3314c3ff4546f6e5092c11df
---
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, 56 insertions(+), 20 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/54/34854/1

diff --git a/pySim/transport/__init__.py b/pySim/transport/__init__.py
index 5f48657..6cccf8c 100644
--- a/pySim/transport/__init__.py
+++ b/pySim/transport/__init__.py
@@ -267,27 +267,17 @@
         return (rsp, sw)


-def argparse_add_reader_args(arg_parser):
+def argparse_add_reader_args(arg_parser: argparse.ArgumentParser):
     """Add all reader related arguments to the given argparse.Argumentparser 
instance."""
-    serial_group = arg_parser.add_argument_group('Serial Reader')
-    serial_group.add_argument('-d', '--device', metavar='DEV', 
default='/dev/ttyUSB0',
-                              help='Serial Device for SIM access')
-    serial_group.add_argument('-b', '--baud', dest='baudrate', type=int, 
metavar='BAUD', default=9600,
-                              help='Baud rate used for SIM access')
+    from pySim.transport.serial import SerialSimLink
+    from pySim.transport.pcsc import PcscSimLink
+    from pySim.transport.modem_atcmd import ModemATCommandLink
+    from pySim.transport.calypso import CalypsoSimLink

-    pcsc_group = arg_parser.add_argument_group('PC/SC Reader')
-    pcsc_group.add_argument('-p', '--pcsc-device', type=int, dest='pcsc_dev', 
metavar='PCSC', default=None,
-                            help='PC/SC reader number to use for SIM access')
-
-    modem_group = arg_parser.add_argument_group('AT Command Modem Reader')
-    modem_group.add_argument('--modem-device', dest='modem_dev', 
metavar='DEV', default=None,
-                             help='Serial port of modem for Generic SIM Access 
(3GPP TS 27.007)')
-    modem_group.add_argument('--modem-baud', type=int, metavar='BAUD', 
default=115200,
-                             help='Baud rate used for modem port')
-
-    osmobb_group = arg_parser.add_argument_group('OsmocomBB Reader')
-    osmobb_group.add_argument('--osmocon', dest='osmocon_sock', 
metavar='PATH', default=None,
-                              help='Socket path for Calypso (e.g. Motorola 
C1XX) based reader (via OsmocomBB)')
+    SerialSimLink.argparse_add_reader_args(arg_parser)
+    PcscSimLink.argparse_add_reader_args(arg_parser)
+    ModemATCommandLink.argparse_add_reader_args(arg_parser)
+    CalypsoSimLink.argparse_add_reader_args(arg_parser)

     return arg_parser

diff --git a/pySim/transport/calypso.py b/pySim/transport/calypso.py
index 3fd9992..ea97b69 100644
--- a/pySim/transport/calypso.py
+++ b/pySim/transport/calypso.py
@@ -20,7 +20,7 @@
 import struct
 import socket
 import os
-
+import argparse
 from typing import Optional

 from pySim.transport import LinkBase
@@ -164,3 +164,9 @@

     def __str__(self) -> str:
         return "osmocon:%s" % (self._sock_path)
+
+    @staticmethod
+    def argparse_add_reader_args(arg_parser: argparse.ArgumentParser):
+        osmobb_group = arg_parser.add_argument_group('OsmocomBB Reader')
+        osmobb_group.add_argument('--osmocon', dest='osmocon_sock', 
metavar='PATH', default=None,
+                                  help='Socket path for Calypso (e.g. Motorola 
C1XX) based reader (via OsmocomBB)')
diff --git a/pySim/transport/modem_atcmd.py b/pySim/transport/modem_atcmd.py
index 1b741b0..fee09c8 100644
--- a/pySim/transport/modem_atcmd.py
+++ b/pySim/transport/modem_atcmd.py
@@ -20,6 +20,7 @@
 import serial
 import time
 import re
+import argparse
 from typing import Optional

 from pySim.utils import Hexstr, ResTuple
@@ -173,3 +174,11 @@

     def __str__(self) -> str:
         return "modem:%s" % self._device
+
+    @staticmethod
+    def argparse_add_reader_args(arg_parser: argparse.ArgumentParser):
+        modem_group = arg_parser.add_argument_group('AT Command Modem Reader')
+        modem_group.add_argument('--modem-device', dest='modem_dev', 
metavar='DEV', default=None,
+                                 help='Serial port of modem for Generic SIM 
Access (3GPP TS 27.007)')
+        modem_group.add_argument('--modem-baud', type=int, metavar='BAUD', 
default=115200,
+                                 help='Baud rate used for modem port')
diff --git a/pySim/transport/pcsc.py b/pySim/transport/pcsc.py
index 3f3d06c..fbe7c0f 100644
--- a/pySim/transport/pcsc.py
+++ b/pySim/transport/pcsc.py
@@ -17,6 +17,7 @@
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #

+import argparse
 from typing import Optional

 from smartcard.CardConnection import CardConnection
@@ -96,3 +97,9 @@

     def __str__(self) -> str:
         return "PCSC:%u[%s]" % (self._reader_number,  self._reader)
+
+    @staticmethod
+    def argparse_add_reader_args(arg_parser: argparse.ArgumentParser):
+        pcsc_group = arg_parser.add_argument_group('PC/SC Reader')
+        pcsc_group.add_argument('-p', '--pcsc-device', type=int, 
dest='pcsc_dev', metavar='PCSC', default=None,
+                                help='PC/SC reader number to use for SIM 
access')
diff --git a/pySim/transport/serial.py b/pySim/transport/serial.py
index 269ec9c..867317c 100644
--- a/pySim/transport/serial.py
+++ b/pySim/transport/serial.py
@@ -19,6 +19,7 @@
 import serial
 import time
 import os.path
+import argparse
 from typing import Optional

 from pySim.exceptions import NoCardError, ProtocolError
@@ -240,3 +241,11 @@

     def __str__(self) -> str:
         return "serial:%s" % (self._sl.name)
+
+    @staticmethod
+    def argparse_add_reader_args(arg_parser: argparse.ArgumentParser):
+        serial_group = arg_parser.add_argument_group('Serial Reader')
+        serial_group.add_argument('-d', '--device', metavar='DEV', 
default='/dev/ttyUSB0',
+                                  help='Serial Device for SIM access')
+        serial_group.add_argument('-b', '--baud', dest='baudrate', type=int, 
metavar='BAUD', default=9600,
+                                  help='Baud rate used for SIM access')

--
To view, visit https://gerrit.osmocom.org/c/pysim/+/34854?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: I22c32aa81ca0588e3314c3ff4546f6e5092c11df
Gerrit-Change-Number: 34854
Gerrit-PatchSet: 1
Gerrit-Owner: dexter <pma...@sysmocom.de>
Gerrit-MessageType: newchange

Reply via email to