diff options
author | Jauhien Piatlicki (jauhien) <piatlicki@gmail.com> | 2013-09-05 01:54:22 +0200 |
---|---|---|
committer | Jauhien Piatlicki (jauhien) <piatlicki@gmail.com> | 2013-09-05 01:54:22 +0200 |
commit | eda1c6a3cd450c3d193ccc2725d7a36ee02851e6 (patch) | |
tree | 128234dde52b610c6bdf3b0282c6c6ea3f784e87 | |
parent | gs-pypi: depend on correct python version (diff) | |
download | g-sorcery-eda1c6a3cd450c3d193ccc2725d7a36ee02851e6.tar.gz g-sorcery-eda1c6a3cd450c3d193ccc2725d7a36ee02851e6.tar.bz2 g-sorcery-eda1c6a3cd450c3d193ccc2725d7a36ee02851e6.zip |
g_sorcery/package_db: use a single file for a category
-rw-r--r-- | g_sorcery/package_db.py | 38 |
1 files changed, 12 insertions, 26 deletions
diff --git a/g_sorcery/package_db.py b/g_sorcery/package_db.py index 5fa8d4f..b52c12d 100644 --- a/g_sorcery/package_db.py +++ b/g_sorcery/package_db.py @@ -270,32 +270,27 @@ class PackageDB(object): progress_bar = ProgressBar(20, len(list(self.database))) if self.database: progress_bar.begin() + + categories_content = {} + for category in self.categories: + categories_content[category] = {} for pkgname, versions in self.database.items(): category, name = pkgname.split('/') if not category or (not category in self.categories): raise DBStructureError('Non existent: ' + category) + categories_content[category][name] = {} for version, content in versions.items(): - f = FileJSON(os.path.join(self.directory, category, name), - version + '.json', []) - f.write(content) + categories_content[category][name][version] = content self.additional_write_version(category, name, version) - f = FileJSON(os.path.join(self.directory, category, name), - self.VERSIONS_NAME, []) - f.write(list(versions)) self.additional_write_package(category, name) - f = FileJSON(os.path.join(self.directory, category), - self.PACKAGES_NAME, []) - pkgs = f.read() - if not pkgs: - pkgs = [] - pkgs.append(name) - f.write(pkgs) progress_bar.increment() for category in self.categories: + f = FileJSON(os.path.join(self.directory, category), self.PACKAGES_NAME, []) + f.write(categories_content[category]) self.additional_write_category(category) - + self.additional_write() if self.database: @@ -345,24 +340,15 @@ class PackageDB(object): if not packages: raise DBStructureError('Empty category: ' + category) - for name in packages: - package_path = os.path.join(category_path, name) - if not os.path.isdir(category_path): - error_msg = 'Empty package: ' + category + '/' + name - raise DBStructureError(error_msg) + for name, versions in packages.items(): - f = FileJSON(package_path, self.VERSIONS_NAME, []) - versions = f.read() if not versions: error_msg = 'Empty package: ' + category + '/' + name raise DBStructureError(error_msg) - + pkgname = category + '/' + name - self.database[pkgname] = {} + self.database[pkgname] = versions for version in versions: - f = FileJSON(package_path, version + '.json', []) - ebuild_data = f.read() - self.database[pkgname][version] = ebuild_data self.additional_read_version(category, name, version) self.additional_read_package(category, name) self.additional_read_category(category) |