folio-migration-tools 1.10.0b3__tar.gz → 1.10.0b4__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.
- {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b4}/PKG-INFO +2 -2
- {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b4}/pyproject.toml +13 -15
- {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b4}/src/folio_migration_tools/__main__.py +9 -0
- {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b4}/src/folio_migration_tools/folder_structure.py +0 -3
- {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b4}/src/folio_migration_tools/marc_rules_transformation/conditions.py +0 -29
- {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b4}/src/folio_migration_tools/marc_rules_transformation/rules_mapper_base.py +0 -6
- {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b4}/src/folio_migration_tools/migration_tasks/batch_poster.py +213 -292
- {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b4}/src/folio_migration_tools/translations/en.json +0 -7
- folio_migration_tools-1.10.0b3/src/folio_migration_tools/marc_rules_transformation/rules_mapper_authorities.py +0 -242
- folio_migration_tools-1.10.0b3/src/folio_migration_tools/migration_tasks/authority_transformer.py +0 -118
- {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b4}/README.md +0 -0
- {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b4}/src/folio_migration_tools/__init__.py +0 -0
- {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b4}/src/folio_migration_tools/circulation_helper.py +0 -0
- {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b4}/src/folio_migration_tools/colors.py +0 -0
- {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b4}/src/folio_migration_tools/config_file_load.py +0 -0
- {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b4}/src/folio_migration_tools/custom_dict.py +0 -0
- {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b4}/src/folio_migration_tools/custom_exceptions.py +0 -0
- {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b4}/src/folio_migration_tools/extradata_writer.py +0 -0
- {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b4}/src/folio_migration_tools/helper.py +0 -0
- {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b4}/src/folio_migration_tools/holdings_helper.py +0 -0
- {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b4}/src/folio_migration_tools/i18n_config.py +0 -0
- {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b4}/src/folio_migration_tools/library_configuration.py +0 -0
- {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b4}/src/folio_migration_tools/mapper_base.py +0 -0
- {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b4}/src/folio_migration_tools/mapping_file_transformation/__init__.py +0 -0
- {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b4}/src/folio_migration_tools/mapping_file_transformation/courses_mapper.py +0 -0
- {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b4}/src/folio_migration_tools/mapping_file_transformation/holdings_mapper.py +0 -0
- {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b4}/src/folio_migration_tools/mapping_file_transformation/item_mapper.py +0 -0
- {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b4}/src/folio_migration_tools/mapping_file_transformation/manual_fee_fines_mapper.py +0 -0
- {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b4}/src/folio_migration_tools/mapping_file_transformation/mapping_file_mapper_base.py +0 -0
- {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b4}/src/folio_migration_tools/mapping_file_transformation/notes_mapper.py +0 -0
- {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b4}/src/folio_migration_tools/mapping_file_transformation/order_mapper.py +0 -0
- {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b4}/src/folio_migration_tools/mapping_file_transformation/organization_mapper.py +0 -0
- {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b4}/src/folio_migration_tools/mapping_file_transformation/ref_data_mapping.py +0 -0
- {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b4}/src/folio_migration_tools/mapping_file_transformation/user_mapper.py +0 -0
- {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b4}/src/folio_migration_tools/marc_rules_transformation/__init__.py +0 -0
- {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b4}/src/folio_migration_tools/marc_rules_transformation/holdings_statementsparser.py +0 -0
- {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b4}/src/folio_migration_tools/marc_rules_transformation/hrid_handler.py +0 -0
- {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b4}/src/folio_migration_tools/marc_rules_transformation/loc_language_codes.xml +0 -0
- {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b4}/src/folio_migration_tools/marc_rules_transformation/marc_file_processor.py +0 -0
- {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b4}/src/folio_migration_tools/marc_rules_transformation/marc_reader_wrapper.py +0 -0
- {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b4}/src/folio_migration_tools/marc_rules_transformation/rules_mapper_bibs.py +0 -0
- {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b4}/src/folio_migration_tools/marc_rules_transformation/rules_mapper_holdings.py +0 -0
- {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b4}/src/folio_migration_tools/migration_report.py +0 -0
- {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b4}/src/folio_migration_tools/migration_tasks/__init__.py +0 -0
- {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b4}/src/folio_migration_tools/migration_tasks/bibs_transformer.py +0 -0
- {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b4}/src/folio_migration_tools/migration_tasks/courses_migrator.py +0 -0
- {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b4}/src/folio_migration_tools/migration_tasks/holdings_csv_transformer.py +0 -0
- {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b4}/src/folio_migration_tools/migration_tasks/holdings_marc_transformer.py +0 -0
- {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b4}/src/folio_migration_tools/migration_tasks/items_transformer.py +0 -0
- {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b4}/src/folio_migration_tools/migration_tasks/loans_migrator.py +0 -0
- {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b4}/src/folio_migration_tools/migration_tasks/manual_fee_fines_transformer.py +0 -0
- {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b4}/src/folio_migration_tools/migration_tasks/migration_task_base.py +0 -0
- {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b4}/src/folio_migration_tools/migration_tasks/orders_transformer.py +0 -0
- {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b4}/src/folio_migration_tools/migration_tasks/organization_transformer.py +0 -0
- {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b4}/src/folio_migration_tools/migration_tasks/requests_migrator.py +0 -0
- {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b4}/src/folio_migration_tools/migration_tasks/reserves_migrator.py +0 -0
- {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b4}/src/folio_migration_tools/migration_tasks/user_transformer.py +0 -0
- {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b4}/src/folio_migration_tools/task_configuration.py +0 -0
- {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b4}/src/folio_migration_tools/transaction_migration/__init__.py +0 -0
- {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b4}/src/folio_migration_tools/transaction_migration/legacy_loan.py +0 -0
- {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b4}/src/folio_migration_tools/transaction_migration/legacy_request.py +0 -0
- {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b4}/src/folio_migration_tools/transaction_migration/legacy_reserve.py +0 -0
- {folio_migration_tools-1.10.0b3 → folio_migration_tools-1.10.0b4}/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.
|
|
3
|
+
Version: 1.10.0b4
|
|
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.
|
|
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.
|
|
3
|
+
version = "1.10.0b4"
|
|
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.
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
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"
|
|
@@ -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
|
|