commit: d421fe7cc5a3da6a8ffc75a4c8b3929a80cb402f Author: Jannik Glückert <jannik.glueckert <AT> gmail <DOT> com> AuthorDate: Sat Jun 14 18:43:58 2025 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Mon Oct 20 17:31:52 2025 +0000 URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=d421fe7c
portage.dep.Atom: unify normal and wildcard re group usage Signed-off-by: Jannik Glückert <jannik.glueckert <AT> gmail.com> Part-of: https://github.com/gentoo/portage/pull/1445 Signed-off-by: Sam James <sam <AT> gentoo.org> lib/portage/dep/__init__.py | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/lib/portage/dep/__init__.py b/lib/portage/dep/__init__.py index aedc2606a2..ecd1b522cf 100644 --- a/lib/portage/dep/__init__.py +++ b/lib/portage/dep/__init__.py @@ -25,6 +25,7 @@ __all__ = [ "remove_slot", "strip_empty", "use_reduce", + "_repo_name_re", "_repo_separator", "_slot_separator", ] @@ -75,8 +76,7 @@ _op = r"([=~]|[><]=?)" _repo_separator = "::" _repo_name = r"[\w][\w-]*" -_repo_name_re = re.compile("^" + _repo_name + "$", re.ASCII) -_repo = r"(?:" + _repo_separator + "(" + _repo_name + ")" + ")?" +_repo_name_re = re.compile(rf"^{_repo_name}\Z", re.ASCII) _extended_cat = r"[\w+*][\w+.*-]*" @@ -136,9 +136,13 @@ def _get_atom_re(eapi_attrs: portage.eapi._eapi_attrs) -> re.Pattern: (?P<simple>{cp_re}) ) (?: - {_slot_separator}{_slot_loose} + {_slot_separator} + (?P<slot>{_slot_loose}) + )? + (?: + {_repo_separator} + (?P<repo>{_repo_name}) )? - {_repo} ) (?P<usedeps>{_use})? \Z @@ -180,7 +184,7 @@ def _get_atom_wildcard_re(eapi_attrs): ) ) (?: - : + {_slot_separator} (?P<slot>{_slot_loose}) )? (?: @@ -1563,8 +1567,8 @@ class Atom(str): op = m_group(base + 1) cpv = m_group(base + 2) cp = m_group(base + 3) - slot = m_group(atom_re.groups - 2) - repo = m_group(atom_re.groups - 1) + slot = m_group("slot") + repo = m_group("repo") use_str = m_group("usedeps") version = m_group(base + 4) if version is not None: @@ -1588,8 +1592,8 @@ class Atom(str): m_group = m.group cpv = m_group(base + 1) cp = m_group(base + 2) - slot = m_group(atom_re.groups - 2) - repo = m_group(atom_re.groups - 1) + slot = m_group("slot") + repo = m_group("repo") use_str = m_group("usedeps") if m_group(base + 3) is not None: raise InvalidAtom(self) @@ -1597,8 +1601,8 @@ class Atom(str): op = None m_group = m.group cpv = cp = m_group(atom_re.groupindex["simple"] + 1) - slot = m_group(atom_re.groups - 2) - repo = m_group(atom_re.groups - 1) + slot = m_group("slot") + repo = m_group("repo") use_str = m_group("usedeps") if m_group(atom_re.groupindex["simple"] + 2) is not None: raise InvalidAtom(self)
