Alex Indaco created BEAM-11441:
----------------------------------

             Summary: Python 
io.gcp.datastore.v1new.types.Entity.to_client_entity does not handle list of 
Keys
                 Key: BEAM-11441
                 URL: https://issues.apache.org/jira/browse/BEAM-11441
             Project: Beam
          Issue Type: Bug
          Components: io-py-gcp
    Affects Versions: 2.23.0
            Reporter: Alex Indaco


in io.gcp.datastore.v1new.types, Entity's method `to_client_entity` does not do 
it's conversions for repeated properties (arrays)

I believe that changing the code of `to_client_entity` to the following should 
fix the issue


{code:java}
def _to_client_value(self, value)
 if isinstance(value, Key):
   if not value.project:
     value.project = self.key.project
   value = value.to_client_key()
 if isinstance(value, Entity):
   if not value.key.project:
     value.key.project = self.key.project
   value = value.to_client_entity()
 return value

def to_client_entity(self):
 """
 Returns a :class:`google.cloud.datastore.entity.Entity` instance that
 represents this entity.
 """
 res = entity.Entity(
   key=self.key.to_client_key(),
   exclude_from_indexes=tuple(self.exclude_from_indexes))
 for name, value in self.properties.items():
   if isinstance(value, list):
     value = [self._to_client_value(item) for item in value]
   else:
     value = self._to_client_value(value)
   res[name] = value
 return res{code}






 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to