diff options
author | Jauhien Piatlicki (jauhien) <piatlicki@gmail.com> | 2013-07-26 11:40:03 +0200 |
---|---|---|
committer | Jauhien Piatlicki (jauhien) <piatlicki@gmail.com> | 2013-07-26 11:40:03 +0200 |
commit | 7fc51241db06c67860d1d0d12175ec8ca1b36eff (patch) | |
tree | ff6e18336bb00a29f897fa8cb71b0caa82826d38 /gs_pypi | |
parent | PyPI backend: add database generating binary (diff) | |
download | g-sorcery-7fc51241db06c67860d1d0d12175ec8ca1b36eff.tar.gz g-sorcery-7fc51241db06c67860d1d0d12175ec8ca1b36eff.tar.bz2 g-sorcery-7fc51241db06c67860d1d0d12175ec8ca1b36eff.zip |
gs_pypi/pypi_db: usable ebuild_data
Diffstat (limited to 'gs_pypi')
-rw-r--r-- | gs_pypi/pypi_db.py | 34 |
1 files changed, 32 insertions, 2 deletions
diff --git a/gs_pypi/pypi_db.py b/gs_pypi/pypi_db.py index d0b57d4..d350e39 100644 --- a/gs_pypi/pypi_db.py +++ b/gs_pypi/pypi_db.py @@ -18,9 +18,11 @@ if py2k: else: import xmlrpc.client as xmlrpclib +import datetime +import re import sys -from g_sorcery.g_collections import Package +from g_sorcery.g_collections import Package, serializable_elist from g_sorcery.logger import Logger from g_sorcery.package_db import DBGenerator @@ -69,8 +71,36 @@ class PypiDBGenerator(DBGenerator): allowed_ords_pkg = set(range(ord('a'), ord('z'))) | set(range(ord('A'), ord('Z'))) | \ set(range(ord('0'), ord('9'))) | set(list(map(ord, ['+', '_', '-']))) + + allowed_ords_desc = set(range(ord('a'), ord('z'))) | set(range(ord('A'), ord('Z'))) | \ + set(range(ord('0'), ord('9'))) | set(list(map(ord, + ['+', '_', '-', ' ', '.', '(', ')', '[', ']', '{', '}', ',']))) + + now = datetime.datetime.now() + pseudoversion = "%04d%02d%02d" % (now.year, now.month, now.day) for package, versions in data.items(): package = "".join([x for x in package if ord(x) in allowed_ords_pkg]) for version, ebuild_data in versions.items(): - pkg_db.add_package(Package(category, package, version), ebuild_data) + description = ebuild_data["summary"] + description = "".join([x for x in description if ord(x) in allowed_ords_desc]) + longdescription = ebuild_data["description"] + longdescription = "".join([x for x in longdescription if ord(x) in allowed_ords_desc]) + + pkgver = version + match_object = re.match("(^[0-9]+[a-z]?$)|(^[0-9][0-9\.]+[0-9][a-z]?$)", pkgver) + if not match_object: + pkgver = pseudoversion + + dependencies = serializable_elist(separator="\n\t") + eclasses = ['gs-pypi'] + maintainer = [{'email' : 'piatlicki@gmail.com', + 'name' : 'Jauhien Piatlicki'}] + + ebuild_data["description"] = description + ebuild_data["longdescription"] = longdescription + ebuild_data["dependencies"] = dependencies + ebuild_data["eclasses"] = eclasses + ebuild_data["maintainer"] = maintainer + + pkg_db.add_package(Package(category, package, pkgver), ebuild_data) |