summaryrefslogtreecommitdiffstats
path: root/python/mozbuild/mozbuild/pythonutil.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/mozbuild/mozbuild/pythonutil.py')
-rw-r--r--python/mozbuild/mozbuild/pythonutil.py23
1 files changed, 23 insertions, 0 deletions
diff --git a/python/mozbuild/mozbuild/pythonutil.py b/python/mozbuild/mozbuild/pythonutil.py
new file mode 100644
index 0000000000..a3540647f9
--- /dev/null
+++ b/python/mozbuild/mozbuild/pythonutil.py
@@ -0,0 +1,23 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+import os
+import sys
+
+
+def iter_modules_in_path(*paths):
+ paths = [os.path.abspath(os.path.normcase(p)) + os.sep for p in paths]
+ for name, module in sys.modules.items():
+ if getattr(module, "__file__", None) is None:
+ continue
+ if module.__file__ is None:
+ continue
+ path = module.__file__
+
+ if path.endswith(".pyc"):
+ path = path[:-1]
+ path = os.path.abspath(os.path.normcase(path))
+
+ if any(path.startswith(p) for p in paths):
+ yield path