folio-migration-tools 1.10.0b3__tar.gz → 1.10.0b6__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 (63) hide show
  1. {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b6}/PKG-INFO +2 -2
  2. {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b6}/pyproject.toml +13 -15
  3. {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b6}/src/folio_migration_tools/__main__.py +9 -0
  4. {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b6}/src/folio_migration_tools/folder_structure.py +0 -3
  5. {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b6}/src/folio_migration_tools/mapping_file_transformation/user_mapper.py +4 -0
  6. {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b6}/src/folio_migration_tools/marc_rules_transformation/conditions.py +0 -29
  7. {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b6}/src/folio_migration_tools/marc_rules_transformation/rules_mapper_base.py +0 -6
  8. {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b6}/src/folio_migration_tools/migration_tasks/batch_poster.py +216 -295
  9. {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b6}/src/folio_migration_tools/migration_tasks/migration_task_base.py +13 -5
  10. {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b6}/src/folio_migration_tools/migration_tasks/user_transformer.py +10 -0
  11. {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b6}/src/folio_migration_tools/translations/en.json +0 -7
  12. folio_migration_tools-1.10.0b3/src/folio_migration_tools/marc_rules_transformation/rules_mapper_authorities.py +0 -242
  13. folio_migration_tools-1.10.0b3/src/folio_migration_tools/migration_tasks/authority_transformer.py +0 -118
  14. {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b6}/README.md +0 -0
  15. {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b6}/src/folio_migration_tools/__init__.py +0 -0
  16. {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b6}/src/folio_migration_tools/circulation_helper.py +0 -0
  17. {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b6}/src/folio_migration_tools/colors.py +0 -0
  18. {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b6}/src/folio_migration_tools/config_file_load.py +0 -0
  19. {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b6}/src/folio_migration_tools/custom_dict.py +0 -0
  20. {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b6}/src/folio_migration_tools/custom_exceptions.py +0 -0
  21. {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b6}/src/folio_migration_tools/extradata_writer.py +0 -0
  22. {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b6}/src/folio_migration_tools/helper.py +0 -0
  23. {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b6}/src/folio_migration_tools/holdings_helper.py +0 -0
  24. {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b6}/src/folio_migration_tools/i18n_config.py +0 -0
  25. {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b6}/src/folio_migration_tools/library_configuration.py +0 -0
  26. {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b6}/src/folio_migration_tools/mapper_base.py +0 -0
  27. {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b6}/src/folio_migration_tools/mapping_file_transformation/__init__.py +0 -0
  28. {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b6}/src/folio_migration_tools/mapping_file_transformation/courses_mapper.py +0 -0
  29. {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b6}/src/folio_migration_tools/mapping_file_transformation/holdings_mapper.py +0 -0
  30. {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b6}/src/folio_migration_tools/mapping_file_transformation/item_mapper.py +0 -0
  31. {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b6}/src/folio_migration_tools/mapping_file_transformation/manual_fee_fines_mapper.py +0 -0
  32. {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b6}/src/folio_migration_tools/mapping_file_transformation/mapping_file_mapper_base.py +0 -0
  33. {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b6}/src/folio_migration_tools/mapping_file_transformation/notes_mapper.py +0 -0
  34. {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b6}/src/folio_migration_tools/mapping_file_transformation/order_mapper.py +0 -0
  35. {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b6}/src/folio_migration_tools/mapping_file_transformation/organization_mapper.py +0 -0
  36. {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b6}/src/folio_migration_tools/mapping_file_transformation/ref_data_mapping.py +0 -0
  37. {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b6}/src/folio_migration_tools/marc_rules_transformation/__init__.py +0 -0
  38. {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b6}/src/folio_migration_tools/marc_rules_transformation/holdings_statementsparser.py +0 -0
  39. {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b6}/src/folio_migration_tools/marc_rules_transformation/hrid_handler.py +0 -0
  40. {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b6}/src/folio_migration_tools/marc_rules_transformation/loc_language_codes.xml +0 -0
  41. {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b6}/src/folio_migration_tools/marc_rules_transformation/marc_file_processor.py +0 -0
  42. {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b6}/src/folio_migration_tools/marc_rules_transformation/marc_reader_wrapper.py +0 -0
  43. {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b6}/src/folio_migration_tools/marc_rules_transformation/rules_mapper_bibs.py +0 -0
  44. {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b6}/src/folio_migration_tools/marc_rules_transformation/rules_mapper_holdings.py +0 -0
  45. {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b6}/src/folio_migration_tools/migration_report.py +0 -0
  46. {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b6}/src/folio_migration_tools/migration_tasks/__init__.py +0 -0
  47. {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b6}/src/folio_migration_tools/migration_tasks/bibs_transformer.py +0 -0
  48. {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b6}/src/folio_migration_tools/migration_tasks/courses_migrator.py +0 -0
  49. {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b6}/src/folio_migration_tools/migration_tasks/holdings_csv_transformer.py +0 -0
  50. {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b6}/src/folio_migration_tools/migration_tasks/holdings_marc_transformer.py +0 -0
  51. {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b6}/src/folio_migration_tools/migration_tasks/items_transformer.py +0 -0
  52. {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b6}/src/folio_migration_tools/migration_tasks/loans_migrator.py +0 -0
  53. {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b6}/src/folio_migration_tools/migration_tasks/manual_fee_fines_transformer.py +0 -0
  54. {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b6}/src/folio_migration_tools/migration_tasks/orders_transformer.py +0 -0
  55. {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b6}/src/folio_migration_tools/migration_tasks/organization_transformer.py +0 -0
  56. {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b6}/src/folio_migration_tools/migration_tasks/requests_migrator.py +0 -0
  57. {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b6}/src/folio_migration_tools/migration_tasks/reserves_migrator.py +0 -0
  58. {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b6}/src/folio_migration_tools/task_configuration.py +0 -0
  59. {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b6}/src/folio_migration_tools/transaction_migration/__init__.py +0 -0
  60. {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b6}/src/folio_migration_tools/transaction_migration/legacy_loan.py +0 -0
  61. {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b6}/src/folio_migration_tools/transaction_migration/legacy_request.py +0 -0
  62. {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b6}/src/folio_migration_tools/transaction_migration/legacy_reserve.py +0 -0
  63. {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b6}/src/folio_migration_tools/transaction_migration/transaction_result.py +0 -0
