folio-migration-tools 1.9.8__tar.gz → 1.9.10__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.
Files changed (66) hide show
  1. {folio_migration_tools-1.9.8 → folio_migration_tools-1.9.10}/PKG-INFO +2 -2
  2. {folio_migration_tools-1.9.8 → folio_migration_tools-1.9.10}/pyproject.toml +2 -2
  3. {folio_migration_tools-1.9.8 → folio_migration_tools-1.9.10}/src/folio_migration_tools/mapping_file_transformation/order_mapper.py +17 -0
  4. {folio_migration_tools-1.9.8 → folio_migration_tools-1.9.10}/src/folio_migration_tools/mapping_file_transformation/ref_data_mapping.py +3 -0
  5. {folio_migration_tools-1.9.8 → folio_migration_tools-1.9.10}/src/folio_migration_tools/migration_tasks/migration_task_base.py +8 -4
  6. {folio_migration_tools-1.9.8 → folio_migration_tools-1.9.10}/src/folio_migration_tools/migration_tasks/orders_transformer.py +3 -2
  7. {folio_migration_tools-1.9.8 → folio_migration_tools-1.9.10}/src/folio_migration_tools/translations/en.json +3 -1
  8. {folio_migration_tools-1.9.8 → folio_migration_tools-1.9.10}/LICENSE +0 -0
  9. {folio_migration_tools-1.9.8 → folio_migration_tools-1.9.10}/README.md +0 -0
  10. {folio_migration_tools-1.9.8 → folio_migration_tools-1.9.10}/src/folio_migration_tools/__init__.py +0 -0
  11. {folio_migration_tools-1.9.8 → folio_migration_tools-1.9.10}/src/folio_migration_tools/__main__.py +0 -0
  12. {folio_migration_tools-1.9.8 → folio_migration_tools-1.9.10}/src/folio_migration_tools/circulation_helper.py +0 -0
  13. {folio_migration_tools-1.9.8 → folio_migration_tools-1.9.10}/src/folio_migration_tools/colors.py +0 -0
  14. {folio_migration_tools-1.9.8 → folio_migration_tools-1.9.10}/src/folio_migration_tools/config_file_load.py +0 -0
  15. {folio_migration_tools-1.9.8 → folio_migration_tools-1.9.10}/src/folio_migration_tools/custom_dict.py +0 -0
  16. {folio_migration_tools-1.9.8 → folio_migration_tools-1.9.10}/src/folio_migration_tools/custom_exceptions.py +0 -0
  17. {folio_migration_tools-1.9.8 → folio_migration_tools-1.9.10}/src/folio_migration_tools/extradata_writer.py +0 -0
  18. {folio_migration_tools-1.9.8 → folio_migration_tools-1.9.10}/src/folio_migration_tools/folder_structure.py +0 -0
  19. {folio_migration_tools-1.9.8 → folio_migration_tools-1.9.10}/src/folio_migration_tools/helper.py +0 -0
  20. {folio_migration_tools-1.9.8 → folio_migration_tools-1.9.10}/src/folio_migration_tools/holdings_helper.py +0 -0
  21. {folio_migration_tools-1.9.8 → folio_migration_tools-1.9.10}/src/folio_migration_tools/i18n_config.py +0 -0
  22. {folio_migration_tools-1.9.8 → folio_migration_tools-1.9.10}/src/folio_migration_tools/library_configuration.py +0 -0
  23. {folio_migration_tools-1.9.8 → folio_migration_tools-1.9.10}/src/folio_migration_tools/mapper_base.py +0 -0
  24. {folio_migration_tools-1.9.8 → folio_migration_tools-1.9.10}/src/folio_migration_tools/mapping_file_transformation/__init__.py +0 -0
  25. {folio_migration_tools-1.9.8 → folio_migration_tools-1.9.10}/src/folio_migration_tools/mapping_file_transformation/courses_mapper.py +0 -0
  26. {folio_migration_tools-1.9.8 → folio_migration_tools-1.9.10}/src/folio_migration_tools/mapping_file_transformation/holdings_mapper.py +0 -0
  27. {folio_migration_tools-1.9.8 → folio_migration_tools-1.9.10}/src/folio_migration_tools/mapping_file_transformation/item_mapper.py +0 -0
  28. {folio_migration_tools-1.9.8 → folio_migration_tools-1.9.10}/src/folio_migration_tools/mapping_file_transformation/manual_fee_fines_mapper.py +0 -0
  29. {folio_migration_tools-1.9.8 → folio_migration_tools-1.9.10}/src/folio_migration_tools/mapping_file_transformation/mapping_file_mapper_base.py +0 -0
  30. {folio_migration_tools-1.9.8 → folio_migration_tools-1.9.10}/src/folio_migration_tools/mapping_file_transformation/notes_mapper.py +0 -0
  31. {folio_migration_tools-1.9.8 → folio_migration_tools-1.9.10}/src/folio_migration_tools/mapping_file_transformation/organization_mapper.py +0 -0
  32. {folio_migration_tools-1.9.8 → folio_migration_tools-1.9.10}/src/folio_migration_tools/mapping_file_transformation/user_mapper.py +0 -0
  33. {folio_migration_tools-1.9.8 → folio_migration_tools-1.9.10}/src/folio_migration_tools/marc_rules_transformation/__init__.py +0 -0
  34. {folio_migration_tools-1.9.8 → folio_migration_tools-1.9.10}/src/folio_migration_tools/marc_rules_transformation/conditions.py +0 -0
  35. {folio_migration_tools-1.9.8 → folio_migration_tools-1.9.10}/src/folio_migration_tools/marc_rules_transformation/holdings_statementsparser.py +0 -0
  36. {folio_migration_tools-1.9.8 → folio_migration_tools-1.9.10}/src/folio_migration_tools/marc_rules_transformation/hrid_handler.py +0 -0
  37. {folio_migration_tools-1.9.8 → folio_migration_tools-1.9.10}/src/folio_migration_tools/marc_rules_transformation/loc_language_codes.xml +0 -0
  38. {folio_migration_tools-1.9.8 → folio_migration_tools-1.9.10}/src/folio_migration_tools/marc_rules_transformation/marc_file_processor.py +0 -0
  39. {folio_migration_tools-1.9.8 → folio_migration_tools-1.9.10}/src/folio_migration_tools/marc_rules_transformation/marc_reader_wrapper.py +0 -0
  40. {folio_migration_tools-1.9.8 → folio_migration_tools-1.9.10}/src/folio_migration_tools/marc_rules_transformation/rules_mapper_authorities.py +0 -0
  41. {folio_migration_tools-1.9.8 → folio_migration_tools-1.9.10}/src/folio_migration_tools/marc_rules_transformation/rules_mapper_base.py +0 -0
  42. {folio_migration_tools-1.9.8 → folio_migration_tools-1.9.10}/src/folio_migration_tools/marc_rules_transformation/rules_mapper_bibs.py +0 -0
  43. {folio_migration_tools-1.9.8 → folio_migration_tools-1.9.10}/src/folio_migration_tools/marc_rules_transformation/rules_mapper_holdings.py +0 -0
  44. {folio_migration_tools-1.9.8 → folio_migration_tools-1.9.10}/src/folio_migration_tools/migration_report.py +0 -0
  45. {folio_migration_tools-1.9.8 → folio_migration_tools-1.9.10}/src/folio_migration_tools/migration_tasks/__init__.py +0 -0
  46. {folio_migration_tools-1.9.8 → folio_migration_tools-1.9.10}/src/folio_migration_tools/migration_tasks/authority_transformer.py +0 -0
  47. {folio_migration_tools-1.9.8 → folio_migration_tools-1.9.10}/src/folio_migration_tools/migration_tasks/batch_poster.py +0 -0
  48. {folio_migration_tools-1.9.8 → folio_migration_tools-1.9.10}/src/folio_migration_tools/migration_tasks/bibs_transformer.py +0 -0
  49. {folio_migration_tools-1.9.8 → folio_migration_tools-1.9.10}/src/folio_migration_tools/migration_tasks/courses_migrator.py +0 -0
  50. {folio_migration_tools-1.9.8 → folio_migration_tools-1.9.10}/src/folio_migration_tools/migration_tasks/holdings_csv_transformer.py +0 -0
  51. {folio_migration_tools-1.9.8 → folio_migration_tools-1.9.10}/src/folio_migration_tools/migration_tasks/holdings_marc_transformer.py +0 -0
  52. {folio_migration_tools-1.9.8 → folio_migration_tools-1.9.10}/src/folio_migration_tools/migration_tasks/items_transformer.py +0 -0
  53. {folio_migration_tools-1.9.8 → folio_migration_tools-1.9.10}/src/folio_migration_tools/migration_tasks/loans_migrator.py +0 -0
  54. {folio_migration_tools-1.9.8 → folio_migration_tools-1.9.10}/src/folio_migration_tools/migration_tasks/manual_fee_fines_transformer.py +0 -0
  55. {folio_migration_tools-1.9.8 → folio_migration_tools-1.9.10}/src/folio_migration_tools/migration_tasks/organization_transformer.py +0 -0
  56. {folio_migration_tools-1.9.8 → folio_migration_tools-1.9.10}/src/folio_migration_tools/migration_tasks/requests_migrator.py +0 -0
  57. {folio_migration_tools-1.9.8 → folio_migration_tools-1.9.10}/src/folio_migration_tools/migration_tasks/reserves_migrator.py +0 -0
  58. {folio_migration_tools-1.9.8 → folio_migration_tools-1.9.10}/src/folio_migration_tools/migration_tasks/user_transformer.py +0 -0
  59. {folio_migration_tools-1.9.8 → folio_migration_tools-1.9.10}/src/folio_migration_tools/task_configuration.py +0 -0
  60. {folio_migration_tools-1.9.8 → folio_migration_tools-1.9.10}/src/folio_migration_tools/test_infrastructure/__init__.py +0 -0
  61. {folio_migration_tools-1.9.8 → folio_migration_tools-1.9.10}/src/folio_migration_tools/test_infrastructure/mocked_classes.py +0 -0
  62. {folio_migration_tools-1.9.8 → folio_migration_tools-1.9.10}/src/folio_migration_tools/transaction_migration/__init__.py +0 -0
  63. {folio_migration_tools-1.9.8 → folio_migration_tools-1.9.10}/src/folio_migration_tools/transaction_migration/legacy_loan.py +0 -0
  64. {folio_migration_tools-1.9.8 → folio_migration_tools-1.9.10}/src/folio_migration_tools/transaction_migration/legacy_request.py +0 -0
  65. {folio_migration_tools-1.9.8 → folio_migration_tools-1.9.10}/src/folio_migration_tools/transaction_migration/legacy_reserve.py +0 -0
  66. {folio_migration_tools-1.9.8 → folio_migration_tools-1.9.10}/src/folio_migration_tools/transaction_migration/transaction_result.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: folio_migration_tools
