[M] Change in pysim[master]: pySim-prog, pySim-shell do not use global variables

2023-10-09 Thread dexter
dexter has posted comments on this change. ( 
https://gerrit.osmocom.org/c/pysim/+/34688?usp=email )

Change subject: pySim-prog, pySim-shell do not use global variables
..


Patch Set 5:

This change is ready for review.


--
To view, visit https://gerrit.osmocom.org/c/pysim/+/34688?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: I7f09e9a6a6bfc658de75e86f7383ce73726f
Gerrit-Change-Number: 34688
Gerrit-PatchSet: 5
Gerrit-Owner: dexter 
Gerrit-Reviewer: Jenkins Builder
Gerrit-Comment-Date: Mon, 09 Oct 2023 10:27:13 +
Gerrit-HasComments: No
Gerrit-Has-Labels: No
Gerrit-MessageType: comment


[M] Change in pysim[master]: pySim-prog, pySim-shell do not use global variables

2023-10-09 Thread osmith
Attention is currently required from: dexter.

osmith has posted comments on this change. ( 
https://gerrit.osmocom.org/c/pysim/+/34688?usp=email )

Change subject: pySim-prog, pySim-shell do not use global variables
..


Patch Set 7: Code-Review+1


--
To view, visit https://gerrit.osmocom.org/c/pysim/+/34688?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: I7f09e9a6a6bfc658de75e86f7383ce73726f
Gerrit-Change-Number: 34688
Gerrit-PatchSet: 7
Gerrit-Owner: dexter 
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: osmith 
Gerrit-Attention: dexter 
Gerrit-Comment-Date: Mon, 09 Oct 2023 10:55:51 +
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
Gerrit-MessageType: comment


[M] Change in pysim[master]: pySim-prog, pySim-shell do not use global variables

2023-10-09 Thread fixeria
Attention is currently required from: dexter.

fixeria has posted comments on this change. ( 
https://gerrit.osmocom.org/c/pysim/+/34688?usp=email )

Change subject: pySim-prog, pySim-shell do not use global variables
..


Patch Set 7: Code-Review+1


--
To view, visit https://gerrit.osmocom.org/c/pysim/+/34688?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: I7f09e9a6a6bfc658de75e86f7383ce73726f
Gerrit-Change-Number: 34688
Gerrit-PatchSet: 7
Gerrit-Owner: dexter 
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria 
Gerrit-Reviewer: osmith 
Gerrit-CC: laforge 
Gerrit-Attention: dexter 
Gerrit-Comment-Date: Mon, 09 Oct 2023 14:37:41 +
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
Gerrit-MessageType: comment


[M] Change in pysim[master]: pySim-prog, pySim-shell do not use global variables

2023-10-09 Thread laforge
Attention is currently required from: dexter.

laforge has posted comments on this change. ( 
https://gerrit.osmocom.org/c/pysim/+/34688?usp=email )

Change subject: pySim-prog, pySim-shell do not use global variables
..


Patch Set 7: Code-Review+2


--
To view, visit https://gerrit.osmocom.org/c/pysim/+/34688?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: I7f09e9a6a6bfc658de75e86f7383ce73726f
Gerrit-Change-Number: 34688
Gerrit-PatchSet: 7
Gerrit-Owner: dexter 
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria 
Gerrit-Reviewer: laforge 
Gerrit-Reviewer: osmith 
Gerrit-Attention: dexter 
Gerrit-Comment-Date: Mon, 09 Oct 2023 20:11:15 +
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
Gerrit-MessageType: comment


[M] Change in pysim[master]: pySim-prog, pySim-shell do not use global variables

2023-10-10 Thread dexter
dexter has submitted this change. ( 
https://gerrit.osmocom.org/c/pysim/+/34688?usp=email )

Change subject: pySim-prog, pySim-shell do not use global variables
..

pySim-prog, pySim-shell do not use global variables

When __main__ runs different variables get assigned. In particular opts,
scc, sl and ch. Those variables are available in any scope and
technically it is possible to access them. However, lets not do this
since it leads to confusion. Also, pylint will complain about those code
locations.

In pySim-shell.py
- Let's use the proper locations (sl and ch are stored in PysimApp.
- Scc can be assigned in init_card.
- In method walk, the use of the variable opts to call ection_df is wrong,
  lets use **kwargs (see also usage of action_ef).
- The constructor of Cmd2ApduTracer has a parameter cmd2_app, but usese
  the global variable app. Let's use cmd2_app instead.

In pySim-prog.py
- Do not use opts.num in find_row_in_csv_file, use num instead.
- Pass scc to process_card as parameter so that it won't access scc
  in the global scope.

Change-Id: I7f09e9a6a6bfc658de75e86f7383ce73726f
Related: OS#6210
---
M pySim-prog.py
M pySim-shell.py
2 files changed, 41 insertions(+), 12 deletions(-)

Approvals:
  laforge: Looks good to me, approved
  Jenkins Builder: Verified
  fixeria: Looks good to me, but someone else must approve
  osmith: Looks good to me, but someone else must approve




diff --git a/pySim-prog.py b/pySim-prog.py
index c07bfd1..a16928c 100755
--- a/pySim-prog.py
+++ b/pySim-prog.py
@@ -567,7 +567,7 @@
 for row in cr:
 # Pick a specific row by line number (num)
 if num is not None and iccid is None and imsi is None:
-if opts.num == i:
+if num == i:
 f.close()
 return row

@@ -727,7 +727,7 @@
 fh.close()


-def process_card(opts, first, ch):
+def process_card(scc, opts, first, ch):

 # Connect transport
 ch.get(first)
@@ -821,7 +821,7 @@

 while 1:
 try:
-rc = process_card(opts, first, ch)
+rc = process_card(scc, opts, first, ch)
 except (KeyboardInterrupt):
 print("")
 print("Terminated by user!")
diff --git a/pySim-shell.py b/pySim-shell.py
index c7b2607..3b6945c 100755
--- a/pySim-shell.py
+++ b/pySim-shell.py
@@ -88,6 +88,9 @@
 state object (rs) is required for all pySim-shell commands.
 """

+# Create command layer
+scc = SimCardCommands(transport=sl)
+
 # Wait up to three seconds for a card in reader and try to detect
 # the card type.
 print("Waiting for card...")
@@ -276,7 +279,7 @@

 class Cmd2ApduTracer(ApduTracer):
 def __init__(self, cmd2_app):
-self.cmd2 = app
+self.cmd2 = cmd2_app

 def trace_response(self, cmd, sw, resp):
 self.cmd2.poutput("-> %s %s" % (cmd[:10], cmd[10:]))
@@ -307,7 +310,7 @@
 if self.rs and self.rs.profile:
 for cmd_set in self.rs.profile.shell_cmdsets:
 self.unregister_command_set(cmd_set)
-rs, card = init_card(sl)
+rs, card = init_card(self.sl)
 self.equip(card, rs)

 apdu_cmd_parser = argparse.ArgumentParser()
@@ -440,7 +443,7 @@
 # In case of failure, try multiple times.
 for i in range(opts.tries):
 # fetch card into reader bay
-ch.get(first)
+self.ch.get(first)

 # if necessary execute an action before we start 
processing the card
 if(opts.pre_card_action):
@@ -463,9 +466,9 @@
 # Depending on success or failure, the card goes either in the 
"error" bin or in the
 # "done" bin.
 if rc < 0:
-ch.error()
+self.ch.error()
 else:
-ch.done()
+self.ch.done()

 # In most cases it is possible to proceed with the next card, 
but the
 # user may decide to halt immediately when an error occurs
@@ -559,7 +562,7 @@

 if isinstance(self._cmd.lchan.selected_file, CardDF):
 if action_df:
-action_df(context, opts)
+action_df(context, **kwargs)

 files = self._cmd.lchan.selected_file.get_selectables(
 flags=['FNAMES', 'ANAMES'])
@@ -1015,9 +1018,6 @@
 if sl is None:
 exit(1)

-# Create command layer
-scc = SimCardCommands(transport=sl)
-
 # Create a card handler (for bulk provisioning)
 if opts.card_handler_config:
 ch = CardHandlerAuto(None, opts.card_handler_config)

--
To view, visit https://gerrit.osmocom.org/c/pysim/+/34688?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: I7