@@ -1,12 +1,12 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: folio-migration-tools
3
- Version: 1.10.0b3
3
+ Version: 1.10.0b6
4
4
  Summary: A tool allowing you to migrate data from legacy ILS:s (Library systems) into FOLIO LSP
5
5
  Keywords: FOLIO,ILS,LSP,Library Systems,MARC21,Library data
6
6
  Author: Theodor Tolstoy, Lisa Sjögren, Brooks Travis, Jeremy Nelson, Clinton Bradford
7
7
  Author-email: Theodor Tolstoy <github.teddes@tolstoy.se>, Brooks Travis <brooks.travis@gmail.com>
8
8
  License-Expression: MIT
9
- Requires-Dist: folioclient>=1.0.1
9
+ Requires-Dist: folioclient>=1.0.4
10
10
  Requires-Dist: pyhumps>=3.7.3,<4.0.0
11
11
  Requires-Dist: defusedxml>=0.7.1,<1.0.0
12
12
  Requires-Dist: python-dateutil>=2.8.2,<3.0.0
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "folio_migration_tools"
3
- version = "1.10.0b3"
3
+ version = "1.10.0b6"
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"},
@@ -14,19 +14,18 @@ readme = "README.md"
14
14
  keywords = ["FOLIO", "ILS", "LSP", "Library Systems", "MARC21", "Library data"]
