Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
I
inary
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
SulinOS
inary
Commits
ad562f25
Kaydet (Commit)
ad562f25
authored
Nis 22, 2018
tarafından
Suleyman Poyraz
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
Rewrited ugly looking db library with xmlext
üst
c9fb1883
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
170 additions
and
261 deletions
+170
-261
listsources.py
inary/cli/listsources.py
+5
-2
componentdb.py
inary/db/componentdb.py
+21
-33
groupdb.py
inary/db/groupdb.py
+13
-26
installdb.py
inary/db/installdb.py
+68
-95
packagedb.py
inary/db/packagedb.py
+24
-63
sourcedb.py
inary/db/sourcedb.py
+17
-41
xmlext_iks.py
inary/sxml/xmlext_iks.py
+10
-0
xmlext_minidom.py
inary/sxml/xmlext_minidom.py
+9
-0
xmlfile_iks.py
inary/sxml/xmlfile_iks.py
+1
-1
xmlfile_minidom.py
inary/sxml/xmlfile_minidom.py
+2
-0
No files found.
inary/cli/listsources.py
Dosyayı görüntüle @
ad562f25
...
...
@@ -45,6 +45,10 @@ Gives a brief list of sources published in the repositories.
self
.
init
(
database
=
True
,
write
=
False
)
l
=
self
.
sourcedb
.
list_sources
()
if
l
:
maxlen
=
max
([
len
(
_p
)
for
_p
in
l
])
l
.
sort
()
for
p
in
l
:
sf
,
repo
=
self
.
sourcedb
.
get_spec_repo
(
p
)
...
...
@@ -52,8 +56,7 @@ Gives a brief list of sources published in the repositories.
ctx
.
ui
.
info
(
'[Repository: '
+
repo
+
']'
)
ctx
.
ui
.
info
(
str
(
sf
.
source
))
else
:
lenp
=
len
(
p
)
#if p in installed_list:
# p = util.colorize(p, 'cyan')
p
=
p
+
' '
*
max
(
0
,
15
-
lenp
)
sf
.
source
.
name
+=
' '
*
max
(
0
,
maxlen
-
len
(
p
)
)
ctx
.
ui
.
info
(
'{0} - {1}'
.
format
(
sf
.
source
.
name
,
str
(
sf
.
source
.
summary
)))
inary/db/componentdb.py
Dosyayı görüntüle @
ad562f25
...
...
@@ -20,17 +20,12 @@ import inary.db.repodb
import
inary.db.itembyrepo
import
inary.data.component
as
Component
import
inary.db.lazydb
as
lazydb
import
inary.sxml
from
inary.sxml
import
autoxml
,
xmlext
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
=
{}
...
...
@@ -49,42 +44,35 @@ 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
=
{}
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
)
packages
=
xmlext
.
getTagByName
(
doc
,
"Package"
)
for
pkg
in
packages
:
name
=
xmlext
.
getNodeText
(
pkg
,
"Name"
)
partof
=
xmlext
.
getNodeText
(
pkg
,
"PartOf"
)
components
.
setdefault
(
partof
,
[])
.
append
(
name
)
return
components
def
__generate_sources
(
self
,
doc
):
components
=
{}
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
)
specfile
=
xmlext
.
getTagByName
(
doc
,
"SpecFile"
)
for
spec
in
specfile
:
source
=
xmlext
.
getNode
(
spec
,
"Source"
)
name
=
xmlext
.
getNodeText
(
source
,
"Name"
)
partof
=
xmlext
.
getNodeText
(
source
,
"PartOf"
)
components
.
setdefault
(
partof
,
[])
.
append
(
name
)
return
components
def
__generate_components
(
self
,
doc
):
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"
)])
components
=
{}
component
=
xmlext
.
getTagByName
(
doc
,
"Component"
)
for
comp
in
component
:
name
=
xmlext
.
getNodeText
(
comp
,
"Name"
)
components
[
name
]
=
xmlext
.
toString
(
comp
)
return
components
def
has_component
(
self
,
name
,
repo
=
None
):
return
self
.
cdb
.
has_item
(
name
,
repo
)
...
...
@@ -98,7 +86,7 @@ class ComponentDB(lazydb.LazyDB):
redesc
=
'<Description xml:lang="({0}|en)">.*?{1}.*?</Description>'
if
not
lang
:
lang
=
inary
.
sxml
.
autoxml
.
LocalText
.
get_lang
()
lang
=
autoxml
.
LocalText
.
get_lang
()
found
=
[]
for
name
,
xml
in
self
.
cdb
.
get_items_iter
(
repo
):
if
name
not
in
found
and
terms
==
[
term
for
term
in
terms
if
re
.
compile
(
rename
.
format
(
lang
,
term
),
re
.
I
)
.
search
(
xml
)
or
\
...
...
inary/db/groupdb.py
Dosyayı görüntüle @
ad562f25
...
...
@@ -19,6 +19,8 @@ import inary.db.repodb
import
inary.db.itembyrepo
import
inary.data.group
as
Group
import
inary.db.lazydb
as
lazydb
from
inary.sxml
import
xmlext
class
GroupNotFound
(
Exception
):
pass
...
...
@@ -32,12 +34,6 @@ 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
():
...
...
@@ -50,31 +46,22 @@ class GroupDB(lazydb.LazyDB):
def
__generate_components
(
self
,
doc
):
groups
=
{}
components
=
xmlext
.
getTagByName
(
doc
,
"Component"
)
for
comp
in
components
:
group
=
xmlext
.
getNodeText
(
comp
,
"Group"
)
name
=
xmlext
.
getNodeText
(
comp
,
"Name"
)
groups
.
setdefault
(
group
,
[])
.
append
(
name
)
if
self
.
parser
==
"ciksemel"
:
for
c
in
doc
.
tags
(
"Component"
):
group
=
c
.
getTagData
(
"Group"
)
if
not
group
:
group
=
"unknown"
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
):
groups
=
{}
group
=
xmlext
.
getTagByName
(
doc
,
"Group"
)
for
gr
in
group
:
name
=
xmlext
.
getNodeText
(
gr
,
"Name"
)
groups
[
name
]
=
xmlext
.
toString
(
gr
)
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"
])
return
groups
def
has_group
(
self
,
name
,
repo
=
None
):
return
self
.
gdb
.
has_item
(
name
,
repo
)
...
...
inary/db/installdb.py
Dosyayı görüntüle @
ad562f25
...
...
@@ -25,16 +25,9 @@ import inary.context as ctx
import
inary.data
import
inary.data.files
as
Files
import
inary.db.lazydb
as
lazydb
import
inary.sxml
from
inary.sxml
import
autoxml
,
xmlext
import
inary.util
try
:
import
ciksemel
parser
=
"ciksemel"
except
:
import
xml.dom.minidom
as
minidom
parser
=
"minidom"
class
InstallDBError
(
inary
.
errors
.
Error
):
pass
...
...
@@ -99,57 +92,31 @@ class InstallDB(lazydb.LazyDB):
def
__add_to_revdeps
(
self
,
package
,
revdeps
):
metadata_xml
=
os
.
path
.
join
(
self
.
package_path
(
package
),
ctx
.
const
.
metadata_xml
)
meta_doc
=
xmlext
.
parse
(
metadata_xml
)
try
:
pkg
=
xmlext
.
getNode
(
meta_doc
,
"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
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
()
deps
=
xmlext
.
getTagByName
(
meta_doc
,
'RuntimeDependencies'
)
if
deps
:
for
dep
in
xmlext
.
getTagByName
(
deps
,
'Dependency'
):
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'
)
revdep
=
revdeps
.
setdefault
(
xmlext
.
getNodeText
(
dep
),
{})
revdep
[
package
]
=
xmlext
.
toString
(
dep
)
for
anydep
in
xmlext
.
getTagByName
(
deps
,
'AnyDependency'
):
for
dep
in
xmlext
.
getTagByName
(
anydep
,
'Dependency'
):
revdep
=
revdeps
.
setdefault
(
xmlext
.
getNodeText
(
dep
),
{})
revdep
[
package
]
=
xmlext
.
toString
(
anydep
)
def
__generate_revdeps
(
self
):
revdeps
=
{}
...
...
@@ -180,56 +147,63 @@ class InstallDB(lazydb.LazyDB):
return
found
def
__get_version
(
self
,
meta_doc
):
if
parser
==
"ciksemel"
:
history
=
meta_doc
.
getTag
(
"Package"
)
.
getTag
(
"History"
)
version
=
history
.
getTag
(
"Update"
)
.
getTagData
(
"Version"
)
release
=
history
.
getTag
(
"Update"
)
.
getAttribute
(
"release"
)
package
=
xmlext
.
getNode
(
meta_doc
,
'Package'
)
update
=
xmlext
.
getNode
(
meta_doc
,
'Update'
)
history
=
xmlext
.
getNodeText
(
package
,
'History'
)
version
=
xmlext
.
getNodeText
(
update
,
'Version'
)
release
=
xmlext
.
getNodeText
(
update
,
'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
):
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
package
=
xmlext
.
getNode
(
meta_doc
,
'Package'
)
distro
=
xmlext
.
getNodeText
(
package
,
'Distribution'
)
release
=
xmlext
.
getNodeText
(
package
,
'DistributionRelease'
)
return
distro
,
release
def
__get_install_tar_hash
(
self
,
meta_doc
):
if
parser
==
"ciksemel"
:
hash
=
meta_doc
.
getTag
(
"Package"
)
.
getTagData
(
"InstallTarHash"
)
else
:
hash
=
meta_doc
.
getElementsByTagName
(
"Package"
)[
0
]
.
getElementsByTagName
(
"InstallTarHash"
)[
0
]
.
firstChild
.
data
package
=
xmlext
.
getNode
(
meta_doc
,
'Package'
)
hash
=
xmlext
.
getNodeText
(
package
,
'InstallTarHash'
)
return
hash
def
get_install_tar_hash
(
self
,
package
):
metadata_xml
=
os
.
path
.
join
(
self
.
package_path
(
package
),
ctx
.
const
.
metadata_xml
)
if
parser
==
"ciksemel"
:
try
:
import
ciksemel
meta_doc
=
ciksemel
.
parse
(
metadata_xml
)
else
:
except
:
import
xml.dom.minidom
as
minidom
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
)
if
parser
==
"ciksemel"
:
try
:
import
ciksemel
meta_doc
=
ciksemel
.
parse
(
metadata_xml
)
else
:
except
:
import
xml.dom.minidom
as
minidom
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
)
if
parser
==
"ciksemel"
:
try
:
import
ciksemel
meta_doc
=
ciksemel
.
parse
(
metadata_xml
)
else
:
except
:
import
xml.dom.minidom
as
minidom
meta_doc
=
minidom
.
parse
(
metadata_xml
)
.
documentElement
return
self
.
__get_version
(
meta_doc
)
def
get_files
(
self
,
package
):
...
...
@@ -257,7 +231,7 @@ class InstallDB(lazydb.LazyDB):
if
not
fields
:
fields
=
{
'name'
:
True
,
'summary'
:
True
,
'desc'
:
True
}
if
not
lang
:
lang
=
inary
.
sxml
.
autoxml
.
LocalText
.
get_lang
()
lang
=
autoxml
.
LocalText
.
get_lang
()
found
=
[]
for
name
in
self
.
list_installed
():
xml
=
open
(
os
.
path
.
join
(
self
.
package_path
(
name
),
ctx
.
const
.
metadata_xml
))
.
read
()
...
...
@@ -295,21 +269,20 @@ class InstallDB(lazydb.LazyDB):
return
info
def
__make_dependency
(
self
,
depStr
):
if
parser
==
"ciksemel"
:
try
:
import
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
:
except
:
import
xml.dom.minidom
as
minidom
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
))
dependency
=
inary
.
analyzer
.
dependency
.
Dependency
()
dependency
.
package
=
xmlext
.
getNodeText
(
node
)
if
xmlext
.
getAttributeList
(
node
):
attr
=
xmlext
.
getAttributeList
(
node
)[
0
]
dependency
.
__dict__
[
str
(
attr
)]
=
xmlext
.
getNodeAttribute
(
node
.
str
(
attr
))
return
dependency
...
...
inary/db/packagedb.py
Dosyayı görüntüle @
ad562f25
...
...
@@ -22,19 +22,12 @@ import inary.analyzer.dependency
import
inary.db.itembyrepo
import
inary.db.lazydb
as
lazydb
import
inary.context
as
ctx
from
inary.sxml
import
xmlext
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
PackageDB
(
lazydb
.
LazyDB
):
def
__init__
(
self
):
...
...
@@ -64,72 +57,40 @@ class PackageDB(lazydb.LazyDB):
## Generate functions look sooo ugly
def
__generate_replaces
(
self
,
doc
):
if
parser
==
"ciksemel"
:
return
[
x
.
getTagData
(
"Name"
)
for
x
in
doc
.
tags
(
"Package"
)
if
x
.
getTagData
(
"Replaces"
)]
else
:
return
[
node
.
getElementsByTagName
(
"Name"
)[
0
]
.
firstChild
.
data
\
for
node
in
doc
.
childNodes
\
if
node
.
nodeType
==
node
.
ELEMENT_NODE
and
\
node
.
tagName
==
"Package"
and
\
node
.
getElementsByTagName
(
"Replaces"
)]
replaces
=
[]
packages
=
xmlext
.
getTagByName
(
doc
,
"Package"
)
for
node
in
packages
:
if
xmlext
.
getNodeText
(
node
,
"Replaces"
):
replaces
.
append
(
xmlext
.
getNodeText
(
node
,
"Name"
))
return
replaces
def
__generate_obsoletes
(
self
,
doc
):
if
parser
==
"ciksemel"
:
distribution
=
doc
.
getTag
(
"Distribution"
)
obsoletes
=
distribution
and
distribution
.
getTag
(
"Obsoletes"
)
src_repo
=
doc
.
getTag
(
"SpecFile"
)
is
not
None
if
not
obsoletes
or
src_repo
:
return
[]
return
[
x
.
firstChild
()
.
data
()
for
x
in
obsoletes
.
tags
(
"Package"
)]
else
:
distribution
=
doc
.
getElementsByTagName
(
"Distribution"
)[
0
]
obsoletes
=
distribution
and
distribution
.
getElementsByTagName
(
"Obsoletes"
)[
0
]
try
:
src_repo
=
doc
.
getElementsByTagName
(
"SpecFile"
)[
0
]
except
:
src_repo
=
None
distribution
=
xmlext
.
getNode
(
doc
,
"Distribution"
)
obsoletes
=
distribution
and
xmlext
.
getNode
(
distribution
,
"Obsoletes"
)
src_repo
=
xmlext
.
getNode
(
doc
,
"SpecFile"
)
is
not
None
if
not
obsoletes
or
src_repo
:
return
[]
return
[
x
.
childNodes
[
0
]
.
data
for
x
in
obsoletes
.
getElementsByTagName
(
"Package"
)]
if
not
obsoletes
or
src_repo
:
return
[]
return
[
xmlext
.
getNodeText
(
x
)
for
x
in
xmlext
.
getTagByName
(
obsolates
,
"Package"
)]
def
__generate_packages
(
self
,
doc
):
pdict
=
{}
if
parser
==
"ciksemel"
:
for
x
in
doc
.
tags
(
"Package"
):
pdict
[
x
.
getTagData
(
"Name"
)]
=
gzip
.
zlib
.
compress
(
x
.
toString
()
.
encode
(
'utf-8'
))
else
:
for
node
in
doc
.
childNodes
:
if
node
.
nodeType
==
node
.
ELEMENT_NODE
and
node
.
tagName
==
"Package"
:
name
=
node
.
getElementsByTagName
(
'Name'
)[
0
]
.
firstChild
.
data
pdict
[
name
]
=
gzip
.
zlib
.
compress
(
node
.
toxml
(
'utf-8'
))
for
x
in
xmlext
.
getTagByName
(
doc
,
"Package"
)
:
name
=
xmlext
.
getNodeText
(
x
,
"Name"
)
compressed_data
=
gzip
.
zlib
.
compress
(
xmlext
.
toString
(
x
)
.
encode
(
'utf-8'
))
pdict
[
name
]
=
compressed_
data
return
pdict
def
__generate_revdeps
(
self
,
doc
):
revdeps
=
{}
if
parser
==
"ciksemel"
:
for
node
in
doc
.
tags
(
"Package"
):
name
=
node
.
getTagData
(
'Name'
)
deps
=
node
.
getTag
(
'RuntimeDependencies'
)
if
deps
:
for
dep
in
deps
.
tags
(
"Dependency"
):
revdeps
.
setdefault
(
dep
.
firstChild
()
.
data
(),
set
())
.
add
((
name
,
dep
.
toString
()))
else
:
for
node
in
doc
.
childNodes
:
if
node
.
nodeType
==
node
.
ELEMENT_NODE
and
node
.
tagName
==
"Package"
:
name
=
node
.
getElementsByTagName
(
'Name'
)[
0
]
.
firstChild
.
data
deps
=
node
.
getElementsByTagName
(
'RuntimeDependencies'
)
if
deps
:
for
dep
in
deps
:
for
i
in
dep
.
getElementsByTagName
(
'Dependency'
):
revdeps
.
setdefault
(
i
.
firstChild
.
data
,
set
())
.
add
((
name
,
i
.
toxml
(
'utf-8'
)))
for
node
in
xmlext
.
getTagByName
(
doc
,
"Package"
):
name
=
xmlext
.
getNodeText
(
node
,
'Name'
)
deps
=
xmlext
.
getNode
(
node
,
'RuntimeDependencies'
)
if
deps
:
for
dep
in
xmlext
.
getTagByName
(
deps
,
"Dependency"
):
revdeps
.
setdefault
(
xmlext
.
getNodeText
(
dep
),
set
())
.
add
((
name
,
xmlext
.
toString
(
dep
)))
return
revdeps
...
...
inary/db/sourcedb.py
Dosyayı görüntüle @
ad562f25
...
...
@@ -18,19 +18,12 @@ import inary.context as ctx
import
inary.data.specfile
as
Specfile
import
inary.db
import
inary.db.lazydb
as
lazydb
import
inary.sxml
from
inary.sxml
import
autoxml
,
xmlext
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
):
...
...
@@ -56,45 +49,28 @@ class SourceDB(lazydb.LazyDB):
sources
=
{}
pkgstosrc
=
{}
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
for
spec
in
xmlext
.
getTagByName
(
doc
,
"SpecFile"
):
src
=
xmlext
.
getNodeText
(
spec
,
"Source"
)
src_name
=
xmlext
.
getNodeText
(
src
,
"Name"
)
compressed_data
=
gzip
.
zlib
.
compress
(
xmlext
.
toString
(
spec
)
.
encode
(
'utf-8'
))
sources
[
src_name
]
=
gzip
.
zlib
.
compress
(
compressed_data
)
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
for
package
in
xmlext
.
getTagByName
(
doc
,
"Package"
):
pkgstosrc
[
xmlext
.
getNodeText
(
package
,
"Name"
)]
=
src_name
return
sources
,
pkgstosrc
def
__generate_revdeps
(
self
,
doc
):
revdeps
=
{}
if
parser
==
"ciksemel"
:
for
spec
in
doc
.
tags
(
"SpecFile"
):
name
=
spec
.
getTag
(
"Source"
)
.
getTagData
(
"Name"
)
deps
=
spec
.
getTag
(
"Source"
)
.
getTag
(
"BuildDependencies"
)
if
deps
:
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
()))
for
spec
in
xmlext
.
getTagByName
(
doc
,
"SpecFile"
):
src
=
xmlext
.
getNodeText
(
spec
,
"Source"
)
name
=
xmlext
.
getNodeText
(
src
,
"Name"
)
deps
=
xmlext
.
getNode
(
src
,
"BuildDependencies"
)
if
deps
:
for
dep
in
xmlext
.
getTagByName
(
deps
,
"Dependency"
):
revdeps
.
setdefault
(
xmlext
.
getNodeText
(
dep
,
set
()))
.
add
((
name
,
xmlext
.
toString
(
dep
)))
return
revdeps
def
list_sources
(
self
,
repo
=
None
):
...
...
@@ -129,7 +105,7 @@ class SourceDB(lazydb.LazyDB):
if
not
fields
:
fields
=
{
'name'
:
True
,
'summary'
:
True
,
'desc'
:
True
}
if
not
lang
:
lang
=
inary
.
sxml
.
autoxml
.
LocalText
.
get_lang
()
lang
=
autoxml
.
LocalText
.
get_lang
()
found
=
[]
for
name
,
xml
in
self
.
sdb
.
get_items_iter
(
repo
):
if
terms
==
[
term
for
term
in
terms
if
(
fields
[
'name'
]
and
\
...
...
inary/sxml/xmlext_iks.py
Dosyayı görüntüle @
ad562f25
...
...
@@ -52,6 +52,9 @@ def getNodeAttribute(node, attrname):
"""get named attribute from DOM node"""
return
node
.
getAttribute
(
attrname
)
def
getAttributeList
(
node
):
return
node
.
attributes
()
def
setNodeAttribute
(
node
,
attrname
,
value
):
"""get named attribute from DOM node"""
return
node
.
setAttribute
(
attrname
,
value
)
...
...
@@ -69,6 +72,7 @@ def getNodeText(node, tagpath = ""):
node
=
getNode
(
node
,
tagpath
)
if
not
node
:
return
None
child
=
node
.
firstChild
()
if
not
child
:
return
None
...
...
@@ -167,3 +171,9 @@ def addText(node, tagpath, text):
def
newNode
(
node
,
tag
):
return
iks
.
newDocument
(
tag
)
def
toString
(
node
):
return
node
.
toString
()
def
toPretty
(
node
):
return
node
.
toPrettyString
()
inary/sxml/xmlext_minidom.py
Dosyayı görüntüle @
ad562f25
...
...
@@ -67,6 +67,9 @@ def getNodeAttribute(node, attrname):
return
None
return
node
.
getAttribute
(
attrname
)
def
getAttributeList
(
node
):
return
node
.
attributes
def
setNodeAttribute
(
node
,
attrname
,
value
):
"""get named attribute from DOM node"""
return
node
.
setAttribute
(
attrname
,
value
)
...
...
@@ -183,3 +186,9 @@ def addText(node, tagPath, text, branch = True):
def
newNode
(
node
,
tag
):
return
node
.
ownerDocument
.
createElement
(
tag
)
def
toString
(
node
):
return
node
.
toxml
(
'utf-8'
)
def
toPretty
(
node
):
return
node
.
toprettyxml
()
inary/sxml/xmlfile_iks.py
Dosyayı görüntüle @
ad562f25
...
...
@@ -29,7 +29,7 @@ _ = __trans.gettext
import
io
import
ciksemel
as
iks
import
inary.
file
import
inary.
errors
import
inary.config
from
inary.file
import
File
from
inary.util
import
join_path
as
join
...
...
inary/sxml/xmlfile_minidom.py
Dosyayı görüntüle @
ad562f25
...
...
@@ -29,6 +29,8 @@ import io
import
xml.dom.minidom
as
minidom
from
xml.parsers.expat
import
ExpatError
import
inary.errors
import
inary.config
from
inary.file
import
File
from
inary.util
import
join_path
as
join
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment