def get_faces()

in src/rekognition/compare-faces/ddb.py [0:0]


  def get_faces(self, user_id:str)->Mapping[str,bytes]:
    '''
    Gets every face associated with a given user.
    :param user_id:  The users alias.
    :returns: Map face_id (str) to image (bytes)
    '''
    assert user_id is not None, "user_id is missing"

    response = self.table.query(
      KeyConditionExpression=Key('PartitionKey').eq('User::'+user_id).__and__(Key('SortKey').begins_with('Face::')),
      )

    faces = {}
    for item in response['Items']:
      face_id:str = str(item['SortKey']).replace('Face::','',1).lower()
      if 'image' in item:
        faces[face_id] = item['image']
      elif 's3_uri' in item:
        faces[face_id] = self.__get_image_from_uri(item['s3_uri'])
      else:
        #faces[face_id] = None
        print('user {} - face_id {} has no face.'.format(user_id,face_id))
    
    return faces