from lxml import etree
from tic.utils.error import TICError
+import logging
import re
class RepodataParser(object):
self.repodata_list = repodata_list
def _xml_parse(self, pkg_group, tree, tag_dic):
+ logger = logging.getLogger(__name__)
meta_prefix = 'building-block'
meta_prefix_root = 'building-block-root-'
meta_prefix_sub1 = 'building-block-sub1-'
# check whether a package is duplicated.
if pkg_name in pkg2id:
#TODO: Apply to policy of duplication
- print('Package(', pkg_name, ') is duplicated. exclude the package')
+ logger.warning('package(%s) is duplicated. exclude this package', pkg_name)
continue
else:
pkg2id[pkg_name] = pkg_id
elif meta_match.group('meta') == 'sub1':
sub1_match = meta_sub1_pattern.search(meta_match.group('pkgname'))
meta_info['sub1'].append([pkg_info['name'],
- ''.join([meta_prefix_root, sub1_match.group('root')]),
- ])
+ ''.join([meta_prefix_root, sub1_match.group('root')])])
pkg_info['meta'] = 'sub1'
elif meta_match.group('meta') == 'sub2':
sub2_match = meta_sub2_pattern.search(meta_match.group('pkgname'))
meta_info['sub2'].append([pkg_info['name'],
''.join([meta_prefix_root, sub2_match.group('root')]),
- ''.join([meta_prefix_sub1, sub2_match.group('root'),'-', sub2_match.group('sub1')])
- ])
+ ''.join([meta_prefix_sub1, sub2_match.group('root'),'-', sub2_match.group('sub1')])])
pkg_info['meta'] = 'sub2'
pkg_info['nodes'] = []
pkg_id += 1
def _prepare_requires_id(self, pkg_group):
+ logger = logging.getLogger(__name__)
pkg_list = pkg_group.get('pkg_list')
pkg2id = pkg_group.get('pkg2id')
provides2id = pkg_group.get('provides2id')
else:
#TODO: Exception Check
# the dependent package does not exist.
- #print('_req_parse::', req_name, ' does not exist')
- pass
+ logger.warning('"%s" required by "%s" does not exist.', req_name, pkg_list[pkg_id].get('name'))
def _get_tagname(self, tree):
root = tree.getroot()
if not self.repodata_list:
return None
- #TODO: repo URL validation
-
tree_list = []
try:
for repodata in self.repodata_list:
tree = etree.parse(repodata['primary'])
tree_list.append(tree)
except etree.XMLSyntaxError as e:
- raise TICError('primary.xml syntax error.')
+ raise TICError('primary.xml syntax error. %s', e)
tag_dic = self._get_tagname(tree_list[0])
pkg2id={},
provides2id={},
file2id={},
- meta_info=dict(root=[],sub1=[],sub2=[]))
+ meta_info=dict(root=[], sub1=[], sub2=[]))
# parses the repodata (primary.xml)
for tree in tree_list: