Changelogs » Fastavro

PyUp Safety actively tracks 323,951 Python packages for vulnerabilities and notifies you when to upgrade.

Fastavro

1.4.4

* Add option to write unions without type hint in the JSON output (gudjonragnar in PR 555)

1.4.3

* No changes; new version to build wheels that were missing from the 1.4.2 release

1.4.2

* Validate enum symbols according to the specification (pawelrubin in PR 552)

1.4.1

* Fix schema expansion of parsed schemas (srfc in PR 541)
  * Add support for being able to specify enum and fixed names in tuple writer (scottbelden in PR 544)
  * Add support for type hint attribute to records (scottbelden in PR 546)

1.4.0

* Fix bug where `load_schemas` would not work with top level names (scottbelden in PR 535)
  * Make `named_schemas` argument part of the public API (scottbelden in PR 532)
  * Support custom logical types for records in unions (ksunden in PR 530)

1.3.5

* `validate` and `validate_many` should not force schema parsing but instead use the ability of `parse_schema` to detect if the schema needs to be parsed (scottbelden in PR 529)
  * Add support for local-timestamp-micros and local-timestamp-millis (scottbelden in PR 525)

1.3.4

* More strictly ensure that fixed type schemas match size during schema resolution and that only the specified number of bytes is written (scottbelden in PR 524)
  * Preserve precision of double-point floats which are encoded in a union (spenczar in PR 523)

1.3.3

* Fix bug where named types were not being resolved correctly (scottbelden in PR 517)
  * Add fastavro.utils.anonymize_schema, fastavro.utils.generate_one, and fastavro.utils.generate_many to help with generating random data and making it easier for people to submit bugs with proprietary schemas/data (scottbelden in PR 511)

1.3.2

* Fix bug where the schema type was not being evaluated correctly when writing a union with the tuple notation (scottbelden in PR 510)

1.3.1

* Implement low level skip functions to improve reading a subset of a record (scottbelden in PR 504)
  * Added to_parsing_canonical_form API
  * Added fingerprint API

1.3.0

* New load_schema_ordered API that works similar to load_schema but allows the user to specify where all the schema files are rather than needing them all to be in the same directory (scottbelden in PR 497)
  * When using the json_reader, default values from the schema will be used if the JSON data is missing them (scottbelden in PR 498)

1.2.4

* Fix two bugs in load_schema where the sub-schemas were not being injected correctly (scottbelden in PR 495)

1.2.3

* Fix bug where fully resolved enums and fixed types were not being handled when fixing schemas (scottbelden in PR 492)

1.2.2

* Fix bug where namespaces were not resolved when loading schemas (scottbelden in PR 491)

1.2.1

* Fix bug with schema evolution in unions (scottbelden in PR 487)

1.2.0

* Change load_schema so that if the initial schema is a single record, the resulting schema will also be a single record (previously it would become a union of records) (scottbelden in PR 482)

1.1.1

* Build wheels for ARM64 (AWSjswinney in PR 475)

1.1.0

* Dropped support for Python 3.5 and added support Python 3.9 (scottbelden in PR 474)

1.0.0

* Dropped support for Python 2 (scottbelden in PR 449)

0.24.2

* Support array.array as input for avro array type (fthyssen in PR 455)
  * Support bytes in the fastavro CLI command (fthyssen in PR 465)

0.24.1

* Add extra checks to decimal types to verify that the data will be consistent when roundtrip'ed (matpuk in PR 461)
  * Fix issues with timestamp-millis and timestamp-micros where certain dates would lose some microseconds when roundtrip'ing the data (scottbelden in PR 459)
  * Show field names to aid in debugging when there is a type or value error for mismatched data/schema types (juarezr in PR 454)

0.24.0

* Remove global cache of parsed schemas. This will break existing code that relied on being able to call parse_schema to manipulate that global cache (scottbelden in PR 451)
  * Validate the precision for decimal values and throw an exception if the schema precision is less than the value precision (matpuk in PR 453)

0.23.6

