laforge has submitted this change. (
https://gerrit.osmocom.org/c/pysim/+/37895?usp=email
)
Change subject: pySim-shell, cosmetic: define positional arguments last
......................................................................
pySim-shell, cosmetic: define positional arguments last
When we define command arguments using the ArgumentParser, we sometimes
define the positional arguments first. However, since positional arguments
usually follow after the optional (--xyz) arguments, we should define the
positional arguments last.
Related: OS#6531
Change-Id: I2412eb6e7dc32ae95a575f31d4489ce210d85ea0
---
M pySim-shell.py
M pySim/euicc.py
M pySim/filesystem.py
M pySim/ts_102_222.py
4 files changed, 14 insertions(+), 14 deletions(-)
Approvals:
laforge: Looks good to me, approved
Jenkins Builder: Verified
diff --git a/pySim-shell.py b/pySim-shell.py
index d166008..cc36485 100755
--- a/pySim-shell.py
+++ b/pySim-shell.py
@@ -236,9 +236,9 @@
self.equip(card, rs)
apdu_cmd_parser = argparse.ArgumentParser()
- apdu_cmd_parser.add_argument('APDU', type=is_hexstr, help='APDU as hex
string')
apdu_cmd_parser.add_argument('--expect-sw', help='expect a specified
status word', type=str, default=None)
apdu_cmd_parser.add_argument('--raw', help='Bypass the logical channel
(and secure channel)', action='store_true')
+ apdu_cmd_parser.add_argument('APDU', type=is_hexstr, help='APDU as hex
string')
@cmd2.with_argparser(apdu_cmd_parser)
def do_apdu(self, opts):
@@ -770,13 +770,13 @@
self._cmd.poutput("no description available")
verify_adm_parser = argparse.ArgumentParser()
- verify_adm_parser.add_argument('ADM', nargs='?',
type=is_hexstr_or_decimal,
- help='ADM pin value. If none given, CSV file will
be queried')
verify_adm_parser.add_argument('--pin-is-hex', action='store_true',
help='ADM pin value is specified as hex-string
(not decimal)')
verify_adm_parser.add_argument('--adm-type',
choices=[x for x in pin_names.values() if
x.startswith('ADM')],
help='Override ADM number. Default is
card-model-specific, usually 1')
+ verify_adm_parser.add_argument('ADM', nargs='?',
type=is_hexstr_or_decimal,
+ help='ADM pin value. If none given, CSV file will
be queried')
@cmd2.with_argparser(verify_adm_parser)
def do_verify_adm(self, opts):
diff --git a/pySim/euicc.py b/pySim/euicc.py
index ddfe939..d0cb682 100644
--- a/pySim/euicc.py
+++ b/pySim/euicc.py
@@ -503,8 +503,8 @@
self._cmd.poutput_json(flatten_dict_lists(d['get_euicc_data']))
set_nickname_parser = argparse.ArgumentParser()
- set_nickname_parser.add_argument('ICCID', help='ICCID of the profile
whose nickname to set')
set_nickname_parser.add_argument('--profile-nickname', help='Nickname
of the profile')
+ set_nickname_parser.add_argument('ICCID', help='ICCID of the profile
whose nickname to set')
@cmd2.with_argparser(set_nickname_parser)
def do_set_nickname(self, opts):
diff --git a/pySim/filesystem.py b/pySim/filesystem.py
index d5e99a4..b166bc2 100644
--- a/pySim/filesystem.py
+++ b/pySim/filesystem.py
@@ -636,9 +636,9 @@
self._cmd.poutput(data)
upd_bin_dec_parser = argparse.ArgumentParser()
- upd_bin_dec_parser.add_argument('data', help='Abstract data (JSON
format) to write')
upd_bin_dec_parser.add_argument('--json-path', type=str,
help='JSON path to modify specific element of
file only')
+ upd_bin_dec_parser.add_argument('data', help='Abstract data (JSON
format) to write')
@cmd2.with_argparser(upd_bin_dec_parser)
def do_update_binary_decoded(self, opts):
@@ -839,9 +839,9 @@
read_rec_parser = argparse.ArgumentParser()
read_rec_parser.add_argument(
- 'record_nr', type=auto_uint8, help='Number of record to be
read')
- read_rec_parser.add_argument(
'--count', type=auto_uint8, default=1, help='Number of records to
be read, beginning at record_nr')
+ read_rec_parser.add_argument(
+ 'record_nr', type=auto_uint8, help='Number of record to be
read')
@cmd2.with_argparser(read_rec_parser)
def do_read_record(self, opts):
@@ -856,10 +856,10 @@
self._cmd.poutput("%03d %s" % (recnr, recstr))
read_rec_dec_parser = argparse.ArgumentParser()
- read_rec_dec_parser.add_argument(
- 'record_nr', type=auto_uint8, help='Number of record to be
read')
read_rec_dec_parser.add_argument('--oneline',
action='store_true',
help='No JSON pretty-printing, dump as a
single line')
+ read_rec_dec_parser.add_argument(
+ 'record_nr', type=auto_uint8, help='Number of record to be
read')
@cmd2.with_argparser(read_rec_dec_parser)
def do_read_record_decoded(self, opts):
@@ -909,11 +909,11 @@
self._cmd.poutput(data)
upd_rec_dec_parser = argparse.ArgumentParser()
+ upd_rec_dec_parser.add_argument('--json-path', type=str,
+ help='JSON path to modify specific element of
record only')
upd_rec_dec_parser.add_argument(
'record_nr', type=auto_uint8, help='Number of record to be
read')
upd_rec_dec_parser.add_argument('data', help='Abstract data (JSON
format) to write')
- upd_rec_dec_parser.add_argument('--json-path', type=str,
- help='JSON path to modify specific element of
record only')
@cmd2.with_argparser(upd_rec_dec_parser)
def do_update_record_decoded(self, opts):
diff --git a/pySim/ts_102_222.py b/pySim/ts_102_222.py
index 7c47fd5..30254d1 100644
--- a/pySim/ts_102_222.py
+++ b/pySim/ts_102_222.py
@@ -103,7 +103,6 @@
(_data, _sw) = self._cmd.lchan.scc.terminate_card_usage()
create_parser = argparse.ArgumentParser()
- create_parser.add_argument('FILE_ID', type=is_hexstr, help='File
Identifier as 4-character hex string')
create_parser._action_groups.pop()
create_required = create_parser.add_argument_group('required arguments')
create_optional = create_parser.add_argument_group('optional arguments')
@@ -115,6 +114,7 @@
create_optional.add_argument('--short-file-id', type=str, help='Short
File Identifier as 2-digit hex string')
create_optional.add_argument('--shareable', action='store_true',
help='Should the file be shareable?')
create_optional.add_argument('--record-length', type=auto_uint16,
help='Length of each record in octets')
+ create_parser.add_argument('FILE_ID', type=is_hexstr, help='File
Identifier as 4-character hex string')
@cmd2.with_argparser(create_parser)
def do_create_ef(self, opts):
@@ -150,7 +150,6 @@
self._cmd.lchan.select_file(self._cmd.lchan.selected_file)
createdf_parser = argparse.ArgumentParser()
- createdf_parser.add_argument('FILE_ID', type=is_hexstr, help='File
Identifier as 4-character hex string')
createdf_parser._action_groups.pop()
createdf_required = createdf_parser.add_argument_group('required arguments')
createdf_optional = createdf_parser.add_argument_group('optional arguments')
@@ -165,6 +164,7 @@
createdf_sja_optional.add_argument('--permit-rfm-delete-terminate',
action='store_true')
createdf_sja_optional.add_argument('--permit-other-applet-create',
action='store_true')
createdf_sja_optional.add_argument('--permit-other-applet-delete-terminate',
action='store_true')
+ createdf_parser.add_argument('FILE_ID', type=is_hexstr, help='File
Identifier as 4-character hex string')
@cmd2.with_argparser(createdf_parser)
def do_create_df(self, opts):
@@ -201,10 +201,10 @@
self._cmd.lchan.select_file(self._cmd.lchan.selected_file)
resize_ef_parser = argparse.ArgumentParser()
- resize_ef_parser.add_argument('NAME', type=str, help='Name or FID of file
to be resized')
resize_ef_parser._action_groups.pop()
resize_ef_required = resize_ef_parser.add_argument_group('required
arguments')
resize_ef_required.add_argument('--file-size', required=True,
type=auto_uint16, help='Size of file in octets')
+ resize_ef_parser.add_argument('NAME', type=str, help='Name or FID of file
to be resized')
@cmd2.with_argparser(resize_ef_parser)
def do_resize_ef(self, opts):
--
To view, visit
https://gerrit.osmocom.org/c/pysim/+/37895?usp=email
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: merged
Gerrit-Project: pysim
Gerrit-Branch: master
Gerrit-Change-Id: I2412eb6e7dc32ae95a575f31d4489ce210d85ea0
Gerrit-Change-Number: 37895
Gerrit-PatchSet: 3
Gerrit-Owner: dexter <pmaier(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>