3
- Version: 1.9.8
3
+ Version: 1.9.10
4
4
  Summary: A tool allowing you to migrate data from legacy ILS:s (Library systems) into FOLIO LSP
5
5
  License-Expression: MIT
6
6
  License-File: LICENSE
@@ -19,7 +19,7 @@ Requires-Dist: argparse-prompt (>=0.0.5,<0.0.6)
19
19
  Requires-Dist: art (>=6.5,<7.0)
20
20
  Requires-Dist: deepdiff (>=6.2.3,<7.0.0)
21
21
  Requires-Dist: defusedxml (>=0.7.1,<0.8.0)
22
- Requires-Dist: folio-data-import (>=0.3.2,<0.4.0)
22
+ Requires-Dist: folio-data-import (>=0.4.1)
23
23
  Requires-Dist: folio-uuid (>=1.0.0,<2.0.0)
24
24
  Requires-Dist: folioclient (>=0.70.1,<0.71.0)
25
25
  Requires-Dist: pyaml (>=21.10.1,<22.0.0)
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "folio_migration_tools"
3
- version = "1.9.8"
3
+ version = "1.9.10"
4
4
  description = "A tool allowing you to migrate data from legacy ILS:s (Library systems) into FOLIO LSP"
5
5
  authors = [
6
6
  {name = "Theodor Tolstoy", email = "github.teddes@tolstoy.se"},
@@ -56,7 +56,7 @@ deepdiff = "^6.2.3"
56
56
  pyaml = "^21.10.1"
57
57
  python-i18n = "^0.3.9"
58
58
  art = "^6.5"
59
- folio-data-import = "^0.3.2"
59
+ folio-data-import = ">=0.4.1"
60
60
 
61
61
  [tool.poetry.group.dev.dependencies]
62
62
  pytest = "^7.1.3"
@@ -78,6 +78,14 @@ class CompositeOrderMapper(MappingFileMapperBase):
78
78
  "code",
79
79
  "OrderLineLocationMapping",
80
80
  )
