summaryrefslogtreecommitdiffstats
path: root/testing/condprofile/condprof/customization/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'testing/condprofile/condprof/customization/__init__.py')
-rw-r--r--testing/condprofile/condprof/customization/__init__.py35
1 files changed, 35 insertions, 0 deletions
diff --git a/testing/condprofile/condprof/customization/__init__.py b/testing/condprofile/condprof/customization/__init__.py
new file mode 100644
index 0000000000..64f09bf4f7
--- /dev/null
+++ b/testing/condprofile/condprof/customization/__init__.py
@@ -0,0 +1,35 @@
+# 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 json
+import os
+
+HERE = os.path.dirname(__file__)
+
+
+def get_customizations():
+ for f in os.listdir(HERE):
+ if not f.endswith("json"):
+ continue
+ yield os.path.join(HERE, f)
+
+
+def find_customization(path_or_name):
+ if not path_or_name.endswith(".json"):
+ path_or_name += ".json"
+ if not os.path.exists(path_or_name):
+ # trying relative
+ rpath = os.path.join(HERE, path_or_name)
+ if not os.path.exists(rpath):
+ return None
+ path_or_name = rpath
+ return path_or_name
+
+
+def get_customization(path_or_name):
+ path = find_customization(path_or_name)
+ if path is None:
+ raise IOError("Can't find the customization file %r" % path_or_name)
+ with open(path) as f:
+ return json.loads(f.read())