Commits


Krisztián Szűcs authored and Wes McKinney committed 94409a6a3f5
ARROW-906: [C++/Python] Read and write field metadata in IPC @xhochy Checking metadata equality within `schema.equals` breaks a couple of test cases. Should We omit the check or adapt the tests? - [x] Implement KeyValueMetadata::ToString to follow interface conventions - [x] `metadata` cpp factory function like ala `field` and `schema` - [x] Flatbuffer serialization for field metadata - [x] Factor out key-value metadata to flatbuffer conversion - [x] Replace `Schema.__richcmp__` with `__eq__` and support comparing schema with any python objects - [x] ~Both `Field.equals` and~ `Schema.equals` now has a `check_metadata` boolean argument (both c++ and python sides) Author: Krisztián Szűcs <szucs.krisztian@gmail.com> Closes #2053 from kszucs/ARROW-2573 and squashes the following commits: 6d471d46 <Krisztián Szűcs> rename metadata factory to key_value_metadata e6460fbc <Krisztián Szűcs> remove testing script 2f88425a <Krisztián Szűcs> flake8 616eddce <Krisztián Szűcs> introduce HasMetadata; drop check_metadata from Field::Equals 12e977d8 <Krisztián Szűcs> use single assignments 0a623dfb <Krisztián Szűcs> flake8 129fe40c <Krisztián Szűcs> don't check metadata equality in Table.from_batches and ParquetDataset.validate_schemas e37fcee1 <Krisztián Szűcs> assertions for deserialized schema and field metadata 64eecdf9 <Krisztián Szűcs> docstrings for Schema.equals and Field.equals 17d640cf <Krisztián Szűcs> python interface for check_metadata; replace Schema.__richcmp__ with __eq__; support schema comparison with any python object 284d285f <Krisztián Szűcs> check_metadata flag for Field and Schema equals 64b1cec0 <Krisztián Szűcs> don't obliterate parquet metadata 8fe1a3a4 <Krisztián Szűcs> adapt test cases to correctly check schema equality 52a3a6ec <Krisztián Szűcs> preserve both schema and field metadata on serialization roundtrip