* Allow iterables for array type fields (ksunden in PR 441)
  * Do not re-parse union schemas if they have been parsed already (scottbelden in PR 446)
  * Fix bug in load_schema where it would produce invalid schemas (scottbelden in PR 447)
  * Do not validate logical types unless they are actually a logical type (scottbelden in PR 448)

0.23.5

* Add type hints (spenczar in PR 438)

0.23.4

* Add compatibility fix for Python 3.4 (dacjames in PR 436)

0.23.3

* Fix performance regression in the writer (scottbelden in PR 426)

0.23.2

* Fix bug where JSON reader/writer wouldn't work with named schemas (gudjonragnar in PR 419)

0.23.1

* Fix some bugs in the validation where the schema was not being automatically parsed (scottbelden in PR 417)

0.23.0

* Add support for xz codec (scottbelden in PR 412)
  * Fix bug in schema migration from a record to a union (eino and scottbelden in PR 411)

0.22.13

* Fix bug in the JSON reader when using unions inside an array (scottbelden in PR 400)

0.22.12

* Add public API at `fastavro.schema.expand_schema` that will expand named types (scottbelden in PR 340)
  * Add public API at `fastavro.schema.fullname` that will return the fullname of a schema (scottbelden in PR 397)
  * Retain the doc field in the result of parse_schema (scottbelden in PR 398)

0.22.11

* Use pytz for the UTC timezone rather than our own custom one to prevent compatibility issues with pandas (scottbelden in PR 396)

0.22.10

* Fix pre-epoch timestamps on Windows Python 3+ (jmgpeeters in PR 394)

0.22.9

* Add some documentation about return_record_name
  * Fix bug when using return_record_name for a union that only has the record name (scottbelden in PR 386)
  * Add support for a codec compression level (scottbelden in PR 385)
  * Fix bug in JSON parser when a record contains an empty map or array (scottbelden in PR 384)

0.22.8

* Add support for lz4 coded (mcguipat in PR 381)

0.22.7

* Support Python 3.8 (scottbelden in PR 373)

0.22.6

* Add `return_record_name` option to schemaless reader so that it returns the record name along with the record (bstockton in PR 370)
  * Optimize read - decimal, logical type (Artimi in PR 371)

0.22.5

* Fix bug where schema migration was not working correctly for records within an array (scottbelden in PR 364)
  * Fix issue where cython errors were not be raised correctly (scottbelden in PR 366)

0.22.4

* Fixed bugs in decimal serialization and deserialization (jancespivo in PR 361)

0.22.3

* Change the way stdout is detected since `buffer` is not a part of the FileIO API (scottbelden in PR 359)
  * For codec errors, differentiate between codec not supported and coded not installed (scottbelden in PR 355)
  * Add support for zstandard codec (scottbelden in PR 356)
  * Add support for bzip2 codec (scottbelden in PR 357)

0.22.2

* Fix bug where we could not validate a union with a logical type (Artimi in PR 349)

0.22.1

* Fix snappy compression reader (mattomatic in PR 346)

0.22.0

* Implement an initial json_reader and json_writer (scottbelden in PR 343)

0.21.24

* Allow streaming to sys.stdout.buffer on OSX without raising ValueError (jquast in PR 342)

0.21.23

* Accept an ISO Date as a string (scottbelden in PR 338)
  * Fix failure case involving unions and nulls (scottbelden in PR 337)
  * The __fastavro_parsed hint should no longer be written to the avro file (scottbelden in PR 335)

0.21.22

* CLI tests, bugfix streaming stdin on py3, add --metadata CLI argument (jquast PR 331)

0.21.21

* Build 32bit wheels on Windows (scottbelden in PR 329)

0.21.20

* Add write_block function to the Writer class (josephglanville in PR 324)
  * Remove support for Python 3.4 (scottbelden in PR 326)
  * Only write the hint that we have parsed a schema on the outer most dictionary (scottbelden in PR 327)

0.21.19

* Make sure to always read the writer schema in the cython implementation (scottbelden in PR 317)

0.21.18

* Make sure True and False do not validate as an int, long, float, or double (scottbelden in PR 316)

0.21.17

* Fix validation for UUIDs in unions (kkirsanov in PR 310)
  * Fix typo in parse_schema docstring (josteini in PR 308)

