def recommend_similar_keywords(self, name): """Return keyword names similar to `name`.""" candidates = self._get_candidates('.' in name) normalizer = lambda name: candidates.get(name, name).lower().replace( '_', ' ') finder = RecommendationFinder(normalizer) return finder.find_recommendations(name, candidates)
def variable_not_found(name, candidates, msg=None, deco_braces=True): """Raise DataError for missing variable name. Return recommendations for similar variable names if any are found. """ if msg is None: msg = "Variable '%s' not found." % name candidates = _decorate_candidates(name[0], candidates, deco_braces) normalizer = partial(normalize, ignore='$@%&*{}_', caseless=True, spaceless=True) finder = RecommendationFinder(normalizer) recommendations = finder.find_recommendations(name, candidates) msg = finder.format_recommendations(msg, recommendations) raise VariableError(msg)
def format_recommendations(msg, recommendations): return RecommendationFinder.format_recommendations( msg, recommendations)