[yum-commits] Branch 'multi-downloader' - urlgrabber/grabber.py
zpavlas at osuosl.org
zpavlas at osuosl.org
Wed Feb 29 16:54:50 UTC 2012
urlgrabber/grabber.py | 14 ++++++++++----
1 file changed, 10 insertions(+), 4 deletions(-)
New commits:
commit e19511392fc8c23b6f9678cc388b66d0267f4ffb
Author: ZdenÄk Pavlas <zpavlas at redhat.com>
Date: Wed Feb 29 17:54:03 2012 +0100
Add 'dict' support to serializer.
diff --git a/urlgrabber/grabber.py b/urlgrabber/grabber.py
index d5ce06b..aec0ad0 100644
--- a/urlgrabber/grabber.py
+++ b/urlgrabber/grabber.py
@@ -1879,7 +1879,7 @@ def retrygrab(url, filename=None, copy_local=0, close_connection=0,
#####################################################################
_quoter_map = {}
-for c in '%[(,)] \n':
+for c in '%{[(,:)]} \n':
_quoter_map[c] = '%%%02x' % ord(c)
del c
@@ -1898,6 +1898,10 @@ def _dumps(v):
return "(%s)" % ','.join(map(_dumps, v))
if type(v) == list:
return "[%s]" % ','.join(map(_dumps, v))
+ if type(v) == dict:
+ def keyval(k):
+ return '%s:%s' % (_dumps(k), _dumps(v[k]))
+ return "{%s}" % ','.join(map(keyval, sorted(v)))
raise TypeError, 'Can\'t serialize %s' % v
def _loads(s):
@@ -1923,17 +1927,19 @@ def _loads(s):
l = []
i = j = 0
while True:
- if j == len(s) or s[j] in ',)]':
+ if j == len(s) or s[j] in ',:)]}':
if j > i:
l.append(decode(s[i:j]))
if j == len(s): break
- if s[j] in ')]':
+ if s[j] in ')]}':
if s[j] == ')':
l = tuple(l)
+ elif s[j] == '}':
+ l = dict(zip(l[::2], l[1::2]))
stk[0].append(l)
l, stk = stk
i = j = j + 1
- elif s[j] in '[(':
+ elif s[j] in '{[(':
stk = l, stk
l = []
i = j = j + 1
More information about the Yum-commits
mailing list