Skip to content

Commit 4b24524

Browse files
committed
Apply sort and filter of walk_packages consistently
1 parent 766c7a0 commit 4b24524

File tree

1 file changed

+14
-7
lines changed

1 file changed

+14
-7
lines changed

src/sage/misc/package_dir.py

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -370,9 +370,9 @@ def iter_modules(path=None, prefix=''):
370370
yielded[name] = 1
371371
yield ModuleInfo(i, name, ispkg)
372372

373-
def iter_importer_modules(importer, prefix=''):
373+
def _iter_importer_modules_helper(importer, prefix=''):
374374
r"""
375-
Yield :class:`ModuleInfo` for all modules of ``importer``.
375+
Helper function for :func:`iter_importer_modules`.
376376
"""
377377
from importlib.machinery import FileFinder
378378

@@ -391,11 +391,6 @@ def iter_importer_modules(importer, prefix=''):
391391

392392
for fn in filenames:
393393
modname = inspect.getmodulename(fn)
394-
if modname and (modname in ['__init__', 'all']
395-
or modname.startswith('all__')
396-
or modname in yielded):
397-
continue
398-
399394
path = os.path.join(importer.path, fn)
400395
ispkg = False
401396

@@ -414,6 +409,18 @@ def iter_importer_modules(importer, prefix=''):
414409
else:
415410
yield from importer.iter_modules(prefix)
416411

412+
def iter_importer_modules(importer, prefix=''):
413+
r"""
414+
Yield :class:`ModuleInfo` for all modules of ``importer``.
415+
"""
416+
for name, ispkg in sorted(list(_iter_importer_modules_helper(importer, prefix))):
417+
# we sort again for consistency of output ordering if importer is not
418+
# a FileFinder (needed in doctest of :func:`sage.misc.dev_tools/load_submodules`)
419+
modname = name.rsplit('.', 1)[-1]
420+
if modname in ['__init__', 'all'] or modname.startswith('all__'):
421+
continue
422+
yield name, ispkg
423+
417424
def seen(p, m={}):
418425
if p in m:
419426
return True

0 commit comments

Comments
 (0)