Mercurial > hgrepos > Python > libs > ConfigMix
changeset 476:eddc0f7c6271
Optimize ._split_filters() for the most common case of no-filters: use s.partition() first
| author | Franz Glasner <f.glasner@feldmann-mg.com> |
|---|---|
| date | Fri, 17 Dec 2021 11:09:14 +0100 |
| parents | fa5b800055e4 |
| children | 1de6cc49776e |
| files | configmix/config.py |
| diffstat | 1 files changed, 18 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- 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.
