laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/28623 )
Change subject: filesystem: raise exception only when applicable ......................................................................
filesystem: raise exception only when applicable
We should first see if any of the files in the tree actually require a service mapping before raising ValueError('TODO: implement recursive service -> file mapping')
Change-Id: I9c339f0cac020e7eec7f4f840748040e5f77923d --- M pySim/filesystem.py 1 file changed, 12 insertions(+), 1 deletion(-)
git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/23/28623/1
diff --git a/pySim/filesystem.py b/pySim/filesystem.py index 37c668d..c40eaf8 100644 --- a/pySim/filesystem.py +++ b/pySim/filesystem.py @@ -301,6 +301,14 @@ else: raise ValueError
+ def _has_service(self): + if self.service: + return True + for c in self.children.values(): + if isinstance(c, CardDF): + if c._has_service(): + return True + def add_file(self, child: CardFile, ignore_existing: bool = False): """Add a child (DF/EF) to this DF. Args: @@ -336,7 +344,10 @@ for c in child.children.values(): self._add_file_services(c) if isinstance(c, CardDF): - raise ValueError('TODO: implement recursive service -> file mapping') + for gc in c.children.values(): + if isinstance(gc, CardDF): + if gc._has_service(): + raise ValueError('TODO: implement recursive service -> file mapping')
def add_files(self, children: Iterable[CardFile], ignore_existing: bool = False): """Add a list of child (DF/EF) to this DF