[PYCBC-139] unlock_multi does not complain about missing cas Created: 17/Jun/13  Updated: 19/Jun/13  Resolved: 19/Jun/13

Status: Resolved
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: 0.11.1
Fix Version/s: 1.0 Beta
Security Level: Public

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





[PYCBC-138] _multi arith functions not setting amount properly Created: 17/Jun/13  Updated: 19/Jun/13  Resolved: 19/Jun/13

Status: Resolved
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: 0.11.1
Fix Version/s: 1.0 Beta
Security Level: Public

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


 Description   
Fix in progress. This is because we don't have a nice python-level wrapper for these functions, so the delta is never set.

 Comments   
Comment by Mark Nunberg [ 17/Jun/13 ]
http://review.couchbase.org/26986




[PYCBC-137] Fix up connection.py module to conform to 'pep8' Created: 17/Jun/13  Updated: 19/Jun/13  Resolved: 19/Jun/13

Status: Resolved
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: 1.0 Beta
Fix Version/s: 1.0 Beta
Security Level: Public

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


 Comments   
Comment by Mark Nunberg [ 17/Jun/13 ]
13:31 <+pavelpaulau> $ pep8 couchbase/ | wc -l
13:31 <+pavelpaulau> 207
13:31 <+pavelpaulau> something to fix as well
13:31 <+pavelpaulau> and it's getting worse
Comment by Mark Nunberg [ 17/Jun/13 ]
http://review.couchbase.org/26983




[PYCBC-136] quiet parameter not being passed from Couchbase.connect Created: 16/Jun/13  Updated: 19/Jun/13  Resolved: 19/Jun/13

Status: Resolved
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: 0.11.1
Fix Version/s: 1.0 Beta
Security Level: Public

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


 Comments   
Comment by Mark Nunberg [ 17/Jun/13 ]
http://review.couchbase.org/26984




[PYCBC-134] Client will crash if _multi methods are passed lists with duplicate keys Created: 14/Jun/13  Updated: 19/Jun/13  Resolved: 19/Jun/13

Status: Resolved
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: 0.10.0, 0.11.1
Fix Version/s: 1.0 Beta
Security Level: Public

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


 Description   
c.get_multi(["foo", "foo"])




[PYCBC-132] Lock without TTL fails with 'encoding error' Created: 13/Jun/13  Updated: 19/Jun/13  Resolved: 19/Jun/13

Status: Resolved
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: 0.11.1
Fix Version/s: 1.0 Beta
Security Level: Public

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


 Description   
This should fail with an ArgumentError instead. It also seems the value does end up being sent to the server.




[PYCBC-131] Return more informative error on empty string to get Created: 13/Jun/13  Updated: 19/Jun/13  Resolved: 19/Jun/13

Status: Resolved
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: 0.11.1
Fix Version/s: 1.0 Beta
Security Level: Public

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


 Description   
couchbase.exceptions.CouchbaseError: <RC=0x7[Invalid arguments], Operational Error, Results=1, C Source=(src/multiresult.c,147)>

Should display the key or object.




[PYCBC-130] Segmentation fault when specifying hos:port as host params Created: 13/Jun/13  Updated: 17/Jun/13  Resolved: 17/Jun/13

Status: Resolved
Project: Couchbase Python Client Library
Component/s: None
Affects Version/s: 0.9.0
Fix Version/s: 1.0 Beta
Security Level: Public

Type: Bug Priority: Major
Reporter: Pavel Paulau Assignee: Mark Nunberg
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: Ubuntu 13.04 64-bit, CentOS 6.3 64-bit


 Description   
