Python client and allow_mult

Greg Nelson grourk at dropcam.com
Fri Apr 1 13:23:01 EDT 2011


Unfortunately that does seem to be the way the code ends up looking. In fact, one gotcha I've noticed is that obj.exists() will be False when obj.has_siblings() is True. So, you'd probably want to swap your ifs around, like:

obj = bucket.get("mykey")

if obj.has_siblings():
# do conflict resolution
elif obj.exists():
obj.set_data(data)
else:
obj = bucket.new("mykey", data=data)

obj.store() # Also note here that return_body=True by default, and even if you specify return_body=False, the http transport actually ignores this! I have an outstanding pull request on github which fixes this.

At the SF Riak Meetup a couple weeks ago, the Yammer guys complained about the client library support for Scala / Java. And the Python library leaves much to be desired too. It is on github, though, so we should all feel free to contribute to it and make it better.
On Friday, April 1, 2011 at 10:08 AM, Eric Moritz wrote: 
> Does anyone have a standard pattern for working with allow_mult with
> the Python library? I feels a bit awkward to me. I assume I need to
> do the following:
> 
> data = {"foo": "bar"}
> obj = bucket.get("mykey")
> 
> if not obj.exists():
>  obj = bucket.new("mykey", data=data)
> else:
>  if obj.has_siblings():
>  # do conflict resolution
>  else:
>  obj.set_data(data)
> 
> obj.store()
> 
> Is the the way to do it? If so, that seems like a lot of boiler plating to me.
> 
> Eric.
> 
> _______________________________________________
> riak-users mailing list
> riak-users at lists.basho.com
> http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com
> 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.basho.com/pipermail/riak-users_lists.basho.com/attachments/20110401/633185e4/attachment.html>


More information about the riak-users mailing list