15
15
  requires-python = ">=3.10,<4.0"
16
16
  dependencies = [
17
- "folioclient>=1.0.1",
18
- "pyhumps>=3.7.3,<4.0.0",
19
- "defusedxml>=0.7.1,<1.0.0",
20
- "python-dateutil>=2.8.2,<3.0.0",
21
- "folio-uuid>=1.0.0,<2.0.0",
22
- "pymarc>=5.2.3,<6.0.0",
23
- "pydantic>=2.12.3,<3.0.0",
24
- "argparse-prompt>=0.0.5,<1.0.0",
25
- "deepdiff>=6.2.3,<7.0.0",
26
- "pyaml>=21.10.1,<22.0.0",
27
- "python-i18n>=0.3.9,<1.0.0",
28
- "art>=6.5,<7.0",
29
- # "folio-data-import>=0.4.1"
17
+ "folioclient>=1.0.4",
18
+ "pyhumps>=3.7.3,<4.0.0",
19
+ "defusedxml>=0.7.1,<1.0.0",
20
+ "python-dateutil>=2.8.2,<3.0.0",
21
+ "folio-uuid>=1.0.0,<2.0.0",
22
+ "pymarc>=5.2.3,<6.0.0",
23
+ "pydantic>=2.12.3,<3.0.0",
24
+ "argparse-prompt>=0.0.5,<1.0.0",
25
+ "deepdiff>=6.2.3,<7.0.0",
26
+ "pyaml>=21.10.1,<22.0.0",
27
+ "python-i18n>=0.3.9,<1.0.0",
28
+ "art>=6.5,<7.0",
30
29
  ]
31
30
 
32
31
  [dependency-groups]
@@ -48,7 +47,6 @@ dev = [
48
47
  "ipykernel>=6.29.5,<7.0.0",
49
48
  "pytest-asyncio>=0.23.0,<0.24.0",
50
49
  "lxml>=6.0.2",
51
- "ty>=0.0.1a27",
52
50
  "pyrefly>=0.43.1",
53
51
  ]
