def new(self, key=None, data=None, content_type='application/json'): """ Create a new :class:`RiakObject <riak.riak_object.RiakObject>` that will be stored as JSON. A shortcut for manually instantiating a :class:`RiakObject <riak.riak_object.RiakObject>`. :param key: Name of the key. Leaving this to be None (default) will make Riak generate the key on store. :type key: string :param data: The data to store. :type data: object :rtype: :class:`RiakObject <riak.riak_object.RiakObject>` """ try: if isinstance(data, unicode): # This is JSON-encoded data, so it should be ASCII. data = data.encode('ascii') except UnicodeError: raise TypeError('Unicode data values are not supported.') obj = RiakObject(self._client, self, key) obj.set_data(data) obj.set_content_type(content_type) obj._encode_data = True return obj
def new_binary(self, key, data, content_type='application/octet-stream'): """ Create a new :class:`RiakObject <riak.riak_object.RiakObject>` that will be stored as plain text/binary. A shortcut for manually instantiating a :class:`RiakObject <riak.riak_object.RiakObject>`. :param key: Name of the key. :type key: string :param data: The data to store. :type data: object :param content_type: The content type of the object. :type content_type: string :rtype: :class:`RiakObject <riak.riak_object.RiakObject>` """ obj = RiakObject(self._client, self, key) obj.set_data(data) obj.set_content_type(content_type) obj._encode_data = False return obj