diff --git a/parserutils/collections.py b/parserutils/collections.py index 42f9123..d247e7f 100644 --- a/parserutils/collections.py +++ b/parserutils/collections.py @@ -150,6 +150,7 @@ def flatten_items(items, recurse=False): return type(items)(flattened) if isinstance(items, _flatten_types) else flattened + _flatten_types = (tuple, set) _flattened_types = (dict,) + STRING_TYPES @@ -192,6 +193,7 @@ def remove_duplicates(items, in_reverse=False, is_unhashable=False): return unique if not in_reverse else unique[::-1] # Restore original order + _remove_dup_types = (tuple,) + STRING_TYPES _removed_dup_types = (dict, set) @@ -244,6 +246,7 @@ def reduce_value(value, default=EMPTY_STR): return default if value is None else value + _reduce_types = (list, tuple) @@ -264,4 +267,5 @@ def wrap_value(value, include_empty=False): return value if include_empty else filter_empty(value, []) + _wrap_types = (dict,) + STRING_TYPES diff --git a/parserutils/strings.py b/parserutils/strings.py index 379281c..d6f93a4 100644 --- a/parserutils/strings.py +++ b/parserutils/strings.py @@ -219,6 +219,7 @@ def to_ascii_equivalent(text): text = EMPTY_STR.join(_ASCII_PUNCTUATION_MAP.get(c, c) for c in text) return EMPTY_STR.join(c for c in unicodedata.normalize('NFD', text) if unicodedata.category(c) != 'Mn') + _ASCII_PUNCTUATION_MAP = { # Hyphens and dashes u'\u2010': u'-', u'\u2011': u'-', u'\u2012': u'-', u'\u2013': u'-', u'\u2014': u'-', u'\u2015': u'-',