|
1 | 1 | # Unreleased |
2 | 2 |
|
3 | 3 | - [NEW] Added partitioned database support. |
4 | | -- [IMPROVED] Updated `Result` iteration by paginating with views' `startkey` and |
5 | | - queries' `bookmark`. |
6 | | -- [FIXED] Bug where document context manager performed remote save despite |
7 | | - uncaught exceptions being raised inside `with` block. |
| 4 | +- [IMPROVED] Updated `Result` iteration by paginating with views' `startkey` and queries' |
| 5 | + `bookmark`. |
| 6 | +- [FIXED] Bug where document context manager performed remote save despite uncaught exceptions being |
| 7 | + raised inside `with` block. |
8 | 8 | - [FIXED] Fixed parameter type of `selector` in docstring. |
9 | 9 | - [IMPROVED] Updated `Getting started` section with a `get_query_result` example. |
10 | | -- [FIXED] Removed internal `Document._document_id` property to allow a safe use of |
11 | | - dict's methods. |
| 10 | +- [FIXED] Removed internal `Document._document_id` property to allow a safe use of dict's methods. |
12 | 11 |
|
13 | 12 | # 2.11.0 (2019-01-21) |
14 | 13 |
|
|
21 | 20 |
|
22 | 21 | # 2.10.1 (2018-11-16) |
23 | 22 |
|
24 | | -- [FIXED] Unexpected keyword argument errors when using the library with the |
25 | | - `simplejson` module present in the environment caused by `requests` preferentially |
26 | | - loading it over the system `json` module. |
| 23 | +- [FIXED] Unexpected keyword argument errors when using the library with the `simplejson` module |
| 24 | + present in the environment caused by `requests` preferentially loading it over the system `json` |
| 25 | + module. |
27 | 26 |
|
28 | 27 | # 2.10.0 (2018-09-19) |
29 | 28 |
|
30 | 29 | - [NEW] Add custom JSON encoder/decoder option to `Document` constructor. |
31 | 30 | - [NEW] Add new view parameters, `stable` and `update`, as keyword arguments to `get_view_result`. |
32 | 31 | - [NEW] Allow arbitrary query parameters to be passed to custom changes filters. |
33 | 32 | - [FIXED] Case where an exception was raised after successful retry when using `doc.update_field`. |
34 | | -- [FIXED] Removed unnecessary request when retrieving a Result collection that is less than the `page_size` value. |
| 33 | +- [FIXED] Removed unnecessary request when retrieving a Result collection that is less than the |
| 34 | + `page_size` value. |
35 | 35 |
|
36 | 36 | # 2.9.0 (2018-06-13) |
37 | 37 |
|
38 | | -- [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. |
39 | | -- [NEW] Moved `create_query_index` and other query related methods to `CouchDatabase` as the `_index`/`_find` API is available in CouchDB 2.x. |
| 38 | +- [NEW] Added functionality to test if a key is in a database as in `key in db`, overriding dict |
| 39 | + `__contains__` and checking in the remote database. |
| 40 | +- [NEW] Moved `create_query_index` and other query related methods to `CouchDatabase` as the |
| 41 | + `_index`/`_find` API is available in CouchDB 2.x. |
40 | 42 | - [NEW] Support IAM authentication in replication documents. |
41 | | -- [FIXED] Case where `Document` context manager would throw instead of creating a new document if no `_id` was provided. |
| 43 | +- [FIXED] Case where `Document` context manager would throw instead of creating a new document if no |
| 44 | + `_id` was provided. |
42 | 45 | - [IMPROVED] Added support for IAM API key in `cloudant_bluemix` method. |
43 | 46 | - [IMPROVED] Shortened length of client URLs by removing username and password. |
44 | 47 | - [IMPROVED] Verified library operation on Python 3.6.3. |
|
49 | 52 |
|
50 | 53 | # 2.8.0 (2018-02-15) |
51 | 54 |
|
52 | | -- [NEW] Added support for `/_search_disk_size` endpoint which retrieves disk size information for a specific search index. |
| 55 | +- [NEW] Added support for `/_search_disk_size` endpoint which retrieves disk size information for a |
| 56 | + specific search index. |
53 | 57 | - [FIXED] Updated default IBM Cloud Identity and Access Management token URL. |
54 | | -- [REMOVED] Removed broken source and target parameters that constantly threw `AttributeError` when creating a replication document. |
| 58 | +- [REMOVED] Removed broken source and target parameters that constantly threw `AttributeError` when |
| 59 | + creating a replication document. |
55 | 60 |
|
56 | 61 | # 2.7.0 (2017-10-31) |
57 | 62 |
|
58 | | -- [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. |
| 63 | +- [NEW] Added API for upcoming Bluemix Identity and Access Management support for Cloudant on |
| 64 | + Bluemix. Note: IAM API key support is not yet enabled in the service. |
59 | 65 | - [NEW] Added HTTP basic authentication support. |
60 | 66 | - [NEW] Added `Result.all()` convenience method. |
61 | | -- [NEW] Allow `service_name` to be specified when instantiating from a Bluemix VCAP_SERVICES environment variable. |
| 67 | +- [NEW] Allow `service_name` to be specified when instantiating from a Bluemix VCAP_SERVICES |
| 68 | + environment variable. |
62 | 69 | - [IMPROVED] Updated `posixpath.join` references to use `'/'.join` when concatenating URL parts. |
63 | | -- [IMPROVED] Updated documentation by replacing deprecated Cloudant links with the latest Bluemix links. |
| 70 | +- [IMPROVED] Updated documentation by replacing deprecated Cloudant links with the latest Bluemix |
| 71 | + links. |
64 | 72 |
|
65 | 73 | # 2.6.0 (2017-08-10) |
66 | 74 |
|
67 | | -- [NEW] Added `Cloudant.bluemix()` class method to the Cloudant client allowing service credentials to be passed using the CloudFoundry VCAP_SERVICES environment variable. |
| 75 | +- [NEW] Added `Cloudant.bluemix()` class method to the Cloudant client allowing service credentials |
| 76 | + to be passed using the CloudFoundry VCAP_SERVICES environment variable. |
68 | 77 | - [FIXED] Fixed client construction in `cloudant_bluemix` context manager. |
69 | 78 | - [FIXED] Fixed validation for feed options to accept zero as a valid value. |
70 | 79 |
|
|
76 | 85 | - [FIXED] Fixed Cloudant exception code 409 with 412 when creating a database that already exists. |
77 | 86 | - [FIXED] Catch error if `throw_on_exists` flag is `False` for creating a document. |
78 | 87 | - [FIXED] Fixed /_all_docs call where `keys` is an empty list. |
79 | | -- [FIXED] Issue where docs with IDs that sorted lower than 0 were not returned when iterating through _all_docs. |
| 88 | +- [FIXED] Issue where docs with IDs that sorted lower than 0 were not returned when iterating |
| 89 | + through _all_docs. |
80 | 90 |
|
81 | 91 | # 2.4.0 (2017-02-14) |
82 | 92 |
|
83 | | -- [NEW] Added `timeout` option to the client constructor for setting a timeout on a HTTP connection or a response. |
84 | | -- [NEW] Added `cloudant_bluemix` method to the Cloudant client allowing service credentials to be passed using the CloudFoundry VCAP_SERVICES environment variable. |
85 | | -- [IMPROVED] Updated non-response related errors with additional status code and improved error message for easier debugging. |
86 | | - All non-response error are handled using either CloudantException or CloudantArgumentError. |
| 93 | +- [NEW] Added `timeout` option to the client constructor for setting a timeout on a HTTP connection |
| 94 | + or a response. |
| 95 | +- [NEW] Added `cloudant_bluemix` method to the Cloudant client allowing service credentials to be |
| 96 | + passed using the CloudFoundry VCAP_SERVICES environment variable. |
| 97 | +- [IMPROVED] Updated non-response related errors with additional status code and improved error |
| 98 | + message for easier debugging. All non-response error are handled using either CloudantException |
| 99 | + or CloudantArgumentError. |
87 | 100 | - [FIXED] Support `long` type argument when executing in Python 2. |
88 | 101 |
|
89 | 102 | # 2.3.1 (2016-11-30) |
90 | 103 |
|
91 | | -- [FIXED] Resolved issue where generated UUIDs for replication documents would not be converted to strings. |
| 104 | +- [FIXED] Resolved issue where generated UUIDs for replication documents would not be converted to |
| 105 | + strings. |
92 | 106 | - [FIXED] Resolved issue where CouchDatabase.infinite_changes() method can cause a stack overflow. |
93 | 107 |
|
94 | 108 | # 2.3.0 (2016-11-02) |
95 | 109 |
|
96 | 110 | - [FIXED] Resolved issue where the custom JSON encoder was at times not used when transforming data. |
97 | | -- [NEW] Added support for managing the database security document through the SecurityDocument class and CouchDatabase convenience method `get_security_document`. |
98 | | -- [NEW] Added `auto_renewal` option to the client constructor to handle the automatic renewal of an expired session cookie auth. |
| 111 | +- [NEW] Added support for managing the database security document through the SecurityDocument class |
| 112 | + and CouchDatabase convenience method `get_security_document`. |
| 113 | +- [NEW] Added `auto_renewal` option to the client constructor to handle the automatic renewal of an |
| 114 | + expired session cookie auth. |
99 | 115 |
|
100 | 116 | # 2.2.0 (2016-10-20) |
101 | 117 |
|
|
117 | 133 | - [NEW] Added `st_indexes` accessor property for Cloudant Geospatial indexes. |
118 | 134 | - [NEW] Added support for DesignDocument `_info` and `_search_info` endpoints. |
119 | 135 | - [NEW] Added `validate_doc_update` accessor property for update validators. |
120 | | -- [NEW] Added support for a custom `requests.HTTPAdapter` to be configured using an optional `adapter` arg e.g. |
121 | | - `Cloudant(USERNAME, PASSWORD, account=ACCOUNT_NAME, adapter=Replay429Adapter())`. |
| 136 | +- [NEW] Added support for a custom `requests.HTTPAdapter` to be configured using an optional |
| 137 | + `adapter` arg e.g. `Cloudant(USERNAME, PASSWORD, account=ACCOUNT_NAME, |
| 138 | + adapter=Replay429Adapter())`. |
122 | 139 | - [IMPROVED] Made the 429 response code backoff optional and configurable. To enable the backoff add |
123 | | - an `adapter` arg of a `Replay429Adapter` with the desired number of retries and initial backoff. To replicate |
124 | | - the 2.0.0 behaviour use: `adapter=Replay429Adapter(retries=10, initialBackoff=0.25)`. If `retries` or |
125 | | - `initialBackoff` are not specified they will default to 3 retries and a 0.25 s initial backoff. |
| 140 | + an `adapter` arg of a `Replay429Adapter` with the desired number of retries and initial |
| 141 | + backoff. To replicate the 2.0.0 behaviour use: `adapter=Replay429Adapter(retries=10, |
| 142 | + initialBackoff=0.25)`. If `retries` or `initialBackoff` are not specified they will default to 3 |
| 143 | + retries and a 0.25 s initial backoff. |
126 | 144 | - [IMPROVED] Additional error reason details appended to HTTP response message errors. |
127 | 145 | - [FIX] `415 Client Error: Unsupported Media Type` when using keys with `db.all_docs`. |
128 | 146 | - [FIX] Allowed strings as well as lists for search `group_sort` arguments. |
|
133 | 151 |
|
134 | 152 | # 2.0.2 (2016-06-02) |
135 | 153 |
|
136 | | -- [IMPROVED] Updated documentation links from python-cloudant.readthedocs.org to python-cloudant.readthedocs.io. |
137 | | -- [FIX] Fixed issue with Windows platform compatibility,replaced usage of os.uname for the user-agent string. |
| 154 | +- [IMPROVED] Updated documentation links from python-cloudant.readthedocs.org to |
| 155 | + python-cloudant.readthedocs.io. |
| 156 | +- [FIX] Fixed issue with Windows platform compatibility,replaced usage of os.uname for the |
| 157 | + user-agent string. |
138 | 158 | - [FIX] Fixed readthedocs link in README.rst to resolve to documentation home page. |
139 | 159 |
|
140 | 160 | # 2.0.1 (2016-06-02) |
141 | 161 |
|
142 | | -- [IMPROVED] Updated documentation links from python-cloudant.readthedocs.org to python-cloudant.readthedocs.io. |
143 | | -- [FIX] Fixed issue with Windows platform compatibility,replaced usage of os.uname for the user-agent string. |
| 162 | +- [IMPROVED] Updated documentation links from python-cloudant.readthedocs.org to |
| 163 | + python-cloudant.readthedocs.io. |
| 164 | +- [FIX] Fixed issue with Windows platform compatibility,replaced usage of os.uname for the |
| 165 | + user-agent string. |
144 | 166 | - [FIX] Fixed readthedocs link in README.rst to resolve to documentation home page. |
145 | 167 |
|
146 | 168 | # 2.0.0 (2016-05-02) |
147 | 169 |
|
148 | | -- [BREAKING] Renamed modules account.py, errors.py, indexes.py, views.py, to client.py, error.py, index.py, and view.py. |
149 | | -- [BREAKING] Removed the `make_result` method from `View` and `Query` classes. If you need to make a query or view result, use `CloudantDatabase.get_query_result`, `CouchDatabase.get_view_result`, or the `View.custom_result` context manager. Additionally, the `Result` and `QueryResult` classes can be called directly to construct a result object. |
150 | | -- [BREAKING] Refactored the `SearchIndex` class to now be the `TextIndex` class. Also renamed the `CloudantDatabase` convenience methods of `get_all_indexes`, `create_index`, and `delete_index` as `get_query_indexes`, `create_query_index`, and `delete_query_index` respectively. These changes were made to clarify that the changed class and the changed methods were specific to query index processing only. |
151 | | -- [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 database `changes` method signature. |
152 | | -- [BREAKING] Fixed `CloudantDatabase.share_database` to accept all valid permission roles. Changed the method signature to accept roles as a list argument. |
153 | | -- [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. |
154 | | -- [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. |
155 | | -- [IMPROVED] Added support for Result/QueryResult data access via index value and added validation logic to `Result.__getitem__()`. |
156 | | -- [IMPROVED] Updated feed functionality to process `_changes` and `_db_updates` with their supported options. Also added an infinite feed option. |
| 170 | +- [BREAKING] Renamed modules account.py, errors.py, indexes.py, views.py, to client.py, error.py, |
| 171 | + index.py, and view.py. |
| 172 | +- [BREAKING] Removed the `make_result` method from `View` and `Query` classes. If you need to make |
| 173 | + a query or view result, use `CloudantDatabase.get_query_result`, `CouchDatabase.get_view_result`, |
| 174 | + or the `View.custom_result` context manager. Additionally, the `Result` and `QueryResult` classes |
| 175 | + can be called directly to construct a result object. |
| 176 | +- [BREAKING] Refactored the `SearchIndex` class to now be the `TextIndex` class. Also renamed the |
| 177 | + `CloudantDatabase` convenience methods of `get_all_indexes`, `create_index`, and `delete_index` as |
| 178 | + `get_query_indexes`, `create_query_index`, and `delete_query_index` respectively. These changes |
| 179 | + were made to clarify that the changed class and the changed methods were specific to query index |
| 180 | + processing only. |
| 181 | +- [BREAKING] Replace "session" and "url" feed constructor arguments with "source" which can be |
| 182 | + either a client or a database object. Changes also made to the client `db_updates` method |
| 183 | + signature and the database `changes` method signature. |
| 184 | +- [BREAKING] Fixed `CloudantDatabase.share_database` to accept all valid permission roles. Changed |
| 185 | + the method signature to accept roles as a list argument. |
| 186 | +- [BREAKING] Removed credentials module from the API and moved it to the tests folder since the |
| 187 | + functionality is outside of the scope of this library but is still be useful in unit/integration |
| 188 | + tests. |
| 189 | +- [IMPROVED] Changed the handling of queries using the keys argument to issue a http POST request |
| 190 | + instead of a http GET request so that the request is no longer bound by any URL length limitation. |
| 191 | +- [IMPROVED] Added support for Result/QueryResult data access via index value and added validation |
| 192 | + logic to `Result.__getitem__()`. |
| 193 | +- [IMPROVED] Updated feed functionality to process `_changes` and `_db_updates` with their supported |
| 194 | + options. Also added an infinite feed option. |
157 | 195 | - [NEW] Handled HTTP status code `429 Too Many Requests` with blocking backoff and retries. |
158 | | -- [NEW] Added support for CouchDB Admin Party mode. This library can now be used with CouchDB instances where everyone is Admin. |
159 | | -- [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. |
160 | | -- [FIX] Added validation to `Cloudant.bill`, `Cloudant.volume_usage`, and `Cloudant.requests_usage` methods to ensure that a valid year/month combination or neither are used as arguments. |
| 196 | +- [NEW] Added support for CouchDB Admin Party mode. This library can now be used with CouchDB |
| 197 | + instances where everyone is Admin. |
| 198 | +- [FIX] Fixed `Document.get_attachment` method to successfully create text and binary files based on |
| 199 | + http response Content-Type. The method also returns text, binary, and json content based on http |
| 200 | + response Content-Type. |
| 201 | +- [FIX] Added validation to `Cloudant.bill`, `Cloudant.volume_usage`, and `Cloudant.requests_usage` |
| 202 | + methods to ensure that a valid year/month combination or neither are used as arguments. |
161 | 203 | - [FIX] Fixed the handling of empty views in the DesignDocument. |
162 | | -- [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. |
163 | | -- [CHANGE] Moved internal `Code` class, functions like `python_to_couch` and `type_or_none`, and constants into a _common_util module. |
164 | | -- [CHANGE] Updated User-Agent header format to be `python-cloudant/<library version>/Python/<Python version>/<OS name>/<OS architecture>`. |
165 | | -- [CHANGE] Completed the addition of unit tests that target a database server. Removed all mocked unit tests. |
| 204 | +- [FIX] The `CouchDatabase.create_document` method now handles documents and design documents |
| 205 | + correctly. If the document created is a design document then the locally cached object will be a |
| 206 | + DesignDocument otherwise it will be a Document. |
| 207 | +- [CHANGE] Moved internal `Code` class, functions like `python_to_couch` and `type_or_none`, and |
| 208 | + constants into a _common_util module. |
| 209 | +- [CHANGE] Updated User-Agent header format to be `python-cloudant/<library version>/Python/<Python |
| 210 | + version>/<OS name>/<OS architecture>`. |
| 211 | +- [CHANGE] Completed the addition of unit tests that target a database server. Removed all mocked |
| 212 | + unit tests. |
166 | 213 |
|
167 | 214 | # 2.0.0b2 (2016-02-24) |
168 | 215 |
|
|
192 | 239 |
|
193 | 240 |
|
194 | 241 | - [NEW] Added unit tests targeting CouchDB and Cloudant databases. |
195 | | -- [FIX] Fixed bug in database create validation check to work if response code is either 201 (created) or 202 (accepted). |
| 242 | +- [FIX] Fixed bug in database create validation check to work if response code is either 201 |
| 243 | + (created) or 202 (accepted). |
196 | 244 | - [FIX] Fixed database iterator infinite loop problem and to now yield a Document object. |
197 | | -- [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. |
198 | | -- [FIX] Made missing_revisions, revisions_diff, get_revision_limit, set_revision_limit, and view_cleanup API methods available for CouchDB as well as Cloudant. |
| 245 | +- [BREAKING] Removed previous bulk_docs method from the CouchDatabase class and renamed the previous |
| 246 | + bulk_insert method as bulk_docs. The previous bulk_docs functionality is available through the |
| 247 | + all_docs method using the "keys" parameter. |
| 248 | +- [FIX] Made missing_revisions, revisions_diff, get_revision_limit, set_revision_limit, and |
| 249 | + view_cleanup API methods available for CouchDB as well as Cloudant. |
199 | 250 | - [BREAKING] Moved the db_update method to the account module. |
200 | 251 | - [FIX] Fixed missing_revisions to key on 'missing_revs'. |
201 | 252 | - [FIX] Fixed set_revision_limit to encode the request data payload correctly. |
202 | 253 | - [FIX] `Document.create()` will no longer update an existing document. |
203 | 254 | - [BREAKING] Renamed Document `field_append` method to `list_field_append`. |
204 | 255 | - [BREAKING] Renamed Document `field_remove` method to `list_field_remove`. |
205 | 256 | - [BREAKING] Renamed Document `field_replace` method to `field_set`. |
206 | | -- [FIX] The Document local dictionary `_id` key is now synched with `_document_id` private attribute. |
| 257 | +- [FIX] The Document local dictionary `_id` key is now synched with `_document_id` private |
| 258 | + attribute. |
207 | 259 | - [FIX] The Document local dictionary is now refreshed after an add/update/delete of an attachment. |
208 | 260 | - [FIX] The Document `fetch()` method now refreshes the Document local dictionary content correctly. |
209 | | -- [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. |
| 261 | +- [BREAKING] Replace the ReplicatorDatabase class with the Replicator class. A Replicator object |
| 262 | + has a database attribute that represents the _replicator database. This allows the Replicator to |
| 263 | + work for both a CloudantDatabase and a CouchDatabase. |
210 | 264 | - [REMOVED] Removed "not implemented" methods from the DesignDocument. |
211 | 265 | - [FIX] Add implicit "_design/" prefix for DesignDocument document ids. |
212 | 266 |
|
|
0 commit comments