- [NEW] Added API for upcoming Bluemix Identity and Access Management support for Cloudant on Bluemix. Note: IAM API key support is not yet enabled in the service.
- [NEW] Added HTTP basic authentication support.
- [NEW] Added
Result.all()
convenience method. - [NEW] Allow
service_name
to be specified when instantiating from a Bluemix VCAP_SERVICES environment variable. - [IMPROVED] Updated
posixpath.join
references to use'/'.join
when concatenating URL parts. - [IMPROVED] Updated documentation by replacing deprecated Cloudant links with the latest Bluemix links.
- [NEW] Added
Cloudant.bluemix()
class method to the Cloudant client allowing service credentials to be passed using the CloudFoundry VCAP_SERVICES environment variable. - [FIXED] Fixed client construction in
cloudant_bluemix
context manager. - [FIXED] Fixed validation for feed options to accept zero as a valid value.
- [FIXED] Fixed crash caused by non-UTF8 chars in design documents.
- [FIXED] Fixed
TypeError
when setting revision limits on Python>=3.6. - [FIXED] Fixed the
exists()
double check onclient.py
anddatabase.py
. - [FIXED] Fixed Cloudant exception code 409 with 412 when creating a database that already exists.
- [FIXED] Catch error if
throw_on_exists
flag isFalse
for creating a document. - [FIXED] Fixed /_all_docs call where
keys
is an empty list. - [FIXED] Issue where docs with IDs that sorted lower than 0 were not returned when iterating through _all_docs.
- [NEW] Added
timeout
option to the client constructor for setting a timeout on a HTTP connection or a response. - [NEW] Added
cloudant_bluemix
method to the Cloudant client allowing service credentials to be passed using the CloudFoundry VCAP_SERVICES environment variable. - [IMPROVED] Updated non-response related errors with additional status code and improved error message for easier debugging. All non-response error are handled using either CloudantException or CloudantArgumentError.
- [FIXED] Support
long
type argument when executing in Python 2.
- [FIXED] Resolved issue where generated UUIDs for replication documents would not be converted to strings.
- [FIXED] Resolved issue where CouchDatabase.infinite_changes() method can cause a stack overflow.
- [FIXED] Resolved issue where the custom JSON encoder was at times not used when transforming data.
- [NEW] Added support for managing the database security document through the SecurityDocument class and CouchDatabase convenience method
get_security_document
. - [NEW] Added
auto_renewal
option to the client constructor to handle the automatic renewal of an expired session cookie auth.
- [NEW] Added auto connect feature to the client constructor.
- [FIXED] Requests session is no longer valid after disconnect.
- [FIXED] HTTPError is now raised when 4xx or 5xx codes are encountered.
- [NEW] Added support for Cloudant Search execution.
- [NEW] Added support for Cloudant Search index management.
- [NEW] Added support for managing and querying list functions.
- [NEW] Added support for managing and querying show functions.
- [NEW] Added support for querying update handlers.
- [NEW] Added
rewrites
accessor property for URL rewriting. - [NEW] Added
st_indexes
accessor property for Cloudant Geospatial indexes. - [NEW] Added support for DesignDocument
_info
and_search_info
endpoints. - [NEW] Added
validate_doc_update
accessor property for update validators. - [NEW] Added support for a custom
requests.HTTPAdapter
to be configured using an optionaladapter
arg e.g.Cloudant(USERNAME, PASSWORD, account=ACCOUNT_NAME, adapter=Replay429Adapter())
. - [IMPROVED] Made the 429 response code backoff optional and configurable. To enable the backoff add
an
adapter
arg of aReplay429Adapter
with the desired number of retries and initial backoff. To replicate the 2.0.0 behaviour use:adapter=Replay429Adapter(retries=10, initialBackoff=0.25)
. Ifretries
orinitialBackoff
are not specified they will default to 3 retries and a 0.25 s initial backoff. - [IMPROVED] Additional error reason details appended to HTTP response message errors.
- [FIX]
415 Client Error: Unsupported Media Type
when using keys withdb.all_docs
. - [FIX] Allowed strings as well as lists for search
group_sort
arguments.
- [FIX] Fixed the python-cloudant readthedocs documentation home page to resolve correctly.
- [IMPROVED] Updated documentation links from python-cloudant.readthedocs.org to python-cloudant.readthedocs.io.
- [FIX] Fixed issue with Windows platform compatibility,replaced usage of os.uname for the user-agent string.
- [FIX] Fixed readthedocs link in README.rst to resolve to documentation home page.
- [IMPROVED] Updated documentation links from python-cloudant.readthedocs.org to python-cloudant.readthedocs.io.
- [FIX] Fixed issue with Windows platform compatibility,replaced usage of os.uname for the user-agent string.
- [FIX] Fixed readthedocs link in README.rst to resolve to documentation home page.
- [BREAKING] Renamed modules account.py, errors.py, indexes.py, views.py, to client.py, error.py, index.py, and view.py.
- [BREAKING] Removed the
make_result
method fromView
andQuery
classes. If you need to make a query or view result, useCloudantDatabase.get_query_result
,CouchDatabase.get_view_result
, or theView.custom_result
context manager. Additionally, theResult
andQueryResult
classes can be called directly to construct a result object. - [BREAKING] Refactored the
SearchIndex
class to now be theTextIndex
class. Also renamed theCloudantDatabase
convenience methods ofget_all_indexes
,create_index
, anddelete_index
asget_query_indexes
,create_query_index
, anddelete_query_index
respectively. These changes were made to clarify that the changed class and the changed methods were specific to query index processing only. - [BREAKING] Replace "session" and "url" feed constructor arguments with "source" which can be either a client or a database object. Changes also made to the client
db_updates
method signature and the databasechanges
method signature. - [BREAKING] Fixed
CloudantDatabase.share_database
to accept all valid permission roles. Changed the method signature to accept roles as a list argument. - [BREAKING] Removed credentials module from the API and moved it to the tests folder since the functionality is outside of the scope of this library but is still be useful in unit/integration tests.
- [IMPROVED] Changed the handling of queries using the keys argument to issue a http POST request instead of a http GET request so that the request is no longer bound by any URL length limitation.
- [IMPROVED] Added support for Result/QueryResult data access via index value and added validation logic to
Result.__getitem__()
. - [IMPROVED] Updated feed functionality to process
_changes
and_db_updates
with their supported options. Also added an infinite feed option. - [NEW] Handled HTTP status code
429 Too Many Requests
with blocking backoff and retries. - [NEW] Added support for CouchDB Admin Party mode. This library can now be used with CouchDB instances where everyone is Admin.
- [FIX] Fixed
Document.get_attachment
method to successfully create text and binary files based on http response Content-Type. The method also returns text, binary, and json content based on http response Content-Type. - [FIX] Added validation to
Cloudant.bill
,Cloudant.volume_usage
, andCloudant.requests_usage
methods to ensure that a valid year/month combination or neither are used as arguments. - [FIX] Fixed the handling of empty views in the DesignDocument.
- [FIX] The
CouchDatabase.create_document
method now handles documents and design documents correctly. If the document created is a design document then the locally cached object will be a DesignDocument otherwise it will be a Document. - [CHANGE] Moved internal
Code
class, functions likepython_to_couch
andtype_or_none
, and constants into a _common_util module. - [CHANGE] Updated User-Agent header format to be
python-cloudant/<library version>/Python/<Python version>/<OS name>/<OS architecture>
. - [CHANGE] Completed the addition of unit tests that target a database server. Removed all mocked unit tests.
- [FIX] Remove the fields parameter from required Query parameters.
- [NEW] Add Python 3 support.
- [NEW] Added support for Cloudant Query execution.
- [NEW] Added support for Cloudant Query index management.
- [FIX] DesignDocument content is no longer limited to just views.
- [FIX] Document url encoding is now enforced.
- [FIX] Database iterator now yields Document/DesignDocument objects with valid document urls.
- [FIX] Fixed incorrect readme reference to current library being Alpha 2.
- [NEW] Added API documentation hosted on readthedocs.org.
- [NEW] Added unit tests targeting CouchDB and Cloudant databases.
- [FIX] Fixed bug in database create validation check to work if response code is either 201 (created) or 202 (accepted).
- [FIX] Fixed database iterator infinite loop problem and to now yield a Document object.
- [BREAKING] Removed previous bulk_docs method from the CouchDatabase class and renamed the previous bulk_insert method as bulk_docs. The previous bulk_docs functionality is available through the all_docs method using the "keys" parameter.
- [FIX] Made missing_revisions, revisions_diff, get_revision_limit, set_revision_limit, and view_cleanup API methods available for CouchDB as well as Cloudant.
- [BREAKING] Moved the db_update method to the account module.
- [FIX] Fixed missing_revisions to key on 'missing_revs'.
- [FIX] Fixed set_revision_limit to encode the request data payload correctly.
- [FIX]
Document.create()
will no longer update an existing document. - [BREAKING] Renamed Document
field_append
method tolist_field_append
. - [BREAKING] Renamed Document
field_remove
method tolist_field_remove
. - [BREAKING] Renamed Document
field_replace
method tofield_set
. - [FIX] The Document local dictionary
_id
key is now synched with_document_id
private attribute. - [FIX] The Document local dictionary is now refreshed after an add/update/delete of an attachment.
- [FIX] The Document
fetch()
method now refreshes the Document local dictionary content correctly. - [BREAKING] Replace the ReplicatorDatabase class with the Replicator class. A Replicator object has a database attribute that represents the _replicator database. This allows the Replicator to work for both a CloudantDatabase and a CouchDatabase.
- [REMOVED] Removed "not implemented" methods from the DesignDocument.
- [FIX] Add implicit "_design/" prefix for DesignDocument document ids.
- Initial release (2.0.0a1).