0.21.16

* Change the return type of values when promoted by the reader schema (scottbelden in PR 307)

0.21.15

* Deprecate schema attribute on the reader class (scottbelden in PR 305)
  * Publish wheel for py27mu (brianmartin in PR 306)

0.21.14

* Ensure maps do not validate as arrays (scottbelden in PR 304)

0.21.13

* Add support for user specified sync_marker values (scottbelden in PR 301)
  * Add support for specifying default values for enums (scottbelden in PR 299)

0.21.12

* Fix a regression to re-enable support for reading from streams (scottbelden in PR 297)

0.21.11

* Fix a regression to re-enable support for writing to streams (jquast in PR 293)

0.21.10

* Fix an issue where an avro file written out wouldn't be readable (scottbelden in PR 289)

0.21.9

* Fix bug where a decimal scale was not defaulting to zero (scottbelden in PR 283)

0.21.8

* Add support for appending to an existing avro file (scottbelden in PR 278)
  * Build python 3.4 wheels on Windows (scottbelden in PR 279)
  * Improve documentation for reader objects (scottbelden in PR 277)

0.21.7

* Change the validator back so that it will accept extra fields when validating union schema (scottbelden in PR 275)

0.21.6

* Fix validator picking the wrong union schema (scottbelden in PR 273)
  * Support ValidationError class unicode on python 2 (soluwalana in PR 269)

0.21.5

* Fix namespace issue with embedded records (scottbelden in PR 266)
  * Check that scale and precision are integers (scottbelden in PR 267)
  * Add a sanity check that the input to `writer` is not a single record (scottbelden in PR 260)

0.21.4

* Build OSX wheels (scottbelden in PR 255)

0.21.3

* Check schema equality before calling match_schema (scottbelden in PR 247)
  * Fix load_schema when the parent schema had multiple child schemas (lsyarn in PR 249)

0.21.2

* Fix issue where supplied reader_schema wasn't being parsed (scottbelden in PR 245)

0.21.1

* Ensure aliases are a list (scottbelden in PR 241)
  * Ensure a namespaced name is used when writing with tuples (scottbelden in PR 240)

0.21.0

* Remove `acquaint_schema` and replace it with `parse_schema` (scottbelden in PR 237)

0.20.0

* Remove `load`, `dump`, `read_data`, and `write_data` from the public API (scottbelden in PR 233 and 234)

0.19.9

* Change cython writer to use more cdef functions (scottbelden in PR 228)
  * Change cython reader to use more cdef functions (scottbelden in PR 229)
  * Fix incorrect field name when validating arrays and maps (scottbelden in PR 231)
  * Enforce that all named schemas have a "name" field (scottbelden in PR 230)

0.19.8

* Fix a RuntimeError on Python 3.7 (scottbelden in PR 220)
  * Make it more clear that a MIT license is being used (scottbelden in PR 223)
  * Fix issue with aliases when there is a new field in the new schema (scottbelden in PR 226)

0.19.7

* Implement the block_reader interface (ryan-williams in PR 208)
  * Add coverage report (chobeat in PR 216)
  * Add Python 3.7 testing (scottbelden in PR 213)

0.19.6

* Fix issue when ValidationErrorData field is None (rhaarm in PR 212)

0.19.5

* Fix overzealous validation errors (ryan-williams in PR 207)

0.19.4

* Improve error messages from validation (rhaarm in PR 182 and scottbelden in PR 202)

0.19.3

* Improve performance when the reader schema matches the writer schema (scottbelden in PR 199)

0.19.2

* Fix reader for large value long types (scottbelden in PR 198)

0.19.1

* Allow numpy types for ints, longs, floats, and doubles (NightFantomJ2 in PR 189)
  * Add developer_requirements.txt file (scottbelden in PR 190)
  * Allow schema to be a dict-like object (scottbelden in PR 194)

0.19.0

* Ensure records have a "name" field (scottbelden in PR 187)

0.18.2

* Allow for schema migration in the schemaless reader (scottbelden in PR 180)

0.18.1

* Ignore unknown logical types (rhaarm in PR 181)

0.18.0

