# HG changeset patch # User Franz Glasner # Date 1639735754 -3600 # Node ID eddc0f7c6271f886985a043cceaabbe2bd4fb219 # Parent fa5b800055e4d5bec7b0ff328aa59c6adfe9551c Optimize ._split_filters() for the most common case of no-filters: use s.partition() first diff -r fa5b800055e4 -r eddc0f7c6271 configmix/config.py --- a/configmix/config.py Fri Dec 17 10:57:59 2021 +0100 +++ b/configmix/config.py Fri Dec 17 11:09:14 2021 +0100 @@ -544,11 +544,24 @@ return (self.unquote(nameparts[0]), nameparts[1], ) def _split_filters(self, s): - nameparts = s.split(self._FILTER_SEPARATOR) - if len(nameparts) == 1: - return (s, [], ) - else: - return (nameparts[0].rstrip(), nameparts[1:], ) + try: + name, sep, filters = s.partition(self._FILTER_SEPARATOR) + if sep: + filters = filters.strip() + if filters: + return (name.rstrip(), + filters.split(self._FILTER_SEPARATOR)) + else: + return (name.rstrip(), []) + else: + return (name, []) + except AttributeError: + # pre PY 2.5 + nameparts = s.split(self._FILTER_SEPARATOR) + if len(nameparts) == 1: + return (s, [], ) + else: + return (nameparts[0].rstrip(), nameparts[1:], ) def _lookupvar(self, *path, **kwds): """Lookup a variable within a hierarchy.