frappyman: fix make_proposed

This commit is contained in:
l_samenv 2023-10-26 10:18:51 +02:00
parent 085e493942
commit dc24f3585c

View File

@ -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: