1v1.7.12 2 Version 1.7.12 3 4 Bugfix release 5 6 Implementation Changes 7 - Look for field 'detail' in error message. ([#739](https://github.com/googleapis/google-api-python-client/pull/739)) 8 - Exclude 308s from httplib2 redirect codes list ([#813](https://github.com/googleapis/google-api-python-client/pull/813)) 9 10 Documentation 11 - Remove oauth2client from docs ([#738](https://github.com/googleapis/google-api-python-client/pull/738)) 12 - Fix typo. ([#745](https://github.com/googleapis/google-api-python-client/pull/745)) 13 - Remove compatibility badges. ([#746](https://github.com/googleapis/google-api-python-client/pull/746)) 14 - Fix TypeError: search_analytics_api_sample.py #732 ([#742](https://github.com/googleapis/google-api-python-client/pull/742)) 15 - Correct response access ([#750](https://github.com/googleapis/google-api-python-client/pull/750)) 16 - Fix link to API explorer ([#760](https://github.com/googleapis/google-api-python-client/pull/760)) 17 - Fix argument typo in oauth2 code example ([#763](https://github.com/googleapis/google-api-python-client/pull/763)) 18 - Recommend install with virtualenv ([#768](https://github.com/googleapis/google-api-python-client/pull/768)) 19 - Fix capitalization in docs/README.md ([#770](https://github.com/googleapis/google-api-python-client/pull/770)) 20 21 - Remove compatibility badges ([#796](https://github.com/googleapis/google-api-python-client/pull/796)) 22 - Remove mentions of pycrypto ([#799](https://github.com/googleapis/google-api-python-client/pull/799)) 23 - Fix typo in model.py 24 - Add note about Google Ads llibrary ([#814](https://github.com/googleapis/google-api-python-client/pull/814)) 25 26 27 Internal / Testing Changes 28 - Blacken ([#772](https://github.com/googleapis/google-api-python-client/pull/722)) 29 - Move kokoro configs ([#832](https://github.com/googleapis/google-api-python-client/pull/832)) 30 31v1.7.11 32 Version 1.7.11 33 34 Bugfix release 35 36 Implementation Changes 37 - Pass library and Python version in x-goog-api-client header ([#734](https://github.com/googleapis/google-api-python-client/pull/734)) 38 39 Documentation 40 - Fix typo in filename used in 'docs/auth.md' ([#736](https://github.com/googleapis/google-api-python-client/pull/736)) 41 42 43v1.7.10 44 Version 1.7.10 45 46 Bugfix release 47 48 Implementation Changes 49 - Decode service to utf-8 ([#723](https://github.com/googleapis/google-api-python-client/pull/723)) 50 - Use print() function in both Python2 and Python 3 ([#722](https://github.com/googleapis/google-api-python-client/pull/722)) 51 - Make http.MediaFileUpload close its file descriptor ([#600](https://github.com/googleapis/google-api-python-client/pull/600)) 52 - Never make 'body' required ([#718](https://github.com/googleapis/google-api-python-client/pull/718)) 53 54 Documentation 55 - Add compatability check badges to README ([#691](https://github.com/googleapis/google-api-python-client/pull/691)) 56 - Regenerate docs ([#696](https://github.com/googleapis/google-api-python-client/pull/696), [#700](https://github.com/googleapis/google-api-python-client/pull/700)) 57 - Create index file for dynamically generated docs ([#702](https://github.com/googleapis/google-api-python-client/pull/702)) 58 - Add docs folder with guides from developers.google.com ([#706](https://github.com/googleapis/google-api-python-client/pull/706), [#710](https://github.com/googleapis/google-api-python-client/pull/710)) 59 60 Internal / Testing Changes 61 - Fix http.py, lint errors, unit test ([#724](https://github.com/googleapis/google-api-python-client/pull/724)) 62 - tox.ini: Look for Python syntax errors and undefined names ([#721](https://github.com/googleapis/google-api-python-client/pull/721)) 63 64 65v1.7.9 66 Version 1.7.9 67 68 Bugfix release 69 - Remove Django Samples. ([#657](https://github.com/googleapis/google-api-python-client/pull/657)) 70 - Call request_orig with kwargs ([#658](https://github.com/googleapis/google-api-python-client/pull/658)) 71 72v1.7.8 73 Version 1.7.8 74 75 Bugfix release 76 - Convert '$' in method name to '_' ([#616](https://github.com/googleapis/google-api-python-client/pull/616)) 77 - Alias unitest2 import as unittest in test__auth.py ([#613](https://github.com/googleapis/google-api-python-client/pull/613)) 78 79v1.7.7 80 Version 1.7.7 81 82 Bugfix release 83 - Change xrange to range ([#601](https://github.com/google/google-api-python-client/pull/601)) 84 - Typo in http.py exception message. ([#602](https://github.com/google/google-api-python-client/pull/602)) 85 86 - Announce deprecation of Python 2.7 ([#603](https://github.com/google/google-api-python-client/pull/603)) 87 - Updates documentation for stopping channel subscriptions ([#598](https://github.com/google/google-api-python-client/pull/598)) 88 - Adding example for searchAppearance ([#414](https://github.com/google/google-api-python-client/pull/414)) 89 90 - Add badges ([#455](https://github.com/google/google-api-python-client/pull/455)) 91 92v1.7.6 93 Version 1.7.6 94 95 Bugfix release 96 97 - Add client-side limit for batch requests (#585) 98 99v1.7.5 100 Version 1.7.5 101 102 Bugfix release 103 104 - Fix the client to respect the passed in developerKey and credentials 105 106v1.7.4 107 Version 1.7.4 108 109 Bugfix release 110 111 - Catch ServerNotFoundError to retry the request (#532) 112 113v1.7.3 114 Version 1.7.3 115 116 Bugfix release 117 118 - Make apiclient.sample_tools gracefully fail to import (#525). 119 120 121v1.7.2 122 Version 1.7.2 123 124 Bugfix release 125 126 - Remove unnecessary check in apiclient/__ini__.py (#522). 127 128v1.7.1 129 Version 1.7.1 130 131 Bugfix release 132 133 - Remove unnecessary check in setup.py (#518). 134 135v1.7.0 136 Version 1.7.0 137 138 This release drops the hard requirement on oauth2client and installs 139 google-auth by default instead. oauth2client is still supported but will 140 need to be explicitly installed. 141 142 - Drop oauth2client dependency (#499) 143 - Include tests in source distribution (#514) 144 145v1.6.7 146 Version 1.6.7 147 148 Bugfix release 149 150 **Note**: The next release of this library will no longer directly depend on 151 oauth2client. If you need to use oauth2client, you'll need to explicitly 152 install it. 153 154 - Make body optional for requests with no parameters. (#446) 155 - Fix retying on socket.timeout. (#495) 156 - Match travis matrix with tox testenv. (#498) 157 - Remove oauth2client._helpers dependency. (#493) 158 - Remove unused keyring test dependency. (#496) 159 - discovery.py: remove unused oauth2client import. (#492) 160 - Update README to reference GCP API client libraries. (#490) 161 162v1.6.6 163 Version 1.6.6 164 165 Bugfix release 166 167 - Warn when constructing BatchHttpRequest using the legacy batch URI (#488) 168 - Increase the default media chunksize to 100MB. (#482) 169 - Remove unnecessary parsing of mime headers in HttpRequest.__init__ (#467) 170 171v1.6.5 172 Version 1.6.5 173 174 Bugfix release 175 176 - Proactively refresh credentials when applying and treat a missing 177 `access_token` as invalid. Note: This change reveals surprising behavior 178 between default credentials and batches. If you allow 179 `googleapiclient.discovery.build` to use default credentials *and* specify 180 different credentials by providing `batch.execut()` with an explicit `http` 181 argument, your individual requests will use the default credentials and 182 *not* the credentials specified to the batch http. To avoid this, tell 183 `build` explicitly not to use default credentials by specifying 184 `build(..., http=httplib2.Http()`. (#469) 185 - Remove mutual exclusivity check for developerKey and credentials (#465) 186 - Handle unknown media length. (#406) 187 - Handle variant error format gracefully. (#459) 188 - Avoid testing against Django >= 2.0.0 on Python 2. (#460) 189 190v1.6.4 191 Version 1.6.4 192 193 Bugfix release 194 195 - Warn when google-auth credentials are used but google-auth-httplib2 isn't available. (#443) 196 197v1.6.3 198 Version 1.6.3 199 200 Bugfix release 201 202 - Add notification of maintenance mode to README. (#410) 203 - Fix generation of methods with abnormal page token conventions. (#338) 204 - Raise ValueError is credentials and developerKey are both specified. (#358) 205 - Re-generate documentation. (#364, #373, #401) 206 - Fix method signature documentation for multiline required parameters. (#374) 207 - Fix ZeroDivisionError in MediaDownloadProgress.progress. (#377) 208 - Fix dead link to WebTest in README. (#378) 209 - Fix details missing in googleapiclient.errors.HttpError. (#412) 210 - Don't treat httplib2.Credentials as oauth credentials. (#425) 211 - Various fixes to the Django sample. (#413) 212 213v1.6.2 214 Version 1.6.2 215 216 Bugfix release 217 218 - Fixed a bug where application default credentials would still be used even 219 when a developerKey was specified. (#347) 220 - Official support for Python 3.5 and 3.6. (#341) 221 222v1.6.1 223 Version 1.6.1 224 225 Bugfix release 226 227 - Fixed a bug where using google-auth with scoped credentials would fail. (#328) 228 229v1.6.0 230 Version 1.6.0 231 232 Release to drop support for Python 2.6 and add support for google-auth. 233 234 - Support for Python 2.6 has been dropped. (#319) 235 - The credentials argument to discovery.build and discovery.build_from_document 236 can be either oauth2client credentials or google-auth credentials. (#319) 237 - discovery.build and discovery.build_from_document now unambiguously use the 238 http argument to make all requests, including the request for the discovery 239 document. (#319) 240 - The http and credentials arguments to discovery.build and 241 discovery.build_from_document are now mutually exclusive, eliminating a 242 buggy edge case. (#319) 243 - If neither http or credentials is specified to discovery.build and 244 discovery.build_from_document, then Application Default Credentials will 245 be used. The library prefers google-auth for this if it is available, but 246 can also use oauth2client's implementation. (#319) 247 - Fixed resumable upload failure when receiving a 308 response. (#312) 248 - Clarified the support versions of Python 3. (#316) 249 250v1.5.5 251 Version 1.5.5 252 253 Bugfix release 254 255 - Allow explicit MIME type specification with media_mime_type keyword argument. 256 - Fix unprintable representation of BatchError with default constructor. (#165) 257 - Refresh all discovery docs, not just the preferred ones. (#298) 258 - Update minimum httplib2 dependency to >=0.9.2. 259 260v1.5.4 261 Version 1.5.4 262 263 Bugfix release 264 265 - Properly handle errors when the API returns a mapping or sequence. (#289) 266 - Upgrade to unified uritemplate 3.0.0. (#293) 267 - Allow oauth2client 4.0.0, with the caveat that file-based discovery 268 caching is disabled. 269 270v1.5.3 271 Version 1.5.3 272 273 Bugfix release 274 275 - Fixed import error with oauth2client >= 3.0.0. (#270) 276 277v1.5.2 278 Version 1.5.2 279 280 Bugfix release 281 282 - Allow using oauth2client >= 1.5.0, < 4.0.0. (#265) 283 - Fix project_id argument description. (#257) 284 - Retry chunk uploaded on rate limit exceeded errors. (#255) 285 - Obtain access token if necessary in BatchHttpRequest.execute(). (#232) 286 - Warn when running tests using HttpMock without having a cache. (#261) 287 288v1.5.1 289 Version 1.5.1 290 291 Bugfix release 292 293 - Allow using versions of oauth2client < 2.0.0. (#197) 294 - Check both current and new API discovery URL. (#202) 295 - Retry http requests on connection errors and timeouts. (#218) 296 - Retry http requests on rate limit responses. (#201) 297 - Import guards for ssl (for Google App Engine). (#220) 298 - Use named loggers instead of the root logger. (#206) 299 - New search console example. (#212) 300 301v1.5.0 302 Version 1.5.0 303 304 Release to support oauth2client >= 2.0.0. 305 306 - Fix file stream recognition in Python 3 (#141) 307 - Fix non-resumable binary uploads in Python 3 (#147) 308 - Default to 'octet-stream' if mimetype detection fails (#157) 309 - Handle SSL errors with retries (#160) 310 - Fix incompatibility with oauth2client v2.0.0 (#182) 311 312v1.4.2 313 Version 1.4.2 314 315 Add automatic caching for the discovery docs. 316 317v1.4.1 318 Version 1.4.1 319 320 Add the googleapiclient.discovery.Resource.new_batch_http_request method. 321 322v1.4.0 323 Version 1.4.0 324 325 Python 3 support. 326 327v1.3.2 328 Version 1.3.2 329 330 Small bugfix release. 331 332 - Fix an infinite loop for downloading small files. 333 - Fix a unicode error in error encoding. 334 - Better handling of `content-length` in media requests. 335 - Add support for methodPath entries containing colon. 336 337v1.3.1 338 Version 1.3.1 339 340 Quick release for a fix around aliasing in v1.3. 341 342v1.3 343 Version 1.3 344 345 Add support for the Google Application Default Credentials. 346 Require python 2.6 as a minimum version. 347 Update several API samples. 348 Finish splitting out oauth2client repo and update tests. 349 Various doc cleanup and bugfixes. 350 351 Two important notes: 352 * We've added `googleapiclient` as the primary suggested import 353 name, and kept `apiclient` as an alias, in order to have a more 354 appropriate import name. At some point, we will remove `apiclient` 355 as an alias. 356 * Due to an issue around in-place upgrades for Python packages, 357 it's not possible to do an upgrade from version 1.2 to 1.3. Instead, 358 setup.py attempts to detect this and prevents it. Simply remove 359 the previous version and reinstall to fix this. 360 361v1.2 362 Version 1.2 363 364 The use of the gflags library is now deprecated, and is no longer a 365 dependency. If you are still using the oauth2client.tools.run() function 366 then include gflags as a dependency of your application or switch to 367 oauth2client.tools.run_flow. 368 Samples have been updated to use the new apiclient.sample_tools, and no 369 longer use gflags. 370 Added support for the experimental Object Change Notification, as found in 371 the Cloud Storage API. 372 The oauth2client App Engine decorators are now threadsafe. 373 374 - Use the following redirects feature of httplib2 where it returns the 375 ultimate URL after a series of redirects to avoid multiple hops for every 376 resumable media upload request. 377 - Updated AdSense Management API samples to V1.3 378 - Add option to automatically retry requests. 379 - Ability to list registered keys in multistore_file. 380 - User-agent must contain (gzip). 381 - The 'method' parameter for httplib2 is not positional. This would cause 382 spurious warnings in the logging. 383 - Making OAuth2Decorator more extensible. Fixes Issue 256. 384 - Update AdExchange Buyer API examples to version v1.2. 385 386 387v1.1 388 Version 1.1 389 390 Add PEM support to SignedJWTAssertionCredentials (used to only support 391 PKCS12 formatted keys). Note that if you use PEM formatted keys you can use 392 PyCrypto 2.6 or later instead of OpenSSL. 393 394 Allow deserialized discovery docs to be passed to build_from_document(). 395 396 - Make ResumableUploadError derive from HttpError. 397 - Many changes to move all the closures in apiclient.discovery into real 398 - classes and objects. 399 - Make from_json behavior inheritable. 400 - Expose the full token response in OAuth2Client and OAuth2Decorator. 401 - Handle reasons that are None. 402 - Added support for NDB based storing of oauth2client objects. 403 - Update grant_type for AssertionCredentials. 404 - Adding a .revoke() to Credentials. Closes issue 98. 405 - Modify oauth2client.multistore_file to store and retrieve credentials 406 using an arbitrary key. 407 - Don't accept 403 challenges by default for auth challenges. 408 - Set httplib2.RETRIES to 1. 409 - Consolidate handling of scopes. 410 - Upgrade to httplib2 version 0.8. 411 - Allow setting the response_type in OAuth2WebServerFlow. 412 - Ensure that dataWrapper feature is checked before using the 'data' value. 413 - HMAC verification does not use a constant time algorithm. 414 415v1.0 416 Version 1.0 417 418 - Changes to the code for running tests and building releases. 419 420v1.0c3 421 Version 1.0 Release Candidate 3 422 423 - In samples and oauth2 decorator, escape untrusted content before displaying it. 424 - Do not allow credentials files to be symlinks. 425 - Add XSRF protection to oauth2decorator callback 'state'. 426 - Handle uploading chunked media by stream. 427 - Handle passing streams directly to httplib2. 428 - Add support for Google Compute Engine service accounts. 429 - Flows no longer need to be saved between uses. 430 - Change GET to POST if URI is too long. Fixes issue #96. 431 - Add a keyring based Storage. 432 - More robust picking up JSON error responses. 433 - Make batch errors align with normal errors. 434 - Add a Google Compute sample. 435 - Token refresh to work with 'old' GData API 436 - Loading of client_secrets JSON file backed by a cache. 437 - Switch to new discovery path parameters. 438 - Add support for additionalProperties when printing schema'd objects. 439 - Fix media upload parameter names. Reviewed in http://codereview.appspot.com/6374062/ 440 - oauth2client support for URL-encoded format of exchange token response (e.g. Facebook) 441 - Build cleaner and easier to read docs for dynamic surfaces. 442 443v1.0c2 444 Version 1.0 Release Candidate 2 445 446 - Parameter values of None should be treated as missing. Fixes issue #144. 447 - Distribute the samples separately from the library source. Fixes issue #155. 448 - Move all remaining samples over to client_secrets.json. Fixes issue #156. 449 - Make locked_file.py understand win32file primitives for better awesomeness. 450 451v1.0c1 452 Version 1.0 Release Candidate 1 453 454 - Documentation for the library has switched to epydoc: 455 http://google-api-python-client.googlecode.com/hg/docs/epy/index.html 456 - Many improvements for media support: 457 * Added media download support, including resumable downloads. 458 * Better handling of streams that report their size as 0. 459 * Update Media Upload to include io.Base and also fix some bugs. 460 - OAuth bug fixes and improvements. 461 * Remove OAuth 1.0 support. 462 * Added credentials_from_code and credentials_from_clientsecrets_and_code. 463 * Make oauth2client support Windows-friendly locking. 464 * Fix bug in StorageByKeyName. 465 * Fix None handling in Django fields. Reviewed in http://codereview.appspot.com/6298084/. Fixes issue #128. 466 - Add epydoc generated docs. Reviewed in http://codereview.appspot.com/6305043/ 467 - Move to PEP386 compliant version numbers. 468 - New and updated samples 469 * Ad Exchange Buyer API v1 code samples. 470 * Automatically generate Samples wiki page from README files. 471 * Update Google Prediction samples. 472 * Add a Tasks sample that demonstrates Service accounts. 473 * new analytics api samples. Reviewed here: http://codereview.appspot.com/5494058/ 474 - Convert all inline samples to the Farm API for consistency. 475 476v1.0beta8 477 - Updated meda upload support. 478 - Many fixes for batch requests. 479 - Better handling for requests that don't require a body. 480 - Fix issues with Google App Engine Python 2.7 runtime. 481 - Better support for proxies. 482 - All Storages now have a .delete() method. 483 - Important changes which might break your code: 484 * apiclient.anyjson has moved to oauth2client.anyjson. 485 * Some calls, for example, taskqueue().lease() used to require a parameter 486 named body. In this new release only methods that really need to send a body 487 require a body parameter, and so you may get errors about an unknown 488 'body' parameter in your call. The solution is to remove the unneeded 489 body={} parameter. 490 491v1.0beta7 492 - Support for batch requests. http://code.google.com/p/google-api-python-client/wiki/Batch 493 - Support for media upload. http://code.google.com/p/google-api-python-client/wiki/MediaUpload 494 - Better handling for APIs that return something other than JSON. 495 - Major cleanup and consolidation of the samples. 496 - Bug fixes and other enhancements: 497 72 Defect Appengine OAuth2Decorator: Convert redirect address to string 498 22 Defect Better error handling for unknown service name or version 499 48 Defect StorageByKeyName().get() has side effects 500 50 Defect Need sample client code for Admin Audit API 501 28 Defect better comments for app engine sample Nov 9 502 63 Enhancement Let OAuth2Decorator take a list of scope 503