Changes

Version 1.3.1 (released 2017-03-14):

Bug fixes

  • Removes duplicate fields in MARC 21 JSON Schemas (closes #189).

Version 1.3.0 (released 2017-02-14):

New features

  • Adds the possibility to skip individual items when using the for_each_value decorator by raising the IgnoreElement exception.
  • Adds @flatten decorator that joins iterable results. (#147)
  • Adds to_marc21 conversion functions.

Improved features

  • Updates MARC21 schema and conversion functions to the latest Library of Congress standard.
  • Clarifies in its docstring that force_list may returns a tuple, not a list. (#154)
  • Adds order to existing marc21 conversion functions.
  • Updates authority schema with new fields and corrects some existing ones.

Bug fixes

  • Addresses issues with STDIN encoding on Python 3.
  • Removes @utils.for_each_value decorator from conversion function for MARC21 field 044, which is not repeatable. (#181)
  • Adds tuples to recogines types in reverse_force_list so it behaves correctly as an inverse fuction to force_list.
  • Adds missing default argument to __deepcopy__ method on GroupableOrderedDict. (#167)
  • Implements GroupableOrderedDict.__repr__() so that eval(repr(god)) == god. (#162)
  • Removes invalid check for length of yielded value causing exception when value is dictionary with one item. (#150)
  • Removes list definition from main_entry_uniform_title as according to Library of Congress is a non repeatable field.
  • Removes invalid subfield from data/test_7.xml.

Version 1.2.1 (released 2016-05-02):

Improved features

  • Improves support for leader field conversion to and from MARC21 and adds JSON Schema for this field. (#133)
  • Adds conversion support for leader field in authority records, as well as schema support.
  • Adds support for dashes in keys. (#139)

Bug fixes

  • Fixes bug in string formatting, and pads integer fields with zeros (as per MARC standard).
  • Removes list definition from main_entry_personal_name as according to Library of Congress is a non repeatable field.

Version 1.2.0 (released 2016-03-21):

Incompatible changes

  • Removes automatic wrapping to <collection/> for single record passed to dumps_etree.

Improved features

  • Adds new argument to specify namespace prefix in generated MARCXML.

Version 1.1.1 (released 2016-03-15):

Bug fixes

  • Adds missing schemas for fields bd388, bd370, bd348, bd884.

Version 1.1.0 (released 2016-03-10):

Incompatible changes

  • Moves –load and –dump options to global group.

New features

  • Adds schema command to enhance JSON with ‘$schema’ field. (#73)
  • Adds rules and schemas for MARC 21 Format for Authority Data. (#7)
  • Adds rules and schemas for MARC 21 Format for Holdings Data. (#21)
  • Adds support for parsing <leader/> tag in MARCXML.
  • Adds new parameter exception_handlers to dojson.Overdo.do and dojson.contrib.to_marc21.model.Underdo.do. It can be given to the translation process to deal with non-standard fields in a custom way (#26).
  • Adds new utility map_order function to ease renaming of subfields.

Improved features

  • Adds more detailed usage examples. (#117)
  • Refactors CLI to allow commands chaining.
  • Adds support preserving the order of subfields.

Bug fixes

  • Fixes support for Python 3.5.1.

Version 1.0.0 (released 2016-01-14):

Incompatible changes

  • Removes support for single key matching multiple rules. Please make your rules mutually exclusive!
  • controlfields 00x are expected to be the element or a list of multiple elements.

New features

  • Adds new keyword argument ignore_missing to Overdo.do method to specify if method should raise MissingRule exception when there is no matching rule for a key.
  • Adds new CLI option –strict to the do command that sets the ignore_missing argument to False. (#51)
  • MARC XML serialization from to_marc21.

Improved features

  • Adds support for Python 3+.
  • Uses an OrderedDict to let the external tools working on dict (like json) behave correctly.
  • All results from rules using for_each_value decorator are being automatically extended. This is useful for repeatable MARC21 fields with different indicators. (#53)
  • Record are stored in an immutable sorted structure which enables to keep the intended order while offering easy ways to access, index and manipulate.
  • Adds two records to be tested.
  • Reorders some of the assertion: expected == actual.

Version 0.4.0 (released 2015-11-18):

New features

  • Improves dojson.contrib.marc2.utils.load() to read the input by iterating of the open stream, rather than loading it all in memory in one go. (#45) (#46)
  • Renames OverUndo to Underdo following same name convention as for Overdo.

Bug fixes

  • Fixes indicator extraction from value in Underdo model.

Version 0.3.0 (released 2015-11-09):

New features

  • Adds experimental rules for converting human readable JSON into a JSON representation of the MARC21 Format.
  • Adds do and missing commands for dojson command line interface (see dojson –help for more information).

Improved features

  • Adds missing mapping for the first indicator of field 856.

Version 0.2.0 (released 2015-10-07):

New features

  • Adds the posibility to use base DoJSON model so the rules are “inherited” from them.
  • Adds new decorator ignore_value that remove the key in the resulting json for None value.

Improved features

  • Uses entry points instead of plain imports to load the creator rules.

Bug fixes

  • Removes calls to PluginManager consider_setuptools_entrypoints() removed in PyTest 2.8.0.

Version 0.1.1 (released 2015-07-27):

  • Sorts and removes duplicated enum values.
  • Swaps wrongly defined repeatable and non-repeatable subfields. (#23)
  • Addresses issue when allowed indicators where defined as a range. (#22)

Version 0.1.0 (released 2015-07-03):

  • Initial public release.