Re: [PATCH 4/4] portage.eapi: use functools @lru_cache decorator instead of custom implementation
Zac Medico <[email protected]> Sat, 26 Feb 2022 14:26:20 -0800
| Newsgroups | gmane.linux.gentoo.portage.devel |
|---|---|
| Message-ID | <[email protected]> |
On 2/26/22 10:04, Zac Medico wrote: > On 2/23/22 20:14, Matt Turner wrote: >> From: "Wolfgang E. Sanyer" <[email protected]> >> >> Reviewed-by: Matt Turner <[email protected]> >> Signed-off-by: Wolfgang E. Sanyer <[email protected]> >> --- >> lib/portage/eapi.py | 155 ++++++++++++++++++++------------------------ >> 1 file changed, 72 insertions(+), 83 deletions(-) >> >> diff --git a/lib/portage/eapi.py b/lib/portage/eapi.py >> index 56e64620a..efcc6c2a0 100644 >> --- a/lib/portage/eapi.py >> +++ b/lib/portage/eapi.py >> @@ -2,12 +2,10 @@ >> # Distributed under the terms of the GNU General Public License v2 >> import collections >> -import operator >> -import types >> - >> -from portage import eapi_is_supported >> +from functools import lru_cache >> +@lru_cache(None) >> def eapi_has_iuse_defaults(eapi): >> if eapi is None: >> return True >> @@ -15,6 +13,7 @@ def eapi_has_iuse_defaults(eapi): >> return eapi != "0" > > I think this patch misses the point of the original caching mechanism. > It doesn't make sense to cache results of the individual eapi_* > functions if they no longer contribute to the _eapi_attrs cache. To clarify, the only reason that the eapi_* functions were cached was so that they would trigger population of the _eapi_attrs cache. In the absence of this_eapi_attrs cache population feature, I doubt that it's very useful to put the lru_cache on the indivdual eapi_* functions. -- Thanks, Zac
OpenPGP_signature
(application/pgp-signature, 840 B) - not displayed