- [FIXED] Correctly raise exceptions from
create_database
calls.
- [NEW] Added partitioned database support.
- [FIXED] Bug where document context manager performed remote save despite uncaught exceptions being
raised inside
with
block. - [FIXED] Fixed parameter type of
selector
in docstring. - [FIXED] Removed internal
Document._document_id
property to allow a safe use of dict's methods. - [IMPROVED] Performance of
Result
iteration by releasing result objects immediately after they are returned to the client. - [IMPROVED] Updated
Getting started
section with aget_query_result
example. - [IMPROVED] Updated
Result
iteration by paginating with views'startkey
and queries'bookmark
.
- [NEW] Added option for client to authenticate with IAM token server.
- [FIXED] Updated the default IAM token server URL.
- [FIXED] A performance regression deserializing JSON in version 2.10.1.
- [FIXED] Unexpected keyword argument errors when using the library with the
simplejson
module present in the environment caused byrequests
preferentially loading it over the systemjson
module.
- [NEW] Add custom JSON encoder/decoder option to
Document
constructor. - [NEW] Add new view parameters,
stable
andupdate
, as keyword arguments toget_view_result
. - [NEW] Allow arbitrary query parameters to be passed to custom changes filters.
- [FIXED] Case where an exception was raised after successful retry when using
doc.update_field
. - [FIXED] Removed unnecessary request when retrieving a Result collection that is less than the
page_size
value.
- [NEW] Added functionality to test if a key is in a database as in
key in db
, overriding dict__contains__
and checking in the remote database. - [NEW] Moved
create_query_index
and other query related methods toCouchDatabase
as the_index
/_find
API is available in CouchDB 2.x. - [NEW] Support IAM authentication in replication documents.
- [FIXED] Case where
Document
context manager would throw instead of creating a new document if no_id
was provided. - [IMPROVED] Added support for IAM API key in
cloudant_bluemix
method. - [IMPROVED] Shortened length of client URLs by removing username and password.
- [IMPROVED] Verified library operation on Python 3.6.3.
- [FIXED] Installation failures of 2.8.0 caused by missing VERSION file in distribution.
- [NEW] Added support for
/_search_disk_size
endpoint which retrieves disk size information for a specific search index. - [FIXED] Updated default IBM Cloud Identity and Access Management token URL.
- [REMOVED] Removed broken source and target parameters that constantly threw
AttributeError
when creating a replication document.
- [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).