public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] proj/g-sorcery:master commit in: g_sorcery/, gs_ctan/, g_elpa/
@ 2013-07-17 23:19 Jauhien Piatlicki
  0 siblings, 0 replies; 3+ messages in thread
From: Jauhien Piatlicki @ 2013-07-17 23:19 UTC (permalink / raw
  To: gentoo-commits

commit:     e7273fca9aff187166735f202afc6199c9e21fcb
Author:     Jauhien Piatlicki (jauhien) <piatlicki <AT> gmail <DOT> com>
AuthorDate: Wed Jul 17 21:36:12 2013 +0000
Commit:     Jauhien Piatlicki <piatlicki <AT> gmail <DOT> com>
CommitDate: Wed Jul 17 21:36:12 2013 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/g-sorcery.git;a=commit;h=e7273fca

fileutils and package database: more appropriate function names

---
 g_elpa/elpa_db.py       |  4 ++--
 g_sorcery/fileutils.py  | 12 ++++++------
 g_sorcery/package_db.py | 12 ++++++------
 gs_ctan/ctan_db.py      |  4 ++--
 4 files changed, 16 insertions(+), 16 deletions(-)

diff --git a/g_elpa/elpa_db.py b/g_elpa/elpa_db.py
index 6f3931c..149cbe5 100644
--- a/g_elpa/elpa_db.py
+++ b/g_elpa/elpa_db.py
@@ -33,9 +33,9 @@ class ElpaDB(PackageDB):
 
     def get_download_uries(self):
         ac_uri = urljoin(self.repo_uri, 'archive-contents')
-        return [{"uri" : ac_uri, "loader" : sexpdata.load}]
+        return [{"uri" : ac_uri, "parser" : sexpdata.load}]
 
-    def parse_data(self, data):
+    def process_data(self, data):
 
         archive_contents = data['archive-contents']
 

diff --git a/g_sorcery/fileutils.py b/g_sorcery/fileutils.py
index cdec458..f77da4a 100644
--- a/g_sorcery/fileutils.py
+++ b/g_sorcery/fileutils.py
@@ -202,17 +202,17 @@ def fast_manifest(directory):
         f.write('\n'.join(manifest) + '\n')
 
 
-def _call_loader(f_name, loader, open_file = True, open_mode = 'r'):
+def _call_parser(f_name, parser, open_file = True, open_mode = 'r'):
     data = None
     if open_file:
         with open(f_name, open_mode) as f:
-            data = loader(f)
+            data = parser(f)
     else:
-        data = loader(f_name)
+        data = parser(f_name)
     return {os.path.basename(f_name): data}
 
 
-def load_remote_file(uri, loader, open_file = True, open_mode='r'):
+def load_remote_file(uri, parser, open_file = True, open_mode='r'):
     download_dir = TemporaryDirectory()
     loaded_data = {}
     if wget(uri, download_dir.name):
@@ -223,7 +223,7 @@ def load_remote_file(uri, loader, open_file = True, open_mode='r'):
             with tarfile.open(f_name) as f:
                 f.extractall(unpack_dir.name)
             for uf_name in glob.glob(os.path.join(unpack_dir, "*")):
-                loaded_data.update(_call_loader(uf_name, loader,
+                loaded_data.update(_call_parser(uf_name, parser,
                                     open_file=open_file, open_mode=open_mode))
             del unpack_dir
         else:
@@ -232,7 +232,7 @@ def load_remote_file(uri, loader, open_file = True, open_mode='r'):
                 if (os.system("xz -d " + f_name)):
                     raise DownloadingError("xz failed: " + f_name + " from " + uri)
                 f_name = name
-            loaded_data.update(_call_loader(f_name, loader,
+            loaded_data.update(_call_parser(f_name, parser,
                                 open_file=open_file, open_mode=open_mode))
     del download_dir
     return loaded_data

diff --git a/g_sorcery/package_db.py b/g_sorcery/package_db.py
index 2d8ee42..1f12015 100644
--- a/g_sorcery/package_db.py
+++ b/g_sorcery/package_db.py
@@ -177,12 +177,12 @@ class PackageDB(object):
         Generate tree
         """
         data = self.download_data()
-        self.parse_data(data)
+        self.process_data(data)
 
-    def load_data(self, data_f):
+    def parse_data(self, data_f):
         pass
 
-    def parse_data(data):
+    def process_data(data):
         pass
 
     def get_download_uries(self):
@@ -194,13 +194,13 @@ class PackageDB(object):
             decuri = {}
             if isinstance(uri, basestring):
                 decuri["uri"] = uri
-                decuri["loader"] = self.load_data
+                decuri["parser"] = self.parse_data
                 decuri["open_file"] = True
                 decuri["open_mode"] = "r"
             else:
                 decuri = uri
-                if not "loader" in decuri:
-                    decuri["loader"] = self.load_data
+                if not "parser" in decuri:
+                    decuri["parser"] = self.parse_data
                 if not "open_file" in decuri:
                     decuri["open_file"] = True
                 if not "open_mode" in decuri:

diff --git a/gs_ctan/ctan_db.py b/gs_ctan/ctan_db.py
index f055823..65ff4ba 100644
--- a/gs_ctan/ctan_db.py
+++ b/gs_ctan/ctan_db.py
@@ -27,9 +27,9 @@ class CtanDB(PackageDB):
         tlpdb_uri = self.repo_uri + "/tlpkg/texlive.tlpdb.xz"
         return [tlpdb_uri]
         
-    def load_data(self, data_f):
+    def parse_data(self, data_f):
         data = data_f.read()
         return data
 
-    def parse_data(self, data):
+    def process_data(self, data):
         print(data)


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [gentoo-commits] proj/g-sorcery:master commit in: g_sorcery/, gs_ctan/, g_elpa/
@ 2013-07-19 16:20 Jauhien Piatlicki
  0 siblings, 0 replies; 3+ messages in thread
From: Jauhien Piatlicki @ 2013-07-19 16:20 UTC (permalink / raw
  To: gentoo-commits

commit:     fde32d9301971a96f876cd7147835e06c56805c3
Author:     Jauhien Piatlicki (jauhien) <piatlicki <AT> gmail <DOT> com>
AuthorDate: Fri Jul 19 15:37:45 2013 +0000
Commit:     Jauhien Piatlicki <piatlicki <AT> gmail <DOT> com>
CommitDate: Fri Jul 19 15:37:45 2013 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/g-sorcery.git;a=commit;h=fde32d93

g_sorcery/package_db: save config in db

---
 g_elpa/elpa_db.py       |  4 ++--
 g_sorcery/backend.py    | 28 +++++++++++++---------------
 g_sorcery/package_db.py | 34 +++++++++++++++++++++++++---------
 gs_ctan/ctan_db.py      |  4 ++--
 4 files changed, 42 insertions(+), 28 deletions(-)

diff --git a/g_elpa/elpa_db.py b/g_elpa/elpa_db.py
index 70378ac..12d56c7 100644
--- a/g_elpa/elpa_db.py
+++ b/g_elpa/elpa_db.py
@@ -28,8 +28,8 @@ from g_sorcery.fileutils import load_remote_file
 from g_sorcery.exceptions import SyncError
 
 class ElpaDB(PackageDB):
-    def __init__(self, directory, repo_uri="", db_uri=""):
-        super(ElpaDB, self).__init__(directory, repo_uri, db_uri)
+    def __init__(self, directory, config = None):
+        super(ElpaDB, self).__init__(directory, config)
 
     def get_download_uries(self):
         ac_uri = urljoin(self.repo_uri, 'archive-contents')

diff --git a/g_sorcery/backend.py b/g_sorcery/backend.py
index 85a6218..08b7956 100644
--- a/g_sorcery/backend.py
+++ b/g_sorcery/backend.py
@@ -112,6 +112,8 @@ class Backend(object):
             return -1
         url = args.url
         repository = args.repository
+        repository_config = {}
+
         if repository:
             if not "repositories" in config:
                 self.logger.error("repository " + repository + 
@@ -121,37 +123,33 @@ class Backend(object):
             if not repository in repositories:
                 self.logger.error("repository " + repository + " not found")
                 return -1
-            repository = repositories[repository]
+            repository_config = repositories[repository]
+        else:
+            if url:
+                repository_config = {"repo_uri" : url, "db_uri" : url}
+            else:
+                self.logger.error('no url given\n')
+                
         if self.sync_db:
-            if repository:
-                if not "db_uri" in repository:
-                    self.logger.error("no db_uri in " + repository + " config")
-                    return -1
-                url = repository["db_uri"]
-            pkg_db = self.package_db_class(db_path, db_uri=url)
+            pkg_db = self.package_db_class(db_path, repository_config)
             if not pkg_db.db_uri:
                 self.logger.error('no url given\n')
                 return -1
         else:
-            if repository:
-                if not "repo_uri" in repository:
-                    self.logger.error("no repo_uri in " + repository + " config")
-                    return -1
-                url = repository["repo_uri"]
-            pkg_db = self.package_db_class(db_path, repo_uri=url)
+            pkg_db = self.package_db_class(db_path, repository_config)
             if not pkg_db.repo_uri:
                 self.logger.error('no url given\n')
                 return -1
 
         if self.sync_db:
             try:
-                pkg_db.sync(db_uri=url)
+                pkg_db.sync()
             except Exception as e:
                 self.logger.error('sync failed: ' + str(e) + '\n')
                 return -1
         else:
             try:
-                pkg_db.generate(repo_uri=url)
+                pkg_db.generate()
             except Exception as e:
                 self.logger.error('sync failed: ' + str(e) + '\n')
                 return -1

diff --git a/g_sorcery/package_db.py b/g_sorcery/package_db.py
index bb7824a..2a8ab25 100644
--- a/g_sorcery/package_db.py
+++ b/g_sorcery/package_db.py
@@ -109,7 +109,7 @@ class PackageDB(object):
                 return (Package(category, name, ver), ebuild_data)
 
 
-    def __init__(self, directory, repo_uri="", db_uri=""):
+    def __init__(self, directory, config = None):
         """
         Args:
             directory: database directory.
@@ -117,11 +117,28 @@ class PackageDB(object):
             db_uri: URI for synchronization with remote database.
         """
         self.URI_NAME = 'uri.json'
-        self.INFO_NAME = 'info.json'
+        self.CONFIG_NAME = 'config.json'
         self.CATEGORIES_NAME = 'categories.json'
         self.PACKAGES_NAME = 'packages.json'
         self.VERSIONS_NAME = 'versions.json'
         self.directory = os.path.abspath(directory)
+        if config:
+            self.config = config
+            config_f = FileJSON(self.directory, self.CONFIG_NAME, [])
+            config_f.write(self.config)
+        else:
+            self.config = {}
+
+        if "repo_uri" in self.config:
+            repo_uri = self.config["repo_uri"]
+        else:
+            repo_uri = ""
+
+        if "db_uri" in self.config:
+            db_uri = self.config["db_uri"]
+        else:
+            db_uri = ""
+
         self.reset_uri(repo_uri, db_uri)
         self.reset_db()
 
@@ -155,7 +172,6 @@ class PackageDB(object):
         Reset database.
         """
         self.database = {}
-        self.info = {}
         self.categories = {}
 
     def generate(self, repo_uri=""):
@@ -277,7 +293,7 @@ class PackageDB(object):
         categories = FileJSON(self.directory, self.CATEGORIES_NAME, [])
         categories = categories.read()
         manifest = {}
-        names = [self.INFO_NAME, self.CATEGORIES_NAME, self.URI_NAME]
+        names = [self.CONFIG_NAME, self.CATEGORIES_NAME, self.URI_NAME]
         for name in names:
             manifest[name] = hash_file(os.path.join(self.directory, name),
                                       hashlib.md5())
@@ -306,7 +322,7 @@ class PackageDB(object):
         result = True
         errors = []
         
-        names = [self.INFO_NAME, self.CATEGORIES_NAME, self.URI_NAME]
+        names = [self.CONFIG_NAME, self.CATEGORIES_NAME, self.URI_NAME]
         for name in names:
             if not name in manifest:
                 raise DBStructureError('Bad manifest: no ' + name + ' entry')
@@ -331,9 +347,9 @@ class PackageDB(object):
         """
         Write database.
         """
-        info_f = FileJSON(self.directory, self.INFO_NAME, [])
+        config_f = FileJSON(self.directory, self.CONFIG_NAME, [])
         categories_f = FileJSON(self.directory, self.CATEGORIES_NAME, [])
-        info_f.write(self.info)
+        config_f.write(self.config)
         categories_f.write(self.categories)
 
         for pkgname, versions in self.database.items():
@@ -393,9 +409,9 @@ class PackageDB(object):
         sane, errors = self.check_manifest()
         if not sane:
             raise IntegrityError('Manifest error: ' + str(errors))
-        info_f = FileJSON(self.directory, self.INFO_NAME, [])
+        config_f = FileJSON(self.directory, self.CONFIG_NAME, [])
         categories_f = FileJSON(self.directory, self.CATEGORIES_NAME, [])
-        self.info = info_f.read()
+        self.config = config_f.read()
         self.categories = categories_f.read()
         for category in self.categories:
             category_path = os.path.join(self.directory, category)

diff --git a/gs_ctan/ctan_db.py b/gs_ctan/ctan_db.py
index 1623375..e85e257 100644
--- a/gs_ctan/ctan_db.py
+++ b/gs_ctan/ctan_db.py
@@ -24,8 +24,8 @@ from g_sorcery.package_db import PackageDB
 from g_sorcery.exceptions import SyncError
 
 class CtanDB(PackageDB):
-    def __init__(self, directory, repo_uri="", db_uri=""):
-        super(CtanDB, self).__init__(directory, repo_uri, db_uri)
+    def __init__(self, directory, config = None):
+        super(CtanDB, self).__init__(directory, config)
         
         logger = Logger()
         gentoo_arch = portage.settings['ARCH']


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [gentoo-commits] proj/g-sorcery:master commit in: g_sorcery/, gs_ctan/, g_elpa/
@ 2013-07-19 16:20 Jauhien Piatlicki
  0 siblings, 0 replies; 3+ messages in thread
From: Jauhien Piatlicki @ 2013-07-19 16:20 UTC (permalink / raw
  To: gentoo-commits

commit:     638776b91b65fb3e19f93be05b425f2eb6d71c5b
Author:     Jauhien Piatlicki (jauhien) <piatlicki <AT> gmail <DOT> com>
AuthorDate: Fri Jul 19 15:51:31 2013 +0000
Commit:     Jauhien Piatlicki <piatlicki <AT> gmail <DOT> com>
CommitDate: Fri Jul 19 15:51:31 2013 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/g-sorcery.git;a=commit;h=638776b9

common_config section in backend config

---
 g_elpa/elpa_db.py       |  4 ++--
 g_sorcery/backend.py    |  9 +++++++--
 g_sorcery/package_db.py | 16 +++++++++++++---
 gs_ctan/ctan_db.py      |  4 ++--
 4 files changed, 24 insertions(+), 9 deletions(-)

diff --git a/g_elpa/elpa_db.py b/g_elpa/elpa_db.py
index 12d56c7..7628502 100644
--- a/g_elpa/elpa_db.py
+++ b/g_elpa/elpa_db.py
@@ -28,8 +28,8 @@ from g_sorcery.fileutils import load_remote_file
 from g_sorcery.exceptions import SyncError
 
 class ElpaDB(PackageDB):
-    def __init__(self, directory, config = None):
-        super(ElpaDB, self).__init__(directory, config)
+    def __init__(self, directory, config = None, common_config = None):
+        super(ElpaDB, self).__init__(directory, config, common_config)
 
     def get_download_uries(self):
         ac_uri = urljoin(self.repo_uri, 'archive-contents')

diff --git a/g_sorcery/backend.py b/g_sorcery/backend.py
index 08b7956..9dae652 100644
--- a/g_sorcery/backend.py
+++ b/g_sorcery/backend.py
@@ -114,6 +114,11 @@ class Backend(object):
         repository = args.repository
         repository_config = {}
 
+        if "common_config" in config:
+            common_config = config["common_config"]
+        else:
+            common_config = {}
+        
         if repository:
             if not "repositories" in config:
                 self.logger.error("repository " + repository + 
@@ -131,12 +136,12 @@ class Backend(object):
                 self.logger.error('no url given\n')
                 
         if self.sync_db:
-            pkg_db = self.package_db_class(db_path, repository_config)
+            pkg_db = self.package_db_class(db_path, repository_config, common_config)
             if not pkg_db.db_uri:
                 self.logger.error('no url given\n')
                 return -1
         else:
-            pkg_db = self.package_db_class(db_path, repository_config)
+            pkg_db = self.package_db_class(db_path, repository_config, common_config)
             if not pkg_db.repo_uri:
                 self.logger.error('no url given\n')
                 return -1

diff --git a/g_sorcery/package_db.py b/g_sorcery/package_db.py
index 2a8ab25..d38a90d 100644
--- a/g_sorcery/package_db.py
+++ b/g_sorcery/package_db.py
@@ -109,7 +109,7 @@ class PackageDB(object):
                 return (Package(category, name, ver), ebuild_data)
 
 
-    def __init__(self, directory, config = None):
+    def __init__(self, directory, config = None, common_config = None):
         """
         Args:
             directory: database directory.
@@ -118,6 +118,7 @@ class PackageDB(object):
         """
         self.URI_NAME = 'uri.json'
         self.CONFIG_NAME = 'config.json'
+        self.COMMON_CONFIG_NAME = 'common_config.json'
         self.CATEGORIES_NAME = 'categories.json'
         self.PACKAGES_NAME = 'packages.json'
         self.VERSIONS_NAME = 'versions.json'
@@ -126,8 +127,13 @@ class PackageDB(object):
             self.config = config
             config_f = FileJSON(self.directory, self.CONFIG_NAME, [])
             config_f.write(self.config)
+
+            self.common_config = common_config
+            config_f = FileJSON(self.directory, self.COMMON_CONFIG_NAME, [])
+            config_f.write(self.common_config)
         else:
             self.config = {}
+            self.common_config = {}
 
         if "repo_uri" in self.config:
             repo_uri = self.config["repo_uri"]
@@ -293,7 +299,7 @@ class PackageDB(object):
         categories = FileJSON(self.directory, self.CATEGORIES_NAME, [])
         categories = categories.read()
         manifest = {}
-        names = [self.CONFIG_NAME, self.CATEGORIES_NAME, self.URI_NAME]
+        names = [self.CONFIG_NAME, self.COMMON_CONFIG_NAME, self.CATEGORIES_NAME, self.URI_NAME]
         for name in names:
             manifest[name] = hash_file(os.path.join(self.directory, name),
                                       hashlib.md5())
@@ -322,7 +328,7 @@ class PackageDB(object):
         result = True
         errors = []
         
-        names = [self.CONFIG_NAME, self.CATEGORIES_NAME, self.URI_NAME]
+        names = [self.CONFIG_NAME, self.COMMON_CONFIG_NAME, self.CATEGORIES_NAME, self.URI_NAME]
         for name in names:
             if not name in manifest:
                 raise DBStructureError('Bad manifest: no ' + name + ' entry')
@@ -348,8 +354,10 @@ class PackageDB(object):
         Write database.
         """
         config_f = FileJSON(self.directory, self.CONFIG_NAME, [])
+        common_config_f = FileJSON(self.directory, self.COMMON_CONFIG_NAME, [])
         categories_f = FileJSON(self.directory, self.CATEGORIES_NAME, [])
         config_f.write(self.config)
+        common_config_f.write(self.common_config)
         categories_f.write(self.categories)
 
         for pkgname, versions in self.database.items():
@@ -410,8 +418,10 @@ class PackageDB(object):
         if not sane:
             raise IntegrityError('Manifest error: ' + str(errors))
         config_f = FileJSON(self.directory, self.CONFIG_NAME, [])
+        common_config_f = FileJSON(self.directory, self.COMMON_CONFIG_NAME, [])
         categories_f = FileJSON(self.directory, self.CATEGORIES_NAME, [])
         self.config = config_f.read()
+        self.common_config = common_config_f.read()
         self.categories = categories_f.read()
         for category in self.categories:
             category_path = os.path.join(self.directory, category)

diff --git a/gs_ctan/ctan_db.py b/gs_ctan/ctan_db.py
index e85e257..1aef53e 100644
--- a/gs_ctan/ctan_db.py
+++ b/gs_ctan/ctan_db.py
@@ -24,8 +24,8 @@ from g_sorcery.package_db import PackageDB
 from g_sorcery.exceptions import SyncError
 
 class CtanDB(PackageDB):
-    def __init__(self, directory, config = None):
-        super(CtanDB, self).__init__(directory, config)
+    def __init__(self, directory, config = None, common_config = None):
+        super(CtanDB, self).__init__(directory, config, common_config)
         
         logger = Logger()
         gentoo_arch = portage.settings['ARCH']


^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2013-07-19 16:20 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-07-19 16:20 [gentoo-commits] proj/g-sorcery:master commit in: g_sorcery/, gs_ctan/, g_elpa/ Jauhien Piatlicki
  -- strict thread matches above, loose matches on Subject: below --
2013-07-19 16:20 Jauhien Piatlicki
2013-07-17 23:19 Jauhien Piatlicki

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox