Mercurial > hgrepos > Python > libs > ConfigMix
comparison configmix/config.py @ 511:93a5346907ef
Using generator expressions to directly create tuples is a not so good idea performance-wise.
Use it only if you have memory issues because it is not very performant.
Using tuple([list comprenension]) is at most twice as fast.
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Sat, 18 Dec 2021 18:44:21 +0100 |
| parents | acf1e8696d68 |
| children | bf8a1b1498db |
comparison
equal
deleted
inserted
replaced
| 510:acf1e8696d68 | 511:93a5346907ef |
|---|---|
| 484 | 484 |
| 485 """ | 485 """ |
| 486 varns, varname = self._split_ns(varname) | 486 varns, varname = self._split_ns(varname) |
| 487 if not varns: | 487 if not varns: |
| 488 if varname: | 488 if varname: |
| 489 varnameparts = (unquote(vp) | 489 varnameparts = tuple([unquote(vp) |
| 490 for vp in varname.split(_HIER_SEPARATOR)) | 490 for vp in varname.split(_HIER_SEPARATOR)]) |
| 491 else: | 491 else: |
| 492 varnameparts = tuple() | 492 varnameparts = tuple() |
| 493 else: | 493 else: |
| 494 varnameparts = (varname,) | 494 varnameparts = (varname,) |
| 495 return self.getvarl(*varnameparts, namespace=varns, default=default) | 495 return self.getvarl(*varnameparts, namespace=varns, default=default) |
| 835 varns, varname = self._split_ns(root) | 835 varns, varname = self._split_ns(root) |
| 836 if varns: | 836 if varns: |
| 837 raise ValueError( | 837 raise ValueError( |
| 838 "jailed configurations do not support namespaces") | 838 "jailed configurations do not support namespaces") |
| 839 if varname: | 839 if varname: |
| 840 rootpath = (unquote(p) for p in root.split(_HIER_SEPARATOR)) | 840 rootpath = tuple([unquote(p) |
| 841 for p in root.split(_HIER_SEPARATOR)]) | |
| 841 else: | 842 else: |
| 842 rootpath = tuple() | 843 rootpath = tuple() |
| 843 jc = _JailedConfiguration(*rootpath) | 844 jc = _JailedConfiguration(*rootpath) |
| 844 if bind_root: | 845 if bind_root: |
| 845 jc.rebind(self) | 846 jc.rebind(self) |
| 1000 raise TypeError("a paths item must be a list or tuple") | 1001 raise TypeError("a paths item must be a list or tuple") |
| 1001 return self._base.getfirstvarl_s(*real_paths, **kwds) | 1002 return self._base.getfirstvarl_s(*real_paths, **kwds) |
| 1002 | 1003 |
| 1003 def getvar(self, varname, **kwds): | 1004 def getvar(self, varname, **kwds): |
| 1004 if varname: | 1005 if varname: |
| 1005 varnameparts = tuple(unquote(vp) | 1006 varnameparts = tuple([unquote(vp) |
| 1006 for vp in varname.split(_HIER_SEPARATOR)) | 1007 for vp in varname.split(_HIER_SEPARATOR)]) |
| 1007 else: | 1008 else: |
| 1008 varnameparts = tuple() | 1009 varnameparts = tuple() |
| 1009 return self._base.getvarl(*(self._path + varnameparts), **kwds) | 1010 return self._base.getvarl(*(self._path + varnameparts), **kwds) |
| 1010 | 1011 |
| 1011 def getkeys(self, varname): | 1012 def getkeys(self, varname): |
| 1012 if varname: | 1013 if varname: |
| 1013 varnameparts = tuple(unquote(vp) | 1014 varnameparts = tuple([unquote(vp) |
| 1014 for vp in varname.split(_HIER_SEPARATOR)) | 1015 for vp in varname.split(_HIER_SEPARATOR)]) |
| 1015 else: | 1016 else: |
| 1016 varnameparts = tuple() | 1017 varnameparts = tuple() |
| 1017 for k in self._base.getkeysl(*(self._path + varnameparts)): | 1018 for k in self._base.getkeysl(*(self._path + varnameparts)): |
| 1018 yield k | 1019 yield k |
| 1019 | 1020 |
| 1021 real_varnames = [self._pathstr + vn for vn in varnames] | 1022 real_varnames = [self._pathstr + vn for vn in varnames] |
| 1022 return self._base.getfirstvar(*real_varnames, **kwds) | 1023 return self._base.getfirstvar(*real_varnames, **kwds) |
| 1023 | 1024 |
| 1024 def getvar_s(self, varname, **kwds): | 1025 def getvar_s(self, varname, **kwds): |
| 1025 if varname: | 1026 if varname: |
| 1026 varnameparts = tuple(unquote(vp) | 1027 varnameparts = tuple([unquote(vp) |
| 1027 for vp in varname.split(_HIER_SEPARATOR)) | 1028 for vp in varname.split(_HIER_SEPARATOR)]) |
| 1028 else: | 1029 else: |
| 1029 varnameparts = tuple() | 1030 varnameparts = tuple() |
| 1030 return self._base.getvarl_s(*(self._path + varnameparts), **kwds) | 1031 return self._base.getvarl_s(*(self._path + varnameparts), **kwds) |
| 1031 | 1032 |
| 1032 def getfirstvar_s(self, *varnames, **kwds): | 1033 def getfirstvar_s(self, *varnames, **kwds): |
| 1071 varns, varname = self._base._split_ns(root) | 1072 varns, varname = self._base._split_ns(root) |
| 1072 if varns: | 1073 if varns: |
| 1073 raise ValueError( | 1074 raise ValueError( |
| 1074 "sub-jails do not support namespaces") | 1075 "sub-jails do not support namespaces") |
| 1075 if varname: | 1076 if varname: |
| 1076 rootpath = ( | 1077 rootpath = tuple([unquote(p) |
| 1077 unquote(p) for p in varname.split(_HIER_SEPARATOR) | 1078 for p in varname.split(_HIER_SEPARATOR)]) |
| 1078 ) | |
| 1079 else: | 1079 else: |
| 1080 rootpath = tuple() | 1080 rootpath = tuple() |
| 1081 if self._path: | 1081 if self._path: |
| 1082 new_rootpath = self._path + tuple(rootpath) | 1082 new_rootpath = self._path + tuple(rootpath) |
| 1083 else: | 1083 else: |
