Subversion Repositories SmartDukaan

Rev

Rev 18153 | Rev 18257 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 18153 Rev 18156
Line 364... Line 364...
364
        return -num_decode(s[1:])
364
        return -num_decode(s[1:])
365
    n = 0
365
    n = 0
366
    for c in s:
366
    for c in s:
367
        n = n * BASE + ALPHABET_REVERSE[c]
367
        n = n * BASE + ALPHABET_REVERSE[c]
368
    return n    
368
    return n    
-
 
369
 
-
 
370
def todict(obj, classkey=None):
-
 
371
    if isinstance(obj, dict):
-
 
372
        data = {}
-
 
373
        for (k, v) in obj.items():
-
 
374
            data[k] = todict(v, classkey)
-
 
375
        return data
-
 
376
    elif hasattr(obj, "_ast"):
-
 
377
        return todict(obj._ast())
-
 
378
    elif hasattr(obj, "__iter__"):
-
 
379
        return [todict(v, classkey) for v in obj]
-
 
380
    elif hasattr(obj, "__dict__"):
-
 
381
        data = dict([(key, todict(value, classkey)) 
-
 
382
            for key, value in obj.__dict__.iteritems() 
-
 
383
            if not callable(value) and not key.startswith('_')])
-
 
384
        if classkey is not None and hasattr(obj, "__class__"):
-
 
385
            data[classkey] = obj.__class__.__name__
-
 
386
        return data
-
 
387
    else:
-
 
388
        return obj
369
389