Ejemplo n.º 1
0
Archivo: attrs.py Proyecto: howarth/unl
def read_stim_attrs(attr_dir):
  stim_dir = get_stim_dir(attr_dir)

  attr_names = [d for d in listdir(stim_dir) if os.path.isdir(os.path.join(stim_dir,d))]
  attr_names.remove('.svn')
  attr_dicts = {}

  for an in attr_names:
    attr_dir = os.path.join(stim_dir, an)
  
    attr_files = listdir(attr_dir)
    attr_files.remove('.svn')

    # Attribute file name should be of <exp_name>_<attr_name>_stim.txt
    for af in attr_files:
      parts = af.split('_')
      exp_name = parts[0]
      attr_name = parts[1]

      if attr_name != an or parts[2] != 'stim.txt':
        raise ValueError('Invalid stimulus attribute file: %s' % os.path.join(attr_dir, af))
    
      if exp_name not in attr_dicts:
        attr_dicts[exp_name] = {}
                                                                     
      attr_dicts[exp_name][attr_name] = readers.read_white_space_sep_file(os.path.join(attr_dir, af))

  attr_arrs = {}
  
  for (exp_name, attr_vals) in attr_dicts.iteritems():
    attr_arrs[exp_name] = iter(dict_to_list(attr_vals))

  return attr_arrs
Ejemplo n.º 2
0
Archivo: attrs.py Proyecto: howarth/unl
def read_context_attrs(attr_dir):
  context_dir = os.path.join(attr_dir, 'context')
  get_context_attr_dir = lambda attr : os.path.join(attr_dir, attr)

  attr_names = [d for d in listdir(context_dir) if os.path.isdir(os.path.join(context_dir,d))]
  attr_names.remove('.svn')
  attr_dicts = {}

  for an in attr_names:
    attr_dir = os.path.join(context_dir, an)
    attr_files = listdir(attr_dir)
    attr_files.remove('.svn')

    for af in attr_files:
      parts = af.split('_')
      exp_name = parts[0]
      attr_name = parts[1]
      context_level = parts[2].replace('.txt', '')

      if attr_name != an:
        raise ValueError('Invalid stimulus attribute file: %s' % os.path.join(attr_dir, af))

      if exp_name not in attr_dicts:
        attr_dicts[exp_name] = {}

      if context_level not in attr_dicts[exp_name]:
        attr_dicts[exp_name][context_level] = {}

      tokens = readers.read_white_space_sep_file(os.path.join(attr_dir, af))
      tok_convert = lambda t : t if t != '~' else None
      attr_dicts[exp_name][context_level][attr_name] = [tok_convert(t) for t in tokens]

  attr_arrs = {}

  for (exp_name, context_attrs) in attr_dicts.iteritems():
    if exp_name not in attr_arrs:
      attr_arrs[exp_name] = {}

    for context_level in context_attrs.keys():
      if context_level not in attr_arrs[exp_name]:
        attr_arrs[exp_name][context_level] = {}
        
      attr_arrs[exp_name][context_level] = iter(dict_to_list(attr_dicts[exp_name][context_level]))

  return attr_arrs