~thekorn/wadllib/changed.list

« back to all changes in this revision

Viewing changes to wadllib/_utils/changed_list.py

  • Committer: Markus Korn
  • Date: 2008-08-10 13:50:32 UTC
  • Revision ID: thekorn@gmx.de-20080810135032-hybwi36d75uihy0j
simplified interface to ChangedList object

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
"""
2
 
>>> r = _json_loads('{"foo": [1, 2], "tags": [1, 2, 3, 4]}')
 
2
>>> _json = _JSON({"tags": ChangedList})
 
3
>>> r = _json.loads('{"foo": [1, 2], "tags": [1, 2, 3, 4]}')
3
4
>>> r["tags"]
4
5
[1, 2, 3, 4]
5
6
>>> r["tags"].changed
11
12
False
12
13
>>> simplejson.dumps(r)
13
14
'{"foo": [1, 2], "tags": [1, 2, 3, 4, 45]}'
 
15
>>> r = _json.convert_dict({"foo": [1, 2], "tags": [1, 2, 3, 4]})
 
16
>>> isinstance(r["tags"], ChangedList)
 
17
True
14
18
"""
15
19
 
16
20
import simplejson
104
108
                continue
105
109
        return dct
106
110
        
107
 
_OBJ_MAP = {"tags": ChangedList}
108
 
def _json_loads(s):
109
 
    return simplejson.loads(s, object_hook=map_objects(_OBJ_MAP))
 
111
    def iterattributes(self):
 
112
        return self.__dct_map.iterkeys()
 
113
        
 
114
    
 
115
class _JSON(object):
 
116
    def __init__(self, obj_map):
 
117
        self.__obj_map = map_objects(obj_map)
 
118
        
 
119
    def loads(self, s):
 
120
        return simplejson.loads(s, object_hook=self.__obj_map)
 
121
            
 
122
    def convert_dict(self, dct):
 
123
        return self.__obj_map(dct)
 
124
        
 
125
    def iterattributes(self):
 
126
        return self.__obj_map.iterattributes()
 
127
        
 
128
        
110
129
    
111
130
if __name__ == "__main__":
112
131
    import doctest