Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
659 commits
Select commit Hold shift + click to select a range
9a99eb8
fix: make optimized `Query.count()` work with the datastore emulator …
Sep 2, 2020
33e1c6b
docs: fix type hint for urlsafe (#532)
cguardia Sep 2, 2020
298a7a8
fix: avoid kind error when using subclasses in local structured prope…
cguardia Sep 2, 2020
85b0395
fix: fix bug when setting naive datetime on `DateTimeProperty` with t…
Sep 3, 2020
67c140c
chore: release 1.5.2 (#533)
release-please[bot] Sep 8, 2020
c43ea90
feat: memcached integration (#536)
Sep 14, 2020
b01c27d
chore: release 1.6.0 (#539)
release-please[bot] Sep 18, 2020
2ef4637
build: keep synth in sync (#541)
cguardia Sep 18, 2020
d770f69
fix: get_by_id and get_or_insert should use default namespace when pa…
cguardia Sep 18, 2020
d75ca8a
docs: address docs builds and memcached customization to docker file …
crwilcox Sep 21, 2020
372c6ea
docs: update docker image used for docs generation #549
yoshi-automation Sep 25, 2020
0a419eb
build: pick up changes from synthtool (#550) (#550)
yoshi-automation Sep 25, 2020
b4322d6
chore(python): use BUILD_SPECIFIC_GCLOUD_PROJECT for samples (#553)
yoshi-automation Oct 1, 2020
eba1f19
fix: `@non_transactional` decorator was not working correctly with as…
Oct 2, 2020
2ac210d
fix: fix a connection leak in RedisCache (#556)
Oct 8, 2020
66c21e7
chore: release 1.6.1 (#545)
release-please[bot] Oct 8, 2020
f4bd58e
build: support python 3.8 and 3.9 (#558)
cguardia Oct 13, 2020
04e5050
feat: Transaction propagation using ndb.TransactionOptions (#537)
JohnGale87 Oct 15, 2020
5d88e74
feat: fault tolerance for global caches (#560)
Oct 22, 2020
b13f5cd
chore: release 1.7.0 (#561)
release-please[bot] Oct 23, 2020
6d9b455
fix(dependencies): Pin to less than 2.0.0 for google-cloud-datastore …
crwilcox Nov 11, 2020
17328b0
chore: release 1.7.1 (#570)
release-please[bot] Nov 11, 2020
7654d7d
fix: support empty not_finished messages that cause query.count() to …
crwilcox Dec 7, 2020
3ab53e8
chore: replace crwilcox with googleapis/firestore-dpe as code owners …
BenWhitehead Dec 9, 2020
cfc75f0
fix: return a tuple when empty result returned on query (#582)
crwilcox Dec 9, 2020
a1005e7
docs: Add urlsafe() info to migration notes (#579)
andrewsg Dec 9, 2020
4e8f775
fix: always use brute-force counting with Datastore emulator and clea…
gaborfeher Dec 16, 2020
d548bb0
chore: release 1.7.2 (#581)
release-please[bot] Dec 16, 2020
8934369
build(python): samples tests should pass if no samples exist (#559)
yoshi-automation Jan 19, 2021
3945ca9
docs: correct documentation for `GlobalCache` (#565)
Jan 19, 2021
d12ef81
docs: fix typo in example code (#588)
dp-rufus Jan 19, 2021
1317569
fix: handle negatives in protobuf deserialization (#591)
phil-lopreiato Jan 19, 2021
b5713c8
fix: make nested retry blocks work for RPC calls (#589)
cguardia Jan 21, 2021
1df9818
docs: fix return type in fetch docstring (#594)
cguardia Jan 21, 2021
db3f656
chore: release 1.7.3 (#592)
release-please[bot] Jan 21, 2021
541698a
build: migrate to flakybot (#597)
JustinBeckwith Feb 3, 2021
8df896c
fix: handle unpickling between GAE NDB (2.7) to Cloud NDB (3) (#596)
crwilcox Feb 9, 2021
20e161c
chore: update build scripts (#593)
yoshi-automation Feb 9, 2021
9c76ad1
fix: fix failing unit test (#607)
Feb 18, 2021
8e4aa82
fix: don't return `None` for entities found in queries (#612)
Feb 19, 2021
2f261b7
feat: retry global cache operations on transient errors (#603)
Feb 26, 2021
cd8c39e
fix: mock call to `tasklets.sleep` in unit test (#609)
Mar 9, 2021
7e3b7aa
fix: fix bug with compressed blob property (#615)
Mar 9, 2021
028ebc4
fix: reimplement `_clone_properties` (#610)
Mar 22, 2021
b950639
fix: replicate legacy behavior for using cache with queries (#613)
Mar 23, 2021
e87229e
fix: prevent mismatch error when using default namespace on ancestor …
Mar 24, 2021
7da796a
fix: support `int` as base type for `BooleanProperty` (#624)
Apr 6, 2021
60dbb38
chore: release 1.8.0 (#616)
release-please[bot] Apr 6, 2021
293456e
fix: correctly decode falsy values in legacy protocol buffers (#628)
Apr 19, 2021
49c1999
chore: add yoshi-python to CODEOWNERS (#639)
May 4, 2021
a201894
fix: support ordering by key for multi queries (#630)
Primevenn May 5, 2021
6917620
chore: add SECURITY.md (#642)
google-cloud-policy-bot[bot] May 5, 2021
cb8ecf0
chore: migrate to owl bot (#635)
parthea May 6, 2021
0776b14
fix: retry connection errors with memcache (#645)
May 10, 2021
1ec9b7c
doc: fix Sphinx build for new version of Sphinx (#648)
May 10, 2021
cbdd77f
fix: properly handle error when clearing cache (#636)
May 10, 2021
4de4bc3
chore: add library type to .repo-metadata.json (#646)
parthea May 12, 2021
afa4fdb
feat: don't flush entire global cache on transient errors (#654)
May 19, 2021
4cf238c
fix: correct inconsistent behavior with regards to namespaces (#662)
May 26, 2021
d9da7f5
fix: do not set read_consistency for queries. (#664)
sorced-jim Jun 4, 2021
263cf76
fix: limit memcache keys to 250 bytes (#663)
Jun 7, 2021
e84cd4d
fix: defer clearing global cache when in transaction (#660)
Jun 7, 2021
7d043a4
fix: detect cache write failure for `MemcacheCache` (#665)
Jun 7, 2021
81ac0d3
chore: release 1.9.0 (#659)
release-please[bot] Jun 10, 2021
dbdb8d6
chore: add kokoro 3.9 config templates (#670)
gcf-owl-bot[bot] Jun 22, 2021
94d2717
fix: fix bug with repeated structured properties with Expando values …
Jun 25, 2021
9be06e5
fix: properly handle legacy structured properties in Expando instance…
Jul 6, 2021
2ee06d3
tests: pin minimum dependency versions under Python 3.6 (#680)
tseaver Jul 8, 2021
be32a4b
chore: replace local 'test_utils' w/ PyPI version (#684)
tseaver Jul 12, 2021
5a2886a
feat: add 'python_requires' metadata to setup (#681)
tseaver Jul 12, 2021
a9828a6
build: remove CircleCI config (#687)
JustinBeckwith Jul 13, 2021
2753ee8
build(python): exit with success status if no samples found (#688)
gcf-owl-bot[bot] Jul 14, 2021
fe15ab4
build(python): remove python 3.7 from kokoro Dockerfile (#689)
gcf-owl-bot[bot] Jul 14, 2021
8a3b647
chore: Add renovate.json (#147)
renovate-bot Jul 19, 2021
80edb65
fix: refactor global cache to address concurrency and fault tolerance…
Jul 20, 2021
926089a
chore: release 1.10.0 (#686)
release-please[bot] Jul 20, 2021
2eeea4d
chore: Document how tasklets work (#690)
Jul 22, 2021
330f3a7
chore: fix kokoro config for samples (#693)
gcf-owl-bot[bot] Jul 23, 2021
0a58cae
chore(deps): pin `Sphinx==4.0.1` to fix `docs` build (#698)
tseaver Jul 28, 2021
2d68a31
test: fix flaky system test (#701)
Jul 29, 2021
86bf7f5
fix: add rpc request object to debug logging (#696)
Jul 29, 2021
e688cd6
fix: allow for legacy repeated structured properties with empty value…
Jul 30, 2021
3e1db7e
fix: fix bug with concurrent writes to global cache (#705)
Aug 11, 2021
c96072e
chore: release 1.10.1 (#704)
release-please[bot] Aug 11, 2021
ff8974b
fix(deps): add pytz as an explicit dependency (#707)
busunkim96 Aug 12, 2021
95c0ad6
chore: generate python samples templates in owlbot.py (#710)
busunkim96 Aug 18, 2021
ede0f7c
chore: add missing import in owlbot.py (#711)
parthea Aug 18, 2021
9cad61a
test: refactor concurrency test using orchestrate (#709)
Aug 24, 2021
d7f7f2b
chore: migrate to main branch (#714)
dandhlee Aug 30, 2021
b75df9c
chore: release 1.10.2 (#708)
release-please[bot] Sep 1, 2021
9f60e4c
fix: use thread-safe iterator to generate context ids (#716)
Sep 7, 2021
cfd9e1f
chore: release 1.10.3 (#719)
release-please[bot] Sep 13, 2021
d8d0606
build: fix kokoro docs-presubmit build (#685)
parthea Sep 15, 2021
bd00cc1
chore: relocate owl bot post processor (#722)
SurferJeffAtGoogle Sep 21, 2021
0b7ab2c
chore: strip 'master' -> 'main' replacments (#723)
tseaver Sep 24, 2021
e503de8
chore: fix docstring typos (found via codespell) (#724)
schwehr Sep 27, 2021
e8ea8ce
test: address flakiness in metadata system tests (#726)
Sep 28, 2021
47bb362
fix: pin grpcio / googleapis-common-protos under Python2 (#725)
tseaver Sep 28, 2021
14aabba
chore: release 1.10.4 (#727)
release-please[bot] Sep 28, 2021
07fcf4e
build: use trampoline_v2 for python samples and allow custom dockerfi…
gcf-owl-bot[bot] Oct 6, 2021
0d4e19b
fix: correct regression in `Model.get_or_insert` (#731)
Oct 7, 2021
33f066b
chore(python): Add kokoro configs for python 3.10 samples testing (#734)
gcf-owl-bot[bot] Oct 8, 2021
7afee5e
chore: release 1.10.5 (#732)
release-please[bot] Oct 13, 2021
ed68171
chore(python): push cloud library docs to staging bucket for Cloud RA…
gcf-owl-bot[bot] Oct 26, 2021
53f8f3c
tests: use 'orchestrate' from 'google-cloud-testutils' (#736)
tseaver Oct 26, 2021
6554f69
feat: add support for python 3.10 (#735)
parthea Oct 28, 2021
54a0770
chore: release 1.11.0 (#739)
release-please[bot] Oct 28, 2021
fe61584
fix: increase cache lock expiration time (#740)
Nov 3, 2021
d1d153b
chore: release 1.11.1 (#741)
release-please[bot] Nov 8, 2021
031d3bd
chore: add codeowner_team to .repo-metadata.json (#744)
parthea Nov 11, 2021
d300995
chore: add api_shortname to repo-metadata.json (#753)
parthea Dec 28, 2021
acab169
chore(python): update release.sh to use keystore (#755)
gcf-owl-bot[bot] Jan 14, 2022
47bb517
chore: add custom sync repo settings (#756)
parthea Feb 13, 2022
293546d
chore(python): use click<8.1.0 for lint/blacken sessions (#761)
gcf-owl-bot[bot] Mar 30, 2022
2e27798
chore(python): use ubuntu 22.04 in docs image (#764)
gcf-owl-bot[bot] Apr 21, 2022
5ff1172
docs: fix changelog header to consistent size (#773)
dandhlee Jun 3, 2022
ec2aa8d
chore(main): release 1.11.2 (#774)
release-please[bot] Jun 9, 2022
027031b
chore(python): use latest post processor image (#782)
gcf-owl-bot[bot] Jul 6, 2022
23e3300
tests(coverage): Exclude test files from coverage report (#785)
Aug 16, 2022
b609f32
chore: remove 'pip install' statements from python_library templates …
gcf-owl-bot[bot] Aug 24, 2022
5ffc08c
chore: use templated renovate.json (#792)
parthea Aug 27, 2022
a00ff0e
chore(python): update dependency distlib (#795)
gcf-owl-bot[bot] Aug 30, 2022
3e22783
ci(python): fix path to requirements.txt in release script (#796)
gcf-owl-bot[bot] Sep 1, 2022
68b289d
chore(python): update .kokoro/requirements.txt (#797)
gcf-owl-bot[bot] Sep 2, 2022
6d052b5
chore(python): exclude setup.py in renovate config (#799)
gcf-owl-bot[bot] Sep 2, 2022
ee386ba
chore: detect samples tests in nested directories (#800)
gcf-owl-bot[bot] Sep 13, 2022
cc33ec5
chore: update dependency protobuf >= 3.20.2 (#803)
gcf-owl-bot[bot] Sep 29, 2022
465fe61
chore: fix CODEOWNERS with correct firestore team (#810)
kolea2 Oct 17, 2022
a3a9e02
chore: Remove andrewsg from CODEOWNERS (#812)
rwhogg Oct 17, 2022
2df78c9
chore: upgrade enchant packages in (Owlbot-controlled) docs Docker im…
rwhogg Oct 17, 2022
f7e497b
docs: add note in Django middleware documentation that it is unimplem…
rwhogg Oct 17, 2022
6f32f8c
chore: Remove reference to CircleCI in CONTRIBUTING.rst (#806)
rwhogg Oct 18, 2022
7cf3104
chore: Fix datastore system test index creation command (#811)
rwhogg Oct 26, 2022
469c571
chore: remove reference to local_test_setup in CONTRIBUTING.rst (#809)
rwhogg Oct 26, 2022
b12d2e5
chore: Remove .appveyor.yml (#814)
rwhogg Oct 26, 2022
a1aa5d2
docs: remove line about Python 2.7 being unsupported (#808)
Nov 2, 2022
bad6564
chore: Remove reference to nonexistent test utils in CONTRIBUTING.rst…
Nov 2, 2022
22a507a
chore: Fix api_shortname in .repo-metadata.json (#813)
rwhogg Nov 4, 2022
95a2570
docs: Add note that ProtoRPC message classes are unimplemented (#819)
rwhogg Nov 7, 2022
40d7cd0
docs(context): Note that several methods are no longer implemented. (…
rwhogg Nov 8, 2022
56608f2
docs: Fix typo in begin_transaction docstring (#822)
rwhogg Nov 9, 2022
d9e9ab2
fix(model): Ensure repeated props have same kind when converting from…
rwhogg Nov 16, 2022
596d894
docs: Fix bad import path in migration guide (#827)
rwhogg Nov 16, 2022
6e7d7a1
fix: Drop Python 2 support (#826)
rwhogg Nov 16, 2022
e59aeff
fix: Drop Python 3.6 support (#829)
rwhogg Nov 16, 2022
e59e950
chore: Update release-please (#825)
rwhogg Nov 16, 2022
18ae704
chore(deps): Drop dependencies that were only used for Python 2 (#830)
rwhogg Nov 16, 2022
69a5631
chore(python): update release script dependencies (#832)
gcf-owl-bot[bot] Nov 16, 2022
7ecd715
chore(deps): Remove contextvars dep that only applies to Python < 3.7…
rwhogg Nov 16, 2022
29fb8da
chore(deps): Specify minimum versions of pymemcache, redis, and pytz …
rwhogg Nov 17, 2022
21820d8
docs(CONTRIBUTING): Note the need for Redis/Memcached env vars in tes…
rwhogg Nov 17, 2022
9abf40a
docs(README): Syncronize supported version text with python-datastore…
rwhogg Nov 17, 2022
bd69157
chore(nox): Remove Py2-only condition (#839)
rwhogg Nov 21, 2022
6afd83b
chore(python): drop flake8-import-order in samples noxfile (#844)
gcf-owl-bot[bot] Nov 26, 2022
8f62c0a
chore(CONTRIBUTING): Fix Redis URL scheme (#843)
rwhogg Nov 27, 2022
5cc1bab
docs(tasklets): Fix Py2-style print statement (#840)
rwhogg Nov 29, 2022
3eabe58
chore(main): release 1.12.0 (#833)
release-please[bot] Nov 30, 2022
1ad7a5c
feat(dependencies)!: Upgrade to google-cloud-datastore 2.x (#841)
rwhogg Dec 6, 2022
d3fae60
chore(main): release 2.0.0 (#846)
release-please[bot] Dec 6, 2022
a62b387
build(nox): Use Python 3.9 for docs and doctest sessions (#847)
rwhogg Dec 6, 2022
5f2b650
build(deps): bump certifi from 2022.9.24 to 2022.12.7 in /synthtool/g…
gcf-owl-bot[bot] Dec 9, 2022
e7cc19a
fix(zlib): Accomodate different Zlib compression levels (#852)
rwhogg Dec 12, 2022
12d1a0a
feat: Support client_options for clients (#815)
rwhogg Dec 13, 2022
50bd3e2
chore(tests): Remove mock dependency and import (#851)
rwhogg Dec 13, 2022
2634fb9
test: Remove Py2-only test code (#854)
rwhogg Dec 14, 2022
f604c28
chore: Restore code coverage (#855)
rwhogg Dec 15, 2022
67290c6
chore(main): release 2.1.0 (#853)
release-please[bot] Dec 15, 2022
aa761b5
chore(python): add support for python 3.11 [autoapprove] (#856)
gcf-owl-bot[bot] Jan 6, 2023
10df6e8
docs: Use cached versions of Cloud objects.inv files (#863)
rwhogg Feb 6, 2023
22c4340
chore: Add Python 3.11 to Trove classifiers (#858)
rwhogg Feb 7, 2023
403145a
chore: Upgrade black version and re-run it (#860)
rwhogg Feb 7, 2023
6aeecea
tests: Exclude GRPC version that was causing a hang (#857)
rwhogg Feb 7, 2023
ab30f3b
build(deps): bump cryptography from 38.0.3 to 39.0.1 in /synthtool/gc…
gcf-owl-bot[bot] Feb 8, 2023
f7d6e57
chore: update CODEOWNERS (#868)
kolea2 Feb 14, 2023
76eddcd
test: Uncomment some old tests (#869)
rwhogg Feb 17, 2023
b7d4b85
chore: Fix typo in key.py (#871)
rwhogg Feb 17, 2023
916d9cd
docs: Note that we support Python 3.11 in CONTRIBUTING file (#872)
rwhogg Feb 21, 2023
cd66142
fix: Query options were not respecting use_cache (#873)
rwhogg Feb 27, 2023
0a2a8cd
chore(python): upgrade gcp-releasetool in .kokoro [autoapprove] (#875)
gcf-owl-bot[bot] Feb 28, 2023
05ac512
chore(main): release 2.1.1 (#864)
release-please[bot] Mar 15, 2023
9a7d8dd
chore(deps): Update nox in .kokoro/requirements.in [autoapprove] (#876)
gcf-owl-bot[bot] Mar 16, 2023
88dd800
docs(query): Fix Py2-style print statements (#878)
kamilturek May 4, 2023
77cbd02
build(deps): bump requests from 2.28.1 to 2.31.0 in /synthtool/gcp/te…
gcf-owl-bot[bot] May 25, 2023
ed2e08f
build(deps): bump cryptography from 39.0.1 to 41.0.0 in /synthtool/gc…
gcf-owl-bot[bot] Jun 3, 2023
7a17f5a
chore: store artifacts in placer (#892)
gcf-owl-bot[bot] Jun 29, 2023
08df185
build(deps): [autoapprove] bump cryptography from 41.0.0 to 41.0.2 (#…
gcf-owl-bot[bot] Jul 17, 2023
6884940
build(deps): [autoapprove] bump pygments from 2.13.0 to 2.15.0 (#898)
gcf-owl-bot[bot] Jul 21, 2023
9ef29db
feat: named db support (#882)
rwhogg Jul 25, 2023
75470ce
build(deps): [autoapprove] bump certifi from 2022.12.7 to 2023.7.22 (…
gcf-owl-bot[bot] Jul 26, 2023
2f71908
chore(main): release 2.2.0 (#879)
release-please[bot] Jul 26, 2023
ada882b
chore: Correct lint error in client.py (#902)
rwhogg Aug 1, 2023
3a7ebe9
build: [autoapprove] bump cryptography from 41.0.2 to 41.0.3 (#904)
gcf-owl-bot[bot] Aug 3, 2023
dad4b2f
docs: Mark database argument for get_by_id and its async counterpart …
rwhogg Aug 9, 2023
f4b1126
fix(deps): Add missing six dependency (#912)
rwhogg Sep 15, 2023
9629943
chore(main): release 2.2.1 (#907)
release-please[bot] Sep 15, 2023
10b2265
chore(deps): Allow redis 5.x dependency (#914)
rwhogg Sep 15, 2023
4e67dd5
docs(query): Document deprecation of Query.default_options (#915)
rwhogg Sep 19, 2023
5d0d003
chore(main): release 2.2.2 (#917)
release-please[bot] Sep 25, 2023
c055f04
docs(__init__): Note that Firestore in Datastore Mode is supported (#…
rwhogg Sep 27, 2023
9512f78
chore: [autoapprove] bump cryptography from 41.0.3 to 41.0.4 (#921)
gcf-owl-bot[bot] Oct 3, 2023
6f64da1
chore: [autoapprove] Update `black` and `isort` to latest versions (#…
gcf-owl-bot[bot] Oct 10, 2023
d663f90
chore: rename rst files to avoid conflict with service names (#926)
gcf-owl-bot[bot] Oct 26, 2023
8c30063
chore: bump urllib3 from 1.26.12 to 1.26.18 (#928)
gcf-owl-bot[bot] Nov 15, 2023
d317240
docs: Show how to use named databases (#932)
rwhogg Nov 24, 2023
087107d
feat: add support for google.cloud.ndb.__version__ (#929)
parthea Nov 24, 2023
4bc0567
feat: Introduce compatibility with native namespace packages (#933)
parthea Jan 25, 2024
4ca2e3c
build(python): fix `docs` and `docfx` builds (#939)
gcf-owl-bot[bot] Jan 26, 2024
8e5426f
docs: fix a mistaken ID description (#943)
lkk7 Feb 9, 2024
ee9f61f
build(deps): bump cryptography from 42.0.0 to 42.0.2 in .kokoro (#947)
gcf-owl-bot[bot] Feb 23, 2024
011e58a
feat: Add Python 3.12 (#949)
sorced-jim Feb 27, 2024
1dc8b62
docs: Correct read_consistency docs. (#948)
sorced-jim Feb 27, 2024
88fc187
fix: compressed repeated to uncompressed property (#772)
zyzniewski Feb 27, 2024
5e53016
feat: Use server side != for queries. (#950)
sorced-jim Feb 27, 2024
c14498f
feat: Allow queries using server side IN. (#954)
sorced-jim Feb 28, 2024
afcf522
build(deps): bump cryptography from 42.0.2 to 42.0.4 in .kokoro (#953)
gcf-owl-bot[bot] Feb 28, 2024
653fd87
feat: Add field information when raising validation errors. (#956)
Z33DD Feb 29, 2024
a3a7b93
fix: repeated structured property containing blob property with legac…
ventice11o Feb 29, 2024
600381f
feat: Add support for server side NOT_IN filter. (#957)
sorced-jim Mar 1, 2024
910e84d
chore(main): release 2.3.0 (#920)
release-please[bot] Mar 1, 2024
ae16c17
fix: Remove uses of six. #913 (#958)
sorced-jim Mar 7, 2024
6534666
docs: Note to use functools.wrap instead of utils.wrapping. (#966)
sorced-jim Mar 8, 2024
fdaec31
docs: Tell users of utils.wrapping to use functools.wraps (#967)
rwhogg Mar 8, 2024
920d350
docs: Document how to run system tests against the emulator. (#963)
sorced-jim Mar 8, 2024
0a4ce22
tests: Remove unneeded eventually() call for ancestor queries. (#965)
sorced-jim Mar 8, 2024
75920af
fix: Show a non-None error for core_exception.Unknown errors. (#968)
sorced-jim Mar 9, 2024
1f7e00f
tests: Add a session for system tests against the emulator. (#969)
sorced-jim Mar 13, 2024
696548b
fix(grpc): Fix large payload handling when using the emulator. (#975)
pcostell Mar 16, 2024
3333fae
chore(python): update dependencies in /.kokoro (#971)
gcf-owl-bot[bot] Mar 16, 2024
9204c70
chore(main): release 2.3.1 (#964)
release-please[bot] Mar 21, 2024
00f5c5a
docs: Add pypi badges to README. (#976)
pcostell Apr 12, 2024
b5258e7
tests: Add nox target to test against the old emulator. (#978)
sorced-jim Apr 12, 2024
ce9cff2
chore(python): bump idna from 3.4 to 3.7 in .kokoro (#980)
gcf-owl-bot[bot] Apr 12, 2024
d595c62
chore: update templated files (#990)
gcf-owl-bot[bot] Jul 3, 2024
bebca77
fix: Allow Protobuf 5.x (#991)
parthea Jul 5, 2024
75b71fe
chore(python): use python 3.10 for docs build (#996)
gcf-owl-bot[bot] Jul 15, 2024
812550c
chore(main): release 2.3.2 (#993)
release-please[bot] Sep 3, 2024
afb2cdd
chore: set gcs-sdk-team as storage codeowners (#1012)
danielduhh Mar 17, 2025
74e88ed
fix: support sub-meanings for datastore v2.20.3 (#1014)
daniel-sanche Apr 26, 2025
e816b75
chore(deps): update all dependencies (#1008)
renovate-bot May 9, 2025
45716ed
chore(main): release 2.3.3 (#1015)
release-please[bot] May 13, 2025
b0abe53
fix: allow protobuf 6.x, allow redis 6.x (#1013)
parthea Jun 11, 2025
a3bfaf8
chore(main): release 2.3.4 (#1022)
release-please[bot] Jun 11, 2025
07bcd0f
feat: Add support for Python 3.14 (#1028)
parthea Nov 12, 2025
68a8dd1
chore(librarian): onboard to librarian (#1027)
parthea Nov 12, 2025
00ff73d
chore: librarian release pull request: 20251215T134350Z (#1032)
daniel-sanche Dec 15, 2025
d4a03f6
chore: Migrate gsutil usage to gcloud storage (#1033)
gurusai-voleti Jan 30, 2026
5f0b933
Merge remote-tracking branch 'remote.googleapis/python-ndb/main' into…
parthea Mar 2, 2026
dafd69f
Trigger owlbot post-processor
parthea Mar 2, 2026
b67b616
build: google-cloud-ndb migration: adjust owlbot-related files
parthea Mar 2, 2026
f9e84c3
chore: delete unused directories and files
chalmerlowe Mar 3, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Empty file.
14 changes: 14 additions & 0 deletions packages/google-cloud-ndb/.coveragerc
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
[run]
branch = True

[report]
fail_under = 100
show_missing = True
exclude_lines =
# Re-enable the standard pragma
pragma: NO COVER
omit =
.nox/*
*/gapic/*.py
*/proto/*.py
tests/*/*.py
18 changes: 18 additions & 0 deletions packages/google-cloud-ndb/.flake8
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# -*- coding: utf-8 -*-
#
# Copyright 2020 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

[flake8]
ignore = E203, E266, E501, W503
14 changes: 14 additions & 0 deletions packages/google-cloud-ndb/.repo-metadata.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"name": "python-ndb",
"name_pretty": "NDB Client Library for Google Cloud Datastore",
"client_documentation": "https://googleapis.dev/python/python-ndb/latest",
"issue_tracker": "https://github.com/googleapis/python-ndb/issues",
"release_level": "stable",
"language": "python",
"library_type": "GAPIC_MANUAL",
"repo": "googleapis/python-ndb",
"distribution_name": "google-cloud-ndb",
"default_version": "",
"codeowner_team": "@googleapis/firestore-dpe @googleapis/gcs-sdk-team",
"api_shortname": "datastore"
}
9 changes: 9 additions & 0 deletions packages/google-cloud-ndb/AUTHORS
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# This is the official list of ndb authors for copyright purposes.
# Names should be added to this file as:
# Name or Organization <email address>
# The email address is not required for organizations.
Google Inc.
Beech Horn <beechhorn@gmail.com>
James Morrison <jim.morrison@gmail.com>
Rodrigo Moraes <rodrigo.moraes@gmail.com>
Danny Hermes <daniel.j.hermes@gmail.com>
672 changes: 672 additions & 0 deletions packages/google-cloud-ndb/CHANGELOG.md

Large diffs are not rendered by default.

314 changes: 314 additions & 0 deletions packages/google-cloud-ndb/CONTRIBUTING.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,314 @@
############
Contributing
############

#. **Please sign one of the contributor license agreements below.**
#. ``python-ndb`` is undergoing heavy development right now, so if you plan to
implement a feature, please create an issue to discuss your idea first. That
way we can coordinate and avoid possibly duplicating ongoing work.
#. Fork the repo, develop and test your code changes, add docs.
#. Make sure that your commit messages clearly describe the changes.
#. Send a pull request. (Please Read: `Faster Pull Request Reviews`_)

.. _Faster Pull Request Reviews: https://github.com/kubernetes/community/blob/master/contributors/guide/pull-requests.md#best-practices-for-faster-reviews

.. contents:: Here are some guidelines for hacking on ``python-ndb``.

***************
Adding Features
***************

In order to add a feature to ``python-ndb``:

- The feature must be documented in both the API and narrative
documentation (in ``docs/``).

- The feature must work fully on the following CPython versions:
3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 and 3.14 on both UNIX and Windows.

- The feature must not add unnecessary dependencies (where
"unnecessary" is of course subjective, but new dependencies should
be discussed).

****************************
Using a Development Checkout
****************************

You'll have to create a development environment to hack on
``python-ndb``, using a Git checkout:

- While logged into your GitHub account, navigate to the
``python-ndb`` `repo`_ on GitHub.

- Fork and clone the ``python-ndb`` repository to your GitHub account by
clicking the "Fork" button.

- Clone your fork of ``python-ndb`` from your GitHub account to your local
computer, substituting your account username and specifying the destination
as ``hack-on-python-ndb``. E.g.::

$ cd ${HOME}
$ git clone git@github.com:USERNAME/python-ndb.git hack-on-python-ndb
$ cd hack-on-python-ndb
# Configure remotes such that you can pull changes from the python-ndb
# repository into your local repository.
$ git remote add upstream git@github.com:googleapis/python-ndb.git
# fetch and merge changes from upstream into main
$ git fetch upstream
$ git merge upstream/main

Now your local repo is set up such that you will push changes to your GitHub
repo, from which you can submit a pull request.

To work on the codebase and run the tests, we recommend using ``nox``,
but you can also use a ``virtualenv`` of your own creation.

.. _repo: https://github.com/googleapis/python-ndb

Using ``nox``
=============

We use `nox <https://nox.readthedocs.io/en/latest/>`__ to instrument our tests.

- To test your changes, run unit tests with ``nox``::

$ nox -s unit-3.10
$ nox -s unit-3.7
$ ...

.. nox: https://pypi.org/project/nox-automation/

- To run unit tests that use Memcached or Redis, you must have them running and set the appropriate environment variables:

$ export MEMCACHED_HOSTS=localhost:11211
$ export REDIS_CACHE_URL=redis://localhost:6379


Note on Editable Installs / Develop Mode
========================================

- As mentioned previously, using ``setuptools`` in `develop mode`_
or a ``pip`` `editable install`_ is not possible with this
library. This is because this library uses `namespace packages`_.
For context see `Issue #2316`_ and the relevant `PyPA issue`_.

Since ``editable`` / ``develop`` mode can't be used, packages
need to be installed directly. Hence your changes to the source
tree don't get incorporated into the **already installed**
package.

.. _namespace packages: https://www.python.org/dev/peps/pep-0420/
.. _Issue #2316: https://github.com/googleapis/google-cloud-python/issues/2316
.. _PyPA issue: https://github.com/pypa/packaging-problems/issues/12
.. _develop mode: https://setuptools.readthedocs.io/en/latest/setuptools.html#development-mode
.. _editable install: https://pip.pypa.io/en/stable/reference/pip_install/#editable-installs

*****************************************
I'm getting weird errors... Can you help?
*****************************************

If the error mentions ``Python.h`` not being found,
install ``python-dev`` and try again.
On Debian/Ubuntu::

$ sudo apt-get install python-dev

************
Coding Style
************

- PEP8 compliance, with exceptions defined in the linter configuration.
If you have ``nox`` installed, you can test that you have not introduced
any non-compliant code via::

$ nox -s lint

- In order to make ``nox -s lint`` run faster, you can set some environment
variables::

export GOOGLE_CLOUD_TESTING_REMOTE="upstream"
export GOOGLE_CLOUD_TESTING_BRANCH="main"

By doing this, you are specifying the location of the most up-to-date
version of ``python-ndb``. The the suggested remote name ``upstream``
should point to the official ``googleapis`` checkout and the
the branch should be the main branch on that remote (``main``).

Exceptions to PEP8:

- Many unit tests use a helper method, ``_call_fut`` ("FUT" is short for
"Function-Under-Test"), which is PEP8-incompliant, but more readable.
Some also use a local variable, ``MUT`` (short for "Module-Under-Test").

********************
Running System Tests
********************

- To run system tests for a given package, you can execute::

$ export SYSTEM_TESTS_DATABASE=system-tests-named-db
$ nox -e system

.. note::

System tests are only configured to run under Python 3.14. For
expediency, we do not run them in older versions of Python 3.

This alone will not run the tests. You'll need to change some local
auth settings and change some configuration in your project to
run all the tests.

- System tests may be run against the emulator. To do this, set the
``DATASTORE_EMULATOR_HOST`` environment variable. Alternatively,
system tests with the emulator can run with
`nox -e emulator-system-PYTHON_VERSION`

- System tests will be run against an actual project and
so you'll need to provide some environment variables to facilitate
authentication to your project:

- ``GOOGLE_APPLICATION_CREDENTIALS``: The path to a JSON key file;
see ``system_tests/app_credentials.json.sample`` as an example. Such a file
can be downloaded directly from the developer's console by clicking
"Generate new JSON key". See private key
`docs <https://cloud.google.com/storage/docs/authentication#generating-a-private-key>`__
for more details.

- In order for Logging system tests to work, the Service Account
will also have to be made a project ``Owner``. This can be changed under
"IAM & Admin". Additionally, ``cloud-logs@google.com`` must be given
``Editor`` permissions on the project.

- For datastore tests, you'll need to create composite
`indexes <https://cloud.google.com/datastore/docs/tools/indexconfig>`__
with the ``gcloud`` command line
`tool <https://developers.google.com/cloud/sdk/gcloud/>`__::

# Install the app (App Engine Command Line Interface) component.
$ gcloud components install app-engine-python

# Authenticate the gcloud tool with your account.
$ GOOGLE_APPLICATION_CREDENTIALS="path/to/app_credentials.json"
$ gcloud auth activate-service-account \
> --key-file=${GOOGLE_APPLICATION_CREDENTIALS}

# Create the indexes
$ gcloud datastore indexes create tests/system/index.yaml
$ gcloud alpha datastore indexes create --database=$SYSTEM_TESTS_DATABASE tests/system/index.yaml


*************
Test Coverage
*************

- The codebase *must* have 100% test statement coverage after each commit.
You can test coverage via ``nox -s cover``.

******************************************************
Documentation Coverage and Building HTML Documentation
******************************************************

If you fix a bug, and the bug requires an API or behavior modification, all
documentation in this package which references that API or behavior must be
changed to reflect the bug fix, ideally in the same commit that fixes the bug
or adds the feature.

To build and review docs (where ``${VENV}`` refers to the virtualenv you're
using to develop ``python-ndb``):

#. After following the steps above in "Using a Development Checkout", install
Sphinx and all development requirements in your virtualenv::

$ cd ${HOME}/hack-on-python-ndb
$ ${VENV}/bin/pip install Sphinx

#. Change into the ``docs`` directory within your ``python-ndb`` checkout and
execute the ``make`` command with some flags::

$ cd ${HOME}/hack-on-python-ndb/docs
$ make clean html SPHINXBUILD=${VENV}/bin/sphinx-build

The ``SPHINXBUILD=...`` argument tells Sphinx to use the virtualenv Python,
which will have both Sphinx and ``python-ndb`` (for API documentation
generation) installed.

#. Open the ``docs/_build/html/index.html`` file to see the resulting HTML
rendering.

As an alternative to 1. and 2. above, if you have ``nox`` installed, you
can build the docs via::

$ nox -s docs

********************************************
Note About ``README`` as it pertains to PyPI
********************************************

The `description on PyPI`_ for the project comes directly from the
``README``. Due to the reStructuredText (``rst``) parser used by
PyPI, relative links which will work on GitHub (e.g. ``CONTRIBUTING.rst``
instead of
``https://github.com/googleapis/python-ndb/blob/main/CONTRIBUTING.rst``)
may cause problems creating links or rendering the description.

.. _description on PyPI: https://pypi.org/project/google-cloud/


*************************
Supported Python Versions
*************************

We support:

- `Python 3.7`_
- `Python 3.8`_
- `Python 3.9`_
- `Python 3.10`_
- `Python 3.11`_
- `Python 3.12`_
- `Python 3.13`_
- `Python 3.14`_

.. _Python 3.7: https://docs.python.org/3.7/
.. _Python 3.8: https://docs.python.org/3.8/
.. _Python 3.9: https://docs.python.org/3.9/
.. _Python 3.10: https://docs.python.org/3.10/
.. _Python 3.11: https://docs.python.org/3.11/
.. _Python 3.12: https://docs.python.org/3.12/
.. _Python 3.13: https://docs.python.org/3.13/
.. _Python 3.14: https://docs.python.org/3.14/


Supported versions can be found in our ``noxfile.py`` `config`_.

.. _config: https://github.com/googleapis/python-ndb/blob/main/noxfile.py


**********
Versioning
**********

This library follows `Semantic Versioning`_.

.. _Semantic Versioning: http://semver.org/

Some packages are currently in major version zero (``0.y.z``), which means that
anything may change at any time and the public API should not be considered
stable.

******************************
Contributor License Agreements
******************************

Before we can accept your pull requests you'll need to sign a Contributor
License Agreement (CLA):

- **If you are an individual writing original source code** and **you own the
intellectual property**, then you'll need to sign an
`individual CLA <https://developers.google.com/open-source/cla/individual>`__.
- **If you work for a company that wants to allow you to contribute your work**,
then you'll need to sign a
`corporate CLA <https://developers.google.com/open-source/cla/corporate>`__.

You can sign these electronically (just scroll to the bottom). After that,
we'll be able to accept your pull requests.
Loading
Loading