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)
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 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
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 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 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)
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
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
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)
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)
def json_hook(self, doc): try: return json_util.object_hook(doc) except PyMongoError, e: print e
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)
def decode_object_hook(obj, base=None): obj = json_util.object_hook(obj) return obj if base is None else base(obj)
def object_hook(self, dct): return json_util.object_hook(dct)
def _object_hook(dct): if 'length' in dct: dct['length'] = Int64(dct['length']) return object_hook(dct)