- [DEPRECATED] This library is end-of-life and no longer supported.
- [NEW] Override
dict.getmethod forCouchDatabaseto addremoteparameter allowing it to retrieve a remote document if specified. - [FIXED] Fixed the documentation for
bookmarks. - [FIXED] Also exit
follow_replicationforfailedstate. - [FIXED] Fixed result paging for grouped view queries.
- [FIXED] Incorrect use of username as account name in
Cloudant.bluemix(). - [FIXED] Use custom encoder (if provided) for all view
keyparams not justkeys. - [FIXED] Support boolean type for
key,endkey, andstartkeyin view requests. - [DEPRECATED] This library is now deprecated and will be EOL on Dec 31 2021.
- [REMOVED] Removed Python 2 compatibility from the supported environments.
- [IMPROVED] Documented use of
Noneaccount name and url override forCloudant.iam(). - [IMPROVED] - Document IDs and attachment names are now rejected if they could cause an unexpected Cloudant request. We have seen that some applications pass unsantized document IDs to SDK functions (e.g. direct from user requests). In response to this we have updated many functions to reject obviously invalid paths. However, for complete safety applications must still validate that document IDs and attachment names match expected patterns.
- [FIXED] Set default value for
partitionedparameter to false when creating a design document. - [FIXED] Corrected setting of
partitionedflag forcreate_query_indexrequests. - [FIXED] Added a workaround for installation on Python 2.
- [FIXED] Correctly raise exceptions from
create_databasecalls. - [FIXED] Fix
DeprecationWarningfromcollections.
- [NEW] Added partitioned database support.
- [FIXED] Bug where document context manager performed remote save despite uncaught exceptions being
raised inside
withblock. - [FIXED] Fixed parameter type of
selectorin docstring. - [FIXED] Removed internal
Document._document_idproperty to allow a safe use of dict's methods. - [IMPROVED] Performance of
Resultiteration by releasing result objects immediately after they are returned to the client. - [IMPROVED] Updated
Getting startedsection with aget_query_resultexample. - [IMPROVED] Updated
Resultiteration by paginating with views'startkeyand 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
simplejsonmodule present in the environment caused byrequestspreferentially loading it over the systemjsonmodule.
- [NEW] Add custom JSON encoder/decoder option to
Documentconstructor. - [NEW] Add new view parameters,
stableandupdate, 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_sizevalue.
- [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_indexand other query related methods toCouchDatabaseas the_index/_findAPI is available in CouchDB 2.x. - [NEW] Support IAM authentication in replication documents.
- [FIXED] Case where
Documentcontext manager would throw instead of creating a new document if no_idwas provided. - [IMPROVED] Added support for IAM API key in
cloudant_bluemixmethod. - [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_sizeendpoint 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
AttributeErrorwhen 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_nameto be specified when instantiating from a Bluemix VCAP_SERVICES environment variable. - [IMPROVED] Updated
posixpath.joinreferences to use'/'.joinwhen 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_bluemixcontext 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
TypeErrorwhen setting revision limits on Python>=3.6. - [FIXED] Fixed the
exists()double check onclient.pyanddatabase.py. - [FIXED] Fixed Cloudant exception code 409 with 412 when creating a database that already exists.
- [FIXED] Catch error if
throw_on_existsflag isFalsefor creating a document. - [FIXED] Fixed /_all_docs call where
keysis an empty list. - [FIXED] Issue where docs with IDs that sorted lower than 0 were not returned when iterating through _all_docs.
- [NEW] Added
timeoutoption to the client constructor for setting a timeout on a HTTP connection or a response. - [NEW] Added
cloudant_bluemixmethod 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
longtype 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_renewaloption 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
rewritesaccessor property for URL rewriting. - [NEW] Added
st_indexesaccessor property for Cloudant Geospatial indexes. - [NEW] Added support for DesignDocument
_infoand_search_infoendpoints. - [NEW] Added
validate_doc_updateaccessor property for update validators. - [NEW] Added support for a custom
requests.HTTPAdapterto be configured using an optionaladapterarg 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
adapterarg of aReplay429Adapterwith the desired number of retries and initial backoff. To replicate the 2.0.0 behaviour use:adapter=Replay429Adapter(retries=10, initialBackoff=0.25). IfretriesorinitialBackoffare 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 Typewhen using keys withdb.all_docs. - [FIX] Allowed strings as well as lists for search
group_sortarguments.
- [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_resultmethod fromViewandQueryclasses. If you need to make a query or view result, useCloudantDatabase.get_query_result,CouchDatabase.get_view_result, or theView.custom_resultcontext manager. Additionally, theResultandQueryResultclasses can be called directly to construct a result object. - [BREAKING] Refactored the
SearchIndexclass to now be theTextIndexclass. Also renamed theCloudantDatabaseconvenience methods ofget_all_indexes,create_index, anddelete_indexasget_query_indexes,create_query_index, anddelete_query_indexrespectively. 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_updatesmethod signature and the databasechangesmethod signature. - [BREAKING] Fixed
CloudantDatabase.share_databaseto 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
_changesand_db_updateswith their supported options. Also added an infinite feed option. - [NEW] Handled HTTP status code
429 Too Many Requestswith 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_attachmentmethod 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_usagemethods 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_documentmethod 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
Codeclass, functions likepython_to_couchandtype_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_appendmethod tolist_field_append. - [BREAKING] Renamed Document
field_removemethod tolist_field_remove. - [BREAKING] Renamed Document
field_replacemethod tofield_set. - [FIX] The Document local dictionary
_idkey is now synched with_document_idprivate 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).