folio-migration-tools 1.9.9__py3-none-any.whl → 1.10.0__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.
Files changed (58) hide show
  1. folio_migration_tools/__init__.py +3 -4
  2. folio_migration_tools/__main__.py +53 -31
  3. folio_migration_tools/circulation_helper.py +118 -108
  4. folio_migration_tools/custom_dict.py +2 -2
  5. folio_migration_tools/custom_exceptions.py +4 -5
  6. folio_migration_tools/folder_structure.py +17 -7
  7. folio_migration_tools/helper.py +8 -7
  8. folio_migration_tools/holdings_helper.py +4 -3
  9. folio_migration_tools/i18n_cache.py +79 -0
  10. folio_migration_tools/library_configuration.py +77 -37
  11. folio_migration_tools/mapper_base.py +45 -31
  12. folio_migration_tools/mapping_file_transformation/courses_mapper.py +1 -1
  13. folio_migration_tools/mapping_file_transformation/holdings_mapper.py +7 -3
  14. folio_migration_tools/mapping_file_transformation/item_mapper.py +13 -26
  15. folio_migration_tools/mapping_file_transformation/manual_fee_fines_mapper.py +1 -2
  16. folio_migration_tools/mapping_file_transformation/mapping_file_mapper_base.py +13 -11
  17. folio_migration_tools/mapping_file_transformation/order_mapper.py +23 -5
  18. folio_migration_tools/mapping_file_transformation/organization_mapper.py +3 -3
  19. folio_migration_tools/mapping_file_transformation/ref_data_mapping.py +3 -0
  20. folio_migration_tools/mapping_file_transformation/user_mapper.py +47 -28
  21. folio_migration_tools/marc_rules_transformation/conditions.py +82 -97
  22. folio_migration_tools/marc_rules_transformation/holdings_statementsparser.py +13 -5
  23. folio_migration_tools/marc_rules_transformation/hrid_handler.py +3 -2
  24. folio_migration_tools/marc_rules_transformation/marc_file_processor.py +26 -24
  25. folio_migration_tools/marc_rules_transformation/rules_mapper_base.py +56 -51
  26. folio_migration_tools/marc_rules_transformation/rules_mapper_bibs.py +28 -17
  27. folio_migration_tools/marc_rules_transformation/rules_mapper_holdings.py +68 -37
  28. folio_migration_tools/migration_report.py +18 -7
  29. folio_migration_tools/migration_tasks/batch_poster.py +285 -354
  30. folio_migration_tools/migration_tasks/bibs_transformer.py +14 -9
  31. folio_migration_tools/migration_tasks/courses_migrator.py +2 -3
  32. folio_migration_tools/migration_tasks/holdings_csv_transformer.py +23 -24
  33. folio_migration_tools/migration_tasks/holdings_marc_transformer.py +14 -24
  34. folio_migration_tools/migration_tasks/items_transformer.py +23 -34
  35. folio_migration_tools/migration_tasks/loans_migrator.py +67 -144
  36. folio_migration_tools/migration_tasks/manual_fee_fines_transformer.py +3 -3
  37. folio_migration_tools/migration_tasks/migration_task_base.py +43 -52
  38. folio_migration_tools/migration_tasks/orders_transformer.py +25 -41
  39. folio_migration_tools/migration_tasks/organization_transformer.py +9 -18
  40. folio_migration_tools/migration_tasks/requests_migrator.py +21 -24
  41. folio_migration_tools/migration_tasks/reserves_migrator.py +6 -5
  42. folio_migration_tools/migration_tasks/user_transformer.py +25 -20
  43. folio_migration_tools/task_configuration.py +6 -7
  44. folio_migration_tools/transaction_migration/legacy_loan.py +15 -27
  45. folio_migration_tools/transaction_migration/legacy_request.py +1 -1
  46. folio_migration_tools/translations/en.json +3 -8
  47. {folio_migration_tools-1.9.9.dist-info → folio_migration_tools-1.10.0.dist-info}/METADATA +19 -28
  48. folio_migration_tools-1.10.0.dist-info/RECORD +63 -0
  49. folio_migration_tools-1.10.0.dist-info/WHEEL +4 -0
  50. folio_migration_tools-1.10.0.dist-info/entry_points.txt +3 -0
  51. folio_migration_tools/marc_rules_transformation/rules_mapper_authorities.py +0 -241
  52. folio_migration_tools/migration_tasks/authority_transformer.py +0 -119
  53. folio_migration_tools/test_infrastructure/__init__.py +0 -0
  54. folio_migration_tools/test_infrastructure/mocked_classes.py +0 -406
  55. folio_migration_tools-1.9.9.dist-info/RECORD +0 -67
  56. folio_migration_tools-1.9.9.dist-info/WHEEL +0 -4
  57. folio_migration_tools-1.9.9.dist-info/entry_points.txt +0 -3
  58. folio_migration_tools-1.9.9.dist-info/licenses/LICENSE +0 -21