(gdb) bt
#0 0x00007f5f90bcb57f in lcb_destroy () from /usr/lib/libcouchbase.so.2
#1 0x00007f5f90de8f0e in __pyx_pf_9couchbase_12libcouchbase_10Connection_4__dealloc__ (__pyx_v_self=<optimized out>) at couchbase/libcouchbase.c:4657
#2 __pyx_pw_9couchbase_12libcouchbase_10Connection_5__dealloc__ (__pyx_v_self=0x7f5f9230c978) at couchbase/libcouchbase.c:4623
#3 __pyx_tp_dealloc_9couchbase_12libcouchbase_Connection (o=0x7f5f9230c978) at couchbase/libcouchbase.c:10903
#4 0x00000000004b1a53 in ?? ()
#5 0x000000000047c19d in PyEval_EvalFrameEx ()
#6 0x00000000004e09aa in PyEval_EvalCodeEx ()
#7 0x000000000047c034 in PyEval_EvalFrameEx ()
#8 0x00000000004e09aa in PyEval_EvalCodeEx ()
#9 0x0000000000540412 in PyEval_EvalCode ()
#10 0x000000000054088b in ?? ()
#11 0x00000000004f6454 in PyRun_StringFlags ()
#12 0x000000000042a472 in PyRun_SimpleStringFlags ()
#13 0x0000000000466885 in Py_Main ()
#14 0x00007f5f912faea5 in __libc_start_main () from /lib/x86_64-linux-gnu/libc.so.6
#15 0x00000000004e1635 in _start ()

Using host="127.0.0.1:8091" instead of host="127.0.0.1", port=8091 causes fault. Not sure if it affects the most recent code base.

 Comments   
Comment by Mark Nunberg [ 13/Jun/13 ]
Actually it does, and there is a fix in progress -- see PYCBC-128




[PYCBC-129] Develop Content: deliver create the content behind the agreed upon TOC Created: 12/Jun/13  Updated: 18/Jun/13  Resolved: 18/Jun/13

Status: Resolved
Project: Couchbase Python Client Library
Component/s: None
Affects Version/s: None
Fix Version/s: 1.0 Beta
Security Level: Public

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

Attachments: PNG File json-document.png    
Issue Links:
Relates to
relates to PYCBC-113 TOC for Python 1.0 Resolved

 Description   
Per major docs process, need to come up with all of the content behind our Python 1.0 documentation.

 Comments   
Comment by Mark Nunberg [ 13/Jun/13 ]
Getting Started section (Asciidoc).

Additionally attached is a screenshot used by a section in the 'Getting Started'
Comment by Mark Nunberg [ 14/Jun/13 ]
Still left to do: Tutorial, Logging/Debugging
Comment by Mark Nunberg [ 14/Jun/13 ]
sample HTML output
Comment by Mark Nunberg [ 14/Jun/13 ]
Added contributing and advanced sections
Comment by Mark Nunberg [ 14/Jun/13 ]
Sample HTML output
Comment by Mark Nunberg [ 14/Jun/13 ]
Tutorial
Comment by Mark Nunberg [ 17/Jun/13 ]
Note that I'm working on some newer revisions; deleting existing stuff (as I've heavily modified it locally) -- will post on monday.
Comment by Mark Nunberg [ 17/Jun/13 ]
I've submitted a pull request here:

https://github.com/couchbase/docs/pull/224
Comment by kzeller [ 18/Jun/13 ]
Merged and validated.
Comment by Mark Nunberg [ 18/Jun/13 ]
There will be another PR coming up soon fixing some minor API changes which have taken place during the review process..
Comment by Mark Nunberg [ 18/Jun/13 ]
I think this can be resolved? We might have some other issues in the docs, but I think the bulk of it is done.
Comment by kzeller [ 18/Jun/13 ]
Yes!




[PYCBC-128] Client crashes if invalid hostname is passed Created: 07/Jun/13  Updated: 17/Jun/13  Resolved: 17/Jun/13

Status: Resolved
Project: Couchbase Python Client Library
Component/s: None
Affects Version/s: 0.11.1
Fix Version/s: 1.0 Beta
Security Level: Public

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


 Description   
    def test_invalid_hostname(self):
        self.assertRaises(InvalidError,
                          Connection,
                          bucket='default', host='12345:qwer###')

Will crash because the lcb_t object is not cleared when lcb_create fails.

 Comments   
Comment by Mark Nunberg [ 07/Jun/13 ]
http://review.couchbase.org/#/c/26830/




[PYCBC-127] ensure appropriate windows releases are posted to pypi in the release process Created: 05/Jun/13  Updated: 20/Jun/13  Resolved: 20/Jun/13

