<p>laforge <strong>submitted</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/pysim/+/25793">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Jenkins Builder: Verified
  laforge: Looks good to me, approved

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">CardModel: Document how this 'magic' works in some comments.<br><br>Change-Id: If16ade6e1098a87f749259bad6dea805ddb61ede<br>---<br>M pySim-shell.py<br>M pySim/filesystem.py<br>2 files changed, 9 insertions(+), 1 deletion(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/pySim-shell.py b/pySim-shell.py</span><br><span>index 871c45e..5aa311c 100755</span><br><span>--- a/pySim-shell.py</span><br><span>+++ b/pySim-shell.py</span><br><span>@@ -48,6 +48,9 @@</span><br><span> from pySim.ts_31_102 import CardApplicationUSIM</span><br><span> from pySim.ts_31_103 import CardApplicationISIM</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+# we need to import this module so that the SysmocomSJA2 sub-class of</span><br><span style="color: hsl(120, 100%, 40%);">+# CardModel is created, which will add the ATR-based matching and</span><br><span style="color: hsl(120, 100%, 40%);">+# calling of SysmocomSJA2.add_files.  See  CardModel.apply_matching_models</span><br><span> import pySim.sysmocom_sja2</span><br><span> </span><br><span> from pySim.card_key_provider import CardKeyProviderCsv, card_key_provider_register, card_key_provider_get_field</span><br><span>diff --git a/pySim/filesystem.py b/pySim/filesystem.py</span><br><span>index 8edac41..fe781de 100644</span><br><span>--- a/pySim/filesystem.py</span><br><span>+++ b/pySim/filesystem.py</span><br><span>@@ -1435,7 +1435,9 @@</span><br><span> </span><br><span> </span><br><span> class CardModel(abc.ABC):</span><br><span style="color: hsl(0, 100%, 40%);">-    """A specific card model, typically having some additional vendor-specific files"""</span><br><span style="color: hsl(120, 100%, 40%);">+    """A specific card model, typically having some additional vendor-specific files. All</span><br><span style="color: hsl(120, 100%, 40%);">+    you need to do is to define a sub-class with a list of ATRs or an overridden match</span><br><span style="color: hsl(120, 100%, 40%);">+    method."""</span><br><span>     _atrs = []</span><br><span> </span><br><span>     @classmethod</span><br><span>@@ -1456,6 +1458,9 @@</span><br><span> </span><br><span>     @staticmethod</span><br><span>     def apply_matching_models(scc:SimCardCommands, rs:RuntimeState):</span><br><span style="color: hsl(120, 100%, 40%);">+        """Check if any of the CardModel sub-classes 'match' the currently inserted card</span><br><span style="color: hsl(120, 100%, 40%);">+        (by ATR or overriding the 'match' method). If so, call their 'add_files'</span><br><span style="color: hsl(120, 100%, 40%);">+        method."""</span><br><span>         for m in CardModel.__subclasses__():</span><br><span>             if m.match(scc):</span><br><span>                 m.add_files(rs)</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/pysim/+/25793">change 25793</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/pysim/+/25793"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: pysim </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: If16ade6e1098a87f749259bad6dea805ddb61ede </div>
<div style="display:none"> Gerrit-Change-Number: 25793 </div>
<div style="display:none"> Gerrit-PatchSet: 2 </div>
<div style="display:none"> Gerrit-Owner: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: fixeria <vyanitskiy@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>