* Make logicalType datetimes be timezone aware (lsterk in PR 174)

0.17.10

* Ensure linux wheels are published (pbabics in PR 170)

0.17.9

* Ensure strings are not treated as arrays in union validation (scottbelden in PR 167)

0.17.8

* Ensure acquaint_schema acquaints to both READERS and WRITERS (scottbelden in PR 160)
  * Remove ujson (scottbelden in PR 161)
  * Update README and package classifiers (barrywhart in PR 158)
  * Remove cython dependency when installing (barrywhart in PR 157)

0.17.7

* Resolve issue with doubles on Windows (scottbelden in PR 156)

0.17.6

* Improvements to write union using tuple (Artimi in PR 153)

0.17.5

* Fix some exceptions when running the main module (scottbelden in PR 149)

0.17.4

* Add support for Avro aliases (regisb in PR 113)

0.17.3

* Build wheels for Windows (scottbelden in PR 146)

0.17.2

* Unpin cython version (scottbelden in PR 143)

0.17.1

* Handle records and maps that are OrderedDict rather than dict (barrywhart in PR 141)
  * Fix command-line tool crashes if data contains date or date/time values (barrywhart in PR 140)

0.17.0

* Rename fastavro.writer, other naming cleanup (barrywhart in PR 137)

0.16.7

* Speed up timestamp writes (barrywhart in PR 138)
  * Introduce descriptive ctypedefs for various-sized integer types (barrywhart in PR 135)

0.16.6

* Public Cython dump() function should take file object, not bytearray (barrywhart in PR 133)
  * Fix union schema resolution in writer (Artimi in PR 129)

0.16.5

* Expose Writer class (barrywhart in PR 131)

0.16.4

* Add Windows testing and fix some Windows-only bugs (scottbelden in PR 127)

0.16.3

* Cython-based implementation of reader module (barrywhart in PR 118)

0.16.2

* ujson packages usage in case if installed (lemurchik in PR 104)

0.16.1

* Rework the reader/writer/schema imports (scottbelden in PR 117)

0.16.0

* Improve write performance with customized cython (barrywhart in PR 114)

0.15.0

* Remove Python 2.6 support (scottbelden in PR 110)

0.14.11

* Added fixed decimal type (glgnohk in PR 106)
  * Fix validation failure when writing nullable datetime.date (theianrobertson in PR 109)

0.14.10

* Fix logicalType date conversion (kkirsanov in PR 100, bitzstein issue 96)

0.14.9

* Added time-millis and time-micros logical types (kkirsanov in PR 98)

0.14.8

* Added UUID logical type (kkirsanov in PR 93)

0.14.7

* Fix logicalType serialization (dodysw in PR 92)
  * Update writer.py (luup2k in PR 91)

0.14.6

* Fix incorrect verification of datetime logical type (kkirsanov in PR 89)

0.14.5

* Fix incorrect matching of logical types (kkirsanov in PR 86)

0.14.4

* fix unions with logical types (kkirsanov in PR 86)

0.14.3

* fix writing unions of bytes or strings on py3 (scottbelden in PR 83)

0.14.2

* Pass through logical type (kkirsanov in PR 82)

0.14.1

* Fix bug in decimal (kkirsanov in PR 80)

0.14.0

* Support Avro 1.8 logical types (kkirsanov in PR 79)

0.13.0

* Added an optional shortcut when outputting a union (NickG123 in PR 73)

0.12.2

* write None value for nullable field (nobo728x in PR 70)

0.12.1

* `is_avro` supports file objects (ref 66)

0.12.0

* Added `is_avro`, inspired by 66

0.11.1

* Fix block_count reset (DouglasOrr in PR 64)

0.11.0

* Fix conda build
  * Writer class (qix in PR 61)

0.10.2

* Fix to reader schemas with default values of None (kurtostfeld in PR 59)
  * Add __next__ iterator to reader for Python 3 (kurtostfeld in PR 59)

0.10.1

* Fixed regression with circular imports

0.10.0

* `fastavro.schema.load_schema` utility function (natb1 in PR 56)
  * `fastavro.__version_info__` tuple allows for better version checking

0.9.11