Status: Resolved
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: None
Fix Version/s: 1.0 Beta
Security Level: Public

Type: Improvement Priority: Major
Reporter: Matt Ingenthron Assignee: Matt Ingenthron
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Gantt: start-finish

 Description   
When releasing a new version, we need to ensure that not only the sdist is posted but also bdist for Windows is posted if appropriate.

We hadn't necessarily defined what we need bdist for, but the likely platforms are Windows x64. Let's talk through this as needed.

 Comments   
Comment by Mark Nunberg [ 09/Jun/13 ]
We'll be needing 8 binaries in total -- which should actually not be that difficult:

We'll be needing x86 and x64 binaries of:

2.6, 2.7, 3.1, and 3.2
Comment by Mark Nunberg [ 20/Jun/13 ]
done in scripts




[PYCBC-126] Provide better handling at fork Created: 04/Jun/13  Updated: 18/Jun/13  Resolved: 18/Jun/13

Status: Closed
Project: Couchbase Python Client Library
Component/s: None
Affects Version/s: None
Fix Version/s: 1.0 Beta
Security Level: Public

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


 Comments   
Comment by Mark Nunberg [ 18/Jun/13 ]
No sane way to handle this.




[PYCBC-125] Add lock option for Connection object Created: 04/Jun/13  Updated: 17/Jun/13  Resolved: 17/Jun/13

Status: Resolved
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: 0.10.0, 0.11.0, 0.11.1
Fix Version/s: 1.0 Beta
Security Level: Public

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


 Description   
Add an explicit option to the constructor to lock the object - to prevent simulatenous access from multiple threads.

 Comments   
Comment by Mark Nunberg [ 04/Jun/13 ]
While we ask users to do this manually, it turns out it's a bit of a chore to debug when something goes wrong. Having this option built-in makes it easier to figure out what's wrong :)




[PYCBC-124] Provide API to change default JSON/Pickle conversion functions Created: 03/Jun/13  Updated: 05/Jun/13  Resolved: 05/Jun/13

Status: Resolved
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: 0.11.1
Fix Version/s: 1.0 Beta
Security Level: Public

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





[PYCBC-122] automate publishing of docs for python Created: 31/May/13  Updated: 20/Jun/13  Resolved: 20/Jun/13

Status: Resolved
Project: Couchbase Python Client Library
Component/s: docs
Affects Version/s: None
Fix Version/s: 1.0 Beta
Security Level: Public

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


 Description   
Currently, we publish docs to a site published by the python community, but it would be better to publish to our own autodocs site.

 Comments   
Comment by Mark Nunberg [ 20/Jun/13 ]
done in scripts




[PYCBC-113] TOC for Python 1.0 Created: 15/May/13  Updated: 14/Jun/13  Resolved: 12/Jun/13

Status: Resolved
Project: Couchbase Python Client Library
Component/s: docs
Affects Version/s: None
Fix Version/s: 1.0 Beta
Security Level: Public

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

Issue Links:
Relates to
relates to PYCBC-129 Develop Content: deliver create the c... Resolved

 Description   
For the upcoming 1.0 Python client, we'll need to come up with a TOC. Likely something like MB-7714.

 Comments   
Comment by kzeller [ 15/May/13 ]
Not sure who is the subject matter expert on Python but we need input on the topics. Here is the TOC for Java-next-gen:


1. Getting Started
1.1 Preparations
1.2 Hello Couchbase
1.3 Next Steps

2. Tutorial
2.1 Preparations
2.2 Quickstart
2.3 Connection Management
2.4 The Welcome Page
2.5 Managing Beers
2.6 Wrapping Up

3. Using the APIs
3.1 Connection Management
3.2 Retreiving Data
3.3 Mutating Data
3.4 Working with Views
3.5 Applying Persistence Constraints
3.6 Error Handling
3.7 JSON & Object Serialization
3.8 Design Document Management

4. Advanced Usage
4.1 Bulk Loading
4.2 Working with Documents
4.3 Advanced Topics
4.4 Logging & Debugging

