diff options
| author | Scott Bahling <sbahling@suse.de> | 2016-03-03 02:19:13 +0100 |
|---|---|---|
| committer | Scott Bahling <sbahling@suse.de> | 2016-03-03 02:19:13 +0100 |
| commit | 3ea5bd07c23838b1a96357089e8173a094dfaed1 (patch) | |
| tree | 0ee4b228a35a37c6d120e85cc2b7cc6ebacaa8fc /obsapi/core.py | |
| parent | 224e2ce1d43045e567a1c782830a24432531aa8b (diff) | |
| download | obsapi-3ea5bd07c23838b1a96357089e8173a094dfaed1.tar.gz obsapi-3ea5bd07c23838b1a96357089e8173a094dfaed1.tar.xz obsapi-3ea5bd07c23838b1a96357089e8173a094dfaed1.zip | |
Add formatter class and extend FileInfo class
Diffstat (limited to 'obsapi/core.py')
| -rw-r--r-- | obsapi/core.py | 45 |
1 files changed, 21 insertions, 24 deletions
diff --git a/obsapi/core.py b/obsapi/core.py index 284199c..0148796 100644 --- a/obsapi/core.py +++ b/obsapi/core.py @@ -5,6 +5,9 @@ from requests.auth import HTTPBasicAuth from io import BytesIO from lxml import etree from collections import namedtuple +from datetime import datetime +from obsapi.formatter import Formatter + try: import osc.conf as osc_conf osc_conf.get_config() @@ -41,6 +44,8 @@ class FileInfo(object): "Summary : {summary}" "Description :" "{description}" + "Provides :" + "{provides}" ) src_str_template = ("{filename}" @@ -58,36 +63,23 @@ class FileInfo(object): def __init__(self, xml): self.finfo = etree.fromstring(xml) self.filename = self.finfo.get('filename', None) + self.formatter = Formatter(self) @property def info(self): - if self.is_pkg: - return dict(filename=self.filename, - name=self.name, - version=self.version, - release=self.release, - arch=self.arch, - size=self.size, - source=self.source, - mtime=self.mtime, - summary=self.summary, - description=self.description, - ) + info = {'filename': [self.filename]} + for item in self.finfo: + info.setdefault(item.tag, []).append(item.text) - else: - return dict(filename=self.filename, - size=self.size, - mtime=self.mtime, - ) + for item, value in info.items(): + if len(value) == 1: + info[item] = value[0] + # info[item] = '\n'.join(value) - def __str__(self): - if self.is_src: - return self.src_str_template.format(**self.info) + return info - if self.is_pkg: - return self.pkg_str_template.format(**self.info) - - return self.file_str_template.format(**self.info) + def __str__(self): + return self.formatter.render() def __getattr__(self, attr): try: @@ -101,6 +93,11 @@ class FileInfo(object): return values @property + def datetime(self): + if self.mtime: + return datetime.fromtimestamp(int(self.mtime)) + + @property def xml(self): return etree.tostring(self.finfo) |
