[PYCBC-173] syncwait in design_create() expects "views" key Created: 13/Aug/13  Updated: 13/Aug/13

Status: Open
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: 1.1.0
Fix Version/s: None
Security Level: Public

Type: Bug Priority: Major
Reporter: Volker Mische Assignee: Mark Nunberg
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
When you call design_create() with syncwait > 0 it polls the design document whether they are there or not. The polling seems to check the "views" key/value. The problem is that the design document might not contain any "views", but only spatial views that use "spatial" as key.




[PYCBC-144] Support PyPy Created: 24/Jun/13  Updated: 24/Oct/13

Status: In Progress
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: 0.10.0
Fix Version/s: None
Security Level: Public

Type: Epic Priority: Major
Reporter: Mark Nunberg Assignee: Mark Nunberg
Resolution: Unresolved Votes: 1
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
is duplicated by PYCBC-183 Cannot run on PyPy Resolved

 Description   
I've made some experiments in supporting PyPy.

Supposedly it's CPython compatible -- but not really.

I've started a branch on my own github called https://github.com/mnunberg/couchbase-python-client/tree/pypy

As of now there is no ETA for support - but I'd like to see it working with PyPy as well.

 Comments   
Comment by Mark Nunberg [ 30/Jul/13 ]
Why is this resolved? PyPy is still not supported
Comment by Jai Gupta [ 26/Sep/13 ]
Is this planned to be fixed?
Comment by Mark Nunberg [ 26/Sep/13 ]
I'd like to have it open, but it will require a substantial amount of work to make it work with PyPy. PyPy's C extension layer is sorta broken, so it would require various workarounds in our code in order to play nice with whatever PyPy has.
Comment by Jai Gupta [ 27/Sep/13 ]
When we tested Couchbase python library last time, it used to work with PyPy. I think at that time it was in pure Python. I am not sure though.

Now that Couchbase python library is stable, it does not support PyPy. It is bad for our project.

Is there any workaround? Or, should we run older version of Couchbase python library?

PyPy makes huge difference to our application.
Comment by Mark Nunberg [ 20/Oct/13 ]
So i've done some more work regarding PyPy support. It's leaky and buggy, but 1.2 will have better support than previously. The core problem is that a lot of the stuff the extension does is implemented in pure C. It's easier to maintain and links better with libcouchbase.

* Currently PyPy offers 'cpyext' which is buggy, not to mention being slow. The support in place now relies on CPyExt.

* Changing the code to be pure python would be a bad idea since the overhead doesn't come from a single algorithm but from the overall structure and options provided in our code, not to mention the interaction with libcouchbase. Additionally, the C structure is proven quite well with multiple use cases in Twisted and gevent.

In this category is included interactions with 'cffi' which would be cumbersome and buggy, since all the libcouchbase structures would need to be enumerated properly.

A possible workaround in this case is to maintain the C logic "as-is" and implement the problematic bits in Python, perhaps bridging between the two using cffi - in the case of cffi, we'd only need to bridge the C structures internal to the extension (which are simpler and less numerous than what libcouchbase has)
Comment by Mark Nunberg [ 24/Oct/13 ]
I've started a new project to implement much of the functionality using the 'cffi' module which is supported by PyPy:

https://github.com/couchbaselabs/couchbase-python-cffi




[PYCBC-133] Provide class-level methods by which to not print out long values Created: 13/Jun/13  Updated: 13/Jun/13

Status: Open
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: 0.11.1
Fix Version/s: None
Security Level: Public

Type: Task Priority: Major
Reporter: Mark Nunberg Assignee: Mark Nunberg
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Comments   
Comment by Mark Nunberg [ 13/Jun/13 ]
If a value is several long KBs and it has an exception, the screen will not be happy :)




[PYCBC-214] bucket flush needs to be added Created: 06/Jan/14  Updated: 08/Jan/14

Status: Open
Project: Couchbase Python Client Library
Component/s: docs, library
Affects Version/s: 1.1.0
Fix Version/s: None
Security Level: Public

Type: Bug Priority: Major
Reporter: Matt Ingenthron Assignee: Mark Nunberg
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
For a given bucket, there needs to be an easy way to invoke the bucket's RESTful flush(). This should be at the bucket level and authentication level. In other words, for a given bucket that I'm doing set()/get() with, I should be able to flush(). That flush() must use the REST interface for the bucket, not broadcast the libcouchbase/memached flush operation.

Note that it is safe for other client instances to be connected during this RESTful flush() operation. Also, it may be worth mentioning in the docs that flush is not atomic on the cluster and will propagate asynchronously.

 Comments   
Comment by Mark Nunberg [ 08/Jan/14 ]
We currently lack an admin interface; we'd be doing this via the admin interface if we were to support it.




[PYCBC-79] Create bucket function does not allow user to set the bucket type Created: 26/Jan/13  Updated: 06/Aug/13

Status: Open
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: 0.8.0
Fix Version/s: None
Security Level: Public

Type: Bug Priority: Major
Reporter: Tug Grall (Inactive) Assignee: Tug Grall (Inactive)
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
Create bucket function does not allow user to set the bucket type

We should add the bucket type to the list of parameters

it is possible to work around this with the rest interface like:
couchbase = Couchbase("127.0.0.1:8091", "Administrator", "password")
#get the rest interface
rest = couchbase._rest()
rest.create_bucket(bucket='myBucket',
                   ramQuotaMB=160,
                   authType='sasl',
                   saslPassword='password',
                   replicaNumber=0,
                   bucketType='couchbase')

 Comments   
Comment by Matt Ingenthron [ 30/Jul/13 ]
Tug: did you plan to implement this one? You seem to have assigned it to yourself.




[PYCBC-231] Use compact JSON encoding for Python objects Created: 25/Feb/14  Updated: 14/Apr/14

Status: Open
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: 1.2.0
Fix Version/s: .next
Security Level: Public

Type: Improvement Priority: Major
Reporter: Dave Rigby Assignee: Mark Nunberg
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Dependency

 Description   
When encoding Python objects to JSON, we currently use json.dumps() with default arguments. This produces JSON encoded with spaces separating fields. This is somewhat wasteful from a memory / disk / network utilisation point of view.

More preferable would be to use a "compact" encoding which removes all spaces - this can be achieved using separators=(',', ':') or similar (see http://docs.python.org/2/library/json.html).






Generated at Thu Apr 17 06:38:21 CDT 2014 using JIRA 5.2.4#845-sha1:c9f4cc41abe72fb236945343a1f485c2c844dac9.