rara-tools 0.7.11__tar.gz → 0.7.13__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of rara-tools might be problematic. Click here for more details.

Files changed (67) hide show
  1. {rara_tools-0.7.11/rara_tools.egg-info → rara_tools-0.7.13}/PKG-INFO +1 -1
  2. rara_tools-0.7.13/VERSION +1 -0
  3. {rara_tools-0.7.11 → rara_tools-0.7.13}/rara_tools/core_formatters/formatted_meta.py +11 -1
  4. {rara_tools-0.7.11 → rara_tools-0.7.13}/rara_tools/normalizers/authorities.py +3 -0
  5. {rara_tools-0.7.11 → rara_tools-0.7.13}/rara_tools/normalizers/base.py +25 -5
  6. {rara_tools-0.7.11 → rara_tools-0.7.13/rara_tools.egg-info}/PKG-INFO +1 -1
  7. {rara_tools-0.7.11 → rara_tools-0.7.13}/tests/test_normalization.py +11 -0
  8. rara_tools-0.7.11/VERSION +0 -1
  9. {rara_tools-0.7.11 → rara_tools-0.7.13}/LICENSE.md +0 -0
  10. {rara_tools-0.7.11 → rara_tools-0.7.13}/README.md +0 -0
  11. {rara_tools-0.7.11 → rara_tools-0.7.13}/pyproject.toml +0 -0
  12. {rara_tools-0.7.11 → rara_tools-0.7.13}/rara_tools/constants/__init__.py +0 -0
  13. {rara_tools-0.7.11 → rara_tools-0.7.13}/rara_tools/constants/digitizer.py +0 -0
  14. {rara_tools-0.7.11 → rara_tools-0.7.13}/rara_tools/constants/general.py +0 -0
  15. {rara_tools-0.7.11 → rara_tools-0.7.13}/rara_tools/constants/language_evaluator.py +0 -0
  16. {rara_tools-0.7.11 → rara_tools-0.7.13}/rara_tools/constants/linker.py +0 -0
  17. {rara_tools-0.7.11 → rara_tools-0.7.13}/rara_tools/constants/meta_extractor.py +0 -0
  18. {rara_tools-0.7.11 → rara_tools-0.7.13}/rara_tools/constants/normalizers.py +0 -0
  19. {rara_tools-0.7.11 → rara_tools-0.7.13}/rara_tools/constants/parsers.py +0 -0
  20. {rara_tools-0.7.11 → rara_tools-0.7.13}/rara_tools/constants/subject_indexer.py +0 -0
  21. {rara_tools-0.7.11 → rara_tools-0.7.13}/rara_tools/converters.py +0 -0
  22. {rara_tools-0.7.11 → rara_tools-0.7.13}/rara_tools/core_formatters/core_formatter.py +0 -0
  23. {rara_tools-0.7.11 → rara_tools-0.7.13}/rara_tools/core_formatters/formatted_keyword.py +0 -0
  24. {rara_tools-0.7.11 → rara_tools-0.7.13}/rara_tools/core_formatters/formatted_object.py +0 -0
  25. {rara_tools-0.7.11 → rara_tools-0.7.13}/rara_tools/decorators.py +0 -0
  26. {rara_tools-0.7.11 → rara_tools-0.7.13}/rara_tools/digar_schema_converter.py +0 -0
  27. {rara_tools-0.7.11 → rara_tools-0.7.13}/rara_tools/elastic.py +0 -0
  28. {rara_tools-0.7.11 → rara_tools-0.7.13}/rara_tools/exceptions.py +0 -0
  29. {rara_tools-0.7.11 → rara_tools-0.7.13}/rara_tools/normalizers/__init__.py +0 -0
  30. {rara_tools-0.7.11 → rara_tools-0.7.13}/rara_tools/normalizers/bibs.py +0 -0
  31. {rara_tools-0.7.11 → rara_tools-0.7.13}/rara_tools/normalizers/reader.py +0 -0
  32. {rara_tools-0.7.11 → rara_tools-0.7.13}/rara_tools/normalizers/viaf.py +0 -0
  33. {rara_tools-0.7.11 → rara_tools-0.7.13}/rara_tools/parsers/marc_parsers/base_parser.py +0 -0
  34. {rara_tools-0.7.11 → rara_tools-0.7.13}/rara_tools/parsers/marc_parsers/ems_parser.py +0 -0
  35. {rara_tools-0.7.11 → rara_tools-0.7.13}/rara_tools/parsers/marc_parsers/location_parser.py +0 -0
  36. {rara_tools-0.7.11 → rara_tools-0.7.13}/rara_tools/parsers/marc_parsers/organization_parser.py +0 -0
  37. {rara_tools-0.7.11 → rara_tools-0.7.13}/rara_tools/parsers/marc_parsers/person_parser.py +0 -0
  38. {rara_tools-0.7.11 → rara_tools-0.7.13}/rara_tools/parsers/marc_parsers/title_parser.py +0 -0
  39. {rara_tools-0.7.11 → rara_tools-0.7.13}/rara_tools/parsers/marc_records/base_record.py +0 -0
  40. {rara_tools-0.7.11 → rara_tools-0.7.13}/rara_tools/parsers/marc_records/ems_record.py +0 -0
  41. {rara_tools-0.7.11 → rara_tools-0.7.13}/rara_tools/parsers/marc_records/organization_record.py +0 -0
  42. {rara_tools-0.7.11 → rara_tools-0.7.13}/rara_tools/parsers/marc_records/person_record.py +0 -0
  43. {rara_tools-0.7.11 → rara_tools-0.7.13}/rara_tools/parsers/marc_records/title_record.py +0 -0
  44. {rara_tools-0.7.11 → rara_tools-0.7.13}/rara_tools/parsers/tools/entity_normalizers.py +0 -0
  45. {rara_tools-0.7.11 → rara_tools-0.7.13}/rara_tools/parsers/tools/marc_converter.py +0 -0
  46. {rara_tools-0.7.11 → rara_tools-0.7.13}/rara_tools/parsers/tools/russian_transliterator.py +0 -0
  47. {rara_tools-0.7.11 → rara_tools-0.7.13}/rara_tools/s3.py +0 -0
  48. {rara_tools-0.7.11 → rara_tools-0.7.13}/rara_tools/task_reporter.py +0 -0
  49. {rara_tools-0.7.11 → rara_tools-0.7.13}/rara_tools/utils.py +0 -0
  50. {rara_tools-0.7.11 → rara_tools-0.7.13}/rara_tools.egg-info/SOURCES.txt +0 -0
  51. {rara_tools-0.7.11 → rara_tools-0.7.13}/rara_tools.egg-info/dependency_links.txt +0 -0
  52. {rara_tools-0.7.11 → rara_tools-0.7.13}/rara_tools.egg-info/requires.txt +0 -0
  53. {rara_tools-0.7.11 → rara_tools-0.7.13}/rara_tools.egg-info/top_level.txt +0 -0
  54. {rara_tools-0.7.11 → rara_tools-0.7.13}/requirements.txt +0 -0
  55. {rara_tools-0.7.11 → rara_tools-0.7.13}/setup.cfg +0 -0
  56. {rara_tools-0.7.11 → rara_tools-0.7.13}/tests/test_digar_schema_converter.py +0 -0
  57. {rara_tools-0.7.11 → rara_tools-0.7.13}/tests/test_elastic.py +0 -0
  58. {rara_tools-0.7.11 → rara_tools-0.7.13}/tests/test_elastic_vector_and_search_operations.py +0 -0
  59. {rara_tools-0.7.11 → rara_tools-0.7.13}/tests/test_entity_normalizers.py +0 -0
  60. {rara_tools-0.7.11 → rara_tools-0.7.13}/tests/test_formatters.py +0 -0
  61. {rara_tools-0.7.11 → rara_tools-0.7.13}/tests/test_marc_parsers.py +0 -0
  62. {rara_tools-0.7.11 → rara_tools-0.7.13}/tests/test_s3_exceptions.py +0 -0
  63. {rara_tools-0.7.11 → rara_tools-0.7.13}/tests/test_s3_file_operations.py +0 -0
  64. {rara_tools-0.7.11 → rara_tools-0.7.13}/tests/test_sierra_converters.py +0 -0
  65. {rara_tools-0.7.11 → rara_tools-0.7.13}/tests/test_task_reporter.py +0 -0
  66. {rara_tools-0.7.11 → rara_tools-0.7.13}/tests/test_utils.py +0 -0
  67. {rara_tools-0.7.11 → rara_tools-0.7.13}/tests/test_viaf_client.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rara-tools
