frappyman: fix make_proposed
This commit is contained in:
parent
085e493942
commit
dc24f3585c
20
frappyman.py
20
frappyman.py
@ -460,34 +460,34 @@ class FrappyManager(ServiceManager):
|
||||
for service in self.services:
|
||||
self.all_cfg(ins, service, list_info, sea_info)
|
||||
seacfgpat = re.compile(r'(.*)(\.config|\.stick|\.addon)')
|
||||
sea_ambig = {} # collect info about ambiguous sea info
|
||||
for cfg, seacfg in sea_info.items():
|
||||
sea_ambig.setdefault(seacfg, set()).add(cfg)
|
||||
inverted_sea_info = {}
|
||||
for seacfg, cfgset in sea_info.items():
|
||||
for cfg in cfgset:
|
||||
inverted_sea_info[cfg] = seacfg
|
||||
ambiguous = 0
|
||||
keylen = max(max(len(k) for k in cfgs) for cfgs in list_info.values())
|
||||
for cfgdir, cfgs in list_info.items():
|
||||
if cfgs:
|
||||
prt('')
|
||||
prt('--- %s:' % cfgdir)
|
||||
for cfg, desc in cfgs.items():
|
||||
seacfg = sea_info.get(cfg)
|
||||
for cfg, desc in sorted(cfgs.items(), key=lambda v: (v[0].lower(), v)):
|
||||
seacfg = inverted_sea_info.get(cfg)
|
||||
if seacfg:
|
||||
name, ext = seacfgpat.match(seacfg).groups()
|
||||
if name == cfg or name + 'stick' == cfg:
|
||||
prefix = '* '
|
||||
else:
|
||||
prefix = f'* ({name}{ext}) '
|
||||
n = len(sea_ambig.get(seacfg))
|
||||
if n > 1:
|
||||
prefix = '!' + prefix[1:]
|
||||
ambiguous += 1
|
||||
if len(sea_info[seacfg]) > 1:
|
||||
prefix = '!' + prefix
|
||||
ambiguous += 1 / len(sea_info[seacfg])
|
||||
desc = prefix + desc
|
||||
prt('%s %s' % (cfg.ljust(keylen), desc))
|
||||
prt(' ')
|
||||
gap = ' ' * keylen
|
||||
prt(f'{gap} * need sea')
|
||||
if ambiguous:
|
||||
print(f'{gap} ! {ambiguous} ambiguous mappings sea -> frappy')
|
||||
print(f'{gap} ! {round(ambiguous)} ambiguous mappings sea -> frappy')
|
||||
|
||||
def treat_args(self, argdict, unknown=(), extra=()):
|
||||
if len(unknown) == 1:
|
||||
|
Loading…
x
Reference in New Issue
Block a user