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 EDC181381FE for ; Wed, 25 Jul 2012 22:48:05 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 13CAAE0417; Wed, 25 Jul 2012 22:47:50 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) by pigeon.gentoo.org (Postfix) with ESMTP id C5281E0417 for ; Wed, 25 Jul 2012 22:47:50 +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 A67C91B479A for ; Wed, 25 Jul 2012 22:47:49 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by hornbill.gentoo.org (Postfix) with ESMTP id 68648E543E for ; Wed, 25 Jul 2012 22:47:48 +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: <1343123288.55efc8546b45ba0909a3dac180926ac15ee74ed2.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/package_metadata.py X-VCS-Directories: gpackages/libs/package_info/generic_metadata/ X-VCS-Committer: bacher09 X-VCS-Committer-Name: Slava Bacherikov X-VCS-Revision: 55efc8546b45ba0909a3dac180926ac15ee74ed2 X-VCS-Branch: master Date: Wed, 25 Jul 2012 22:47:48 +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: 269eaa2b-59a7-4d9e-bcd3-4ec03f09e704 X-Archives-Hash: afefdd745d37d03d0d760ba964c4c18f commit: 55efc8546b45ba0909a3dac180926ac15ee74ed2 Author: Slava Bacherikov bacher09 org> AuthorDate: Tue Jul 24 09:48:08 2012 +0000 Commit: Slava Bacherikov bacherikov org ua> CommitDate: Tue Jul 24 09:48:08 2012 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gentoo-packages.git;a=commit;h=55efc854 Add support of upstream in package metadata --- .../generic_metadata/package_metadata.py | 38 ++++++++++++++++++++ 1 files changed, 38 insertions(+), 0 deletions(-) diff --git a/gpackages/libs/package_info/generic_metadata/package_metadata.py b/gpackages/libs/package_info/generic_metadata/package_metadata.py index de2a246..54df840 100644 --- a/gpackages/libs/package_info/generic_metadata/package_metadata.py +++ b/gpackages/libs/package_info/generic_metadata/package_metadata.py @@ -5,6 +5,8 @@ from .my_etree import etree # Maintainers from .herds import Maintainer +#TODO: Add support of restrict attribute !!! + class PackageMetaData(ToStrMixin): def __init__(self, metadata_path): @@ -23,6 +25,7 @@ class PackageMetaData(ToStrMixin): self._parse_herds() self._parse_description() self._parse_maintainers() + self._parse_upstream() def _parse_herds(self): herd_set = set() @@ -45,6 +48,10 @@ class PackageMetaData(ToStrMixin): maintainers.add(maintainer) self._maintainers = tuple(maintainers) + def _parse_upstream(self): + upstream_xml = self._metadata_xml.find('upstream') + self.upstream = Upstream(upstream_xml, self._metadata_path) + @property def description(self): return self.descr['en'] @@ -63,3 +70,34 @@ class PackageMetaData(ToStrMixin): def __unicode__(self): return self._metadata_path + +class Upstream(ToStrMixin): + + simple_attrs = (('changelog', 'changelog'), + ('bugs-to', 'bugs_to'),) + + def __init__(self, upstream_t, metadata_path): + self.metadata_path = metadata_path + self.remote_id = {} + for name in ('doc',): + res = {} + for item in upstream_t.iterfind(name): + lang = item.attrib.get('lang', 'en') + res[lang] = item.text + setattr(self, name, res) + + for name, attr_name in self.simple_attrs: + item = upstream_t.find(name) + setattr(self, attr_name, item.text) + + for item in upstream_t.iterfind('remote-id'): + type = item.attrib.get('type') + self.remote_id[type] = item.text + + + @property + def main_doc(self): + return self.doc.get('en') + + def __unicode__(self): + return self.metadata_path