folio-migration-tools 1.9.0rc11__py3-none-any.whl → 1.9.0rc12__py3-none-any.whl
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/__main__.py +1 -2
- folio_migration_tools/mapping_file_transformation/organization_mapper.py +4 -4
- folio_migration_tools/marc_rules_transformation/holdings_statementsparser.py +7 -14
- folio_migration_tools/marc_rules_transformation/rules_mapper_bibs.py +5 -5
- folio_migration_tools/marc_rules_transformation/rules_mapper_holdings.py +29 -29
- folio_migration_tools/migration_tasks/holdings_marc_transformer.py +19 -12
- folio_migration_tools/transaction_migration/legacy_loan.py +2 -1
- folio_migration_tools/translations/en.json +4 -2
- {folio_migration_tools-1.9.0rc11.dist-info → folio_migration_tools-1.9.0rc12.dist-info}/METADATA +2 -2
- {folio_migration_tools-1.9.0rc11.dist-info → folio_migration_tools-1.9.0rc12.dist-info}/RECORD +13 -13
- {folio_migration_tools-1.9.0rc11.dist-info → folio_migration_tools-1.9.0rc12.dist-info}/WHEEL +1 -1
- {folio_migration_tools-1.9.0rc11.dist-info → folio_migration_tools-1.9.0rc12.dist-info}/LICENSE +0 -0
- {folio_migration_tools-1.9.0rc11.dist-info → folio_migration_tools-1.9.0rc12.dist-info}/entry_points.txt +0 -0
|
@@ -157,7 +157,6 @@ def main():
|
|
|
157
157
|
print("Task failure. Halting.")
|
|
158
158
|
sys.exit(1)
|
|
159
159
|
logging.info("Work done. Shutting down")
|
|
160
|
-
sys.exit(0)
|
|
161
160
|
except json.decoder.JSONDecodeError as json_error:
|
|
162
161
|
logging.critical(json_error)
|
|
163
162
|
print(json_error.doc)
|
|
@@ -198,7 +197,7 @@ def main():
|
|
|
198
197
|
logging.exception("Unhandled exception")
|
|
199
198
|
print(f"\n{ee}")
|
|
200
199
|
sys.exit(ee.__class__.__name__)
|
|
201
|
-
|
|
200
|
+
sys.exit(0)
|
|
202
201
|
|
|
203
202
|
def inheritors(base_class):
|
|
204
203
|
subclasses = set()
|
|
@@ -79,28 +79,28 @@ class OrganizationMapper(MappingFileMapperBase):
|
|
|
79
79
|
False,
|
|
80
80
|
)
|
|
81
81
|
|
|
82
|
-
elif re.compile("addresses\[(\d+)\]\.categories\[(\d+)\]").fullmatch(folio_prop_name):
|
|
82
|
+
elif re.compile(r"addresses\[(\d+)\]\.categories\[(\d+)\]").fullmatch(folio_prop_name):
|
|
83
83
|
return self.get_mapped_ref_data_value(
|
|
84
84
|
self.address_categories_map,
|
|
85
85
|
*value_tuple,
|
|
86
86
|
False,
|
|
87
87
|
)
|
|
88
88
|
|
|
89
|
-
elif re.compile("emails\[(\d+)\]\.categories\[(\d+)\]").fullmatch(folio_prop_name):
|
|
89
|
+
elif re.compile(r"emails\[(\d+)\]\.categories\[(\d+)\]").fullmatch(folio_prop_name):
|
|
90
90
|
return self.get_mapped_ref_data_value(
|
|
91
91
|
self.email_categories_map,
|
|
92
92
|
*value_tuple,
|
|
93
93
|
False,
|
|
94
94
|
)
|
|
95
95
|
|
|
96
|
-
elif re.compile("phoneNumbers\[(\d+)\]\.categories\[(\d+)\]").fullmatch(folio_prop_name):
|
|
96
|
+
elif re.compile(r"phoneNumbers\[(\d+)\]\.categories\[(\d+)\]").fullmatch(folio_prop_name):
|
|
97
97
|
return self.get_mapped_ref_data_value(
|
|
98
98
|
self.phone_categories_map,
|
|
99
99
|
*value_tuple,
|
|
100
100
|
False,
|
|
101
101
|
)
|
|
102
102
|
|
|
103
|
-
elif re.compile("interfaces\[(\d+)\]\.interfaceCredential.interfaceId").fullmatch(
|
|
103
|
+
elif re.compile(r"interfaces\[(\d+)\]\.interfaceCredential.interfaceId").fullmatch(
|
|
104
104
|
folio_prop_name
|
|
105
105
|
):
|
|
106
106
|
return "replace_with_interface_id"
|
|
@@ -165,23 +165,16 @@ class HoldingsStatementsParser:
|
|
|
165
165
|
TransformationFieldMappingError: _description_
|
|
166
166
|
"""
|
|
167
167
|
for f in marc_record.get_fields(field_textual):
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
),
|
|
175
|
-
f,
|
|
176
|
-
)
|
|
177
|
-
if not (
|
|
178
|
-
len(f.get_subfields("a")) == 0
|
|
179
|
-
or len(f.get_subfields("z")) == 0
|
|
180
|
-
or len(f.get_subfields("x")) == 0
|
|
168
|
+
if all(
|
|
169
|
+
[
|
|
170
|
+
len("".join(f.get_subfields("a")).strip()) == 0,
|
|
171
|
+
len("".join(f.get_subfields("z")).strip()) == 0,
|
|
172
|
+
len("".join(f.get_subfields("x")).strip()) == 0,
|
|
173
|
+
]
|
|
181
174
|
):
|
|
182
175
|
raise TransformationFieldMappingError(
|
|
183
176
|
legacy_ids,
|
|
184
|
-
i18n.t("%{field} a,x and z are
|
|
177
|
+
i18n.t("%{field} a, x and z are missing or empty", field=field_textual),
|
|
185
178
|
f,
|
|
186
179
|
)
|
|
187
180
|
return_dict["statements"].append(
|
|
@@ -10,7 +10,6 @@ from pathlib import Path
|
|
|
10
10
|
from typing import Dict, Generator, List
|
|
11
11
|
|
|
12
12
|
import i18n
|
|
13
|
-
import pymarc
|
|
14
13
|
from defusedxml.ElementTree import fromstring
|
|
15
14
|
from folio_uuid.folio_namespaces import FOLIONamespaces
|
|
16
15
|
from folio_uuid.folio_uuid import FolioUUID
|
|
@@ -144,7 +143,7 @@ class BibsRulesMapper(RulesMapperBase):
|
|
|
144
143
|
self.report_folio_mapping(clean_folio_instance, self.schema)
|
|
145
144
|
return [clean_folio_instance]
|
|
146
145
|
|
|
147
|
-
def simple_bib_map(self,
|
|
146
|
+
def simple_bib_map(self, folio_instance: dict, marc_record: Record, ignored_subsequent_fields: set, legacy_ids: List[str]):
|
|
148
147
|
"""
|
|
149
148
|
This method applies a much simplified MARC-to-instance
|
|
150
149
|
mapping to create a minimal FOLIO Instance record to be
|
|
@@ -152,7 +151,7 @@ class BibsRulesMapper(RulesMapperBase):
|
|
|
152
151
|
than creating SRS records during transformation.
|
|
153
152
|
|
|
154
153
|
Args:
|
|
155
|
-
|
|
154
|
+
folio_instance (dict): _description_
|
|
156
155
|
marc_record (Record): _description_
|
|
157
156
|
legacy_ids (List[str]): _description_
|
|
158
157
|
file_def (FileDefinition): _description_
|
|
@@ -169,9 +168,10 @@ class BibsRulesMapper(RulesMapperBase):
|
|
|
169
168
|
if not main_entry_fields:
|
|
170
169
|
main_entry_fields += marc_record.get_fields("700", "710", "711", "730")
|
|
171
170
|
main_entry_fields.sort(key=lambda x: int(x.tag))
|
|
172
|
-
|
|
171
|
+
if main_entry_fields:
|
|
172
|
+
self.process_marc_field(folio_instance, main_entry_fields[0], ignored_subsequent_fields, legacy_ids)
|
|
173
173
|
try:
|
|
174
|
-
self.process_marc_field(
|
|
174
|
+
self.process_marc_field(folio_instance, marc_record['245'], ignored_subsequent_fields, legacy_ids)
|
|
175
175
|
except KeyError:
|
|
176
176
|
raise TransformationRecordFailedError(
|
|
177
177
|
legacy_ids,
|
|
@@ -39,7 +39,7 @@ class RulesMapperHoldings(RulesMapperBase):
|
|
|
39
39
|
task_configuration,
|
|
40
40
|
library_configuration: LibraryConfiguration,
|
|
41
41
|
parent_id_map: dict,
|
|
42
|
-
|
|
42
|
+
boundwith_relationship_map_rows: List[Dict],
|
|
43
43
|
):
|
|
44
44
|
self.task_configuration = task_configuration
|
|
45
45
|
self.conditions = Conditions(
|
|
@@ -58,8 +58,8 @@ class RulesMapperHoldings(RulesMapperBase):
|
|
|
58
58
|
self.conditions,
|
|
59
59
|
parent_id_map,
|
|
60
60
|
)
|
|
61
|
-
self.boundwith_relationship_map = self.setup_boundwith_relationship_map(
|
|
62
|
-
|
|
61
|
+
self.boundwith_relationship_map: Dict = self.setup_boundwith_relationship_map(
|
|
62
|
+
boundwith_relationship_map_rows
|
|
63
63
|
)
|
|
64
64
|
self.location_map = self.validate_location_map(
|
|
65
65
|
location_map,
|
|
@@ -402,20 +402,20 @@ class RulesMapperHoldings(RulesMapperBase):
|
|
|
402
402
|
marc_record (Record): PyMARC record
|
|
403
403
|
folio_holding (Dict): FOLIO holdings record
|
|
404
404
|
"""
|
|
405
|
-
holdings_note_type_tuple = self.conditions.get_ref_data_tuple_by_name(
|
|
406
|
-
self.folio.holding_note_types, "holding_note_types", self.task_configuration.mfhd_mrk_note_type
|
|
407
|
-
)
|
|
408
|
-
try:
|
|
409
|
-
holdings_note_type_id = holdings_note_type_tuple[0]
|
|
410
|
-
except Exception as ee:
|
|
411
|
-
logging.error(ee)
|
|
412
|
-
raise TransformationRecordFailedError(
|
|
413
|
-
legacy_ids,
|
|
414
|
-
f'Holdings note type mapping error.\tNote type name: {self.task_configuration.mfhd_mrk_note_type}\t'
|
|
415
|
-
f"Note type not found in FOLIO.",
|
|
416
|
-
self.task_configuration.mfhd_mrk_note_type,
|
|
417
|
-
) from ee
|
|
418
405
|
if self.task_configuration.include_mfhd_mrk_as_note:
|
|
406
|
+
holdings_note_type_tuple = self.conditions.get_ref_data_tuple_by_name(
|
|
407
|
+
self.folio.holding_note_types, "holding_note_types", self.task_configuration.mfhd_mrk_note_type
|
|
408
|
+
)
|
|
409
|
+
try:
|
|
410
|
+
holdings_note_type_id = holdings_note_type_tuple[0]
|
|
411
|
+
except Exception as ee:
|
|
412
|
+
logging.error(ee)
|
|
413
|
+
raise TransformationRecordFailedError(
|
|
414
|
+
legacy_ids,
|
|
415
|
+
f'Holdings note type mapping error.\tNote type name: {self.task_configuration.mfhd_mrk_note_type}\t'
|
|
416
|
+
f"Note type not found in FOLIO.",
|
|
417
|
+
self.task_configuration.mfhd_mrk_note_type,
|
|
418
|
+
) from ee
|
|
419
419
|
folio_holding["notes"] = folio_holding.get("notes", []) + [
|
|
420
420
|
{
|
|
421
421
|
"note": str(marc_record),
|
|
@@ -433,20 +433,20 @@ class RulesMapperHoldings(RulesMapperBase):
|
|
|
433
433
|
marc_record (Record): PyMARC record
|
|
434
434
|
folio_holding (Dict): FOLIO holdings record
|
|
435
435
|
"""
|
|
436
|
-
holdings_note_type_tuple = self.conditions.get_ref_data_tuple_by_name(
|
|
437
|
-
self.folio.holding_note_types, "holding_note_types", self.task_configuration.mfhd_mrc_note_type
|
|
438
|
-
)
|
|
439
|
-
try:
|
|
440
|
-
holdings_note_type_id = holdings_note_type_tuple[0]
|
|
441
|
-
except Exception as ee:
|
|
442
|
-
logging.error(ee)
|
|
443
|
-
raise TransformationRecordFailedError(
|
|
444
|
-
legacy_ids,
|
|
445
|
-
f'Holdings note type mapping error.\tNote type name: {self.task_configuration.mfhd_mrc_note_type}\t'
|
|
446
|
-
f"Note type not found in FOLIO.",
|
|
447
|
-
self.task_configuration.mfhd_mrc_note_type,
|
|
448
|
-
) from ee
|
|
449
436
|
if self.task_configuration.include_mfhd_mrc_as_note:
|
|
437
|
+
holdings_note_type_tuple = self.conditions.get_ref_data_tuple_by_name(
|
|
438
|
+
self.folio.holding_note_types, "holding_note_types", self.task_configuration.mfhd_mrc_note_type
|
|
439
|
+
)
|
|
440
|
+
try:
|
|
441
|
+
holdings_note_type_id = holdings_note_type_tuple[0]
|
|
442
|
+
except Exception as ee:
|
|
443
|
+
logging.error(ee)
|
|
444
|
+
raise TransformationRecordFailedError(
|
|
445
|
+
legacy_ids,
|
|
446
|
+
f'Holdings note type mapping error.\tNote type name: {self.task_configuration.mfhd_mrc_note_type}\t'
|
|
447
|
+
f"Note type not found in FOLIO.",
|
|
448
|
+
self.task_configuration.mfhd_mrc_note_type,
|
|
449
|
+
) from ee
|
|
450
450
|
folio_holding["notes"] = folio_holding.get("notes", []) + [
|
|
451
451
|
{
|
|
452
452
|
"note": marc_record.as_marc().decode("utf-8"),
|
|
@@ -242,19 +242,26 @@ class HoldingsMarcTransformer(MigrationTaskBase):
|
|
|
242
242
|
)
|
|
243
243
|
|
|
244
244
|
# Load Boundwith relationship map
|
|
245
|
-
self.
|
|
245
|
+
self.boundwith_relationship_map_rows = []
|
|
246
246
|
if self.task_config.boundwith_relationship_file_path:
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
247
|
+
try:
|
|
248
|
+
with open(
|
|
249
|
+
self.folder_structure.legacy_records_folder
|
|
250
|
+
/ self.task_config.boundwith_relationship_file_path
|
|
251
|
+
) as boundwith_relationship_file:
|
|
252
|
+
self.boundwith_relationship_map_rows = list(
|
|
253
|
+
csv.DictReader(boundwith_relationship_file, dialect="tsv")
|
|
254
|
+
)
|
|
255
|
+
logging.info(
|
|
256
|
+
"Rows in Bound with relationship map: %s",
|
|
257
|
+
len(self.boundwith_relationship_map_rows),
|
|
258
|
+
)
|
|
259
|
+
except FileNotFoundError:
|
|
260
|
+
raise TransformationProcessError(
|
|
261
|
+
"",
|
|
262
|
+
i18n.t("Provided boundwith relationship file not found"),
|
|
263
|
+
self.task_config.boundwith_relationship_file_path,
|
|
253
264
|
)
|
|
254
|
-
logging.info(
|
|
255
|
-
"Rows in Bound with relationship map: %s",
|
|
256
|
-
len(self.boundwith_relationship_map),
|
|
257
|
-
)
|
|
258
265
|
|
|
259
266
|
location_map_path = (
|
|
260
267
|
self.folder_structure.mapping_files_folder
|
|
@@ -274,7 +281,7 @@ class HoldingsMarcTransformer(MigrationTaskBase):
|
|
|
274
281
|
self.task_config,
|
|
275
282
|
self.library_configuration,
|
|
276
283
|
self.instance_id_map,
|
|
277
|
-
self.
|
|
284
|
+
self.boundwith_relationship_map_rows,
|
|
278
285
|
)
|
|
279
286
|
self.add_supplemental_mfhd_mappings()
|
|
280
287
|
if (
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import json
|
|
2
2
|
import logging
|
|
3
|
+
import i18n
|
|
3
4
|
from datetime import datetime
|
|
4
5
|
from zoneinfo import ZoneInfo
|
|
5
6
|
|
|
@@ -123,7 +124,7 @@ class LegacyLoan(object):
|
|
|
123
124
|
if self.out_date.hour == 0:
|
|
124
125
|
self.out_date = self.out_date.replace(hour=0, minute=1)
|
|
125
126
|
if self.due_date <= self.out_date:
|
|
126
|
-
raise TransformationProcessError(self.row, "Due date is before out date, or date information is missing from both", json.dumps(self.legacy_loan_dict, indent=2))
|
|
127
|
+
raise TransformationProcessError(self.row, i18n.t("Due date is before out date, or date information is missing from both"), json.dumps(self.legacy_loan_dict, indent=2))
|
|
127
128
|
|
|
128
129
|
def to_dict(self):
|
|
129
130
|
return {
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"%{action} error. http status: %{status}": "%{action} error. http status: %{status}",
|
|
4
4
|
"%{action} error: %{message}": "%{action} error: %{message}",
|
|
5
5
|
"%{fields_criteria} empty or not set": "%{fields_criteria} empty or not set",
|
|
6
|
-
"%{field} a,x and z are
|
|
6
|
+
"%{field} a, x and z are missing or empty": "%{field} a, x and z are missing or empty",
|
|
7
7
|
"%{field} subfields a, x, and z missing from field": "%{field} subfields a, x, and z missing from field",
|
|
8
8
|
"%{fro} mapped from %{record}": "%{fro} mapped from %{record}",
|
|
9
9
|
"%{props} were concatenated": "%{props} were concatenated",
|
|
@@ -441,5 +441,7 @@
|
|
|
441
441
|
"legacy id from %{fro}": "legacy id from %{fro}",
|
|
442
442
|
"naturalId mapped from %{fro}": "naturalId mapped from %{fro}",
|
|
443
443
|
"no matching identifier_types in %{names}": "no matching identifier_types in %{names}",
|
|
444
|
-
"subfield present in %{linked_value_tag} but not in %{pattern_field}": "subfield present in %{linked_value_tag} but not in %{pattern_field}"
|
|
444
|
+
"subfield present in %{linked_value_tag} but not in %{pattern_field}": "subfield present in %{linked_value_tag} but not in %{pattern_field}",
|
|
445
|
+
"Provided boundwith relationship file not found": "Provided boundwith relationship file not found",
|
|
446
|
+
"Due date is before out date, or date information is missing from both": "Due date is before out date, or date information is missing from both"
|
|
445
447
|
}
|
{folio_migration_tools-1.9.0rc11.dist-info → folio_migration_tools-1.9.0rc12.dist-info}/METADATA
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: folio_migration_tools
|
|
3
|
-
Version: 1.9.
|
|
3
|
+
Version: 1.9.0rc12
|
|
4
4
|
Summary: A tool allowing you to migrate data from legacy ILS:s (Library systems) into FOLIO LSP
|
|
5
5
|
License: MIT
|
|
6
6
|
Keywords: FOLIO,ILS,LSP,Library Systems,MARC21,Library data
|
|
@@ -20,7 +20,7 @@ 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
22
|
Requires-Dist: folio-uuid (>=0.2.8,<0.3.0)
|
|
23
|
-
Requires-Dist: folioclient (
|
|
23
|
+
Requires-Dist: folioclient (>=0.70.1,<0.71.0)
|
|
24
24
|
Requires-Dist: pyaml (>=21.10.1,<22.0.0)
|
|
25
25
|
Requires-Dist: pydantic (>=1.10.2,<2.0.0)
|
|
26
26
|
Requires-Dist: pyhumps (>=3.7.3,<4.0.0)
|
{folio_migration_tools-1.9.0rc11.dist-info → folio_migration_tools-1.9.0rc12.dist-info}/RECORD
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
folio_migration_tools/__init__.py,sha256=DXvzUKFSpSZjflFWaNm0L8yhFk0u7RVIvQMskwMmKFc,238
|
|
2
|
-
folio_migration_tools/__main__.py,sha256=
|
|
2
|
+
folio_migration_tools/__main__.py,sha256=kfo4iKf3GJD7deh4RvIizKnC4zvIgCpNo-Bs7HBM34s,8453
|
|
3
3
|
folio_migration_tools/circulation_helper.py,sha256=V2VM30i2OigOKb64B4FFKTeHu9NTkhptalaOfziPhTo,14199
|
|
4
4
|
folio_migration_tools/colors.py,sha256=GP0wdI_GZ2WD5SjrbPN-S3u8vvN_u6rGQIBBcWv_0ZM,227
|
|
5
5
|
folio_migration_tools/config_file_load.py,sha256=zHHa6NDkN6EJiQE4DgjrFQPVKsd70POsfbGkB8308jg,2822
|
|
@@ -20,20 +20,20 @@ folio_migration_tools/mapping_file_transformation/manual_fee_fines_mapper.py,sha
|
|
|
20
20
|
folio_migration_tools/mapping_file_transformation/mapping_file_mapper_base.py,sha256=bLL6tTqqv2MOjZlowjL8lngYP09F_iwfFikEpjB4nmI,37816
|
|
21
21
|
folio_migration_tools/mapping_file_transformation/notes_mapper.py,sha256=auLQZqa4rSJo_MIV4Lc5-LG8RcBpp2bnKH243qNYq_0,3470
|
|
22
22
|
folio_migration_tools/mapping_file_transformation/order_mapper.py,sha256=k-kIuf2ceXrPWe3oVnfhuQlE7eglcx6PDLVJtddkeiM,17680
|
|
23
|
-
folio_migration_tools/mapping_file_transformation/organization_mapper.py,sha256=
|
|
23
|
+
folio_migration_tools/mapping_file_transformation/organization_mapper.py,sha256=78-r1dGP2Vd49bsf5dJVk__gzNgI6MoSTA9xuRiHR-4,14575
|
|
24
24
|
folio_migration_tools/mapping_file_transformation/ref_data_mapping.py,sha256=qFsn_LwKZeKFdOudfEQnNA3DEHOdNQVKzTPdZAlDPX0,8864
|
|
25
25
|
folio_migration_tools/mapping_file_transformation/user_mapper.py,sha256=Q8418BdXdCuEDxfoXqLCjWy1lUxhQNLRwSE5Gi1lqoA,7805
|
|
26
26
|
folio_migration_tools/marc_rules_transformation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
27
27
|
folio_migration_tools/marc_rules_transformation/conditions.py,sha256=ttTZISieqveu3YpvpnawHh3In1_DNQMTziI5yasfmWU,39142
|
|
28
|
-
folio_migration_tools/marc_rules_transformation/holdings_statementsparser.py,sha256=
|
|
28
|
+
folio_migration_tools/marc_rules_transformation/holdings_statementsparser.py,sha256=Rvdub7RdtR1BWnZij_Ejgp7cG9Kz58i_tXwXJbhaMtU,12101
|
|
29
29
|
folio_migration_tools/marc_rules_transformation/hrid_handler.py,sha256=SgnSYeNR0z_qarkizBMWZZWr8tOPZJ4fvlZjlM3nJOU,9999
|
|
30
30
|
folio_migration_tools/marc_rules_transformation/loc_language_codes.xml,sha256=ztn2_yKws6qySL4oSsZh7sOjxq5bCC1PhAnXJdtgmJ0,382912
|
|
31
31
|
folio_migration_tools/marc_rules_transformation/marc_file_processor.py,sha256=M-PHduzMYmZnrMwOSlwnWQ5bT-566gVRFSMo-JgS2d4,12346
|
|
32
32
|
folio_migration_tools/marc_rules_transformation/marc_reader_wrapper.py,sha256=9ATjYMRAjy0QcXtmNZaHVhHLJ5hE1WUgOcF6KMJjbgo,5309
|
|
33
33
|
folio_migration_tools/marc_rules_transformation/rules_mapper_authorities.py,sha256=e-wwJs8s8qEgIp8NvQgjx9lEyv7uvt08Fp6fPsy1GK8,9603
|
|
34
34
|
folio_migration_tools/marc_rules_transformation/rules_mapper_base.py,sha256=6EcOQSDG3wgW7S7re2uWiLkbup9Flg4ZqhtX6cCLnbk,41402
|
|
35
|
-
folio_migration_tools/marc_rules_transformation/rules_mapper_bibs.py,sha256=
|
|
36
|
-
folio_migration_tools/marc_rules_transformation/rules_mapper_holdings.py,sha256=
|
|
35
|
+
folio_migration_tools/marc_rules_transformation/rules_mapper_bibs.py,sha256=b4HO10sYMk4mHhM25TaDez472AtJi0AknWsBhCapNnA,30016
|
|
36
|
+
folio_migration_tools/marc_rules_transformation/rules_mapper_holdings.py,sha256=Cx9X9ANP5dlZyRAy5IQH8tnbhURTOQTZpAFpKuIkUm4,26542
|
|
37
37
|
folio_migration_tools/migration_report.py,sha256=BkRspM1hwTBnWeqsHamf7yVEofzLj560Q-9G--O00hw,4258
|
|
38
38
|
folio_migration_tools/migration_tasks/__init__.py,sha256=ZkbY_yGyB84Ke8OMlYUzyyBj4cxxNrhMTwQlu_GbdDs,211
|
|
39
39
|
folio_migration_tools/migration_tasks/authority_transformer.py,sha256=AoXg9s-GLO3yEEDCrQV7hc4YVXxwxsdxDdpj1zhHydE,4251
|
|
@@ -41,7 +41,7 @@ folio_migration_tools/migration_tasks/batch_poster.py,sha256=BcbNz2z5bGcbXmNvjnL
|
|
|
41
41
|
folio_migration_tools/migration_tasks/bibs_transformer.py,sha256=uOIfKVfkUdSr0RMbLpC4KbwbU16VKkXRJY8ULbdKzQk,5831
|
|
42
42
|
folio_migration_tools/migration_tasks/courses_migrator.py,sha256=CzXnsu-KGP7B4zcINJzLYUqz47D16NuFfzu_DPqRlTQ,7061
|
|
43
43
|
folio_migration_tools/migration_tasks/holdings_csv_transformer.py,sha256=NtysoayEIqQ8c_GNcRi6LXDYR-7OLmqFCfciMwzsyT4,21668
|
|
44
|
-
folio_migration_tools/migration_tasks/holdings_marc_transformer.py,sha256=
|
|
44
|
+
folio_migration_tools/migration_tasks/holdings_marc_transformer.py,sha256=gCa5hwTG7px6JvHQQs7YIWP12eAlS1uwuzFyeu-M4qE,13665
|
|
45
45
|
folio_migration_tools/migration_tasks/items_transformer.py,sha256=qk0sLPBxE5MtPnpLzO_gEhVVe1BqHHnpn2Zaz_vo1RY,19083
|
|
46
46
|
folio_migration_tools/migration_tasks/loans_migrator.py,sha256=CPsin9XLzHwNrpKHPMHAvgRvpoH8QvAfYZYr1FSxAN4,34520
|
|
47
47
|
folio_migration_tools/migration_tasks/manual_fee_fines_transformer.py,sha256=CnmlTge7nChUJ10EiUkriQtJlVxWqglgfhjgneh2_yM,7247
|
|
@@ -55,13 +55,13 @@ folio_migration_tools/task_configuration.py,sha256=2GXVog0-_cFybqsU2WFcxnTNGDhvD
|
|
|
55
55
|
folio_migration_tools/test_infrastructure/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
56
56
|
folio_migration_tools/test_infrastructure/mocked_classes.py,sha256=lpohRMqKnGmsoyspUQFXuyrGXRoIQZu2Dq7Q5WLQJw8,14877
|
|
57
57
|
folio_migration_tools/transaction_migration/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
58
|
-
folio_migration_tools/transaction_migration/legacy_loan.py,sha256=
|
|
58
|
+
folio_migration_tools/transaction_migration/legacy_loan.py,sha256=zablUc_xKI2ah12RVNS-63cN6IkFCwTiIaJWE-7T9cU,6229
|
|
59
59
|
folio_migration_tools/transaction_migration/legacy_request.py,sha256=1ulyFzPQw_InOjyPzkWpGnNptgXdQ18nmri0J8Nlpkc,6124
|
|
60
60
|
folio_migration_tools/transaction_migration/legacy_reserve.py,sha256=qzw0okg4axAE_ezXopP9gFsQ_e60o0zh7zqRzFBSWHY,1806
|
|
61
61
|
folio_migration_tools/transaction_migration/transaction_result.py,sha256=cTdCN0BnlI9_ZJB2Z3Fdkl9gpymIi-9mGZsRFlQcmDk,656
|
|
62
|
-
folio_migration_tools/translations/en.json,sha256=
|
|
63
|
-
folio_migration_tools-1.9.
|
|
64
|
-
folio_migration_tools-1.9.
|
|
65
|
-
folio_migration_tools-1.9.
|
|
66
|
-
folio_migration_tools-1.9.
|
|
67
|
-
folio_migration_tools-1.9.
|
|
62
|
+
folio_migration_tools/translations/en.json,sha256=Y9x7JbeC2N-yFvv5fWmWzupbzJBQ7_lgCmsDsGa2OUE,38935
|
|
63
|
+
folio_migration_tools-1.9.0rc12.dist-info/LICENSE,sha256=PhIEkitVi3ejgq56tt6sWoJIG_zmv82cjjd_aYPPGdI,1072
|
|
64
|
+
folio_migration_tools-1.9.0rc12.dist-info/METADATA,sha256=8jaDR0QeEvZuAEn-K-C08JMx1BaWPEEBp3U4HvOCPxE,7448
|
|
65
|
+
folio_migration_tools-1.9.0rc12.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
|
66
|
+
folio_migration_tools-1.9.0rc12.dist-info/entry_points.txt,sha256=Hbe-HjqMcU8FwVshVIkeWyZd9XwgT1CCMNf06EpHQu8,77
|
|
67
|
+
folio_migration_tools-1.9.0rc12.dist-info/RECORD,,
|
{folio_migration_tools-1.9.0rc11.dist-info → folio_migration_tools-1.9.0rc12.dist-info}/LICENSE
RENAMED
|
File without changes
|
|
File without changes
|