Kaydet (Commit) e6179182 authored tarafından Suleyman Poyraz's avatar Suleyman Poyraz

Inary system running with two different xml parser

üst 9556b46a
2018-03-18 Suleyman Poyraz <nipalensisaquila@gmail.com>
* minidom vs ciksemek:
minidom ile tüm inary sistemi yeniden yazıldı. Ancak ciddi manada
inar yavaşlıyor. Db initializing süresi 8 sn. Yuh yani. Ama minidom
uğraşımı öylece silmek istemediğim için minidom ve ciksemeli beraber
kullanma kararı aldım.
2018-03-11 Suleyman Poyraz <nipalensisaquila@gmail.com>
* colorized help output:
Colorized command names and now help screen look well.
......
......@@ -17,6 +17,12 @@ import signal
import inary
import inary.context as ctx
import inary.cli.inarycli as inarycli
try:
import ciksemel
except:
#FIXME: Görünüşü güzel olsa bile kodda anlamsızlık yaratıyor
sys.stdout.write("\033[05;31mWARNING:\033[0m\n\t\033[02;37mCiksemel XML Parser not found!!!\n\tFalling back with minidom!!! :(\033[0m\n\n")
import gettext
gettext.bindtextdomain('inary', "/usr/share/locale")
gettext.textdomain('inary')
......
......@@ -254,7 +254,7 @@ class ArchiveLzma(ArchiveBase):
from backports import lzma
lzma_file = lzma.LZMAFile(self.file_path, "rb")
output = open(output_path, "w")
output.write(str(lzma_file.read()))
output.write(lzma_file.read().decode('utf-8'))
output.close()
lzma_file.close()
......
......@@ -118,6 +118,7 @@ class InaryCLI(object):
def __init__(self, orig_args=None):
# first construct a parser for common options
# this is really dummy
self.parser = PreParser(version="%prog " + inary.__version__)
try:
opts, args = self.parser.parse_args(args=orig_args)
......
......@@ -64,7 +64,7 @@ all repositories.
else:
# print for all repos
for repo in op_wrappers.list_repos():
ctx.ui.info(_("Repository : {}\n").format(str(repo)))
ctx.ui.info(util.colorize(_("\n Repository : {}\n"), "blue").format(str(repo)))
self.print_packages(repo)
def print_packages(self, repo):
......
......@@ -54,6 +54,7 @@ Finds the installed package which contains the specified file.
def run(self):
self.init(database = True, write = False)
print(34623456)
if not self.args:
self.help()
......
......@@ -19,6 +19,7 @@ _ = __trans.gettext
import inary.cli.command as command
import inary.context as ctx
import inary.atomicoperations
import inary.operations.op_wrappers as op_wrappers
class UpdateRepo(command.Command, metaclass=command.autocommand):
__doc__ = _("""Update repository databases
......
......@@ -23,10 +23,6 @@ _ = __trans.gettext
# standard python modules
import os.path
#for compability cross platform package managing
import xml.dom.minidom as minidom
from xml.parsers.expat import ExpatError
# inary modules
import inary.sxml.xmlfile as xmlfile
import inary.sxml.autoxml as autoxml
......@@ -39,6 +35,13 @@ import inary.data.group as group
import inary.util as util
import inary.db
try:
import ciksemel
parser = "ciksemel"
except:
import xml.dom.minidom as minidom
parser = "minidom"
class Error(inary.Error):
pass
......@@ -423,36 +426,61 @@ class SpecFile(xmlfile.XmlFile, metaclass=autoxml.autoxml):
def getSourceRelease(self):
return self.history[0].release
def _set_i18n(self, tag, inst):
try:
for summary in tag.getElementsByTagName("Summary"):
inst.summary[summary.getAttribute("xml:lang")] = summary.childNodes[0].data
for desc in tag.getElementsByTagName("Description"):
inst.description[desc.getAttribute("xml:lang")] = desc.childNodes[0].data
except AttributeError:
raise Error(_("translations.xml file is badly formed."))
def _set_i18n(self, tag, inst, parser="ciksemel"):
if parser=="ciksemel":
try:
for summary in tag.tags("Summary"):
inst.summary[summary.getAttribute("xml:lang")] = summary.firstChild().data()
for desc in tag.tags("Description"):
inst.description[desc.getAttribute("xml:lang")] = desc.firstChild().data()
except AttributeError:
raise Error(_("translations.xml file is badly formed."))
else:
try:
for summary in tag.getElementsByTagName("Summary"):
inst.summary[summary.getAttribute("xml:lang")] = summary.childNodes[0].data
for desc in tag.getElementsByTagName("Description"):
inst.description[desc.getAttribute("xml:lang")] = desc.childNodes[0].data
except AttributeError:
raise Error(_("translations.xml file is badly formed."))
def read_translations(self, path):
if not os.path.exists(path):
return
try:
doc = minidom.parse(path).documentElement
except ExpatError as err:
raise Error(_("File '{0}' has invalid XML: {1}").format(path, err) )
if doc.getElementsByTagName("Source")[0].getElementsByTagName("Name")[0].firstChild.data == self.source.name:
# Set source package translations
self._set_i18n(doc.getElementsByTagName("Source")[0], self.source)
#FIXME: How can we fix it
for pak in doc.childNodes:
if pak.nodeType == pak.ELEMENT_NODE and pak.tagName == "Package":
if parser=="ciksemel":
doc = ciksemel.parse(path)
if doc.getTag("Source").getTagData("Name") == self.source.name:
# Set source package translations
self._set_i18n(doc.getTag("Source"), self.source)
for pak in doc.tags("Package"):
for inst in self.packages:
if inst.name == pak.getElementsByTagName("Name")[0].firstChild.data:
if inst.name == pak.getTagData("Name"):
self._set_i18n(pak, inst)
break
else:
try:
doc = minidom.parse(path).documentElement
except ExpatError as err:
raise Error(_("File '{0}' has invalid XML: {1}").format(path, err) )
if doc.getElementsByTagName("Source")[0].getElementsByTagName("Name")[0].firstChild.data == self.source.name:
# Set source package translations
self._set_i18n(doc.getElementsByTagName("Source")[0], self.source, parser="minidom")
#FIXME: How can we fix it
for pak in doc.childNodes:
if pak.nodeType == pak.ELEMENT_NODE and pak.tagName == "Package":
for inst in self.packages:
if inst.name == pak.getElementsByTagName("Name")[0].firstChild.data:
self._set_i18n(pak, inst, parser="minidom")
break
def __str__(self):
s = _('Name: {0}, version: {1}, release: {2}\n').format(
self.source.name, self.history[0].version, self.history[0].release)
......
......@@ -16,6 +16,7 @@ __trans = gettext.translation('inary', fallback=True)
_ = __trans.gettext
import inary
import inary.context as ctx
import inary.db.repodb
import inary.db.itembyrepo
import inary.data.component as Component
......@@ -25,6 +26,11 @@ class ComponentDB(lazydb.LazyDB):
def __init__(self):
lazydb.LazyDB.__init__(self, cacheable=True)
try:
import ciksemel
self.parser = "ciksemel"
except:
self.parser = "minidom"
def init(self):
component_nodes = {}
......@@ -43,28 +49,42 @@ class ComponentDB(lazydb.LazyDB):
self.cpdb = inary.db.itembyrepo.ItemByRepo(component_packages)
self.csdb = inary.db.itembyrepo.ItemByRepo(component_sources)
def __generate_packages(self, doc):
def __generate_packages(self, doc, ):
components = {}
for pkg in doc.childNodes:
if pkg.nodeType == pkg.ELEMENT_NODE and pkg.tagName == "Package":
partOf = pkg.getElementsByTagName("PartOf")[0].firstChild.data
pkgName = pkg.getElementsByTagName("Name")[0].firstChild.data
components.setdefault(partOf, []).append(pkgName)
if self.parser == "ciksemel":
for pkg in doc.tags("Package"):
components.setdefault(pkg.getTagData("PartOf"), []).append(pkg.getTagData("Name"))
else:
for pkg in doc.childNodes:
if pkg.nodeType == pkg.ELEMENT_NODE and pkg.tagName == "Package":
partOf = pkg.getElementsByTagName("PartOf")[0].firstChild.data
pkgName = pkg.getElementsByTagName("Name")[0].firstChild.data
components.setdefault(partOf, []).append(pkgName)
return components
def __generate_sources(self, doc):
components = {}
for spec in doc.childNodes:
if spec.nodeType == spec.ELEMENT_NODE and spec.tagName == "SpecFile":
src = spec.getElementsByTagName("Source")[0]
partOf = src.getElementsByTagName("PartOf")[0].firstChild.data
pkgName = src.getElementsByTagName("Name")[0].firstChild.data
components.setdefault(partOf, []).append(pkgName)
if self.parser == "ciksemel":
for spec in doc.tags("SpecFile"):
src = spec.getTag("Source")
components.setdefault(src.getTagData("PartOf"), []).append(src.getTagData("Name"))
else:
for spec in doc.childNodes:
if spec.nodeType == spec.ELEMENT_NODE and spec.tagName == "SpecFile":
src = spec.getElementsByTagName("Source")[0]
partOf = src.getElementsByTagName("PartOf")[0].firstChild.data
pkgName = src.getElementsByTagName("Name")[0].firstChild.data
components.setdefault(partOf, []).append(pkgName)
return components
def __generate_components(self, doc):
#return dict([(x.getTagData("Name"), x.toString()) for x in doc.tags("Component")])
return dict([(x.getElementsByTagName("Name")[0].firstChild.data, x.toxml('utf-8')) for x in doc.getElementsByTagName("Component")])
if self.parser == "ciksemel":
return dict([(x.getTagData("Name"), x.toString()) for x in doc.tags("Component")])
else:
return dict([(x.getElementsByTagName("Name")[0].firstChild.data, x.toxml('utf-8')) for x in doc.getElementsByTagName("Component")])
def has_component(self, name, repo = None):
return self.cdb.has_item(name, repo)
......
......@@ -15,6 +15,7 @@ __trans = gettext.translation('inary', fallback=True)
_ = __trans.gettext
import inary
import inary.context as ctx
import inary.db.repodb
import inary.db.itembyrepo
import inary.data.group as Group
......@@ -32,6 +33,12 @@ class GroupDB(lazydb.LazyDB):
group_nodes = {}
group_components = {}
try:
import ciksemel
self.parser = "ciksemel"
except:
self.parser = "minidom"
repodb = inary.db.repodb.RepoDB()
for repo in repodb.list_repos():
......@@ -44,17 +51,31 @@ class GroupDB(lazydb.LazyDB):
def __generate_components(self, doc):
groups = {}
for c in doc.childNodes:
if c.nodeType == c.ELEMENT_NODE and c.tagName == "Component":
group = c.getElementsByTagName("Group")[0]
if self.parser=="ciksemel":
for c in doc.tags("Component"):
group = c.getTagData("Group")
if not group:
group = "unknown"
groups.setdefault(group.firstChild.data, []).append(c.getElementsByTagName("Name")[0].firstChild.data)
groups.setdefault(group, []).append(c.getTagData("Name"))
else:
for c in doc.childNodes:
if c.nodeType == c.ELEMENT_NODE and c.tagName == "Component":
group = c.getElementsByTagName("Group")[0]
if not group:
group = "unknown"
groups.setdefault(group.firstChild.data, []).append(c.getElementsByTagName("Name")[0].firstChild.data)
return groups
def __generate_groups(self, doc):
return dict([(x.getElementsByTagName("Name")[0].firstChild.data, x.toxml()) \
for x in doc.childNodes if x.nodeType == x.ELEMENT_NODE and x.tagName == "Group"])
if self.parser=="ciksemel":
return dict([(x.getTagData("Name"), x.toString()) for x in doc.tags("Group")])
else:
return dict([(x.getElementsByTagName("Name")[0].firstChild.data, x.toxml()) \
for x in doc.childNodes if x.nodeType == x.ELEMENT_NODE and x.tagName == "Group"])
def has_group(self, name, repo = None):
return self.gdb.has_item(name, repo)
......
......@@ -19,15 +19,21 @@ import gettext
__trans = gettext.translation('inary', fallback=True)
_ = __trans.gettext
import xml.dom.minidom as minidom
# INARY
import inary
import inary.context as ctx
import inary.analyzer.dependency
import inary.data.files as Files
import inary.util
import inary.db.lazydb as lazydb
import inary.util
import inary.context as ctx
try:
import ciksemel
parser = "ciksemel"
except:
import xml.dom.minidom as minidom
parser = "minidom"
class InstallDBError(inary.Error):
pass
......@@ -92,31 +98,57 @@ class InstallDB(lazydb.LazyDB):
def __add_to_revdeps(self, package, revdeps):
metadata_xml = os.path.join(self.package_path(package), ctx.const.metadata_xml)
try:
meta_doc = minidom.parse(metadata_xml).documentElement
pkg = meta_doc.getElementsByTagName("Package")[0]
except:
pkg = None
if pkg is None:
# If package info is broken or not available, skip it.
ctx.ui.warning(_("Installation info for package '{}' is broken. "
"Reinstall it to fix this problem.").format(package))
del self.installed_db[package]
return
deps = pkg.getElementsByTagName('RuntimeDependencies')
if deps:
for dep_tag in deps:
for dep in dep_tag.childNodes:
if dep.nodeType == dep.ELEMENT_NODE and dep.tagName == "Dependency":
revdep = revdeps.setdefault(dep.childNodes[0].data, {})
revdep[package] = dep.toxml('utf-8')
for anydep in dep_tag.childNodes:
if dep.nodeType == dep.ELEMENT_NODE and dep.tagName == "AnyDependency":
for dep in anydep.getElementsByTagName ("Dependency"):
revdep = revdeps.setdefault(dep.firstChild.data, {})
revdep[package] = anydep.toxml('utf-8')
if parser=="ciksemel":
try:
meta_doc = ciksemel.parse(metadata_xml)
pkg = meta_doc.getTag("Package")
except:
pkg = None
if pkg is None:
# If package info is broken or not available, skip it.
ctx.ui.warning(_("Installation info for package '{}' is broken. "
"Reinstall it to fix this problem.").format(package))
del self.installed_db[package]
return
deps = pkg.getTag('RuntimeDependencies')
if deps:
for dep in deps.tags("Dependency"):
revdep = revdeps.setdefault(dep.firstChild().data(), {})
revdep[package] = dep.toString()
for anydep in deps.tags("AnyDependency"):
for dep in anydep.tags("Dependency"):
revdep = revdeps.setdefault(dep.firstChild().data(), {})
revdep[package] = anydep.toString()
else:
try:
meta_doc = minidom.parse(metadata_xml).documentElement
pkg = meta_doc.getElementsByTagName("Package")[0]
except:
pkg = None
if pkg is None:
# If package info is broken or not available, skip it.
ctx.ui.warning(_("Installation info for package '{}' is broken. "
"Reinstall it to fix this problem.").format(package))
del self.installed_db[package]
return
deps = pkg.getElementsByTagName('RuntimeDependencies')
if deps:
for dep_tag in deps:
for dep in dep_tag.childNodes:
if dep.nodeType == dep.ELEMENT_NODE and dep.tagName == "Dependency":
revdep = revdeps.setdefault(dep.childNodes[0].data, {})
revdep[package] = dep.toxml('utf-8')
for anydep in dep_tag.childNodes:
if dep.nodeType == dep.ELEMENT_NODE and dep.tagName == "AnyDependency":
for dep in anydep.getElementsByTagName ("Dependency"):
revdep = revdeps.setdefault(dep.firstChild.data, {})
revdep[package] = anydep.toxml('utf-8')
def __generate_revdeps(self):
revdeps = {}
......@@ -147,34 +179,56 @@ class InstallDB(lazydb.LazyDB):
return found
def __get_version(self, meta_doc):
history = meta_doc.getElementsByTagName("Package")[0].getElementsByTagName("History")[0]
version = history.getElementsByTagName("Update")[0].getElementsByTagName("Version")[0].firstChild.data
release = history.getElementsByTagName("Update")[0].getAttribute("release")[0]
if parser== "ciksemel":
history = meta_doc.getTag("Package").getTag("History")
version = history.getTag("Update").getTagData("Version")
release = history.getTag("Update").getAttribute("release")
else:
history = meta_doc.getElementsByTagName("Package")[0].getElementsByTagName("History")[0]
version = history.getElementsByTagName("Update")[0].getElementsByTagName("Version")[0].firstChild.data
release = history.getElementsByTagName("Update")[0].getAttribute("release")[0]
# TODO Remove None
return version, release, None
def __get_distro_release(self, meta_doc):
distro = meta_doc.getElementsByTagName("Package")[0].getElementsByTagName("Distribution")[0].firstChild.data
release = meta_doc.getElementsByTagName("Package")[0].getElementsByTagName("DistributionRelease")[0].firstChild.data
if parser== "ciksemel":
distro = meta_doc.getTag("Package").getTagData("Distribution")
release = meta_doc.getTag("Package").getTagData("DistributionRelease")
else:
distro = meta_doc.getElementsByTagName("Package")[0].getElementsByTagName("Distribution")[0].firstChild.data
release = meta_doc.getElementsByTagName("Package")[0].getElementsByTagName("DistributionRelease")[0].firstChild.data
return distro, release
def __get_install_tar_hash(self, meta_doc):
hash = meta_doc.getElementsByTagName("Package")[0].getElementsByTagName("InstallTarHash")[0].firstChild.data
if parser== "ciksemel":
hash = meta_doc.getTag("Package").getTagData("InstallTarHash")
else:
hash = meta_doc.getElementsByTagName("Package")[0].getElementsByTagName("InstallTarHash")[0].firstChild.data
return hash
def get_install_tar_hash(self, package):
metadata_xml = os.path.join(self.package_path(package), ctx.const.metadata_xml)
meta_doc = minidom.parse(metadata_xml).documentElement
if parser== "ciksemel":
meta_doc = ciksemel.parse(metadata_xml)
else:
meta_doc = minidom.parse(metadata_xml).documentElement
return self.__get_install_tar_hash(meta_doc)
def get_version_and_distro_release(self, package):
metadata_xml = os.path.join(self.package_path(package), ctx.const.metadata_xml)
meta_doc = minidom.parse(metadata_xml).documentElement
if parser== "ciksemel":
meta_doc = ciksemel.parse(metadata_xml)
else:
meta_doc = minidom.parse(metadata_xml).documentElement
return self.__get_version(meta_doc) + self.__get_distro_release(meta_doc)
def get_version(self, package):
metadata_xml = os.path.join(self.package_path(package), ctx.const.metadata_xml)
meta_doc = minidom.parse(metadata_xml).documentElement
if parser== "ciksemel":
meta_doc = ciksemel.parse(metadata_xml)
else:
meta_doc = minidom.parse(metadata_xml).documentElement
return self.__get_version(meta_doc)
def get_files(self, package):
......@@ -240,13 +294,22 @@ class InstallDB(lazydb.LazyDB):
return info
def __make_dependency(self, depStr):
node = minidom.parseString(depStr).documentElement
dependency = inary.analyzer.dependency.Dependency()
dependency.package = node.childNodes[0].data
#FIXME: Bir sakatlık çıkacak
if node.attributes:
attr = node.attributes[0]
dependency.__dict__[str(attr)] = node.getAttribute(str(attr))
if parser=="ciksemel":
node = ciksemel.parseString(depStr)
dependency = inary.analyzer.dependency.Dependency()
dependency.package = node.firstChild().data()
if node.attributes():
attr = node.attributes()[0]
dependency.__dict__[str(attr)] = node.getAttribute(str(attr))
else:
node = minidom.parseString(depStr).documentElement
dependency = inary.analyzer.dependency.Dependency()
dependency.package = node.childNodes[0].data
if node.attributes:
attr = node.attributes[0]
dependency.__dict__[str(attr)] = node.getAttribute(str(attr))
return dependency
def __create_dependency(self, depStr):
......
......@@ -43,7 +43,7 @@ class ItemByRepo:
for r in self.item_repos(repo):
if r in self.dbobj and item in self.dbobj[r]:
if self.compressed:
return gzip.zlib.decompress(self.dbobj[r][item]), r
return gzip.zlib.decompress(self.dbobj[r][item]).decode('utf-8') , r
else:
return self.dbobj[r][item], r
......@@ -82,7 +82,7 @@ class ItemByRepo:
if self.compressed:
for item in list(self.dbobj[r].keys()):
yield str(item), str(gzip.zlib.decompress(self.dbobj[r][item]))
yield str(item), gzip.zlib.decompress(self.dbobj[r][item]).decode('utf-8')
else:
for item in list(self.dbobj[r].keys()):
yield str(item), str(self.dbobj[r][item])
......
This diff is collapsed.
This diff is collapsed.
......@@ -13,12 +13,22 @@
import re
import gzip
import xml.dom.minidom as minidom
import inary
import inary.context as ctx
import inary.data.specfile as Specfile
import inary.db.lazydb as lazydb
import gettext
__trans = gettext.translation('inary', fallback=True)
_ = __trans.gettext
try:
import ciksemel
parser = "ciksemel"
except:
import xml.dom.minidom as minidom
parser = "minidom"
class SourceDB(lazydb.LazyDB):
def __init__(self):
......@@ -44,28 +54,45 @@ class SourceDB(lazydb.LazyDB):
sources = {}
pkgstosrc = {}
for spec in doc.childNodes:
if spec.nodeType == spec.ELEMENT_NODE and spec.tagName == "SpecFile":
src_name = spec.getElementsByTagName("Source")[0].getElementsByTagName("Name")[0].firstChild.data
sources[src_name] = gzip.zlib.compress(spec.toxml('utf-8'))
for package in spec.childNodes:
if package.nodeType == package.ELEMENT_NODE and package.tagName == "Package":
pkgstosrc[package.getElementsByTagName("Name")[0].firstChild.data] = src_name
if parser=="ciksemel":
for spec in doc.tags("SpecFile"):
src_name = spec.getTag("Source").getTagData("Name")
sources[src_name] = gzip.zlib.compress(spec.toString().encode('utf-8'))
for package in spec.tags("Package"):
pkgstosrc[package.getTagData("Name")] = src_name
else:
for spec in doc.childNodes:
if spec.nodeType == spec.ELEMENT_NODE and spec.tagName == "SpecFile":
src_name = spec.getElementsByTagName("Source")[0].getElementsByTagName("Name")[0].firstChild.data
sources[src_name] = gzip.zlib.compress(spec.toxml('utf-8'))
for package in spec.childNodes:
if package.nodeType == package.ELEMENT_NODE and package.tagName == "Package":
pkgstosrc[package.getElementsByTagName("Name")[0].firstChild.data] = src_name
return sources, pkgstosrc
def __generate_revdeps(self, doc):
revdeps = {}
for spec in doc.childNodes:
if spec.nodeType == spec.ELEMENT_NODE and spec.tagName == "SpecFile":
source = spec.getElementsByTagName("Source")[0]
name = source.getElementsByTagName("Name")[0].firstChild.data
deps = source.getElementsByTagName("BuildDependencies")
if parser=="ciksemel":
for spec in doc.tags("SpecFile"):
name = spec.getTag("Source").getTagData("Name")
deps = spec.getTag("Source").getTag("BuildDependencies")
if deps:
for sdep in deps:
for dep in sdep.childNodes:
if dep.nodeType == dep.ELEMENT_NODE and dep.tagName == "Dependency":
revdeps.setdefault(dep.childNodes[0].data, set()).add((name, dep.toxml()))
for dep in deps.tags("Dependency"):
revdeps.setdefault(dep.firstChild().data(), set()).add((name, dep.toString()))
else:
for spec in doc.childNodes:
if spec.nodeType == spec.ELEMENT_NODE and spec.tagName == "SpecFile":
source = spec.getElementsByTagName("Source")[0]
name = source.getElementsByTagName("Name")[0].firstChild.data
deps = source.getElementsByTagName("BuildDependencies")
if deps:
for sdep in deps:
for dep in sdep.childNodes:
if dep.nodeType == dep.ELEMENT_NODE and dep.tagName == "Dependency":
revdeps.setdefault(dep.childNodes[0].data, set()).add((name, dep.toxml()))
return revdeps
def list_sources(self, repo=None):
......@@ -128,12 +155,24 @@ class SourceDB(lazydb.LazyDB):
return []
rev_deps = []
for pkg, dep in rvdb:
node = minidom.parseString(dep).documentElement
dependency = inary.analyzer.dependency.Dependency()
dependency.package = node.childNodes[0].data
if node.attributes():
attr = node.attributes()[0]
dependency.__dict__[attr] = node.getAttribute(attr)
rev_deps.append((pkg, dependency))
if parser=="ciksemel":
for pkg, dep in rvdb:
node = ciksemel.parseString(dep)
dependency = inary.analyzer.dependency.Dependency()
dependency.package = node.firstChild().data()
if node.attributes():
attr = node.attributes()[0]
dependency.__dict__[attr] = node.getAttribute(attr)
rev_deps.append((pkg, dependency))
else:
for pkg, dep in rvdb:
node = minidom.parseString(dep).documentElement
dependency = inary.analyzer.dependency.Dependency()
dependency.package = node.childNodes[0].data
if node.attributes():
attr = node.attributes()[0]
dependency.__dict__[attr] = node.getAttribute(attr)
rev_deps.append((pkg, dependency))
return rev_deps
......@@ -10,6 +10,7 @@
# Please read the COPYING file.
#
import inary
import inary.context as ctx
import inary.db
def search_package(terms, lang=None, repo=None):
......
......@@ -21,13 +21,11 @@
# System
import locale
import types
import formatter
import sys
import io
import inspect
import re
import codecs
import gettext
__trans = gettext.translation('inary', fallback=True)
......@@ -528,7 +526,10 @@ class autoxml(oo.autosuper, oo.autoprop):
tag_type = spec[0]
assert type(tag_type) == type(type)
def readtext(node, blah):
node.normalize() # minidom have this :D
try:
node.normalize() # ciksemel doesn't have this
except:
pass