1717p = inflect .engine ()
1818
1919
20+ def rreplace (s , old , new , occurrence ):
21+ li = s .rsplit (old , occurrence )
22+ return new .join (li )
23+
24+
2025def convert_ndb_scalar_property (graphene_type , ndb_prop , ** kwargs ):
2126 description = "%s %s property" % (ndb_prop ._name , graphene_type )
2227 result = graphene_type (description = description , ** kwargs )
@@ -61,28 +66,28 @@ def convert_ndb_key_propety(ndb_key_prop, meta):
6166 store_key = ndb.KeyProperty(...)
6267
6368 Result is 2 fields:
64- store_key = graphene.String() -> resolves to store_key.urlsafe()
69+ store_id = graphene.String() -> resolves to store_key.urlsafe()
6570 store = NdbKeyField() -> resolves to entity
6671
6772 #2.
6873 Given:
6974 store = ndb.KeyProperty(...)
7075
7176 Result is 2 fields:
72- store_key = graphene.String() -> resolves to store_key.urlsafe()
77+ store_id = graphene.String() -> resolves to store_key.urlsafe()
7378 store = NdbKeyField() -> resolves to entity
7479
7580 """
7681 name = ndb_key_prop ._code_name
7782
7883 if name .endswith ('_key' ) or name .endswith ('_keys' ):
7984 # Case #1 - name is of form 'store_key' or 'store_keys'
80- string_prop_name = name
85+ string_prop_name = rreplace ( name , '_key' , '_id' , 1 )
8186 resolved_prop_name = name [:- 4 ] if name .endswith ('_key' ) else p .plural (name [:- 5 ])
8287 else :
8388 # Case #2 - name is of form 'store'
8489 singular_name = p .singular_noun (name ) if p .singular_noun (name ) else name
85- string_prop_name = singular_name + '_keys ' if ndb_key_prop ._repeated else singular_name + '_key '
90+ string_prop_name = singular_name + '_ids ' if ndb_key_prop ._repeated else singular_name + '_id '
8691 resolved_prop_name = name
8792
8893 string_field = NdbKeyStringField (name )
@@ -105,7 +110,6 @@ def convert_ndb_key_propety(ndb_key_prop, meta):
105110 ]
106111
107112
108-
109113def convert_local_structured_property (ndb_structured_prop , meta ):
110114 is_required = ndb_structured_prop ._required
111115 is_repeated = ndb_structured_prop ._repeated
0 commit comments