| # Copyright 1999-2013 Gentoo Foundation |
| # Distributed under the terms of the GNU General Public License v2 |
| |
| import re |
| from portage.dep import isvalidatom |
| |
| |
| def insert_category_into_atom(atom, category): |
| # Handle '*' character for "extended syntax" wildcard support. |
| alphanum = re.search(r"[\*\w]", atom, re.UNICODE) |
| if alphanum: |
| ret = atom[: alphanum.start()] + "%s/" % category + atom[alphanum.start() :] |
| else: |
| ret = None |
| return ret |
| |
| |
| def is_valid_package_atom(x, allow_repo=False, allow_build_id=True): |
| if "/" not in x.split(":")[0]: |
| x2 = insert_category_into_atom(x, "cat") |
| if x2 != None: |
| x = x2 |
| return isvalidatom( |
| x, allow_blockers=False, allow_repo=allow_repo, allow_build_id=allow_build_id |
| ) |