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
a4fea6f6
Kaydet (Commit)
a4fea6f6
authored
Mar 13, 2018
tarafından
Suleyman Poyraz
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
Fixed database libraries are work weel. But repodb not work now. Should looking up.
üst
10558bc0
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
253 additions
and
28 deletions
+253
-28
componentdb.py
inary/db/componentdb.py
+11
-9
db
inary/db/db
+206
-0
packagedb.py
inary/db/packagedb.py
+17
-8
repodb.py
inary/db/repodb.py
+18
-10
sourcedb.py
inary/db/sourcedb.py
+1
-1
No files found.
inary/db/componentdb.py
Dosyayı görüntüle @
a4fea6f6
...
...
@@ -45,19 +45,21 @@ class ComponentDB(lazydb.LazyDB):
def
__generate_packages
(
self
,
doc
):
components
=
{}
for
pkg
in
doc
.
getElementsByTagName
(
"Package"
):
partOf
=
pkg
.
getElementsByTagName
(
"PartOf"
)[
0
]
.
firstChild
.
data
pkgName
=
pkg
.
getElementsByTagName
(
"Name"
)[
0
]
.
firstChild
.
data
components
.
setdefault
(
partOf
,
[])
.
append
(
pkgName
)
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
.
getElementsByTagName
(
"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
)
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
):
...
...
inary/db/db
0 → 100644
Dosyayı görüntüle @
a4fea6f6
Mon Mar 12 17:21:59 2018 +0300 5052192f Son bir şans daha versen sevgilim... [Suleyman Poyraz]
diff --git a/inary/db/repodb.py b/inary/db/repodb.py
index 1ed56b04..5aa219a9 100644
--- a/inary/db/repodb.py
+++ b/inary/db/repodb.py
@@ -16,7 +16,8 @@ _ = __trans.gettext
import os
-import ciksemel
+import xml.dom.minidom as minidom
+from xml.parsers.expat import ExpatError
import inary
import inary.uri
@@ -47,33 +48,39 @@ class RepoOrder:
repo_doc = self._get_doc()
try:
- node = [x for x in repo_doc.tags("Repo")][-1]
- repo_node = node.appendTag("Repo")
- except IndexError:
- repo_node = repo_doc.insertTag("Repo")
+ #FIXME:Burada bir sakatlık çıkacak
+ node = [x for x in repo_doc.getElementsByTagName("Repo")][-1]
+ repo_node = node.createElement("Repo")
+ except ExpatError as err:
+ raise("Can not created Repo tag: {}".format(err))
- name_node = repo_node.insertTag("Name")
- name_node.insertData(repo_name)
+ name_node = repo_node.createElement("Name")
+ name_node.appendChild(node.createTextNode(repo_name))
+ repo_node.appendChild(name_node)
- url_node = repo_node.insertTag("Url")
- url_node.insertData(repo_url)
+ url_node = repo_node.createElement("Url")
+ url_node.appendChild(node.createTextNode(repo_url))
+ repo_node.appendChild(url_node)
- name_node = repo_node.insertTag("Status")
- name_node.insertData("active")
+ status_node = repo_node.createElement("Status")
+ status_node.appendChild(node.createTextNode("active"))
+ repo_node.appendChild(status_node)
- media_node = repo_node.insertTag("Media")
- media_node.insertData(repo_type)
+ media_node = repo_node.createElement("Media")
+ media_node.appendChild(node.createTextNode(repo_type))
+ repo_node.appendChild(media_node)
self._update(repo_doc)
def set_status(self, repo_name, status):
repo_doc = self._get_doc()
- for r in repo_doc.tags("Repo"):
- if r.getTagData("Name") == repo_name:
- status_node = r.getTag("Status")
+ for r in repo_doc.getElementsByTagName("Repo"):
+ if r.getElementsByTagName("Name")[0].firstChild.data == repo_name:
+ status_node = r.getElementsByTagName("Status")[0].firstChild.data
+ #FIXME: Program burda göt olacak
if status_node:
- status_node.firstChild().hide()
+ status_node.childNodes[0].hide()
status_node.insertData(status)
else:
status_node = r.insertTag("Status")
@@ -83,11 +90,11 @@ class RepoOrder:
def get_status(self, repo_name):
repo_doc = self._get_doc()
- for r in repo_doc.tags("Repo"):
- if r.getTagData("Name") == repo_name:
- status_node = r.getTag("Status")
+ for r in repo_doc.getElementsByTagName("Repo"):
+ if r.getElementsByTagName("Name")[0].firstChild.data == repo_name:
+ status_node = r.getElementsByTagName("Status").firstChild.data
if status_node:
- status = status_node.firstChild().data()
+ status = status_node.childNodes[0].data
if status in ["active", "inactive"]:
return status
return "inactive"
@@ -95,8 +102,8 @@ class RepoOrder:
def remove(self, repo_name):
repo_doc = self._get_doc()
- for r in repo_doc.tags("Repo"):
- if r.getTagData("Name") == repo_name:
+ for r in repo_doc.getElementsByTagName("Repo"):
+ if r.getElementsByTagName("Name")[0].firstChild.data == repo_name:
r.hide()
self._update(repo_doc)
@@ -113,7 +120,7 @@ class RepoOrder:
def _update(self, doc):
repos_file = os.path.join(ctx.config.info_dir(), ctx.const.repos)
- open(repos_file, "w").write("{}\n".format(doc.toPrettyString()))
+ open(repos_file, "w").write("{}\n".format(doc.toprettyxml()))
self._doc = None
self.repos = self._get_repos()
@@ -121,9 +128,11 @@ class RepoOrder:
if self._doc is None:
repos_file = os.path.join(ctx.config.info_dir(), ctx.const.repos)
if os.path.exists(repos_file):
- self._doc = ciksemel.parse(repos_file)
+ self._doc = minidom.parse(repos_file).documentElement
else:
- self._doc = ciksemel.newDocument("REPOS")
+ impl = minidom.getDOMImplementation()
+ dom = impl.createDocument(None, "REPOS", None)
+ self._doc = dom.documentElement
return self._doc
@@ -131,10 +140,10 @@ class RepoOrder:
repo_doc = self._get_doc()
order = {}
- for r in repo_doc.tags("Repo"):
- media = r.getTagData("Media")
- name = r.getTagData("Name")
- status = r.getTagData("Status")
+ for r in repo_doc.getElementsByTagName("Repo"):
+ media = r.getElementsByTagName("Media")[0].firstChild.data
+ name = r.getElementsByTagName("Name")[0].firstChild.data
+ status = r.getElementsByTagName("Status")[0].firstChild.data
order.setdefault(media, []).append(name)
return order
@@ -166,11 +175,13 @@ class RepoDB(lazydb.LazyDB):
if not os.path.exists(index_path):
ctx.ui.warning(_("{} repository needs to be updated").format(repo_name))
- return ciksemel.newDocument("INARY")
+ impl = minidom.getDOMImplementation()
+ dom = impl.createDocument(None, "INARY", None)
+ return dom.documentElement
try:
- return ciksemel.parse(index_path)
- except Exception as e:
+ return minidom.parse(index_path)
+ except ExpatError as e:
raise RepoError(_("Error parsing repository index information. Index file does not exist or is malformed."))
def get_repo(self, repo):
@@ -196,25 +207,25 @@ class RepoDB(lazydb.LazyDB):
def get_source_repos(self, only_active=True):
repos = []
for r in self.list_repos(only_active):
- if self.get_repo_doc(r).getTag("SpecFile"):
+ if self.get_repo_doc(r).getElementsByTagName("SpecFile")[0]:
repos.append(r)
return repos
def get_binary_repos(self, only_active=True):
repos = []
for r in self.list_repos(only_active):
- if not self.get_repo_doc(r).getTag("SpecFile"):
+ if not self.get_repo_doc(r).getElementsByTagName("SpecFile")[0]:
repos.append(r)
return repos
- def list_repos(self, only_active=True):
+ def list_repos(self, only_active=True):
temp = []
for x in self.repoorder.get_order():
if not only_active:
temp.append(x)
elif self.repo_active(x) == True:
temp.append(x)
- return temp
+ return temp
def list_repo_urls(self, only_active=True):
repos = []
@@ -241,13 +252,13 @@ class RepoDB(lazydb.LazyDB):
def get_distribution(self, name):
doc = self.get_repo_doc(name)
- distro = doc.getTag("Distribution")
- return distro and distro.getTagData("SourceName")
+ distro = doc.getElementsByTagName("Distribution")[0]
+ return distro.firstChild.data and distro.getElementsByTagName("SourceName")[0].firstChild.data
def get_distribution_release(self, name):
doc = self.get_repo_doc(name)
- distro = doc.getTag("Distribution")
- return distro and distro.getTagData("Version")
+ distro = doc.getElementsByTagName("Distribution")[0]
+ return distro.firstChild.data and distro.getElementsByTagName("Version")[0].firstChild.data
def check_distribution(self, name):
if ctx.get_option('ignore_check'):
@@ -268,4 +279,3 @@ class RepoDB(lazydb.LazyDB):
self.deactivate_repo(name)
raise IncompatibleRepoError(
_("Repository '{}' is not compatible with your distribution. Repository is disabled.").format(name))
-
inary/db/packagedb.py
Dosyayı görüntüle @
a4fea6f6
...
...
@@ -53,15 +53,21 @@ class PackageDB(lazydb.LazyDB):
self
.
odb
=
inary
.
db
.
itembyrepo
.
ItemByRepo
(
self
.
__obsoletes
)
self
.
rpdb
=
inary
.
db
.
itembyrepo
.
ItemByRepo
(
self
.
__replaces
)
## Generate functions look sooo ugly
def
__generate_replaces
(
self
,
doc
):
for
x
in
doc
.
getElementsByTagName
(
"Package"
):
if
x
.
getElementsByTagName
(
"Replaces"
):
return
x
.
getElementsByTagName
(
"Name"
)[
0
]
.
firstChild
.
data
for
node
in
doc
.
childNodes
:
if
node
.
nodeType
==
node
.
ELEMENT_NODE
and
node
.
tagName
==
"Package"
:
if
node
.
getElementsByTagName
(
"Replaces"
):
node
.
getElementsByTagName
(
"Name"
)[
0
]
.
firstChild
.
data
def
__generate_obsoletes
(
self
,
doc
):
distribution
=
doc
.
getElementsByTagName
(
"Distribution"
)[
0
]
obsoletes
=
distribution
and
distribution
.
getElementsByTagName
(
"Obsoletes"
)[
0
]
src_repo
=
doc
.
getElementsByTagName
(
"SpecFile"
)[
0
]
is
not
None
try
:
src_repo
=
doc
.
getElementsByTagName
(
"SpecFile"
)[
0
]
except
:
src_repo
=
None
if
not
obsoletes
or
src_repo
:
return
[]
...
...
@@ -70,8 +76,10 @@ class PackageDB(lazydb.LazyDB):
def
__generate_packages
(
self
,
doc
):
pdict
=
{}
for
x
in
doc
.
getElementsByTagName
(
"Package"
):
pdict
[
x
.
getElementsByTagName
(
"Name"
)[
0
]
.
firstChild
.
data
]
=
gzip
.
zlib
.
compress
(
x
.
toxml
(
'utf-8'
))
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'
))
return
pdict
def
__generate_revdeps
(
self
,
doc
):
...
...
@@ -81,8 +89,9 @@ class PackageDB(lazydb.LazyDB):
name
=
node
.
getElementsByTagName
(
'Name'
)[
0
]
.
firstChild
.
data
deps
=
node
.
getElementsByTagName
(
'RuntimeDependencies'
)
if
deps
:
for
dep
in
deps
.
getElementsByTagName
(
"Dependency"
):
revdeps
.
setdefault
(
dep
.
childNodes
[
0
]
.
data
,
set
())
.
add
((
name
,
dep
.
toxml
(
'utf-8'
)))
for
dep
in
deps
:
for
i
in
dep
.
getElementsByTagName
(
'Dependency'
):
revdeps
.
setdefault
(
i
.
firstChild
.
data
,
set
())
.
add
((
name
,
i
.
toxml
(
'utf-8'
)))
return
revdeps
...
...
inary/db/repodb.py
Dosyayı görüntüle @
a4fea6f6
...
...
@@ -25,6 +25,7 @@ import inary.util
import
inary.context
as
ctx
import
inary.db.lazydb
as
lazydb
from
inary.file
import
File
import
inary.sxml.xmlext
as
xmlext
class
RepoError
(
inary
.
Error
):
pass
...
...
@@ -49,10 +50,11 @@ class RepoOrder:
try
:
#FIXME:Burada bir sakatlık çıkacak
node
=
[
x
for
x
in
repo_doc
.
getElementsByTagName
(
"Repo"
)][
-
1
]
repo_node
=
node
.
createElement
(
"Repo"
)
except
ExpatError
as
err
:
raise
(
"Can not created Repo tag: {}"
.
format
(
err
))
#2018-03-12 dedim ama ben gunler oncesinden dedim
node
=
[
x
for
x
in
repo_doc
.
childNodes
if
x
.
nodeType
==
x
.
ELEMENT_NODE
and
x
.
tagName
==
"Repo"
][
-
1
]
repo_node
=
repo_doc
.
appendChild
(
node
.
createElement
(
"Repo"
))
except
Exception
:
repo_node
=
repo_doc
.
appendChild
(
repo_doc
.
createElement
(
"Repo"
))
name_node
=
repo_node
.
createElement
(
"Name"
)
name_node
.
appendChild
(
node
.
createTextNode
(
repo_name
))
...
...
@@ -77,10 +79,10 @@ class RepoOrder:
for
r
in
repo_doc
.
getElementsByTagName
(
"Repo"
):
if
r
.
getElementsByTagName
(
"Name"
)[
0
]
.
firstChild
.
data
==
repo_name
:
status_node
=
r
.
getElementsByTagName
(
"Status"
)[
0
]
.
firstChild
.
data
#FIXME: Program burda göt olacak
status_node
=
r
.
getElementsByTagName
(
"Status"
)[
0
]
print
(
dir
(
status_node
))
if
status_node
:
status_node
.
childNodes
[
0
]
.
hide
()
status_node
.
childNodes
[
0
]
.
data
status_node
.
insertData
(
status
)
else
:
status_node
=
r
.
insertTag
(
"Status"
)
...
...
@@ -104,7 +106,7 @@ class RepoOrder:
for
r
in
repo_doc
.
getElementsByTagName
(
"Repo"
):
if
r
.
getElementsByTagName
(
"Name"
)[
0
]
.
firstChild
.
data
==
repo_name
:
r
.
hide
(
)
r
epo_doc
.
removeChild
(
r
)
self
.
_update
(
repo_doc
)
...
...
@@ -180,7 +182,7 @@ class RepoDB(lazydb.LazyDB):
return
dom
.
documentElement
try
:
return
minidom
.
parse
(
index_path
)
return
minidom
.
parse
(
index_path
)
.
documentElement
except
ExpatError
as
e
:
raise
RepoError
(
_
(
"Error parsing repository index information. Index file does not exist or is malformed."
))
...
...
@@ -195,7 +197,13 @@ class RepoDB(lazydb.LazyDB):
def
add_repo
(
self
,
name
,
repo_info
,
at
=
None
):
repo_path
=
inary
.
util
.
join_path
(
ctx
.
config
.
index_dir
(),
name
)
os
.
makedirs
(
repo_path
)
###########
try
:
os
.
makedirs
(
repo_path
)
except
:
pass
#FIXME: FileExistError errno: 17
#When addind repo there are the same as name empty dirs it should remove it
urifile_path
=
inary
.
util
.
join_path
(
ctx
.
config
.
index_dir
(),
name
,
"uri"
)
open
(
urifile_path
,
"w"
)
.
write
(
repo_info
.
indexuri
.
get_uri
())
self
.
repoorder
.
add
(
name
,
repo_info
.
indexuri
.
get_uri
())
...
...
inary/db/sourcedb.py
Dosyayı görüntüle @
a4fea6f6
...
...
@@ -124,7 +124,7 @@ class SourceDB(lazydb.LazyDB):
rev_deps
=
[]
for
pkg
,
dep
in
rvdb
:
node
=
minidom
.
parseString
(
dep
)
node
=
minidom
.
parseString
(
dep
)
.
documentElement
dependency
=
inary
.
analyzer
.
dependency
.
Dependency
()
dependency
.
package
=
node
.
childNodes
[
0
]
.
data
if
node
.
attributes
():
...
...
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