forked from TorahBibleCodes/TorahBibleCodes
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmod_3A4_TextFilePreprocess_Koren_FixLines.py
More file actions
89 lines (59 loc) · 2.82 KB
/
Copy pathmod_3A4_TextFilePreprocess_Koren_FixLines.py
File metadata and controls
89 lines (59 loc) · 2.82 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
## IMPORT MODULES
## FUNCTION () #3A4 - TEXT FILE PREPROCESS - FIX LINES ##
def fn_FixLines(ListOfTupleKeysForKoren, ListOfWordsForEachLine):
"""
## MODULE.FUNCTION() #3A4 - TEXT FILE PREPROCESS - FIX LINES; ## RETURNS DictOfVersesForKoren
"""
## TEST PRINT OUTPUT
print("\n") ## PRINT SPACE
print("WITHIN FUNCTION: BEGIN FUNCTION #3A4 - TEXT FILE PREPROCESS - FIX LINES")
## DECLARE VARIABLES
DictOfVersesForKoren = {}
ZippedTuple = tuple(zip(ListOfTupleKeysForKoren, ListOfWordsForEachLine))
## BEGIN FOR LOOP - FOR EACH ZIPPED TUPLE
for EachTuple in ZippedTuple:
## BEGIN IF / ELSE
## IF TUPLE KEY ALREADY EXISTS IN DICT (BOOK#, CHAPTER#, VERSE#)
if EachTuple[0] in DictOfVersesForKoren.keys(): ## (1,1,1) ## (1, 50, 26)
## GET CURRENT VALUE IN DICT ITEM
ListOfWords = DictOfVersesForKoren[EachTuple[0]] ## ['WYMT', 'YWSP', 'BN', 'M)H', 'W($R', '$NYM', 'WYXN+W', ')TW', 'WYY$M', 'B)RWN', 'BMCRYM', '']
## EXTEND THAT LIST WITH THE NEXT LINE
ListOfWords.extend(EachTuple[1])
## ELSE IF NOT YET IN DICT
else:
## CREATE NEW TUPLE KEY IN DICT (BOOK#, CHAPTER#, VERSE#) TOGETHER WITH ITS VALUE
DictOfVersesForKoren[EachTuple[0]] = EachTuple[1]
## END IF / ELSE
## END FOR LOOP - FOR EACH ZIPPED TUPLE
## BEGIN FOR LOOP - DELETE LAST ELEMENT (LIST) IF BLANK
for k, v in list(DictOfVersesForKoren.items()):
## IF KEY IS NOT A 3-INTEGER TUPLE-KEY, THEN DELETE - e.g. ()
if len(k) != 3:
## TEST PRINT OUTPUT
## print(k) ## SHOULD NOT PRINT IF ALL OK
## DELETE KEY
del(DictOfVersesForKoren[k])
## print(f"len(DictOfVersesForKoren) : {len(DictOfVersesForKoren)}")
## BEGIN FOR LOOP - DELETE LAST ELEMENT (LETTER) IF BLANK
for k, v in DictOfVersesForKoren.items():
## BEGIN IF / ELSE - IF LIST NOT EMPTY
## IF NOT THE EMPTY LIST AT THE END
if v != []:
## print(f"EachListOfWords : {v}")
## BEGIN IF / ELSE
## IF THE LAST ELEMENT IN LIST IS BLANK STRING / EMPTY
if v[-1] == '':
## DELETE LAST ELEMENT IN LIST OF WORDS IF BLANK STRING / EMPTY
del(v[-1])
## END IF / ELSE
## END IF / ELSE - IF LIST NOT EMPTY
## ELSE - DELETE LAST ELEMENT (LIST) IN LIST OF LISTS OF WORDS IF EMPTY
elif v == []:
## SHOULD DELETE ONLY THE LAST BLANK LIST
del(v)
## END FOR LOOP - DELETE LAST ELEMENT IF BLANK
## TEST PRINT OUTPUT
print("\n") ## PRINT SPACE
print("WITHIN FUNCTION: END FUNCTION #3A4 - TEXT FILE PREPROCESS - FIX LINES")
## RETURN VARIABLES TO PROGRAM
return(DictOfVersesForKoren)