Beispiel #1
0
def opairshook(x):
    x0 = collections.OrderedDict(x)
    if hasattr(x, '__iter__'):
        x1 = json_util.object_hook(collections.OrderedDict(x))
    else:
        x1 = json_util.object_hook(x)
    if hasattr(x1, 'keys'):
        return x0
    else:
        if hasattr(x1, '__iter__'):
            return collections.OrderedDict(x1)
        else:
            return x1
    def test_regex_object_hook(self):
        # simplejson or the builtin json module.
        from bson.json_util import json

        # Extended JSON format regular expression.
        pat = 'a*b'
        json_re = '{"$regex": "%s", "$options": "u"}' % pat
        loaded = json_util.object_hook(json.loads(json_re))
        self.assertTrue(isinstance(loaded, RE_TYPE))
        self.assertEqual(pat, loaded.pattern)
        self.assertEqual(re.U, loaded.flags)

        loaded = json_util.object_hook(json.loads(json_re), compile_re=False)
        self.assertTrue(isinstance(loaded, Regex))
        self.assertEqual(pat, loaded.pattern)
        self.assertEqual(re.U, loaded.flags)
Beispiel #3
0
def _object_hook_date(dct):
    """`date` deserializer for json."""
    if "$date_only" in dct:
        isoformatted = dct["$date_only"]
        return date(*(int(i) for i in isoformatted.split('-')))
    else:
        return json_util.object_hook(dct)
    def test_regex_object_hook(self):
        # simplejson or the builtin json module.
        from bson.json_util import json

        # Extended JSON format regular expression.
        pat = 'a*b'
        json_re = '{"$regex": "%s", "$options": "u"}' % pat
        loaded = json_util.object_hook(json.loads(json_re))
        self.assertTrue(isinstance(loaded, RE_TYPE))
        self.assertEqual(pat, loaded.pattern)
        self.assertEqual(re.U, loaded.flags)

        loaded = json_util.object_hook(json.loads(json_re), compile_re=False)
        self.assertTrue(isinstance(loaded, Regex))
        self.assertEqual(pat, loaded.pattern)
        self.assertEqual(re.U, loaded.flags)
Beispiel #5
0
def _object_hook_date(dct):
    """`date` deserializer for json."""
    if "$date_only" in dct:
        isoformatted = dct["$date_only"]
        return date(*(int(i) for i in isoformatted.split('-')))
    else:
        return json_util.object_hook(dct)
Beispiel #6
0
    def object_hook(cls, dct):
        for key, value in dct.iteritems():
            try:
                hook = cls.__object_hooks__.get(key)
            except AttributeError:
                from network import NSMacAddress, NSIpAddress, NSSensorId, NSLocalUnitId

                cls.__object_hooks__ = {
                    '$mac': lambda d, v: NSMacAddress(v),
                    '$ip': lambda d, v: NSIpAddress(v),
                    '$sid': lambda d, v: NSSensorId.parse(v),
                    '$luid': lambda d, v: NSLocalUnitId.parse(v),
                    '$uuid': lambda d, v: uuid.UUID(v),
                    '$undefined': lambda d, v: None,
                    '$date': cls.__datetime_hook__
                }
                hook = cls.__object_hooks__.get(key)

            if hook:
                return hook(dct, value)

            try:
                from bson import json_util
                return json_util.object_hook(dct)
            except:
                return dct
        return dct
Beispiel #7
0
 def sm_object_hook(obj):
     if "$pyhint" in obj:
         temp = SON()
         for pair in obj["$pyhint"]:
             temp[pair["key"]] = pair["value"]
         return temp
     else:
         return json_util.object_hook(obj)
Beispiel #8
0
 def sm_object_hook(self):  # are we even using it?
     if "$pyhint" in self:
         temp = SON()
         for pair in self['$pyhint']:
             temp[pair['key']] = pair['value']
         return temp
     else:
         return json_util.object_hook(self)
Beispiel #9
0
 def sm_object_hook(obj):
     if "$pyhint" in obj:
         temp = SON()
         for pair in obj['$pyhint']:
             temp[pair['key']] = pair['value']
         return temp
     else:
         return json_util.object_hook(obj)
 def test_regex_object_hook(self):
     # Extended JSON format regular expression.
     pat = 'a*b'
     json_re = '{"$regex": "%s", "$options": "u"}' % pat
     loaded = json_util.object_hook(json.loads(json_re))
     self.assertTrue(isinstance(loaded, Regex))
     self.assertEqual(pat, loaded.pattern)
     self.assertEqual(re.U, loaded.flags)
Beispiel #11
0
 def sm_object_hook(self):  # are we even using it?
     if "$pyhint" in self:
         temp = SON()
         for pair in self['$pyhint']:
             temp[pair['key']] = pair['value']
         return temp
     else:
         return json_util.object_hook(self)
 def test_regex_object_hook(self):
     # Extended JSON format regular expression.
     pat = 'a*b'
     json_re = '{"$regex": "%s", "$options": "u"}' % pat
     loaded = json_util.object_hook(json.loads(json_re))
     self.assertTrue(isinstance(loaded, Regex))
     self.assertEqual(pat, loaded.pattern)
     self.assertEqual(re.U, loaded.flags)
Beispiel #13
0
def object_hook(dct):
    dct = json_util.object_hook(dct)
    
    if isinstance(dct,types.DictType):
        dct = ObjectDict(dct)
        
        if hasattr(dct,"$matrix"):
            dct = matrix(getattr(dct,"$matrix")).T
    
    return dct
Beispiel #14
0
def to_bson(data):
	"""Convert a JSON-deserialised value to a BSON value, 
	using json_util.object_hook.
	"""
	if isinstance(data, dict):
		return object_hook(dict((key, to_bson(value)) for key, value in data.iteritems()))
	elif isinstance(data, list):
		return map(to_bson, data)
	else:
		return data
Beispiel #15
0
def object_hook_date(dct):
    if "$date_only" in dct:
        isoformatted = dct["$date_only"]
        return date(*(int(i) for i in isoformatted.split('-')))
    else:
        return json_util.object_hook(dct)
Beispiel #16
0
def mongodate_to_datetime(tsdict):
    """Given a dict with $date field inside, converts it to a datetime"""
    converted = object_hook(tsdict)
    return converted.replace(tzinfo=None)
Beispiel #17
0
 def json_hook(self, doc):
     try:
         return json_util.object_hook(doc)
     except PyMongoError, e:
         print e
Beispiel #18
0
def _custom_json_object_hook(dct):
    if "$date" in dct:
        return utc_str_to_datetime(dct["$date"])
    else:
        return json_util.object_hook(dct)
Beispiel #19
0
def _custom_json_object_hook(dct):
    if "$date" in dct:
        return utc_str_to_datetime(dct["$date"])
    else:
        return json_util.object_hook(dct)
def hook(dct):
    if "$dt" in dct:
        return _parse_date(dct)
    return json_util.object_hook(dct)
Beispiel #21
0
def decode_object_hook(obj, base=None):
    obj = json_util.object_hook(obj)
    return obj if base is None else base(obj)
Beispiel #22
0
 def object_hook(self, dct):
     return json_util.object_hook(dct)
Beispiel #23
0
def _object_hook(dct):
    if 'length' in dct:
        dct['length'] = Int64(dct['length'])
    return object_hook(dct)
Beispiel #24
0
 def json_hook(self, doc):
     try:
         return json_util.object_hook(doc)
     except PyMongoError, e:
         print e