Skip to content

Latest commit

 

History

History
476 lines (298 loc) · 46.3 KB

CHANGELOG.md

File metadata and controls

476 lines (298 loc) · 46.3 KB

Changelog

PyPI History

1.10.4 (2021-09-28)

Bug Fixes

  • pin grpcio / googleapis-common-protos under Python2 (#725) (ccc82e4)

1.10.3 (2021-09-07)

Bug Fixes

  • use thread-safe iterator to generate context ids (#716) (92ec8ac), closes #715

1.10.2 (2021-08-31)

Bug Fixes

  • deps: add pytz as an explicit dependency (#707) (6b48548)

1.10.1 (2021-08-11)

Bug Fixes

  • add rpc request object to debug logging (#696) (45e590a), closes #695
  • allow for legacy repeated structured properties with empty values (#702) (60c293d), closes #694
  • fix bug with concurrent writes to global cache (#705) (bb7cadc), closes #692

1.10.0 (2021-07-20)

Features

  • add 'python_requires' metadata to setup (#681) (e9a09d3)

Bug Fixes

  • fix bug with repeated structured properties with Expando values (#671) (882dff0), closes #669
  • properly handle legacy structured properties in Expando instances (#676) (70710c8), closes #673
  • refactor global cache to address concurrency and fault tolerance issues (#667) (5e2c591)

1.9.0 (2021-06-07)

Features

  • don't flush entire global cache on transient errors (#654) (cbf2d7d)

Bug Fixes

  • correct inconsistent behavior with regards to namespaces (#662) (cf21a28), closes #661
  • correctly decode falsy values in legacy protocol buffers (#628) (69a9f63), closes #625
  • defer clearing global cache when in transaction (#660) (73020ed)
  • detect cache write failure for MemcacheCache (#665) (5d7f163), closes #656
  • do not set read_consistency for queries. (#664) (36a5b55), closes #666
  • limit memcache keys to 250 bytes (#663) (7dc11df), closes #619
  • properly handle error when clearing cache (#636) (d0ffcf3), closes #633
  • retry connection errors with memcache (#645) (06b466a), closes #620
  • support ordering by key for multi queries (#630) (508d8cb), closes #629

1.8.0 (2021-04-06)

Features

  • retry global cache operations on transient errors (#603) (5d6b650), closes #601

Bug Fixes

  • don't return None for entities found in queries (#612) (9e5e255), closes #586
  • fix bug with compressed blob property (#615) (d305f9f), closes #602
  • fix failing unit test (#607) (5d3927e), closes #606
  • handle unpickling between GAE NDB (2.7) to Cloud NDB (3) (#596) (5be4225)
  • mock call to tasklets.sleep in unit test (#609) (00e23f3), closes #608
  • prevent mismatch error when using default namespace on ancestor queries (#614) (ae67f04)
  • reimplement _clone_properties (#610) (e23f42b), closes #566
  • replicate legacy behavior for using cache with queries (#613) (edd1185), closes #586
  • support int as base type for BooleanProperty (#624) (a04bf3a)

1.7.3 (2021-01-21)

Bug Fixes

  • handle negatives in protobuf deserialization (#591) (0d3d3ca), closes #590
  • make nested retry blocks work for RPC calls (#589) (f125459)

Documentation

1.7.2 (2020-12-16)

Bug Fixes

  • always use brute-force counting with Datastore emulator and clean up related hacks (#585) (8480a8b)
  • return a tuple when empty result returned on query (#582) (7cf0e87)
  • support empty not_finished messages that cause query.count() to return early (#580) (fc31553), closes #575

Documentation

  • Add urlsafe() info to migration notes (#579) (9df2f9f)

1.7.1 (2020-11-11)

Bug Fixes

  • dependencies: Pin to less than 2.0.0 for google-cloud-datastore (#569) (c8860a6), closes #568

1.7.0 (2020-10-22)

Features

  • fault tolerance for global caches (#560) (8ab8ee0), closes #557
  • Transaction propagation using ndb.TransactionOptions (#537) (f3aa027)

1.6.1 (2020-10-08)

Bug Fixes

  • [@non](https://www.github.com/non)_transactional decorator was not working correctly with async (#554) (758c8e6), closes #552
  • fix a connection leak in RedisCache (#556) (47ae172)
  • get_by_id and get_or_insert should use default namespace when passed in (#542) (3674650), closes #535

Documentation

  • address docs builds and memcached customization to docker file (#548) (88e7e24)
  • update docker image used for docs generation #549 (5e8bf57)

1.6.0 (2020-09-14)

Features

1.5.2 (2020-09-03)

Bug Fixes

  • avoid kind error when using subclasses in local structured properties (#531) (49f9e48)
  • fix bug when setting naive datetime on DateTimeProperty with timezone (#534) (ad42606), closes #517
  • make optimized Query.count() work with the datastore emulator (#528) (e5df1e3), closes #525
  • make sure keys_only ordered multiquery returns keys not entities (#527) (2078dc1), closes #526

Documentation

1.5.1 (2020-08-28)

Bug Fixes

  • fix exception handling bug in tasklets (#520) (fc0366a), closes #519
  • fix format exceptions in utils.logging_debug (#514) (d38c0a3), closes #508
  • transparently add sort properties to projection for multiqueries (#511) (4e46327), closes #509

1.5.0 (2020-08-12)

Features

  • use contextvars.ConvextVar instead of threading.local in Python 3 (4c634f3), closes #504

Bug Fixes

  • fix concurrency bug in redis cache implementation (#503) (6c18b95), closes #496
  • support polymodel in local structured property (#497) (9ccbdd2), closes #481

1.4.2 (2020-07-30)

Bug Fixes

  • include ancestors in Key.to_legacy_urlsafe (#494) (0f29190), closes #478
  • properly handle explicitly passing default namespace (#488) (3c64483), closes #476

1.4.1 (2020-07-10)

Bug Fixes

  • do not disclose cache contents in stack traces (#485) (2d2c5a2), closes #482

1.4.0 (2020-07-01)

Features

  • allow Query.fetch_page for queries with post filters (#463) (632435c), closes #270
  • record time spent waiting on rpc calls (#472) (1629805)

Bug Fixes

  • ignore datastore properties that are not mapped to NDB properties (#470) (ab460fa), closes #461
  • make sure tests package is not included in distribution (#469) (5a20d0a), closes #468
  • retry grpc UNKNOWN errors (#458) (5d354e4), closes #310

1.3.0 (2020-06-01)

Features

Bug Fixes

  • Add support for 'name' Key instances to to_legacy_urlsafe (#420) (59fc5af)
  • all query types should use cache if available (#454) (69b3a0a), closes #441
  • fix NotImplementedError for get_or_insert inside a transaction (#451) (99aa403), closes #433
  • make sure datastore key constructor never gets None in a pair (#446) (e6173cf), closes #384 #439
  • refactor transactions to use their own event loops (#443) (7590be8), closes #426 #426
  • respect _code_name in StructuredProperty.__getattr__ (#453) (4f54dfc), closes #449
  • strip order_by option from query when using count() (#452) (9d20a2d), closes #447

1.2.1 (2020-05-15)

Features

Bug Fixes

  • clear context cache on rollback (#410) (aa17986), closes #398
  • do not allow empty key parts for key constructor in namespaced model (#401) (f3528b3), closes #384
  • don't rely on duck typing for _retry.is_transient_error (#425) (4524542), closes #415
  • handle empty batches from Firestore (#396) (1a054ca), closes #386
  • make sure reads happen in transaction if there is a transaction (#395) (f32644f), closes #394
  • more should be boolean in fetch_page call (#423) (a69ffd2), closes #422
  • support same options in model.query as query (#407) (d08019f)
  • uniform handling of projection argument (#428) (2b65c04), closes #379
  • use skipped_results from query results to adjust offset (#399) (6d1452d), closes #392
  • use fresh context cache for each transaction (#409) (5109b91), closes #394
  • use true keys_only query for Query.count() (#405) (88184c3), closes #400 #404

1.2.0 (2020-04-20)

Features

  • add namespace property to context.Context (#388) (34bac15), closes #385
  • new join argument for transaction and related functions (#381) (2c91685), closes #366

Bug Fixes

  • accept bytes or str as base value for JsonProperty (#380) (e7a0c7c), closes #378
  • add ABORTED to retryable status codes (#391) (183c0c3), closes #383
  • add missing _get_for_dict method (#368) (55b80ff), closes #367
  • empty Entities for optional LocalStructuredProperty fields (#370) (27a0969), closes #369
  • return type in DateTimeProperty._to_base_type docstring (#371) (0c549c8)

1.1.2 (2020-03-16)

Bug Fixes

  • check for legacy local structured property values (#365) (f81f406), closes #359
  • move stub (grpc communication channel) to client (#362) (90e0625), closes #343

1.1.1 (2020-03-05)

Bug Fixes

  • fix bug with yield of empty list in tasklets (#354) (2d60ebf), closes #353
  • LocalStructuredProperty keep_keys (#355) (9ff1b3d)
  • support nested sequences in parallel yield for tasklets (#358) (8c91e7a), closes #349

1.1.0 (2020-03-02)

Features

Bug Fixes

  • allow legacy ndb to read LocalStructuredProperty entities. (#344) (7b07692)
  • fix delete in transaction (#333) (5c162f4), closes #271
  • make sure key.Key uses namespace from client when not specified (#339) (44f02e4), closes #337
  • properly exclude from indexes non-indexed subproperties of structured properties (#346) (dde6b85), closes #341
  • resurrect support for compressed text property (#342) (5a86456), closes #277
  • use correct name when reading legacy structured properties with names (#347) (01d1256), closes #345

1.0.1 (2020-02-11)

Bug Fixes

  • attempt to have fewer transient errors in continuous integration (#328) (0484c7a)
  • correct migration doc (#313) (#317) (efce24f)
  • disuse __slots__ in most places (#330) (a8b723b), closes #311
  • don't set key on structured property entities (#312) (63f3d94), closes #281
  • fix race condition in remote calls (#329) (f550510), closes #302
  • make query options convert projection properties to strings (#325) (d1a4800)
  • use multiple batches of limited size for large operations (#321) (8e69453), closes #318
  • use six string_types and integer_types for all isinstance() checks (#323) (133acf8)

1.0.0 (2020-01-30)

Bug Fixes

0.2.2 (2020-01-15)

Bug Fixes

0.2.1 (2019-12-10)

Bug Fixes

  • Correctly handle limit and offset when batching query results. (#237) (8d3ce5c), closes #236
  • Improve test cleanup. (#234) (21f3d8b)
  • IntegerProperty now accepts long type for Python 2.7. (#262) (9591e56), closes #250
  • Unstable order bug in unit test. (#251) (7ff1df5), closes #244

0.2.0

11-06-2019 10:39 PST

Implementation Changes

  • query.map() and query.map_async() hanging with empty result set. (#230)
  • remove dunder version (#202)
  • Check context (#211)
  • Fix Model._gql. (#223)
  • Update intersphinx mapping (#206)
  • do not set meanings for compressed property when it has no value (#200)

New Features

  • Python 2.7 compatibility (#203)
  • Add tzinfo to DateTimeProperty. (#226)
  • Implement _prepare_for_put for StructuredProperty and LocalStructuredProperty. (#221)
  • Implement Query.map and Query.map_async. (#218)
  • Allow class member values in projection and distinct queries (#214)
  • Implement Future.cancel() (#204)

Documentation

  • Update README to include Python 2 support. (#231)
  • Fix typo in MIGRATION_NOTES.md (#208)
  • Spelling fixes. (#209)
  • Add spell checking dependencies for documentation build. (#196)

Internal / Testing Changes

  • Enable release-please (#228)
  • Introduce local redis for tests (#191)
  • Use .kokoro configs from templates. (#194)

0.1.0

09-10-2019 13:43 PDT

Deprecations

  • Deprecate max_memcache_items, memcache options, force_rewrites, Query.map(), Query.map_async(), blobstore. (#168)

Implementation Changes

  • Fix error retrieving values for properties with different stored name (#187)
  • Use correct class when deserializing a PolyModel entity. (#186)
  • Support legacy compressed properties back and forth (#183)
  • Store Structured Properties in backwards compatible way (#184)
  • Allow put and get to work with compressed blob properties (#175)
  • Raise an exception when storing entity with partial key without Datastore. (#171)
  • Normalize to prefer project over app. (#170)
  • Enforce naive datetimes for DateTimeProperty. (#167)
  • Handle projections with structured properties. (#166)
  • Fix polymodel put and get (#151)
  • _prepare_for_put was not being called at entity level (#138)
  • Fix key property. (#136)
  • Fix thread local context. (#131)
  • Bugfix: Respect _indexed flag of properties. (#127)
  • Backwards compatibility with older style structured properties. (#126)

New Features

  • Read legacy data with Repeated Structured Expando properties. (#176)
  • Implement Context.call_on_commit. (#159)
  • Implement Context.flush (#158)
  • Implement use_datastore flag. (#155)
  • Implement tasklets.toplevel. (#157)
  • Add RedisCache implementation of global cache (#150)
  • Implement Global Cache (#148)
  • ndb.Expando properties load and save (#117)
  • Implement cache policy. (#116)

Documentation

  • Fix Kokoro publish-docs job (#153)
  • Update Migration Notes. (#152)
  • Add project_urls for pypi page (#144)
  • Fix TRAMPOLINE_BUILD_FILE in docs/common.cfg. (#143)
  • Add kokoro docs job to publish to googleapis.dev. (#142)
  • Initial version of migration guide (#121)
  • Add spellcheck sphinx extension to docs build process (#123)

Internal / Testing Changes

  • Clean up usage of object.__new__ and mocks for Model in unit tests (#177)
  • Prove tasklets can be Python 2.7 and 3.7 compatible. (#174)
  • Discard src directory and fix flake8 failures (#173)
  • Add tests for Model.__eq__() (#169)
  • Remove skip flag accidentally left over (#154)
  • Try to get kokoro to add indexes for system tests (#145)
  • Add system test for PolyModel (#133)
  • Fix system test under Datastore Emulator. (Fixes #118) (#119)
  • Add unit tests for _entity_from_ds_entity expando support (#120)

0.0.1

06-11-2019 16:30 PDT

Implementation Changes

  • Query repeated structured properties. (#103)
  • Fix Structured Properties (#102)

New Features

  • Implement expando model (#99)
  • Model properties (#96)
  • Implemented tasklets.synctasklet (#58)
  • Implement LocalStructuredProperty (#93)
  • Implement hooks. (#95)
  • Three easy Model methods. (#94)
  • Model.get or insert (#92)
  • Implement Model.get_by_id and Model.get_by_id_async.
  • Implement Model.allocate_ids and Model.allocate_ids_async.
  • Implement Query.fetch_page and Query.fetch_page_async.
  • Implement Query.count and Query.count_async
  • Implement Query.get and Query.get_async.

Documentation

  • update sphinx version and eliminate all warnings (#105)

0.0.1dev1

Initial development release of NDB client library.