* Added `validator` argument to writer.write
  * Added tests from issue 37

0.9.10

* Raise error on missing values with missing default (48, 49)

0.9.9

* Raise EOF on empty input
  * numpy style docs

0.9.8

* Add some docstrings (issue 45)
  * Don't use mutable default arguments

0.9.7

* Python 2.6 support (antonymayi in PR 44)
  * Some code cleanup

0.9.6

* Support streaming IO (mjwillson in PR 40)

0.9.5

* Fix issue with writing block (issue 35)

0.9.4

* Support schema migration (scottbelden in PR 31)

0.9.3

* Speedup (scottbelden in PR 30)
  * Fix writer.validate on Python 3 (mjwillson in PR 29)

0.9.2

* allow extra metadata to be used (scottbelden in PR 28)

0.9.1

* Fix encoding of fields with default values (scottbelden in PR 25)
  * Fix boolean decoding (scottbelden in PR 26)

0.9.0

* Handle error types (scottbelden in PR 20)
  * Fix boolean encoding/decoding (rodcarroll in PR 22)
  * Support binary encoder (issue 14, scottbelden in PR 24)

0.8.8

* handle records with no fields (scottbelden in PR 19)

0.8.7

* fix boolean encoding (scottbelden in PR 18)

0.8.6

* Allow nested record definitions from arrays and maps (mtth in PR 16)
  * Fix namespace bug for union references. (mtth in PR 16)
  * Remove generated .c files from git
  * Testing with Python 3.5rc1

0.8.5

* Fixed nested schema bug (dcreager in PR 15)
  * Testing Python 3.5 and pypy3
  * Don't build extension on *any* version of pypy

0.8.4

* Packing fixes
  * Detect unknown types (pkoch in PR 11)
  * Fix .decode with no codec (oliverbestmann in PR 9)

0.8.3

* Fixed pip install manifest issue (rouge8 in PR 8)

0.8.2

* Main repo moved to github

0.8.1

* Fix float/double (rodcarool in github 5)
  * Write documentation

0.8.0

* Write support (Paulo Köch in bitbucket PR 4)

0.7.10

* Unexpose `write` (ref from bitbucket 2)

0.7.9

* Expose "load" (github 1)

0.7.8

* Don't compile extension under pypy > 1.8 (issue 12)
  * pyflakes cleanup

0.7.7

* Fixed bug when stdout.encoding is None

0.7.6

* Fixed regression with --schema

0.7.5

* Fixed regression with Cython and multiple definitions

0.7.4

* Fixed regression in 2.7 and recursive

0.7.3

* Fixed bug in Python 3 printing

0.7.2

* Fixed bug in argument parsing

0.7.1

* Fixed README (about snappy)

0.7.0

* Snappy support

0.6.10

* Handle names in unions (aboSamoor)
  * Handle namespaces (aboSamoor)

0.6.9

* Fixed handling if named records (issue 5)

0.6.8

* Added "next" method to reader

0.6.7

* Support recursive schema (issue 4)

0.6.6

* Using Cython on six as well
  * fastavro/pyfastavro.py -> fastavro/reader.py
  * Show more info when running tests

0.6.5

* Better error message when file is not avro file
  * Fixed bug in error message when can't read file

0.6.4

* Python 2.6 compatible (issue 3, thanks trochee)

0.6.3

* Faster (using cython: auto_cpdef=True), thanks to Stefan Behnel

0.6.2

* Simpler iterator
  * Trove categories

0.6.1

* Python 3 support works
  * Better testing

0.6.0

* Python 3 support

0.5.0

* Generate `fastavro` script

0.4.2

* Compliance with Apache license

0.4.1

* Several files in command line
  * Output encoding
  * Conditional build of extension (from simplejson)

0.4.0

* fastavro.reader
  * Include README.rst in sdist package

0.3.2

* Fixed read_array (issue 2)

0.3.1

* Fixed read_enum (issue 1)

0.3.0

* Distribute generate C file (idea by Juan)

0.2.2

* Long description
  * Get version from fastavro/__init__.py

0.2.1

* --schema

0.2.0

* Optionally use Cython (more speedup)

0.1.0

* Initial release