| # 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) |