Source code for curry.tools.icy.resolve

[docs] def resolve(arg, keys, what): '''Resolves a name while allowing any non-ambiguous prefix.''' candidates = [s for s in keys if s.startswith(arg)] try: result, = candidates except ValueError: if candidates: raise ValueError("Ambiguous %s: '%s'\nCandidates are: %s" % (what, arg, ' '.join(repr(x) for x in candidates)) ) else: raise ValueError("Unknown %s: '%s'" % (what, arg)) return result