@@ -1,406 +0,0 @@
1
- import json
2
- import logging
3
- import uuid
4
- from pathlib import Path
5
- from unittest.mock import MagicMock
6
- from unittest.mock import Mock
7
-
8
- from folioclient import FolioClient
9
-
10
- from folio_migration_tools.extradata_writer import ExtradataWriter
11
- from folio_migration_tools.mapping_file_transformation.holdings_mapper import (
12
- HoldingsMapper,
13
- )
14
- from folio_migration_tools.migration_report import MigrationReport
15
- from folio_migration_tools.library_configuration import (
16
- LibraryConfiguration,
17
- FolioRelease,
18
- )
19
-
20
-
21
- def mocked_holdings_mapper() -> Mock:
22
- mock_mapper = Mock(spec=HoldingsMapper)
23
- mock_mapper.migration_report = MigrationReport()
24
- mock_mapper.extradata_writer = ExtradataWriter(Path(""))
25
-
26
- return mock_mapper
27
-
28
-
29
- def mocked_folio_client() -> FolioClient:
30
- try:
31
- FolioClient.login = MagicMock(name="login", return_value=None)
32
- FolioClient.okapi_token = "token" # noqa:S105
33
- mocked_folio = FolioClient("okapi_url", "tenant_id", "username", "password")
34
- mocked_folio.folio_get_single_object = folio_get_single_object_mocked
35
- mocked_folio.folio_get_all = folio_get_all_mocked
36
- mocked_folio.get_from_github = folio_get_from_github
37
- mocked_folio.current_user = str(uuid.uuid4())
38
- return mocked_folio
39
- except Exception as ee:
40
- logging.error(ee)
41
- raise ee
42
-
43
-
44
- def folio_get_all_mocked(ref_data_path, array_name, query="", limit=10):
45
- with open("./static/reference_data.json", "r") as super_schema_file:
46
- super_schema = json.load(super_schema_file)
47
- if ref_data_path == "/coursereserves/terms":
48
- yield from [
49
- {"name": "Fall 2022", "id": "42093be3-d1e7-4bb6-b2b9-18e153d109b2"},
50
- {"name": "Summer 2022", "id": "415b14a8-c94c-4aa1-a0a8-d397efae343e"},
51
- ]
52
- elif ref_data_path == "/coursereserves/departments":
53
- yield from [
54
- {
55
- "id": "7532e5ab-9812-496c-ab77-4fbb6a7e5dbf",
56
- "name": "Department_t",
57
- "description": "Art & Art History",
58
- },
59
- {
60
- "id": "af7ae6be-c0b2-444d-b76f-4061098d17cd",
61
- "name": "Department_FALLBACK",
62
- "description": "FALLBACK",
63
- },
64
- ]
65
- elif ref_data_path == "/organizations-storage/categories":
66
- yield from [
67
- {"id": "c78640d5-a1ec-4721-9a1f-c6f876d4c179", "value": "Returns"},
68
- {"id": "604c2c9d-ed3a-46cd-bec4-69926c303b22", "value": "Sales"},
69
- {"id": "c5b175bd-34a0-4a4d-9bd9-8eddae8e67f8", "value": "General"},
70
- {"id": "97dcb23df-1aba-444e-b88d-804d17c715a5", "value": "Technical Support"},
71
- {"id": "e193b0d1-4674-4a9e-818b-375f013d963f", "value": "Moral Support"},
72
- ]
73
-
74
- elif ref_data_path == "/organizations-storage/organization-types":
75
- yield from [
76
- {"id": "837d04b6-d81c-4c49-9efd-2f62515999b3", "name": "Consortium"},
77
- {"id": "fc54327d-fd60-4f6a-ba37-a4375511b91b", "name": "Unspecified"},
78
- ]
79
- elif (
80
- ref_data_path == "/organizations-storage/organizations"
81
- and query == '?query=(code=="EBSCO")'
82
- ):
83
- yield from [{"id": "some id", "code": "some code", "name": "EBSCO Information Services"}]
84
-
85
- elif (
86
- ref_data_path == "/organizations-storage/organizations"
87
- and query == '?query=(code=="LisasAwesomeStartup")'
88
- ):
89
- yield from []
90
-
91
- elif ref_data_path == "/organizations-storage/organizations":
92
- yield from [
93
- {"id": "837d04b6-d81c-4c49-9efd-2f62515999b3", "code": "GOBI"},
94
- {"id": "fc54327d-fd60-4f6a-ba37-a4375511b91b", "code": "EBSCO"},
95
- ]
96
-
97
- elif ref_data_path == "/orders/acquisition-methods":
98
- yield from [
99
- {"id": "837d04b6-d81c-4c49-9efd-2f62515999b3", "value": "Purchase"},
100
- {"id": "fc54327d-fd60-4f6a-ba37-a4375511b91b", "value": "Theft"},
101
- {"id": "fc54327d-fd60-4f6a-ba37-a437551sarfs91b", "value": "Other"},
102
- ]
103
-
104
- elif ref_data_path == "/groups":
105
- yield from [
106
- {
107
- "group": "FOLIO fallback group name",
108
- "desc": "Mocked response",
109
- "id": "27ab99d3-0e17-41f0-a20a-99e05acc0e6f",
110
- },
111
- {
112
- "group": "FOLIO group name",
113
- "desc": "Mocked response",
114
- "id": "5fc96cbd-a860-42a7-8d2b-72af30206712",
115
- },
116
- ]
117
- elif ref_data_path == "/departments":
118
- yield from [
119
- {
120
- "id": "12a2ad12-951d-4124-9fb2-58c70f0b7f71",
121
- "name": "FOLIO user department name",
122
- "code": "fdp",
123
- },
124
- {
125
- "id": "12a2ad12-951d-4124-9fb2-58c70f0b7f72",
126
- "name": "FOLIO user department name 2",
127
- "code": "fdp2",
128
- },
129
- {
130
- "id": "2f452d21-507d-4b32-a89d-8ea9753cc946",
131
- "name": "FOLIO fallback user department name",
132
- "code": "fb",
133
- },
134
- ]
135
- elif ref_data_path == "/owners":
136
- yield from [
137
- {
138
- "owner": "The Best Fee Fine Owner",
139
- "desc": "She really is!",
140
- "servicePointOwner": [
141
- {"value": "a77b55e7-f9f3-40a1-83e0-241bc606a826", "label": "lisatest"}
142
- ],
143
- "id": "5abfff3f-50eb-432a-9a43-21f8f7a70194",
144
- },
145
- {
146
- "owner": "The Other Fee Fine Owner",
147
- "desc": "heeey",
148
- "servicePointOwner": [
149
- {"value": "1543c345-dcaf-4367-84a8-853d95837a3b", "label": "lisatest2 :) <3 "}
150
- ],
151
- "id": "62a0eb54-de96-46ee-b184-5be6c8114a19",
152
- },
153
- ]
154
- elif ref_data_path == "/feefines":
155
- yield from [
156
- {
157
- "automatic": False,
158
- "feeFineType": "Coffee spill",
159
- "ownerId": "5abfff3f-50eb-432a-9a43-21f8f7a70194",
160
- "id": "6e8dc178-f667-45cd-90b5-338c78c3a85c",
161
- },
162
- {
163
- "automatic": False,
164
- "feeFineType": "Coffee spill",
165
- "ownerId": "62a0eb54-de96-46ee-b184-5be6c8114a19",
166
- "id": "031836ec-521a-4493-9f76-0e02c2e7d241",
167
- },
168
- {
169
- "automatic": False,
170
- "feeFineType": "Replacement library card",
171
- "ownerId": "5abfff3f-50eb-432a-9a43-21f8f7a70194",
172
- "id": "8936606d-223b-428e-9a70-4b8105f60cdb",
173
- },
174
- {
175
- "automatic": True,
176
- "feeFineType": "Replacement processing fee",
177
- "id": "d20df2fb-45fd-4184-b238-0d25747ffdd9",
178
- },
179
- ]
180
-
181
- elif ref_data_path == "/service-points":
182
- yield from [
183
- {
184
- "id": "finance_office_uuid",
185
- "name": "Finance Office",
186
- "code": "fo",
187
- },
188
- {
189
- "id": "library_main_desk_uuid",
190
- "name": "Library Main Desk",
191
- "code": "lmd",
192
- },
193
- ]
194
-
195
- elif ref_data_path == "/users" and query == '?query=(externalSystemId=="Some external id")':
196
- yield from [{"id": "some id", "barcode": "some barcode", "patronGroup": "some group"}]
197
- elif ref_data_path == "/users" and query == '?query=(barcode=="u123")':
198
- yield from [{"id": "user123", "barcode": "u123", "patronGroup": "some group"}]
199
- elif ref_data_path == "/users" and query == '?query=(barcode=="u456")':
200
- yield from [{"id": "user456", "barcode": "u456", "patronGroup": "some group"}]
201
-
202
- elif ref_data_path == "/inventory/items" and query == '?query=(barcode=="some barcode")':
203
- yield from [
204
- {
205
- "id": "a FOLIO item uuid",
206
- "title": "Döda fallen i Avesta.",
207
- "barcode": "some barcode",
208
- "callNumber": "QB611 .C44",
209
- "materialType": {
210
- "id": "4eea3f27-8910-46fc-9666-e2b44326c2b8",
211
- "name": "sound recording",
212
- },
213
- "effectiveLocation": {
214
- "id": "2e48e713-17f3-4c13-a9f8-23845bb210a4",
215
- "name": "Reading room",
216
- },
217
- }
218
- ]
219
-
220
- elif ref_data_path == "/holdings-note-types":
221
- yield from [
222
- {
223
- "id": "88914775-f677-4759-b57b-1a33b90b24e0",
224
- "name": "Electronic bookplate",
225
- "source": "folio",
226
- "metadata": {
227
- "createdDate": "2024-09-04T01:54:20.719+00:00",
228
- "updatedDate": "2024-09-04T01:54:20.719+00:00"
229
- }
230
- },
231
- {
232
- "id": "c4407cc7-d79f-4609-95bd-1cefb2e2b5c5",
233
- "name": "Copy note",
234
- "source": "folio",
235
- "metadata": {
236
- "createdDate": "2024-09-04T01:54:20.722+00:00",
237
- "updatedDate": "2024-09-04T01:54:20.722+00:00"
238
- }
239
- },
240
- {
241
- "id": "d6510242-5ec3-42ed-b593-3585d2e48fd6",
242
- "name": "Action note",
243
- "source": "folio",
244
- "metadata": {
245
- "createdDate": "2024-09-04T01:54:20.723+00:00",
246
- "updatedDate": "2024-09-04T01:54:20.723+00:00"
247
- }
248
- },
249
- {
250
- "id": "e19eabab-a85c-4aef-a7b2-33bd9acef24e",
251
- "name": "Binding",
252
- "source": "folio",
253
- "metadata": {
254
- "createdDate": "2024-09-04T01:54:20.724+00:00",
255
- "updatedDate": "2024-09-04T01:54:20.724+00:00"
256
- }
257
- },
258
- {
259
- "id": "db9b4787-95f0-4e78-becf-26748ce6bdeb",
260
- "name": "Provenance",
261
- "source": "folio",
262
- "metadata": {
263
- "createdDate": "2024-09-04T01:54:20.725+00:00",
264
- "updatedDate": "2024-09-04T01:54:20.725+00:00"
265
- }
266
- },
267
- {
268
- "id": "6a41b714-8574-4084-8d64-a9373c3fbb59",
269
- "name": "Reproduction",
270
- "source": "folio",
271
- "metadata": {
272
- "createdDate": "2024-09-04T01:54:20.728+00:00",
273
- "updatedDate": "2024-09-04T01:54:20.728+00:00"
274
- }
275
- },
276
- {
277
- "id": "b160f13a-ddba-4053-b9c4-60ec5ea45d56",
278
- "name": "Note",
279
- "source": "folio",
280
- "metadata": {
281
- "createdDate": "2024-09-04T01:54:20.728+00:00",
282
- "updatedDate": "2024-09-04T01:54:20.728+00:00"
283
- }
284
- },
285
- {
286
- "id": "841d1873-015b-4bfb-a69f-6cbb41d925ba",
287
- "name": "Original MARC holdings statements",
288
- "source": "local",
289
- "metadata": {
290
- "createdDate": "2025-05-02T01:54:20.728+00:00",
291
- "updatedDate": "2025-05-02T01:54:20.728+00:00"
292
- }
293
- },
294
- {
295
- "id": "09c1e5c9-6f11-432e-bcbe-b9e733ccce57",
296
- "name": "Original MFHD Record",
297
- "source": "local",
298
- "metadata": {
299
- "createdDate": "2025-05-02T01:54:20.728+00:00",
300
- "updatedDate": "2025-05-02T01:54:20.728+00:00"
301
- }
302
- },
303
- {
304
- "id": "474120b0-d64e-4a6f-9c9c-e7d3e76f3cf5",
305
- "name": "Original MFHD (MARC21)",
306
- "source": "local",
307
- "metadata": {
308
- "createdDate": "2025-05-02T01:54:20.728+00:00",
309
- "updatedDate": "2025-05-02T01:54:20.728+00:00"
310
- }
311
- }
312
- ]
313
-
314
- elif ref_data_path in super_schema:
315
- yield from super_schema.get(ref_data_path)
316
- else:
317
- yield {}
318
-
319
-
320
- def folio_get_single_object_mocked(*args, **kwargs):
321
- with open("./static/reference_data.json", "r") as super_schema_file:
322
- super_schema = json.load(super_schema_file)
323
- if args[0] == "/hrid-settings-storage/hrid-settings":
324
- return {
325
- "instances": {"prefix": "pref", "startNumber": 1},
326
- "holdings": {"prefix": "pref", "startNumber": 1},
327
- "items": {"prefix": "pref", "startNumber": 1},
328
- "commonRetainLeadingZeroes": True,
329
- }
330
-
331
- elif (
332
- args[0] == "/configurations/entries?query=(module==ORG%20and%20configName==localeSettings)"
333
- ):
334
- return {
335
- "configs": [
336
- {
337
- "value": '{"timezone":"America/New_York"}',
338
- }
339
- ]
340
- }
341
-
342
- elif args[0] in super_schema:
343
- return super_schema.get(args[0])
344
-
345
-
346
- def folio_get_from_github(owner, repo, file_path):
347
- return FolioClient.get_latest_from_github(owner, repo, file_path, "")
348
-
349
- OKAPI_URL = "http://localhost:9130"
350
- LIBRARY_NAME = "Test Library"
351
-
352
- def get_mocked_library_config():
353
- return LibraryConfiguration(
354
- okapi_url=OKAPI_URL,
355
- tenant_id="test_tenant",
356
- okapi_username="test_user",
357
- okapi_password="test_password",
358
- base_folder=Path("."),
359
- library_name=LIBRARY_NAME,
360
- log_level_debug=False,
361
- folio_release=FolioRelease.sunflower,
362
- iteration_identifier="test_iteration"
363
- )
364
-
365
- def get_mocked_ecs_central_libarary_config():
366
- return LibraryConfiguration(
367
- okapi_url=OKAPI_URL,
368
- tenant_id="test_tenant",
369
- okapi_username="test_user",
370
- okapi_password="test_password",
371
- base_folder=Path("."),
372
- library_name=LIBRARY_NAME,
373
- log_level_debug=False,
374
- folio_release=FolioRelease.sunflower,
375
- iteration_identifier="central_iteration",
376
- is_ecs=True,
377
- )
378
-
379
- def get_mocked_ecs_member_libarary_config():
380
- return LibraryConfiguration(
381
- okapi_url=OKAPI_URL,
382
- tenant_id="test_tenant",
383
- ecs_tenant_id="test_ecs_tenant",
384
- okapi_username="test_user",
385
- okapi_password="test_password",
386
- base_folder=Path("."),
387
- library_name=LIBRARY_NAME,
388
- log_level_debug=False,
389
- folio_release=FolioRelease.sunflower,
390
- iteration_identifier="member_iteration",
391
- ecs_central_iteration_identifier="central_iteration",
392
- is_ecs=True,
393
- )
394
-
395
- def get_mocked_folder_structure():
396
- mock_fs = MagicMock()
397
- mock_fs.mapping_files = Path("mapping_files")
398
- mock_fs.results_folder = Path("results")
399
- mock_fs.legacy_records_folder = Path("source_files")
400
- mock_fs.logs_folder = Path("logs")
401
- mock_fs.migration_reports_file = Path("/dev/null")
402
- mock_fs.transformation_extra_data_path = Path("transformation_extra_data")
403
- mock_fs.transformation_log_path = Path("/dev/null")
404
- mock_fs.data_issue_file_path = Path("/dev/null")
405
- mock_fs.failed_marc_recs_file = Path("failed_marc_recs.txt")
406
- return mock_fs
@@ -1,67 +0,0 @@
1
- folio_migration_tools/__init__.py,sha256=DXvzUKFSpSZjflFWaNm0L8yhFk0u7RVIvQMskwMmKFc,238
2
- folio_migration_tools/__main__.py,sha256=kfo4iKf3GJD7deh4RvIizKnC4zvIgCpNo-Bs7HBM34s,8453
3
- folio_migration_tools/circulation_helper.py,sha256=iib2p0WGzOcAnwaJppDYiONc-1Jdna66dPAtBmAIuCE,14538
4
- folio_migration_tools/colors.py,sha256=GP0wdI_GZ2WD5SjrbPN-S3u8vvN_u6rGQIBBcWv_0ZM,227
5
- folio_migration_tools/config_file_load.py,sha256=zHHa6NDkN6EJiQE4DgjrFQPVKsd70POsfbGkB8308jg,2822
6
- folio_migration_tools/custom_dict.py,sha256=-FUnhKp90Dg8EHlY6twx-PYQxBUWEO7FgxL2b7pf-xk,678
7
- folio_migration_tools/custom_exceptions.py,sha256=1zgOKy3NBUVGG6i9YxK6w2Hntlea8MHmm7mdnjBtzvQ,2687
8
- folio_migration_tools/extradata_writer.py,sha256=fuchNcMc6BYb9IyfAcvXg7X4J2TfX6YiROfT2hr0JMw,1678
9
- folio_migration_tools/folder_structure.py,sha256=bZlmKGtxdytWcqjnM2lE4Vpx4nHyYRk7CNL1tZhLtXY,6917
10
- folio_migration_tools/helper.py,sha256=iWQhdcuzbGzVpEAiHQczO4hdhIH_iciLEp1SCGDynMI,2983
11
- folio_migration_tools/holdings_helper.py,sha256=yJpz6aJrKRBiJ1MtT5bs2vXAc88uJuGh2_KDuCySOKc,7559
12
- folio_migration_tools/i18n_config.py,sha256=3AH_2b9zTsxE4XTe4isM_zYtPJSlK0ix6eBmV7kAYUM,228
13
- folio_migration_tools/library_configuration.py,sha256=LzICsZQdOkXwIqdDfh59x0-Cx77Lb18qVnWroNqekS8,7046
14
- folio_migration_tools/mapper_base.py,sha256=IYER8Dq-4qLq3qiAvUpnzc33usUbfZtNKzyZJD6DNds,23567
15
- folio_migration_tools/mapping_file_transformation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
16
- folio_migration_tools/mapping_file_transformation/courses_mapper.py,sha256=yX8yCCw6B54r7JUn5IPhMYKBgImiagUzfwBxNVRf5MQ,8091
17
- folio_migration_tools/mapping_file_transformation/holdings_mapper.py,sha256=qT8LMWZytSaOyUC9OzfJeekVIkLkNim4OzfoGlAh75g,8290
18
- folio_migration_tools/mapping_file_transformation/item_mapper.py,sha256=ZmPc64X_l3hq8qc0WDhZ020TdjvucZoQciIVIpPzwiA,10472
19
- folio_migration_tools/mapping_file_transformation/manual_fee_fines_mapper.py,sha256=2-W2Z8hwAhWT77zfDWuwWqm20j4w1mfzeAXWiyssQ8I,13434
20
- folio_migration_tools/mapping_file_transformation/mapping_file_mapper_base.py,sha256=LqxpULlickaQhIv92iBA7SwSXy1PN7l-9swLHQdnx6g,38408
21
- folio_migration_tools/mapping_file_transformation/notes_mapper.py,sha256=vCmZmjrjyYtXeFCyVqvWfnP8y1jGGu15RXzXIHh12xY,3530
22
- folio_migration_tools/mapping_file_transformation/order_mapper.py,sha256=-JEBEeOntNPE9-NYhWAJ1hpQI03ZzMv-_mkyLzSa9x4,17750
23
- folio_migration_tools/mapping_file_transformation/organization_mapper.py,sha256=u1Lb6tApn-nVLqbbJV38BuipKL3OK8Y2uQ4ogoyGQaI,14639
24
- folio_migration_tools/mapping_file_transformation/ref_data_mapping.py,sha256=qFsn_LwKZeKFdOudfEQnNA3DEHOdNQVKzTPdZAlDPX0,8864
25
- folio_migration_tools/mapping_file_transformation/user_mapper.py,sha256=LJTj2F2dRKqyI37Ww0gY1AHLLT3dqyuKkY_RS_3-rg0,8543
26
- folio_migration_tools/marc_rules_transformation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
27
- folio_migration_tools/marc_rules_transformation/conditions.py,sha256=F78a70HXcDLnOXDs_vSTdgf4opMWHzXzOjvpWlOh4PM,47719
28
- folio_migration_tools/marc_rules_transformation/holdings_statementsparser.py,sha256=gM0ETZVVih35cSSpOBXA8wrBFhq2oeYaGsD89tnSNJs,13433
29
- folio_migration_tools/marc_rules_transformation/hrid_handler.py,sha256=SgnSYeNR0z_qarkizBMWZZWr8tOPZJ4fvlZjlM3nJOU,9999
30
- folio_migration_tools/marc_rules_transformation/loc_language_codes.xml,sha256=ztn2_yKws6qySL4oSsZh7sOjxq5bCC1PhAnXJdtgmJ0,382912
31
- folio_migration_tools/marc_rules_transformation/marc_file_processor.py,sha256=QhVbJSlsWkGQgUo7ZVmQvlwpEN20Tyon_kzrZOWECoE,12549
32
- folio_migration_tools/marc_rules_transformation/marc_reader_wrapper.py,sha256=9ATjYMRAjy0QcXtmNZaHVhHLJ5hE1WUgOcF6KMJjbgo,5309
33
- folio_migration_tools/marc_rules_transformation/rules_mapper_authorities.py,sha256=PGt2w8h2pj8_8sGjQe3L-odFDlquURtKnoNFRWQB3GI,9621
34
- folio_migration_tools/marc_rules_transformation/rules_mapper_base.py,sha256=loNZ9gEYaAwjkP2_wLlXGedjWvSdHoGF_oJN9g6gI3s,45928
35
- folio_migration_tools/marc_rules_transformation/rules_mapper_bibs.py,sha256=RD46EzS0NQArn5LCGbrxDm9vbbW9PO_6iNUQwJBAbSg,30364
36
- folio_migration_tools/marc_rules_transformation/rules_mapper_holdings.py,sha256=ZgyDxmNE7LwW8Cd55wRIEE-u6iyMKCRRXdq2ZRjm2nc,28779
37
- folio_migration_tools/migration_report.py,sha256=BkRspM1hwTBnWeqsHamf7yVEofzLj560Q-9G--O00hw,4258
38
- folio_migration_tools/migration_tasks/__init__.py,sha256=ZkbY_yGyB84Ke8OMlYUzyyBj4cxxNrhMTwQlu_GbdDs,211
39
- folio_migration_tools/migration_tasks/authority_transformer.py,sha256=AoXg9s-GLO3yEEDCrQV7hc4YVXxwxsdxDdpj1zhHydE,4251
40
- folio_migration_tools/migration_tasks/batch_poster.py,sha256=Oc04VXIs-D8HzvKDtFR3evGVuPZmw35iWyUyOnpP-RE,50410
41
- folio_migration_tools/migration_tasks/bibs_transformer.py,sha256=46d44pcDAodFXDYbrTCMRASISbDciXmA0CXYfhP2IaE,6298
42
- folio_migration_tools/migration_tasks/courses_migrator.py,sha256=CzXnsu-KGP7B4zcINJzLYUqz47D16NuFfzu_DPqRlTQ,7061
43
- folio_migration_tools/migration_tasks/holdings_csv_transformer.py,sha256=-lMsQCkxVj2kFa0awf0_wsD5do1hbRhUqIu4p0UiRNk,21955
44
- folio_migration_tools/migration_tasks/holdings_marc_transformer.py,sha256=c_ruhOgidyJdSnnRwWUs3wwFMiLqbVMPOhhCaYuH_TI,14343
45
- folio_migration_tools/migration_tasks/items_transformer.py,sha256=oTbFX2saF7-ZCb1mO3baLvODnBSEbbN5F_GtSth3iG4,19755
46
- folio_migration_tools/migration_tasks/loans_migrator.py,sha256=PF8DNpGKsppSDr7wX96Ao13UTFu6dl9cz2URLqSsOzE,40052
47
- folio_migration_tools/migration_tasks/manual_fee_fines_transformer.py,sha256=CnmlTge7nChUJ10EiUkriQtJlVxWqglgfhjgneh2_yM,7247
48
- folio_migration_tools/migration_tasks/migration_task_base.py,sha256=Q-57h6rmt74bC9LidA9ZoagEcwVd_ytq8IUWelVOm2E,22521
49
- folio_migration_tools/migration_tasks/orders_transformer.py,sha256=6SnzU_rUTu2B5hQykI2nRA7vI1rg-uxuF9Ncupe0AEY,14302
50
- folio_migration_tools/migration_tasks/organization_transformer.py,sha256=Kuxkh1sKyUVBqm5qAK1Jrq-4xcyNz2JPZvvFRqfwI8s,16922
51
- folio_migration_tools/migration_tasks/requests_migrator.py,sha256=QP9OBezC3FfcKpI78oMmydxcPaUIYAgHyKevyLwC-WQ,14841
52
- folio_migration_tools/migration_tasks/reserves_migrator.py,sha256=4sSPer6_6yMwiiY1VYJmYZske_Ah1XG4KAM3NDadPhg,9952
53
- folio_migration_tools/migration_tasks/user_transformer.py,sha256=aylrMC9n47fdStgsNfW4ZbJh2E4FDSPypsaNv52ynKc,12330
54
- folio_migration_tools/task_configuration.py,sha256=73OWc8TX--fwPRptv3eQVEVv0-XmNaZcb3m__1HENSA,1161
55
- folio_migration_tools/test_infrastructure/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
56
- folio_migration_tools/test_infrastructure/mocked_classes.py,sha256=BurU3NGU_Q8as_BGmW98q9O6bujZDkOfFmvKKdVw9t8,15056
57
- folio_migration_tools/transaction_migration/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
58
- folio_migration_tools/transaction_migration/legacy_loan.py,sha256=sLw2fCBao1VWZykOx-BWpMndLHjJNj-HJZFYqbpVV5A,7561
59
- folio_migration_tools/transaction_migration/legacy_request.py,sha256=1ulyFzPQw_InOjyPzkWpGnNptgXdQ18nmri0J8Nlpkc,6124
60
- folio_migration_tools/transaction_migration/legacy_reserve.py,sha256=qzw0okg4axAE_ezXopP9gFsQ_e60o0zh7zqRzFBSWHY,1806
61
- folio_migration_tools/transaction_migration/transaction_result.py,sha256=cTdCN0BnlI9_ZJB2Z3Fdkl9gpymIi-9mGZsRFlQcmDk,656
62
- folio_migration_tools/translations/en.json,sha256=6IpYYNFCtQoXACndPM0d1Oa25GYuaF-G-b4YpzTjQH0,41656
63
- folio_migration_tools-1.9.9.dist-info/METADATA,sha256=oxsbwwpobooctgBeN52dRpbqhALQw4FB6D-zq-0Mwso,7471
64
- folio_migration_tools-1.9.9.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
65
- folio_migration_tools-1.9.9.dist-info/entry_points.txt,sha256=Hbe-HjqMcU8FwVshVIkeWyZd9XwgT1CCMNf06EpHQu8,77
66
- folio_migration_tools-1.9.9.dist-info/licenses/LICENSE,sha256=PhIEkitVi3ejgq56tt6sWoJIG_zmv82cjjd_aYPPGdI,1072
67
- folio_migration_tools-1.9.9.dist-info/RECORD,,
@@ -1,4 +0,0 @@
1
- Wheel-Version: 1.0
2
- Generator: poetry-core 2.2.1
3
- Root-Is-Purelib: true
4
- Tag: py3-none-any
@@ -1,3 +0,0 @@
1
- [console_scripts]
2
- folio-migration-tools=folio_migration_tools.__main__:main
3
-
@@ -1,21 +0,0 @@
1
- MIT License
2
-
3
- Copyright (c) 2018 Theodor Tolstoy
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.