81
+ self.funds_mapping = RefDataMapping(
82
+ self.folio_client,
83
+ "/finance/funds",
84
+ "funds",
85
+ funds_map,
86
+ "code",
87
+ "FundsMapping",
88
+ )
81
89
 
82
90
  self.folio_client: FolioClient = folio_client
83
91
  self.notes_mapper: NotesMapper = NotesMapper(
@@ -115,6 +123,15 @@ class CompositeOrderMapper(MappingFileMapperBase):
115
123
  False,
116
124
  )
117
125
 
126
+ if folio_prop_name.endswith(".fundId"):
127
+ return self.get_mapped_ref_data_value(
128
+ self.location_mapping,
129
+ legacy_order,
130
+ folio_prop_name,
131
+ index_or_id,
132
+ False,
133
+ )
134
+
118
135
  mapped_value = super().get_prop(
119
136
  legacy_order, folio_prop_name, index_or_id, schema_default_value
120
137
  )
@@ -43,6 +43,9 @@ class RefDataMapping(object):
43
43
  return self.cached_dict.get(key_value.lower().strip(), ())
44
44
 
45
45
  def setup_mappings(self):
46
+ if not self.map:
47
+ logging.info("%s legacy map file is empty or not provided", self.name)
48
+ return
46
49
  self.pre_validate_map()
