Exemplo n.º 1
0
 def test_field_projection_existence_only(self, file_spec, random_access,
                                          parallelism):
     with contextlib.closing(file_spec(self.create_tempfile,
                                       random_access)) as files:
         with riegeli.RecordWriter(
                 files.writing_open(),
                 owns_dest=files.writing_should_close,
                 assumed_pos=files.writing_assumed_pos,
                 options=f'{record_writer_options(parallelism)},transpose'
         ) as writer:
             for i in range(23):
                 writer.write_message(sample_message(i, 10000))
         with riegeli.RecordReader(
                 files.reading_open(),
                 owns_src=files.reading_should_close,
                 assumed_pos=files.reading_assumed_pos,
                 field_projection=[
                     [
                         records_test_pb2.SimpleMessage.DESCRIPTOR.
                         fields_by_name['id'].number
                     ],
                     [
                         records_test_pb2.SimpleMessage.DESCRIPTOR.
                         fields_by_name['payload'].number,
                         riegeli.EXISTENCE_ONLY,
                     ],
                 ]) as reader:
             for i in range(23):
                 self.assertEqual(
                     reader.read_message(records_test_pb2.SimpleMessage),
                     records_test_pb2.SimpleMessage(id=i, payload=b''))
             self.assertIsNone(
                 reader.read_message(records_test_pb2.SimpleMessage))
Exemplo n.º 2
0
 def test_field_projection(self, file_spec, random_access, parallelism):
     with contextlib.closing(file_spec(self.create_tempfile,
                                       random_access)) as files:
         with riegeli.RecordWriter(
                 files.writing_open(),
                 close=files.writing_should_close,
                 assumed_pos=files.writing_assumed_pos,
                 options=record_writer_options(parallelism) +
                 ',transpose') as writer:
             for i in range(23):
                 writer.write_message(sample_message(i, 10000))
         with riegeli.RecordReader(
                 files.reading_open(),
                 close=files.reading_should_close,
                 assumed_pos=files.reading_assumed_pos,
                 field_projection=[[
                     records_test_pb2.SimpleMessage.DESCRIPTOR.
                     fields_by_name['id'].number
                 ]]) as reader:
             for i in range(23):
                 self.assertEqual(
                     reader.read_message(records_test_pb2.SimpleMessage),
                     records_test_pb2.SimpleMessage(id=i))
             self.assertIsNone(
                 reader.read_message(records_test_pb2.SimpleMessage))
Exemplo n.º 3
0
def sample_message_id_only(i):
    return records_test_pb2.SimpleMessage(id=i)
Exemplo n.º 4
0
def sample_message(i, size):
    return records_test_pb2.SimpleMessage(id=i, payload=sample_string(i, size))