Skip to content

Commit

Permalink
contrib: add marc21/to_marc21 liberal contrib
Browse files Browse the repository at this point in the history
* BETTER Adds liberal conversion functions for MARC21, which
  allows all datafields, subfields and indicators, without
  breaking compatibility with strict MARC21.

* FIX Corrects invalid MARC21 tag in `data/authority/ad3xx.py`.

Signed-off-by: Øystein Blixhavn <oystein@blixhavn.no>
  • Loading branch information
blixhavn committed Nov 16, 2016
1 parent 0d4eb17 commit 49172c7
Show file tree
Hide file tree
Showing 102 changed files with 53,256 additions and 6,624 deletions.
735 changes: 345 additions & 390 deletions dojson/contrib/marc21/fields/ad01x09x.py

Large diffs are not rendered by default.

696 changes: 696 additions & 0 deletions dojson/contrib/marc21/fields/ad1xx.py

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
#
# This file is part of DoJSON
# Copyright (C) 2015 CERN.
# Copyright (C) 2015, 2016 CERN.
#
# DoJSON is free software; you can redistribute it and/or
# modify it under the terms of the Revised BSD License; see LICENSE
Expand All @@ -20,59 +20,28 @@
def complex_see_reference_subject(self, key, value):
"""Complex See Reference-Subject."""
field_map = {
'0': 'authority_record_control_number',
'8': 'field_link_and_sequence_number',
'a': 'heading_referred_to',
'i': 'explanatory_text',
'0': 'authority_record_control_number',
'6': 'linkage',
'8': 'field_link_and_sequence_number',
}

order = utils.map_order(field_map, value)

return {
'__order__': tuple(order) if len(order) else None,
'heading_referred_to': utils.force_list(
value.get('a')
),
'authority_record_control_number': utils.force_list(
value.get('0')
),
'explanatory_text': utils.force_list(
value.get('i')
),
'field_link_and_sequence_number': utils.force_list(
value.get('8')
),
'linkage': value.get('6'),
}


@marc21_authority.over('complex_see_also_reference_subject', '^360..')
@utils.for_each_value
@utils.filter_values
def complex_see_also_reference_subject(self, key, value):
"""Complex See Also Reference-Subject."""
field_map = {
'a': 'heading_referred_to',
'i': 'explanatory_text',
'0': 'authority_record_control_number',
'6': 'linkage',
'8': 'field_link_and_sequence_number',
}
order = utils.map_order(field_map, value)

return {
'__order__': tuple(order) if len(order) else None,
'heading_referred_to': utils.force_list(
value.get('a')
),
'authority_record_control_number': utils.force_list(
value.get('0')
),
'explanatory_text': utils.force_list(
value.get('i')
),
'field_link_and_sequence_number': utils.force_list(
value.get('8')
),
'linkage': value.get('6'),
}
Loading

0 comments on commit 49172c7

Please sign in to comment.