47
50
  for idx, mapping in enumerate(self.map):
48
51
  try:
@@ -418,10 +418,14 @@ class MigrationTaskBase:
418
418
  required (bool): Whether the property is required or not
419
419
  """
420
420
  if (
421
- folio_property_name in folio_keys
422
- or required
423
- or folio_property_name.startswith("statisticalCodeIds")
424
- or folio_property_name.startswith("locationMap")
421
+ (
422
+ folio_property_name in folio_keys
423
+ or required
424
+ or folio_property_name.startswith("statisticalCodeIds")
425
+ or folio_property_name.startswith("locationMap")
426
+ or folio_property_name.startswith("fundsMap")
427
+ )
428
+ and map_file_path.is_file()
425
429
  ):
426
430
  try:
427
431
  with open(map_file_path) as map_file:
@@ -216,9 +216,10 @@ class OrdersTransformer(MigrationTaskBase):
216
216
  ),
217
217
  self.load_ref_data_mapping_file( # Required if there was is a fund.
218
218
  "fundsMap",
219
- self.folder_structure.mapping_files_folder / self.task_config.funds_map_file_name,
219
+ self.folder_structure.mapping_files_folder
220
+ / self.task_config.funds_map_file_name,
220
221
  self.folio_keys,
221
- False,
222
+ True,
222
223
  ),
223
224
  self.load_ref_data_mapping_file( # Todo: The property in the schema has no type
224
225
  "fundsExpenseClassMap",
@@ -318,6 +318,8 @@
318
318
  "blurbs.FieldMappingErrors.title": "Field mapping errors",
319
319
  "blurbs.FolioDefaultValuesAdded.description": "The below FOLIO default values were added to records that had no mapped value in the source data.",
320
320
  "blurbs.FolioDefaultValuesAdded.title": "FOLIO default values added",
321
+ "blurbs.FundsMapping.title": "Fund mappings",
322
+ "blurbs.FundsMapping.description": "Reference data for funds mapping",
321
323
  "blurbs.GeneralStatistics.description": "A list of general counters to outline the transformation as a whole.",
322
324
  "blurbs.GeneralStatistics.title": "General statistics",
323
325
  "blurbs.HoldingsGenerationFromBibs.description": "Some libraries have Holdings/MFHD information baked into their bib records. The following breakdown gives an idea on the occurrence of 852/866 combinations",
@@ -471,4 +473,4 @@
471
473
  "naturalId mapped from %{fro}": "naturalId mapped from %{fro}",
472
474
  "no matching identifier_types in %{names}": "no matching identifier_types in %{names}",
473
475
  "subfield present in %{linked_value_tag} but not in %{pattern_field}": "subfield present in %{linked_value_tag} but not in %{pattern_field}"
474
- }
476
+ }