From 1bbfeeed268d5d0e2d19734286c35603a054a70b Mon Sep 17 00:00:00 2001 From: Spencer Brown Date: Sun, 15 Dec 2024 18:19:32 +1000 Subject: [PATCH] Make this parameter fully private --- src/srctools/fgd.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/srctools/fgd.py b/src/srctools/fgd.py index 99d164ec..ff49db47 100644 --- a/src/srctools/fgd.py +++ b/src/srctools/fgd.py @@ -2009,20 +2009,21 @@ def export( file.write('\t]\n') - def iter_bases(self, _done: Optional[Set[EntityDef]] = None) -> Iterator[EntityDef]: + def iter_bases(self) -> Iterator[EntityDef]: """Yield all base entities for this one. If an entity is repeated, it will only be yielded once. """ - if not _done: - _done = {self} + return self._iter_bases({self}) + + def _iter_bases(self, done: Set[EntityDef]) -> Iterator[EntityDef]: for ent in self.bases: - if ent in _done or isinstance(ent, str): + if ent in done or isinstance(ent, str): continue - _done.add(ent) + done.add(ent) yield ent - yield from ent.iter_bases(_done) + yield from ent._iter_bases(done) def extend(self, other: EntityDef) -> bool: """Take another entity definition and extend this definition with its data.