3
- Version: 0.7.11
3
+ Version: 0.7.13
4
4
  Summary: Tools to support Kata's work.
5
5
  Classifier: Programming Language :: Python :: 3
6
6
  Classifier: Programming Language :: Python :: 3.10
@@ -0,0 +1 @@
1
+ 0.7.13
@@ -56,7 +56,17 @@ class FormattedAuthor(FormattedObject):
56
56
 
57
57
  @property
58
58
  def name(self) -> str:
59
- return self.entity
59
+ """ Force all names into format <last_name>, <first_name>.
60
+ """
61
+ if "," in self.entity:
62
+ name = self.entity
63
+ else:
64
+ name_tokens = self.entity.rsplit(" ", 1)
65
+ if len(name_tokens) == 2:
66
+ name = f"{name_tokens[1]}, {name_tokens[0]}"
67
+ else:
68
+ name = self.entity
69
+ return name
60
70
 
61
71
  @property
62
72
  def name_order(self) -> str:
@@ -59,6 +59,9 @@ class AuthoritiesRecordNormalizer(RecordNormalizer):
59
59
  record, "046", "f", formatted_birth_date)
60
60
  death_date = self.get_subfield(
61
61
  record, "046", "g", formatted_death_date)
62
+
63
+ if not birth_date and not death_date:
64
+ return
62
65
 
