1.1 --- a/moinformat/imports.py Tue Jul 24 12:58:58 2018 +0200
1.2 +++ b/moinformat/imports.py Tue Jul 24 15:43:20 2018 +0200
1.3 @@ -3,7 +3,7 @@
1.4 """
1.5 Import utilities.
1.6
1.7 -Copyright (C) 2017 Paul Boddie <paul@boddie.org.uk>
1.8 +Copyright (C) 2017, 2018 Paul Boddie <paul@boddie.org.uk>
1.9
1.10 This program is free software; you can redistribute it and/or modify it under
1.11 the terms of the GNU General Public License as published by the Free Software
1.12 @@ -23,18 +23,19 @@
1.13 from os import listdir
1.14 from importlib import import_module
1.15
1.16 -def get_extensions(dirname, modname, stores, reserved):
1.17 +def get_extensions(dirname, modname, stores, reserved, prefix=None):
1.18
1.19 "Import extensions inside 'dirname'."
1.20
1.21 for filename in listdir(dirname):
1.22 pathname = join(dirname, filename)
1.23
1.24 - # Descend into directories.
1.25 + # Descend into directories, prefixing the identified modules.
1.26
1.27 if isdir(pathname):
1.28 + store_name = prefix and "%s.%s" % (prefix, modname) or filename
1.29 get_extensions(pathname, "%s.%s" % (modname, filename),
1.30 - stores, reserved)
1.31 + stores, reserved, store_name)
1.32 continue
1.33
1.34 # Identify modules and import them.
1.35 @@ -42,6 +43,7 @@
1.36 leafname, ext = splitext(filename)
1.37
1.38 if ext == ".py" and leafname not in reserved:
1.39 - stores[leafname] = import_module("%s.%s" % (modname, leafname))
1.40 + store_name = prefix and "%s.%s" % (prefix, leafname) or leafname
1.41 + stores[store_name] = import_module("%s.%s" % (modname, leafname))
1.42
1.43 # vim: tabstop=4 expandtab shiftwidth=4