コード例 #1
0
ファイル: avro_tests.py プロジェクト: mvilim/bamboo
    def test_deep_column_filter(self):
        names = schema.Names()
        ia = 'ia'
        ib = 'ib'
        oa = 'oa'
        ob = 'ob'
        inner_a = make_field(ia, primitive_schemas.INT, names=names)
        inner_b = make_field(ib, primitive_schemas.INT, names=names)
        inner_a_record = schema.RecordSchema('inner_a', 'test', [inner_a, inner_b], names=names)
        inner_b_record = schema.RecordSchema('inner_b', 'test', [inner_a, inner_b], names=names)
        outer_a = make_field(oa, inner_a_record, names=names)
        outer_b = make_field(ob, inner_b_record, names=names)
        outer_record = schema.RecordSchema('outer', 'test', [outer_a, outer_b], names=schema.Names())

        b = object(outer_record, {oa: {ia: 1, ib: 2}, ob: {ia: 3, ib: 4}})
        node = from_avro(b)
        df = node.flatten()
        df_equality(self, {oa + '_' + ia: [1], oa + '_' + ib: [2], ob + '_' + ia: [3], ob + '_' + ib: [4]}, df)

        b = object(outer_record, {oa: {ia: 1, ib: 2}, ob: {ia: 3, ib: 4}})
        node = from_avro(b, exclude='oa')
        df = node.flatten()
        df_equality(self, {ia: [3], ib: [4]}, df)

        b = object(outer_record, {oa: {ia: 1, ib: 2}, ob: {ia: 3, ib: 4}})
        node = from_avro(b, exclude='oa', include=[{}, 'oa.ia'])
        df = node.flatten()
        df_equality(self, {oa + '_' + ia: [1], ob + '_' + ia: [3], ib: [4]}, df)
コード例 #2
0
    def _ParseRequestFromJSONDesc(request_desc, names):
        """Parses the request descriptor of a protocol message.

    Args:
      request_desc: Descriptor of the message request.
          This is a list of fields that defines an unnamed record.
      names: Tracker for named Avro schemas.
    Returns:
      The parsed request schema, as an unnamed record.
    """
        fields = schema.RecordSchema._MakeFieldList(request_desc, names=names)
        return schema.RecordSchema(
            name=None,
            namespace=None,
            fields=fields,
            names=names,
            record_type=schema.REQUEST,
        )
コード例 #3
0
 def _parse_request(self, request, names):
     if not isinstance(request, list):
         fail_msg = 'Request property not a list: %s' % request
         raise ProtocolParseException(fail_msg)
     return schema.RecordSchema(None, None, request, names, 'request')
コード例 #4
0
 def create_record_schema(self, name, fields, aliases=None):
     return schema.RecordSchema(name,
                                self.test_namespace,
                                [field.to_json() for field in fields],
                                names=schema.Names(),
                                other_props={'aliases': aliases})
コード例 #5
0
ファイル: avro_tests.py プロジェクト: mvilim/bamboo
def simple_schema(field_name, field_schema):
    names = schema.Names()
    field = make_field(field_name, field_schema)
    return schema.RecordSchema('test', 'test', [field], names=names)