Mercurial > hgrepos > Python > libs > ConfigMix
comparison configmix/config.py @ 523:085962f6c81f
Configuration._split_filters() now does the special filter check for None and Empty also
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Sun, 19 Dec 2021 19:01:43 +0100 |
| parents | 1001701be682 |
| children | 09b8e28b7a44 |
comparison
equal
deleted
inserted
replaced
| 522:6b3da9e5acc6 | 523:085962f6c81f |
|---|---|
| 649 def _split_filters(self, s): | 649 def _split_filters(self, s): |
| 650 name, sep, filters = s.partition(_FILTER_SEPARATOR) | 650 name, sep, filters = s.partition(_FILTER_SEPARATOR) |
| 651 if sep: | 651 if sep: |
| 652 filters = filters.strip() | 652 filters = filters.strip() |
| 653 if filters: | 653 if filters: |
| 654 filters = filters.split(_FILTER_SEPARATOR) | |
| 654 return (name.rstrip(), | 655 return (name.rstrip(), |
| 655 filters.split(_FILTER_SEPARATOR)) | 656 filters, |
| 656 else: | 657 NONE_FILTER in filters, |
| 657 return (name.rstrip(), []) | 658 EMPTY_FILTER in filters) |
| 658 else: | 659 else: |
| 659 return (name, []) | 660 return (name.rstrip(), [], False, False) |
| 661 else: | |
| 662 return (name, [], False, False) | |
| 660 | 663 |
| 661 def _lookupvar(self, *path): | 664 def _lookupvar(self, *path): |
| 662 """Lookup a variable within a hierarchy. | 665 """Lookup a variable within a hierarchy. |
| 663 | 666 |
| 664 :raise KeyError: An unexisting `path` raises a `KeyError` | 667 :raise KeyError: An unexisting `path` raises a `KeyError` |
| 771 res_append(s[rest:start]) | 774 res_append(s[rest:start]) |
| 772 end = s.find(_ENDTOK, start) | 775 end = s.find(_ENDTOK, start) |
| 773 if end < 0: | 776 if end < 0: |
| 774 rest = start | 777 rest = start |
| 775 break | 778 break |
| 776 varname, filters = self._split_filters(s[start+2:end]) | 779 varname, filters, none_filter, empty_filter = self._split_filters( |
| 780 s[start+2:end]) | |
| 777 try: | 781 try: |
| 778 if NONE_FILTER in filters: | 782 if none_filter: |
| 779 varvalue = self._apply_filters( | 783 varvalue = self._apply_filters( |
| 780 filters, self.getvar_s(varname, default=None)) | 784 filters, self.getvar_s(varname, default=None)) |
| 781 elif EMPTY_FILTER in filters: | 785 elif empty_filter: |
| 782 varvalue = self._apply_filters( | 786 varvalue = self._apply_filters( |
| 783 filters, self.getvar_s(varname, | 787 filters, self.getvar_s(varname, |
| 784 default=_EMPTY_STR)) | 788 default=_EMPTY_STR)) |
| 785 else: | 789 else: |
| 786 varvalue = self._apply_filters( | 790 varvalue = self._apply_filters( |
