Skip to content

Commit 07743d9

Browse files
committed
pkg.base: cache eapi attribute
1 parent bc01cb6 commit 07743d9

2 files changed

Lines changed: 6 additions & 1 deletion

File tree

src/pkgcraft/pkg/base.pxd

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
from .. cimport pkgcraft_c as C
2+
from ..eapi cimport Eapi
23
from ..error cimport _IndirectInit
34

45

56
cdef class Pkg(_IndirectInit):
67
cdef C.Pkg *ptr
8+
79
# cached fields
10+
cdef Eapi _eapi
811
cdef int _hash
912

1013
@staticmethod

src/pkgcraft/pkg/base.pyx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,9 @@ cdef class Pkg(_IndirectInit):
3434
@property
3535
def eapi(self):
3636
"""Get a package's EAPI."""
37-
return Eapi.from_ptr(C.pkgcraft_pkg_eapi(self.ptr))
37+
if self._eapi is None:
38+
self._eapi = Eapi.from_ptr(C.pkgcraft_pkg_eapi(self.ptr))
39+
return self._eapi
3840

3941
@property
4042
def repo(self):

0 commit comments

Comments
 (0)