github.com/hwaf/hwaf@v0.0.0-20140814122253-5465f73b20f1/py-hwaftools/orch/features/__init__.py (about)

     1  #!/usr/bin/env python
     2  
     3  import os.path as osp
     4  from glob import glob
     5  
     6  import waflib.Logs as msg
     7  
     8  registered_defaults = dict()  # feature name -> configuration dictionary
     9  
    10  def load():
    11      msg.debug('orch: loading features')
    12  
    13      mydir = osp.dirname(__file__)
    14      for fpath in glob("%s/feature_*.py"%mydir):
    15          ffile = osp.basename(fpath)
    16          modname = osp.splitext(ffile)[0]
    17          msg.debug('orch: loading module: "%s"' % modname)
    18          exec("from . import %s"%modname)
    19  
    20  def defaults(feats):
    21      ret = dict()
    22      for toe in feats:
    23          d = registered_defaults.get(toe)
    24          if d:
    25              ret.update(d)
    26      return ret
    27  
    28  def register_defaults(name, **kwds):
    29      '''Register a set of default feature configuration items which may be
    30      overridden by user configuration.
    31      '''
    32      registered_defaults[name] = kwds
    33