63
66
  subfields_046 = [
64
67
  Subfield("f", birth_date),
@@ -213,13 +213,33 @@ class RecordNormalizer:
213
213
  )
214
214
 
215
215
  def _add_fields_to_record(self, record: Record, fields: List[Field]) -> Record:
216
- # filter out subfields that are empty, or 0, as VIAF returns 0 for unknown dates
216
+ cleaned_fields = []
217
+
217
218
  for field in fields:
218
- field.subfields = [sub for sub in field.subfields if sub.value and sub.value not in ["0", 0]]
219
219
 
220
- self._handle_repeatable_fields(record, *fields)
221
- self._handle_editable_fields(record, *fields)
222
- self._handle_default_fields(record, *fields)
220
+ # Always assume control fields cleaned
221
+ if field.tag < "010" and field.tag.isdigit():
222
+ cleaned_fields.append(field)
223
+ continue
224
+
225
+ # filter out subfields that are empty or 0 (VIAF returns 0 for unknown dates)
226
+ field.subfields = [
227
+ sub for sub in field.subfields
228
+ if sub.value and sub.value not in ["0", 0]
229
+ ]
230
+
231
+ # only keep the field if it still has subfields left
232
+ if field.subfields:
233
+ cleaned_fields.append(field)
234
+
235
+ if not cleaned_fields:
236
+ return record
237
+
238
+ self._handle_repeatable_fields(record, *cleaned_fields)
239
+ self._handle_editable_fields(record, *cleaned_fields)
240
+ self._handle_default_fields(record, *cleaned_fields)
241
+
242
+ return record
223
243
 
224
244
  def _add_author(self, record: Record, viaf_record: VIAFRecord) -> Optional[Field]:
225
245
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rara-tools
3
- Version: 0.7.11
3
+ Version: 0.7.13
4
4
  Summary: Tools to support Kata's work.
5
5
  Classifier: Programming Language :: Python :: 3
6
6
  Classifier: Programming Language :: Python :: 3.10
@@ -404,6 +404,17 @@ def test_add_birth_and_death_dates():
404
404
  # empty indicators represented with \
405
405
  assert field_046 == "=046 \\\\$f19700817"
406
406
 
407
+ # Case 3 - viaf record has no birth or death date
408
+ viaf_record = normalizer._get_viaf_record(
409
+ record,
410
+ entity="Eesti Interlingvistika Selts"
411
+ )
412
+ record = Record()
413
+ normalizer._add_birth_and_death_dates(record, viaf_record)
414
+ # should not add 046 field
415
+ fields_046 = record.get_fields("046")
416
+ assert len(fields_046) == 0
417
+
407
418
  def test_add_nationality():
408
419
  """ Test adding nationality from VIAF record to 043 field """
409
420
 
rara_tools-0.7.11/VERSION DELETED
@@ -1 +0,0 @@
1
- 0.7.11
File without changes
File without changes
File without changes
File without changes