11
11
# See the License for the specific language governing permissions and
12
12
# limitations under the License.
13
13
14
- import argparse
15
- from collections import defaultdict
16
- import datetime
17
- from pprint import pprint
18
-
19
- from google .api_core .client_options import ClientOptions
20
- import google .cloud .exceptions
21
14
from google .cloud import datastore # noqa: I100
22
- from google .cloud .datastore .query import PropertyFilter
23
15
24
16
25
17
def _preamble ():
@@ -214,6 +206,8 @@ def entity_with_parent(client):
214
206
215
207
def properties (client ):
216
208
# [START datastore_properties]
209
+ import datetime
210
+
217
211
key = client .key ("Task" )
218
212
task = datastore .Entity (key , exclude_from_indexes = ("description" ,))
219
213
task .update (
@@ -386,7 +380,11 @@ def unindexed_property_query(client):
386
380
387
381
# [START datastore_unindexed_property_query]
388
382
query = client .query (kind = "Task" )
389
- query .add_filter (filter = PropertyFilter ("description" , "=" , "Learn Cloud Datastore" ))
383
+ query .add_filter (
384
+ filter = datastore .query .PropertyFilter (
385
+ "description" , "=" , "Learn Cloud Datastore"
386
+ )
387
+ )
390
388
# [END datastore_unindexed_property_query]
391
389
392
390
return list (query .fetch ())
@@ -398,8 +396,8 @@ def basic_query(client):
398
396
399
397
# [START datastore_basic_query]
400
398
query = client .query (kind = "Task" )
401
- query .add_filter (filter = PropertyFilter ("done" , "=" , False ))
402
- query .add_filter (filter = PropertyFilter ("priority" , ">=" , 4 ))
399
+ query .add_filter (filter = datastore . query . PropertyFilter ("done" , "=" , False ))
400
+ query .add_filter (filter = datastore . query . PropertyFilter ("priority" , ">=" , 4 ))
403
401
query .order = ["-priority" ]
404
402
# [END datastore_basic_query]
405
403
@@ -503,7 +501,7 @@ def property_filter(client):
503
501
504
502
# [START datastore_property_filter]
505
503
query = client .query (kind = "Task" )
506
- query .add_filter (filter = PropertyFilter ("done" , "=" , False ))
504
+ query .add_filter (filter = datastore . query . PropertyFilter ("done" , "=" , False ))
507
505
# [END datastore_property_filter]
508
506
509
507
return list (query .fetch ())
@@ -515,8 +513,8 @@ def composite_filter(client):
515
513
516
514
# [START datastore_composite_filter]
517
515
query = client .query (kind = "Task" )
518
- query .add_filter (filter = PropertyFilter ("done" , "=" , False ))
519
- query .add_filter (filter = PropertyFilter ("priority" , "=" , 4 ))
516
+ query .add_filter (filter = datastore . query . PropertyFilter ("done" , "=" , False ))
517
+ query .add_filter (filter = datastore . query . PropertyFilter ("priority" , "=" , 4 ))
520
518
# [END datastore_composite_filter]
521
519
522
520
return list (query .fetch ())
@@ -538,6 +536,8 @@ def key_filter(client):
538
536
539
537
def ascending_sort (client ):
540
538
# Create the entity that we're going to query.
539
+ import datetime
540
+
541
541
task = upsert (client )
542
542
task ["created" ] = datetime .datetime .now (tz = datetime .timezone .utc )
543
543
client .put (task )
@@ -552,6 +552,8 @@ def ascending_sort(client):
552
552
553
553
def descending_sort (client ):
554
554
# Create the entity that we're going to query.
555
+ import datetime
556
+
555
557
task = upsert (client )
556
558
task ["created" ] = datetime .datetime .now (tz = datetime .timezone .utc )
557
559
client .put (task )
@@ -566,6 +568,8 @@ def descending_sort(client):
566
568
567
569
def multi_sort (client ):
568
570
# Create the entity that we're going to query.
571
+ import datetime
572
+
569
573
task = upsert (client )
570
574
task ["created" ] = datetime .datetime .now (tz = datetime .timezone .utc )
571
575
client .put (task )
@@ -620,23 +624,31 @@ def kindless_query(client):
620
624
621
625
def inequality_range (client ):
622
626
# [START datastore_inequality_range]
627
+ import datetime
628
+
623
629
start_date = datetime .datetime (1990 , 1 , 1 )
624
630
end_date = datetime .datetime (2000 , 1 , 1 )
625
631
query = client .query (kind = "Task" )
626
- query .add_filter (filter = PropertyFilter ("created" , ">" , start_date ))
627
- query .add_filter (filter = PropertyFilter ("created" , "<" , end_date ))
632
+ query .add_filter (filter = datastore . query . PropertyFilter ("created" , ">" , start_date ))
633
+ query .add_filter (filter = datastore . query . PropertyFilter ("created" , "<" , end_date ))
628
634
# [END datastore_inequality_range]
629
635
630
636
return list (query .fetch ())
631
637
632
638
633
639
def inequality_invalid (client ):
640
+ import google .cloud .exceptions
641
+
634
642
try :
635
643
# [START datastore_inequality_invalid]
644
+ import datetime
645
+
636
646
start_date = datetime .datetime (1990 , 1 , 1 )
637
647
query = client .query (kind = "Task" )
638
- query .add_filter (filter = PropertyFilter ("created" , ">" , start_date ))
639
- query .add_filter (filter = PropertyFilter ("priority" , ">" , 3 ))
648
+ query .add_filter (
649
+ filter = datastore .query .PropertyFilter ("created" , ">" , start_date )
650
+ )
651
+ query .add_filter (filter = datastore .query .PropertyFilter ("priority" , ">" , 3 ))
640
652
# [END datastore_inequality_invalid]
641
653
642
654
return list (query .fetch ())
@@ -647,13 +659,15 @@ def inequality_invalid(client):
647
659
648
660
def equal_and_inequality_range (client ):
649
661
# [START datastore_equal_and_inequality_range]
662
+ import datetime
663
+
650
664
start_date = datetime .datetime (1990 , 1 , 1 )
651
665
end_date = datetime .datetime (2000 , 12 , 31 , 23 , 59 , 59 )
652
666
query = client .query (kind = "Task" )
653
- query .add_filter (filter = PropertyFilter ("priority" , "=" , 4 ))
654
- query .add_filter (filter = PropertyFilter ("done" , "=" , False ))
655
- query .add_filter (filter = PropertyFilter ("created" , ">" , start_date ))
656
- query .add_filter (filter = PropertyFilter ("created" , "<" , end_date ))
667
+ query .add_filter (filter = datastore . query . PropertyFilter ("priority" , "=" , 4 ))
668
+ query .add_filter (filter = datastore . query . PropertyFilter ("done" , "=" , False ))
669
+ query .add_filter (filter = datastore . query . PropertyFilter ("created" , ">" , start_date ))
670
+ query .add_filter (filter = datastore . query . PropertyFilter ("created" , "<" , end_date ))
657
671
# [END datastore_equal_and_inequality_range]
658
672
659
673
return list (query .fetch ())
@@ -662,18 +676,20 @@ def equal_and_inequality_range(client):
662
676
def inequality_sort (client ):
663
677
# [START datastore_inequality_sort]
664
678
query = client .query (kind = "Task" )
665
- query .add_filter (filter = PropertyFilter ("priority" , ">" , 3 ))
679
+ query .add_filter (filter = datastore . query . PropertyFilter ("priority" , ">" , 3 ))
666
680
query .order = ["priority" , "created" ]
667
681
# [END datastore_inequality_sort]
668
682
669
683
return list (query .fetch ())
670
684
671
685
672
686
def inequality_sort_invalid_not_same (client ):
687
+ import google .cloud .exceptions
688
+
673
689
try :
674
690
# [START datastore_inequality_sort_invalid_not_same]
675
691
query = client .query (kind = "Task" )
676
- query .add_filter (filter = PropertyFilter ("priority" , ">" , 3 ))
692
+ query .add_filter (filter = datastore . query . PropertyFilter ("priority" , ">" , 3 ))
677
693
query .order = ["created" ]
678
694
# [END datastore_inequality_sort_invalid_not_same]
679
695
@@ -684,10 +700,12 @@ def inequality_sort_invalid_not_same(client):
684
700
685
701
686
702
def inequality_sort_invalid_not_first (client ):
703
+ import google .cloud .exceptions
704
+
687
705
try :
688
706
# [START datastore_inequality_sort_invalid_not_first]
689
707
query = client .query (kind = "Task" )
690
- query .add_filter (filter = PropertyFilter ("priority" , ">" , 3 ))
708
+ query .add_filter (filter = datastore . query . PropertyFilter ("priority" , ">" , 3 ))
691
709
query .order = ["created" , "priority" ]
692
710
# [END datastore_inequality_sort_invalid_not_first]
693
711
@@ -700,8 +718,8 @@ def inequality_sort_invalid_not_first(client):
700
718
def array_value_inequality_range (client ):
701
719
# [START datastore_array_value_inequality_range]
702
720
query = client .query (kind = "Task" )
703
- query .add_filter (filter = PropertyFilter ("tag" , ">" , "learn" ))
704
- query .add_filter (filter = PropertyFilter ("tag" , "<" , "math" ))
721
+ query .add_filter (filter = datastore . query . PropertyFilter ("tag" , ">" , "learn" ))
722
+ query .add_filter (filter = datastore . query . PropertyFilter ("tag" , "<" , "math" ))
705
723
# [END datastore_array_value_inequality_range]
706
724
707
725
return list (query .fetch ())
@@ -710,15 +728,17 @@ def array_value_inequality_range(client):
710
728
def array_value_equality (client ):
711
729
# [START datastore_array_value_equality]
712
730
query = client .query (kind = "Task" )
713
- query .add_filter (filter = PropertyFilter ("tag" , "=" , "fun" ))
714
- query .add_filter (filter = PropertyFilter ("tag" , "=" , "programming" ))
731
+ query .add_filter (filter = datastore . query . PropertyFilter ("tag" , "=" , "fun" ))
732
+ query .add_filter (filter = datastore . query . PropertyFilter ("tag" , "=" , "programming" ))
715
733
# [END datastore_array_value_equality]
716
734
717
735
return list (query .fetch ())
718
736
719
737
720
738
def exploding_properties (client ):
721
739
# [START datastore_exploding_properties]
740
+ import datetime
741
+
722
742
task = datastore .Entity (client .key ("Task" ))
723
743
task .update (
724
744
{
@@ -754,6 +774,8 @@ def transfer_funds(client, from_key, to_key, amount):
754
774
# [END datastore_transactional_update]
755
775
756
776
# [START datastore_transactional_retry]
777
+ import google .cloud .exceptions
778
+
757
779
for _ in range (5 ):
758
780
try :
759
781
transfer_funds (client , account1 .key , account2 .key , 50 )
@@ -769,6 +791,8 @@ def transfer_funds(client, from_key, to_key, amount):
769
791
770
792
def transactional_get_or_create (client ):
771
793
# [START datastore_transactional_get_or_create]
794
+ import datetime
795
+
772
796
with client .transaction ():
773
797
key = client .key (
774
798
"Task" , datetime .datetime .now (tz = datetime .timezone .utc ).isoformat ()
@@ -850,6 +874,8 @@ def property_run_query(client):
850
874
upsert (client )
851
875
852
876
# [START datastore_property_run_query]
877
+ from collections import defaultdict
878
+
853
879
query = client .query (kind = "__property__" )
854
880
query .keys_only ()
855
881
@@ -887,6 +913,9 @@ def property_by_kind_run_query(client):
887
913
888
914
def regional_endpoint ():
889
915
# [START datastore_regional_endpoints]
916
+ from google .cloud import datastore
917
+ from google .api_core .client_options import ClientOptions
918
+
890
919
ENDPOINT = "https://nam5-datastore.googleapis.com"
891
920
client_options = ClientOptions (api_endpoint = ENDPOINT )
892
921
client = datastore .Client (client_options = client_options )
@@ -1006,6 +1035,8 @@ def index_merge_queries(client):
1006
1035
1007
1036
1008
1037
def main (project_id ):
1038
+ from pprint import pprint
1039
+
1009
1040
client = datastore .Client (project_id )
1010
1041
1011
1042
for name , function in globals ().items ():
@@ -1018,6 +1049,8 @@ def main(project_id):
1018
1049
1019
1050
1020
1051
if __name__ == "__main__" :
1052
+ import argparse
1053
+
1021
1054
parser = argparse .ArgumentParser (
1022
1055
description = "Demonstrates datastore API operations."
1023
1056
)
0 commit comments