Change in pysim[master]: Move reader related argument parser to transport module

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

laforge gerrit-no-reply at lists.osmocom.org
Sun Apr 11 10:35:34 UTC 2021


laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23721 )


Change subject: Move reader related argument parser to transport module
......................................................................

Move reader related argument parser to transport module

Ideally that shared definition would be used by all programs,
rather than copy+pasting it.  Unfortunately pySim-{read,prog}
are still using optparse and first need to be converted to
argparse.

Change-Id: If77f53850e1ca65f42cf1dca3e0f460dac1b0d1a
---
M pySim-shell.py
M pySim/transport/__init__.py
2 files changed, 29 insertions(+), 24 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/21/23721/1

diff --git a/pySim-shell.py b/pySim-shell.py
index 2a7c377..e228038 100755
--- a/pySim-shell.py
+++ b/pySim-shell.py
@@ -36,7 +36,7 @@
 
 from pySim.exceptions import *
 from pySim.commands import SimCardCommands
-from pySim.transport import init_reader, ApduTracer
+from pySim.transport import init_reader, ApduTracer, argparse_add_reader_args
 from pySim.cards import card_detect, Card
 from pySim.utils import h2b, swap_nibbles, rpad, h2s, JsonEncoder
 from pySim.utils import dec_st, sanitize_pin_adm, tabulate_str_list, is_hex
@@ -431,32 +431,12 @@
 
 option_parser = argparse.ArgumentParser(prog='pySim-shell', description='interactive SIM card shell',
                                         formatter_class=argparse.ArgumentDefaultsHelpFormatter)
-
-serial_group = option_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')
-
-pcsc_group = option_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 = option_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 = option_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)')
+argparse_add_reader_args(option_parser)
 
 global_group = option_parser.add_argument_group('General Options')
 global_group.add_argument('--script', metavar='PATH', default=None,
-                           help='script with pySim-shell commands to be executed automatically at start-up')
-global_group.add_argument('--csv', metavar='FILE', default=None,
-                           help='Read card data from CSV file')
+                          help='script with pySim-shell commands to be executed automatically at start-up')
+global_group.add_argument('--csv', metavar='FILE', default=None, help='Read card data from CSV file')
 
 adm_group = global_group.add_mutually_exclusive_group()
 adm_group.add_argument('-a', '--pin-adm', metavar='PIN_ADM1', dest='pin_adm', default=None,
diff --git a/pySim/transport/__init__.py b/pySim/transport/__init__.py
index 64a06a5..14f5aaf 100644
--- a/pySim/transport/__init__.py
+++ b/pySim/transport/__init__.py
@@ -3,6 +3,7 @@
 """ pySim: PCSC reader transport link base
 """
 
+import argparse
 from typing import Optional
 
 from pySim.exceptions import *
@@ -175,6 +176,30 @@
 			raise SwMatchError(sw, sw_exp.lower(), self.sw_interpreter)
 		return (rsp, sw)
 
+def argparse_add_reader_args(arg_parser):
+	"""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')
+
+	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)')
+
+	return arg_parser
+
 def init_reader(opts, **kwargs) -> Optional[LinkBase]:
 	"""
 	Init card reader driver

-- 
To view, visit https://gerrit.osmocom.org/c/pysim/+/23721
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: pysim
Gerrit-Branch: master
Gerrit-Change-Id: If77f53850e1ca65f42cf1dca3e0f460dac1b0d1a
Gerrit-Change-Number: 23721
Gerrit-PatchSet: 1
Gerrit-Owner: laforge <laforge at osmocom.org>
Gerrit-MessageType: newchange
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20210411/0cb87691/attachment.htm>


More information about the gerrit-log mailing list