Source code for mongorest.utils
# -*- encoding: UTF-8 -*-
from __future__ import absolute_import, unicode_literals
import re
from bson.json_util import dumps as bson_dumps, loads as bson_loads
from bson.objectid import ObjectId
from six import string_types
__all__ = [
'deserialize',
'serialize',
]
[docs]def deserialize(to_deserialize, *args, **kwargs):
"""
Deserializes a string into a PyMongo BSON
"""
if isinstance(to_deserialize, string_types):
if re.match('^[0-9a-f]{24}$', to_deserialize):
return ObjectId(to_deserialize)
try:
return bson_loads(to_deserialize, *args, **kwargs)
except:
return bson_loads(bson_dumps(to_deserialize), *args, **kwargs)
else:
return bson_loads(bson_dumps(to_deserialize), *args, **kwargs)
[docs]def serialize(to_serialize, *args, **kwargs):
"""
Serializes a PyMongo BSON into a string
"""
return bson_dumps(to_serialize, *args, **kwargs)