import argparse, os, sys, subprocess
from collections import OrderedDict
-# helper funcrions
-def load_module(name, path):
- import importlib.machinery
- old_val = sys.dont_write_bytecode
- sys.dont_write_bytecode = True
- module = importlib.machinery.SourceFileLoader(name, path).load_module()
- sys.dont_write_bytecode = old_val
- return module
+# helper functions
+def load_module(name, path, write_bytecode = False):
+ old_val = sys.dont_write_bytecode
+ sys.dont_write_bytecode = not write_bytecode
+ module = None
+ try:
+ from importlib.machinery import SourceFileLoader
+ module = SourceFileLoader(name, path).load_module()
+ except ImportError:
+ import imp
+ module = imp.load_source(name, path)
+ finally:
+ sys.dont_write_bytecode = old_val
+ return module
# an entire Project
class Project:
raise Exception("Can not reset sources without doing an update")
# load config as dictionary
-config = load_module('config', args.config).__dict__
+config = vars(load_module('config', args.config))
# initialise variables holding the configuration
allProjects = OrderedDict() # all projects