def get_app_cfg_by_path(path): """ 's1/s2/s3' -> ['s1', 's2', 's3']""" tuple_settings = tuple(path.split('/')) result_settings = remove_fandb_spaces_in_tuple(tuple_settings) try: tmp = get_app_cfg() for at in result_settings: tmp = tmp[at] return tmp except KeyError as e: return None
def process_one_line(line): ptr = line.find(':') key = util.remove_forward_and_back_spaces(line[0:ptr]) value = util.remove_forward_and_back_spaces(line[ptr+1:]) if key == kKeyRoot: if key not in target: target[key] = [] target[key].append(value) target[key] = list(set(target[key])) elif key == kKeyTargetExts: list_ext = value.split(',') target[key] = list(util.remove_fandb_spaces_in_tuple(tuple(list_ext))) elif key == kKeyIndexName: # Тоже список, хотя из одного элемента. Удобно при дальнейшей обработке target[key] = [util.remove_forward_and_back_spaces(value)] elif key == kKeyIgnoredDir: if key not in target: target[key] = [] target[key].append(value) target[key] = list(set(target[key])) else: print 'No used'
def _parse_target_params(str_params): rpt = [] if str_params.count('[') != str_params.count(']'): return None, 1, "\tError: [Count '[' != count ']']" if str_params.count(':') != str_params.count('[') or \ str_params.count(':') != str_params.count(']'): return None, 1, "\tError: [Format param - [anything : something]]" params = str_params.replace('[', '') params = params.split(']') params_map = {} for at in params: if at: pair = remove_forward_and_back_spaces(at) key, value = remove_fandb_spaces_in_tuple(tuple(pair.split(':'))) # Запрещаем второе значени, соотв. ключу if key not in params_map: params_map[key] = value else: return None, 1, "\tError: only one params key permitted" params_json = json.dumps(params_map) return params_json, 0, None