in expanded_checklist/checklist/editor.py [0:0]
def _get_fillin_items(self, all_keys, max_count=None, **kwargs):
items = {}
mask_match = re.compile(r'mask\d*')
def caps_fun(x):
if isinstance(x, str) and len(x) >= 1:
return x[0].upper() + x[1:]
elif isinstance(x, munch.Munch):
new_munch = deepcopy(x)
for key, val in new_munch.items():
new_munch[key] = val[0].upper() + val[1:]
return new_munch
else:
return x
for k in kwargs:
if re.search(r'\d+$', k):
raise(Exception('Error: keys cannot end in integers, we use that to index multiple copies of the same key (offending key: "%s")' % k))
for k in all_keys:
k = re.sub(r'\..*', '', k)
k = re.sub(r'\[.*\]', '', k)
k = re.sub(r'.*?:', '', k)
caps = False
newk = k
if len(k) >= 1 and k[0].isupper():
caps = True
newk = newk[0].lower() + newk[1:]
newk = re.sub(r'\d+$', '', newk)
if mask_match.match(k):
continue
if newk in kwargs:
items[k] = kwargs[newk]
elif newk in self.lexicons:
items[k] = self.lexicons[newk]
else:
raise(Exception('Error: key "%s" not in items or lexicons' % newk))
if max_count:
items[k] = items[k][:max_count]
if caps:
items[k] = [caps_fun(item) for item in items[k]]
return items