From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) by finch.gentoo.org (Postfix) with ESMTP id AC6DA1381FE for ; Thu, 2 Aug 2012 22:45:10 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id DBC13E0793; Thu, 2 Aug 2012 22:44:47 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) by pigeon.gentoo.org (Postfix) with ESMTP id AB188E0793 for ; Thu, 2 Aug 2012 22:44:47 +0000 (UTC) Received: from hornbill.gentoo.org (hornbill.gentoo.org [94.100.119.163]) (using TLSv1 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id BE1C11B402B for ; Thu, 2 Aug 2012 22:44:46 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by hornbill.gentoo.org (Postfix) with ESMTP id 79923E543C for ; Thu, 2 Aug 2012 22:44:45 +0000 (UTC) From: "Slava Bacherikov" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Slava Bacherikov" Message-ID: <1343863746.a4e05092c97f7d36a9e98110230e9f8f30a6d53c.bacher09@gentoo> Subject: [gentoo-commits] proj/gentoo-packages:master commit in: gpackages/libs/package_info/generic_metadata/ X-VCS-Repository: proj/gentoo-packages X-VCS-Files: gpackages/libs/package_info/generic_metadata/use_info.py X-VCS-Directories: gpackages/libs/package_info/generic_metadata/ X-VCS-Committer: bacher09 X-VCS-Committer-Name: Slava Bacherikov X-VCS-Revision: a4e05092c97f7d36a9e98110230e9f8f30a6d53c X-VCS-Branch: master Date: Thu, 2 Aug 2012 22:44:45 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Archives-Salt: 6e7ae5ae-bf38-4130-9032-879048983ab4 X-Archives-Hash: d205bc702ff9818eee15ef8adead3bf6 commit: a4e05092c97f7d36a9e98110230e9f8f30a6d53c Author: Slava Bacherikov bacher09 org> AuthorDate: Wed Aug 1 23:22:46 2012 +0000 Commit: Slava Bacherikov bacherikov org ua> CommitDate: Wed Aug 1 23:29:06 2012 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gentoo-packages.git;a=commit;h=a4e05092 Add function for access to special use description --- .../libs/package_info/generic_metadata/use_info.py | 26 +++++++++++++++++++- 1 files changed, 25 insertions(+), 1 deletions(-) diff --git a/gpackages/libs/package_info/generic_metadata/use_info.py b/gpackages/libs/package_info/generic_metadata/use_info.py index c04f640..c60f093 100644 --- a/gpackages/libs/package_info/generic_metadata/use_info.py +++ b/gpackages/libs/package_info/generic_metadata/use_info.py @@ -1,14 +1,18 @@ import re from collections import defaultdict +import os.path +import os -__all__ = ('get_uses_info', 'get_local_uses_info') +__all__ = ('get_uses_info', 'get_local_uses_info', 'get_use_special_info') USES_RE = r'(?P[a-zA-Z0-9\-]+) - (?P.*)' USES_DESC_RE = r'^%s$' % USES_RE USES_LOCAL_DESC_RE = r'^(?P[^#].*):%s$' % USES_RE +DESC_USE_RE = r'^(?P[^\.]+)\.desc$' use_re = re.compile(USES_DESC_RE) use_local_re = re.compile(USES_LOCAL_DESC_RE) +desc_re = re.compile(DESC_USE_RE) def _get_info(filename, re_string, modify_function, res_var = {}): use_desc = open(filename, 'r').read() @@ -51,3 +55,23 @@ def get_local_uses_info(filename = '/usr/portage/profiles/use.local.desc'): res_dict[match['use'].lower()][match['package']] = match['description'] return _get_info(filename, use_local_re, action, defaultdict(dict)) + +def _set_prefixes(prefix, dct): + newdct = {} + for key, item in dct.iteritems(): + newdct['%s_%s' % (prefix, key)] = item + return newdct + +def get_use_special_info(dirname = '/usr/portage/profiles/desc'): + uses = {} + for name in os.listdir(dirname): + m = desc_re.match(name) + if m is not None: + prefix = m.groupdict().get('name') + if prefix is None: + continue + filename = os.path.join(dirname, name) + uses.update(_set_prefixes(prefix, get_uses_info(filename))) + return uses + +