54
52
  docs = [
@@ -4,6 +4,7 @@ import logging
4
4
  import sys
5
5
  from os import environ
6
6
  from pathlib import Path
7
+ from warnings import warn
7
8
 
8
9
  import httpx
9
10
  import humps
@@ -126,6 +127,14 @@ def main():
126
127
  i18n.set("locale", args.report_language)
127
128
  config_file, library_config = prep_library_config(args)
128
129
  try:
130
+ if args.task_name == "AuthorityTransformer":
131
+ warn(
132
+ "The AuthorityTransformer has been removed."
133
+ " Please update your configuration accordingly."
134
+ " Use Data Import to load authority records.",
135
+ DeprecationWarning,
136
+ stacklevel=2,
137
+ )
129
138
  migration_task_config = next(
130
139
  t for t in config_file["migration_tasks"] if t["name"] == args.task_name
131
140
  )
@@ -110,9 +110,6 @@ class FolderStructure:
110
110
  self.instance_id_map_path = (
111
111
  self.results_folder / f"{str(FOLIONamespaces.instances.name).lower()}_id_map.json"
112
112
  )
113
- self.auth_id_map_path = (
114
- self.results_folder / f"{str(FOLIONamespaces.authorities.name).lower()}_id_map.json"
115
- )
116
113
 
117
114
  self.holdings_id_map_path = (
118
115
  self.results_folder / f"{str(FOLIONamespaces.holdings.name).lower()}_id_map.json"
@@ -115,6 +115,10 @@ class UserMapper(MappingFileMapperBase):
115
115
 
116
116
  if self.task_config.remove_request_preferences:
117
117
  del clean_folio_object["requestPreference"]
118
+
119
+ if self.task_config.remove_username:
120
+ del clean_folio_object["username"]
121
+
118
122
  self.report_folio_mapping_no_schema(clean_folio_object)
119
123
  self.report_legacy_mapping_no_schema(legacy_user)
120
124
 
@@ -47,8 +47,6 @@ class Conditions:
47
47
  if object_type == "bibs":
48
48
  self.setup_reference_data_for_all()
49
49
  self.setup_reference_data_for_bibs()
50
- elif object_type == "auth":
51
- self.setup_reference_data_for_auth()
52
50
  else:
53
51
  self.setup_reference_data_for_all()
54
52
  self.setup_reference_data_for_items_and_holdings(default_call_number_type_name)
@@ -150,15 +148,6 @@ class Conditions:
150
148
  if not self.folio.class_types:
151
149
  raise TransformationProcessError("", "No class_types in FOLIO")
152
150
 
153
- def setup_reference_data_for_auth(self):
154
- self.authority_note_types = list(
155
- self.folio.folio_get_all(
156
- "/authority-note-types", "authorityNoteTypes", self.folio.cql_all, 1000
157
- )
158
- )
159
- logging.info(f"{len(self.authority_note_types)} \tAuthority note types")
160
- logging.info(f"{len(self.folio.identifier_types)} \tidentifier types") # type: ignore
161
-
162
151
  def get_condition(
163
152
  self, name, legacy_id, value, parameter=None, marc_field: field.Field | None = None
164
153
  ):
@@ -430,24 +419,6 @@ class Conditions:
430
419
  parameter.get("name", ""),
431
420
  ) from ee
432
421
 
433
- def condition_set_authority_note_type_id(
434
- self, legacy_id, _, parameter, marc_field: field.Field
435
- ):
436
- try:
437
- t = self.get_ref_data_tuple_by_name(
438
- self.authority_note_types, "authority_note_types", parameter["name"]
439
- )
440
- self.mapper.migration_report.add("MappedNoteTypes", t[1])
441
- return t[0]
442
- except Exception as ee:
443
- logging.error(ee)
444
- raise TransformationProcessError(
445
- legacy_id,
446
- f"Authority note type mapping error.\tParameter: {parameter.get('name', '')}\t"
447
- f"MARC Field: {marc_field}. Is mapping rules and ref data aligned?",
448
- parameter.get("name", ""),
449
- ) from ee
450
-
451
422
  def condition_set_classification_type_id(
452
423
  self, legacy_id, value, parameter, marc_field: field.Field
453
424
  ):
@@ -962,7 +962,6 @@ class RulesMapperBase(MapperBase):
962
962
  srs_types = {
963
963
  FOLIONamespaces.holdings: FOLIONamespaces.srs_records_holdingsrecord,
964
964
  FOLIONamespaces.instances: FOLIONamespaces.srs_records_bib,
965
- FOLIONamespaces.authorities: FOLIONamespaces.srs_records_auth,
966
965
  FOLIONamespaces.edifact: FOLIONamespaces.srs_records_edifact,
967
966
  }
968
967
 
@@ -1020,7 +1019,6 @@ class RulesMapperBase(MapperBase):
1020
1019
  record_types = {
1021
1020
  FOLIONamespaces.holdings: "MARC_HOLDING",
1022
1021
  FOLIONamespaces.instances: "MARC_BIB",
1023
- FOLIONamespaces.authorities: "MARC_AUTHORITY",
1024
1022
  FOLIONamespaces.edifact: "EDIFACT",
1025
1023
  }
1026
1024
 
@@ -1033,10 +1031,6 @@ class RulesMapperBase(MapperBase):
1033
1031
  "holdingsId": folio_object["id"],
1034
1032
  "holdingsHrid": folio_object.get("hrid", ""),
1035
1033
  },
1036
- FOLIONamespaces.authorities: {
1037
- "authorityId": folio_object["id"],
1038
- "authorityHrid": marc_record["001"].data,
1039
- },
1040
1034
  FOLIONamespaces.edifact: {},
1041
1035
  }
1042
1036