aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJauhien Piatlicki (jauhien) <piatlicki@gmail.com>2013-07-26 11:40:03 +0200
committerJauhien Piatlicki (jauhien) <piatlicki@gmail.com>2013-07-26 11:40:03 +0200
commit7fc51241db06c67860d1d0d12175ec8ca1b36eff (patch)
treeff6e18336bb00a29f897fa8cb71b0caa82826d38 /gs_pypi
parentPyPI backend: add database generating binary (diff)
downloadg-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.py34
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)