5. API Reference
5.1 Method Summary
5.2 Connecting & Disconnecting
5.3 Retreiving Data
5.4 Mutating Data
5.5 Management Operations
5.6 Other Useful Operations

A. Release Notes
B. Contributing
B.1 General Information
B.2 Source Code Styleguide
Comment by Matt Ingenthron [ 15/May/13 ]
Mark ist he SME.

Mark: Using this as a base (unless you have feedback to the contrary), can you edit up a TOC for the Python 1.0 release in this ticket?
Comment by Mark Nunberg [ 15/May/13 ]
I'd probably want to nix (for now):

2.3 Connection Management (it's a simple object, there's no global pooling yet)
3.4 Views (we don't have a stable view API yet)
3.8 ""
3.5 ""
4.4 We don't have any significant logging infrastructure in the SDK

We might want to split 'Preparations' into 'Installing the SDK' and 'Installing the cluster'

Thus:
--------------------------------------------------------------------------------------------------------------------------
1. Getting Started
1.1 Setting up the cluster
1.2 Installing the SDK
1.3 Hello Couchbase
1.4 Next Steps

2. Tutorial
2.1 Preparations
2.2 Quickstart
2.3 Connection Management
2.4 The Welcome Page
2.5 Managing Beers
2.6 Wrapping Up

3. Using the APIs
3.1 Connecting
3.2 Retreiving Data
3.3 Mutating Data
3.4 Working with Views [ NYI (Not Yet implemented) ]
3.5 Applying Persistence Constraints [ NYI ]
3.6 Error Handling
3.7 JSON & Object Serialization
3.8 Design Document Management [ NYI ]

4. Advanced Usage
4.1 Bulk Loading
4.2 Notes for using with (and without) threads (maybe this belogns in advanced)?
4.3 Working with Documents
4.4 Advanced Topics
4.5 Logging & Debugging

5. API Reference
5.1 Method Summary
5.2 Initialization
5.3 Retreiving Data
5.4 Mutating Data
5.5 Management Operations
5.6 Other Useful Operations

A. Release Notes
B. Contributing
B.1 General Information
B.2 Source Code Styleguide
Comment by Mark Nunberg [ 15/May/13 ]
Assigning back to you for review
Comment by Matt Ingenthron [ 29/May/13 ]
In response to your comments...

> 2.3 Connection Management (it's a simple object, there's no global pooling yet)

True, but there is a discussion here about to create and manage connection objects. I think that's critical to mention, if only a few paragraphs.

> 3.4 Views (we don't have a stable view API yet)

True, but we will have by 1.0.

> 3.8 ""

Yeah, if this isn't in 1.0, that's fine to leave it out.

> 3.5 ""

This will be needed for 1.0, so it should be in.

> 4.4 We don't have any significant logging infrastructure in the SDK

Okay to leave it out for now then, sure. Should there be a mention about logging in this section though?
Comment by Mark Nunberg [ 29/May/13 ]
Most of the relevant logging would be inside libcouchbase -- which doesn't really support logging yet. I guess with the packet queue fixes this should be doable, though; but that's fairly ahead.
Comment by kzeller [ 30/May/13 ]
TOC Review Feedback:

"3.5 Applying Persistence Constraints [ NYI ] “

I suppose you will be talking about the “PersistTo and ReplicateTo” parameters.

What is the correct “word” for this, I see persistence constraints, persistence requirement, or even durability:
http://www.couchbase.com/docs/couchbase-sdk-java-1.1/couchbase-sdk-java-set-durability.html
http://www.couchbase.com/docs/couchbase-sdk-net-1.2/couchbase-sdk-net-store-set.html

Just to be sure with use the same all the time

[CHANGED TO "Durability Requirements"]
Comment by Matt Ingenthron [ 30/May/13 ]
To Mark's comments:
That's fair, but look at it from a user perspective. Maybe we just need to state there is no logging in the python client and logging of most cases with Python is typically handled by the platform it's running on, flask, etc. Then the developer should just know to/how to log return values that don't make sense.

It's worth a discussion just so a user wondering about logging knows what they need to do.
Comment by Matt Ingenthron [ 12/Jun/13 ]
Reviewed with Mark, and we've settled on this. We'll open the ticket on delivering the pieces for the next step.

----
1. Getting Started
1.1 Setting up the cluster
1.2 Installing the SDK
1.3 Hello Couchbase
1.4 Next Steps

2. Tutorial
2.1 Preparations
2.2 Quickstart
2.3 Connection Management
2.4 The Welcome Page
2.5 Managing Beers
2.6 Wrapping Up

3. Using the APIs
3.1 Connecting
3.2 Retreiving Data
3.3 Mutating Data
3.4 Working with Views [ in review ]
3.5 Error Handling
3.6 JSON & Object Serialization
3.7 Design Document Management

4. Advanced Usage
4.1 Bulk Loading
4.2 Notes for using with (and without) threads (maybe this belogns in advanced)?
4.3 Working with Documents
4.4 Advanced Topics
4.5 Logging & Debugging

5. API Reference (this will not be in the docbook docs, but we'll check that all of these are covered in the python generated docs)
5.1 Method Summary
5.2 Initialization
5.3 Retreiving Data
5.4 Mutating Data
5.5 Management Operations
5.6 Other Useful Operations

A. Release Notes
B. Contributing
B.1 General Information
B.2 Source Code Styleguide




[PYCBC-102] New Python 1.0 Guide Created: 08/May/13  Updated: 19/Jun/13  Resolved: 19/Jun/13

Status: Closed
Project: Couchbase Python Client Library
Component/s: docs
Affects Version/s: None
Fix Version/s: 1.0 Beta
Security Level: Public

Type: Task Priority: Major
Reporter: Anonymous Assignee: Matt Ingenthron
Resolution: Duplicate Votes: 0
Labels: info-request
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
MarkN the component lead.

Matt: will have schedule next week.

 Comments   
Comment by Mark Nunberg [ 19/Jun/13 ]
Isn't this a duplicate of PYCBC-129?
Comment by Mark Nunberg [ 19/Jun/13 ]
duplicate of PYCBC-129




[PYCBC-83] Python client fails to encode view parameters Created: 09/Feb/13  Updated: 05/Jun/13  Resolved: 05/Jun/13

Status: Resolved
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: 0.8.0
Fix Version/s: 1.0 Beta
Security Level: Public

Type: Bug Priority: Major
Reporter: Mike Wiederhold Assignee: Mark Nunberg
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
http://www.couchbase.com/forums/thread/reporting-issue-python-client-bucket-viewoptions-needs-encode-options

During querying a view, if the option is not encoded, it generates an error.
Example:
bucket.view("_design/beer/_view/by_name", limit=10, key="##")
The "##" characters generates:
"invalid UTF-8 JSON: {{error,insufficient_data},"[\"NONE"}"
The Couchbase Python client code should encode all the params in the client.py: view() method.

Please follow up with the user who posted the issue on the forums once this issue is resolved.




[PYCBC-82] Error handling documentation Created: 05/Feb/13  Updated: 19/Jun/13  Resolved: 19/Jun/13

Status: Resolved
Project: Couchbase Python Client Library
Component/s: docs
Affects Version/s: 0.8.0
Fix Version/s: 1.0 Beta
Security Level: Public

Type: Improvement Priority: Major
Reporter: Perry Krug Assignee: Mark Nunberg
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
Please create some documentation specifying possible error/failures to operations, what they "look" like in the logs/exceptions/stack traces and what our recommendation is on how to handle them.

i.e. tmp_oom, timeouts (connection/operation/java-internal/etc), "get miss" (it's technically a failure, let's make it overly obvious what it means), CAS failure, add() failure, replace() failure,

Some of this should be covered in the API reference, but this bug is specifically for a single page where this information is aggregated that a customer/user could read about how to handle errors.




[PYCBC-71] Supporting _all_docs in the SDK Created: 15/Nov/12  Updated: 18/Jun/13  Resolved: 18/Jun/13

Status: Closed
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: 0.8.0
Fix Version/s: 1.0 Beta
Security Level: Public

Type: Improvement Priority: Major
Reporter: Volker Mische Assignee: Mark Nunberg
Resolution: Won't Fix Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
The Python SDK currently doesn't seem to support _all_docs at the moment.

I remember that it was possible in the past with something like `.view("_all_docs")`, but I think this is the wrong way to do it. _all_docs should really have its own method. The reasons are:

 - _all_docs and Views are a different thing, this should not be hidden to the user
 - _all_docs uses raw collation and not Unicode collation as Views do
 - I'm not sure about this one, but it could be the case, that _all_docs also contains not yet persisted items (as opposed to views).


 Comments   
Comment by Mark Nunberg [ 18/Jun/13 ]
_all_docs is an internal function - it shouldn't be exposed to the user. It's simple enough to use an HTTP client -- plus we have a node list




[PYCBC-68] cannot delete design doc Created: 18/Sep/12  Updated: 05/Jun/13  Resolved: 05/Jun/13

Status: Resolved
Project: Couchbase Python Client Library
Component/s: None
Affects Version/s: 0.8.0
Fix Version/s: 1.0 Beta
Security Level: Public

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


 Description   
This may be related to the _rev changes with design docs recently. It could also be related to authentication changes.

http://www.couchbase.com/forums/thread/python-client-delete-design-doc

 Comments   
Comment by Matt Ingenthron [ 18/Sep/12 ]
From the bug reporter:

Server is 2.0.0. I've updated the python client to 0.8.0 and the problem remains although with a different error message;

File "/Volumes/DATA/dv/epic/server/venv/lib/python2.7/site-packages/couchbase/client.py", line 254, in delete
rest.delete_view(self.name, view)
AttributeError: 'RestConnection' object has no attribute 'delete_view'

I think the problem lies simply within the Python client; inspecting client.py:254 there's a call to a non existent function delete_view().. probably should be RestConnection.delete_design_doc().




[PYCBC-64] Improve design document management error handling Created: 30/Aug/12  Updated: 05/Jun/13  Resolved: 05/Jun/13

Status: Resolved
Project: Couchbase Python Client Library
Component/s: None
Affects Version/s: 0.8.0
Fix Version/s: 1.0 Beta
Security Level: Public

Type: Improvement Priority: Major
Reporter: Benjamin Young Assignee: Mark Nunberg
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
The most likely error that needs better handling is invalid JavaScript.

 Comments   
Comment by Benjamin Young [ 31/Aug/12 ]
Docs for potential errors:
http://www.couchbase.com/docs/couchbase-manual-2.0/couchbase-views-designdoc-api-retrieving.html
Comment by Mark Nunberg [ 04/Jun/13 ]
This will be resolved - the exception formatting is much nicer so the reason for error should be quite evident :)




[PYCBC-43] Update the getting started to match the Beer sample DB Created: 12/Jul/12  Updated: 18/Jun/13  Resolved: 18/Jun/13

Status: Resolved
Project: Couchbase Python Client Library
Component/s: docs
Affects Version/s: None
Fix Version/s: 1.0 Beta
Security Level: Public

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


 Description   
Once the sample DB has been integrated into the server, update the getting started (both on the web page and in the documentation) to use the sample database.


 Comments   
Comment by Mark Nunberg [ 18/Jun/13 ]
Fixed in the docs.




[PYCBC-41] View error options at query time Created: 12/Jul/12  Updated: 05/Jun/13  Resolved: 05/Jun/13

Status: Resolved
Project: Couchbase Python Client Library
Component/s: None
Affects Version/s: None
Fix Version/s: 1.0 Beta
Security Level: Public

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

Issue Links:
Dependency
blocks PYCBC-27 support errors on views Resolved

 Description   
At view query time, we need to ensure the developer has the ability to add an "on_error" parameter with values of either "stop" or "continue".





[PYCBC-36] Implement observe command Created: 12/Jul/12  Updated: 18/Jun/13  Resolved: 18/Jun/13

Status: Resolved
Project: Couchbase Python Client Library
Component/s: None
Affects Version/s: None
Fix Version/s: 1.0 Beta
Security Level: Public

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


 Description   
Add the basic low level observe command





[PYCBC-27] support errors on views Created: 22/Mar/12  Updated: 05/Jun/13  Resolved: 05/Jun/13

Status: Resolved
Project: Couchbase Python Client Library
Component/s: None
Affects Version/s: None
Fix Version/s: 1.0 Beta
Security Level: Public

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

Issue Links:
Dependency
depends on PYCBC-41 View error options at query time Resolved

 Description   
Views now have some options on capturing errors and stopping on errors as documented here:
http://www.couchbase.com/docs/couchbase-manual-2.0/couchbase-views-writing-errors.html

The client needs to support these.

 Comments   
Comment by Mark Nunberg [ 04/Jun/13 ]
We need a way to test this properly. Some ideas would be nice.




[PYCBC-9] an interface to paginate across large view results is needed Created: 22/Aug/11  Updated: 19/Jun/13  Resolved: 19/Jun/13

Status: Resolved
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: None
Fix Version/s: 1.0 Beta
Security Level: Public

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


 Description   
There can be some situations where querying a view returns results that way too large for the client to handle. In these cases, either the client library API or implementation of some Python specific API can allow for one to iterate over Views which have very large results.

The Ruby client does this with streaming. The Java client does this with traditional pagination:
http://guide.couchdb.org/draft/recipes.html#pagination




[PYCBC-8] creating and destroying design docs with views from the client library should be available Created: 22/Aug/11  Updated: 09/Jun/13  Resolved: 09/Jun/13

Status: Resolved
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: 1.0.0
Fix Version/s: 1.0 Beta
Security Level: Public

Type: New Feature Priority: Minor
Reporter: Matt Ingenthron Assignee: Mark Nunberg
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
Separate from accessing views, there should be methods of creating and destroying views and the associated design documents.




[PYCBC-7] An interface to access Couchbase Views is needed Created: 22/Aug/11  Updated: 19/Jun/13  Resolved: 19/Jun/13

Status: Resolved
Project: Couchbase Python Client Library
Component/s: None
Affects Version/s: None
Fix Version/s: 1.0 Beta
Security Level: Public

Type: New Feature Priority: Critical
Reporter: Matt Ingenthron Assignee: Mark Nunberg
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
Need an interface to be able to access Couchbase Views. Even without the ability to create and delete views, accessing view results is important, as views can be created through the Web UI interface.

The specific implementation should be specific to, and familiar to the surrounding language and library, but it should have some general capabilities:
- List views from a given cluster
- Instantiate an Object that represents a view on a given cluster
- Assemble query parameters for a View
- Retrieve non-reduced results from a View
  * Be able to get the underlying document from the non-reduced results (this request should flow over binprot)
- Retrieve reduced results from a View (the format is the same, but there is no associated docid)

 Comments   
Comment by Farshid Ghods (Inactive) [ 29/Sep/11 ]
looking at the readme files now seems like some view functionalities are already implemented :

    # save a design document
    # right now with no _rev, we can only create, we can't update
    try:
        doc_id = newbucket.save(design)
    except:
        doc_id = "_design/testing"

    rows = newbucket.view("_design/testing/_view/all")
    for row in rows:
        print row

Keith,
can you please go through this checklist and let us know which features need to be worked on ?
Comment by Benjamin Young [ 06/Apr/12 ]
Keith, can you get us an update on the status of this issue?

Much thanks!
Comment by Benjamin Young [ 17/May/12 ]
Think you're leading this charge. :) Thanks!
Comment by Matt Ingenthron [ 24/Aug/12 ]
@benjamin is completing this in 0.8
Comment by Benjamin Young [ 30/Aug/12 ]
The one remaining piece--"include docs over binary protocol" is stalled due to get_multi()

However, the API can still handle include_docs over HTTP, so I'm closing this one, and adding another one for include docs over binary protocol.
Comment by Benjamin Young [ 30/Aug/12 ]
http://www.couchbase.com/issues/browse/PYCBC-63
Binary protocol improvements related to this API & include_docs




Generated at Fri Jul 25 04:49:47 CDT 2014 using JIRA 5.2.4#845-sha1:c9f4cc41abe72fb236945343a1f485c2c844dac9.