linkture 2.6.4__py3-none-any.whl → 3.1.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.
- linkture/__main__.py +14 -11
- linkture/linkture.py +34 -9
- linkture/res/resources.db +0 -0
- {linkture-2.6.4.dist-info → linkture-3.1.0.dist-info}/METADATA +20 -13
- linkture-3.1.0.dist-info/RECORD +10 -0
- linkture-2.6.4.dist-info/RECORD +0 -10
- {linkture-2.6.4.dist-info → linkture-3.1.0.dist-info}/WHEEL +0 -0
- {linkture-2.6.4.dist-info → linkture-3.1.0.dist-info}/entry_points.txt +0 -0
- {linkture-2.6.4.dist-info → linkture-3.1.0.dist-info}/licenses/LICENSE +0 -0
linkture/__main__.py
CHANGED
@@ -34,14 +34,6 @@ from ast import literal_eval
|
|
34
34
|
def main(args):
|
35
35
|
|
36
36
|
def switchboard(text):
|
37
|
-
if args['cc']:
|
38
|
-
return s.code_chapter(args['cc'])
|
39
|
-
elif args['cv']:
|
40
|
-
return s.code_verse(args['cv'])
|
41
|
-
elif args['sc']:
|
42
|
-
return s.serial_chapter_number(args['sc'])
|
43
|
-
elif args['sv']:
|
44
|
-
return s.serial_verse_number(args['sv'])
|
45
37
|
if args['l'] is not None:
|
46
38
|
prefix = '<a href="'
|
47
39
|
suffix = '">'
|
@@ -80,7 +72,17 @@ def main(args):
|
|
80
72
|
else:
|
81
73
|
txt = args['r']
|
82
74
|
|
83
|
-
if
|
75
|
+
if args['cc']:
|
76
|
+
txt = s.code_chapter(args['cc'])
|
77
|
+
elif args['cv']:
|
78
|
+
txt = s.code_verse(args['cv'])
|
79
|
+
elif args['sv']:
|
80
|
+
txt = s.serial_verse_number(args['sv'])
|
81
|
+
elif args['sc']:
|
82
|
+
txt = s.serial_chapter_number(args['sc'])
|
83
|
+
elif args['bn']:
|
84
|
+
txt = s.book_name(args['bn'])
|
85
|
+
elif txt:
|
84
86
|
txt = switchboard(txt)
|
85
87
|
else:
|
86
88
|
print(parser.format_help())
|
@@ -125,9 +127,10 @@ tpe.add_argument('-x', action='store_true', help='extract list of scripture refe
|
|
125
127
|
aux_group = parser.add_argument_group('auxiliary functions')
|
126
128
|
aux = aux_group.add_mutually_exclusive_group(required=False)
|
127
129
|
aux.add_argument('-sc', metavar=('BCV'), help='return the serial number (1-1189) of the chapter with code "BCV" ("bbcccvvv")')
|
128
|
-
aux.add_argument('-sv', metavar=('BCV'), help='return the serial number (1-
|
129
|
-
aux.add_argument('-cc', metavar=('chapter'), help='return the BCV range for serial chapter number "chapter" (integer value)')
|
130
|
+
aux.add_argument('-sv', metavar=('BCV'), help='return the serial number (1-31194) of the verse with code "BCV" ("bbcccvvv")')
|
130
131
|
aux.add_argument('-cv', metavar=('verse'), help='return the BCV code for serial verse number "verse" (integer value)')
|
132
|
+
aux.add_argument('-cc', metavar=('chapter'), help='return the BCV range for serial chapter number "chapter" (integer value)')
|
133
|
+
aux.add_argument('-bn', metavar=('book'), help='return the name of book number "book" (integer value)')
|
131
134
|
|
132
135
|
args = parser.parse_args()
|
133
136
|
main(vars(args))
|
linkture/linkture.py
CHANGED
@@ -27,7 +27,7 @@
|
|
27
27
|
"""
|
28
28
|
|
29
29
|
__app__ = 'linkture'
|
30
|
-
__version__ = '
|
30
|
+
__version__ = 'v3.1.0'
|
31
31
|
|
32
32
|
|
33
33
|
import json, regex, sqlite3
|
@@ -98,6 +98,7 @@ class Scriptures():
|
|
98
98
|
self._ranges = pd.read_sql_query("SELECT * FROM Ranges;", con)
|
99
99
|
self._verses = pd.read_sql_query("SELECT * FROM Verses;", con)
|
100
100
|
self._chapters = pd.read_sql_query("SELECT * FROM Chapters;", con)
|
101
|
+
self._headings = (3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 37, 38, 39, 40, 41, 42, 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, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 92, 98, 100, 101, 102, 103, 108, 109, 110, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 138, 139, 140, 141, 142, 143, 144, 145)
|
101
102
|
cur.close()
|
102
103
|
con.close()
|
103
104
|
self._reported = []
|
@@ -359,7 +360,10 @@ class Scriptures():
|
|
359
360
|
if not validate(book, c, v):
|
360
361
|
return None, 0
|
361
362
|
ch1 = c.zfill(3)
|
362
|
-
|
363
|
+
if book == 19 and int(c) in self._headings: # some chapters start at verse 0
|
364
|
+
v1 = '000'
|
365
|
+
else:
|
366
|
+
v1 = '001'
|
363
367
|
|
364
368
|
c = result.group(2)
|
365
369
|
if not validate(book, c, v):
|
@@ -390,7 +394,10 @@ class Scriptures():
|
|
390
394
|
if not validate(book, c, v):
|
391
395
|
return None, 0
|
392
396
|
ch1 = c.zfill(3)
|
393
|
-
|
397
|
+
if book == 19 and int(c) in self._headings: # some chapters start at verse 0
|
398
|
+
v1 = '000'
|
399
|
+
else:
|
400
|
+
v1 = '001'
|
394
401
|
v2 = str(self._ranges.loc[(self._ranges.Book == book) & (self._ranges.Chapter == int(ch1)), ['Last']].values[0][0]).zfill(3)
|
395
402
|
return (b+ch1+v1, b+ch1+v2), None
|
396
403
|
else:
|
@@ -456,7 +463,13 @@ class Scriptures():
|
|
456
463
|
return None, '', 0, False
|
457
464
|
se = self._ranges.loc[(self._ranges.Book == sb) & (self._ranges.Chapter == sc), ['Last']].values[0][0]
|
458
465
|
le = self._ranges.loc[(self._ranges.Book == sb) & (self._ranges.Chapter == ec), ['Last']].values[0][0]
|
459
|
-
|
466
|
+
minsv = minev = 1
|
467
|
+
if sb == 19:
|
468
|
+
if sc in self._headings: # some chapters start at verse 0
|
469
|
+
minsv = 0
|
470
|
+
if ec in self._headings:
|
471
|
+
minev = 0
|
472
|
+
if not ((minsv <= sv <= se) & (minev <= ev <= le)): # verse(s) out of range
|
460
473
|
return None, '', 0, False
|
461
474
|
bk_name = self._tr_book_names[sb]
|
462
475
|
if book == bk_name:
|
@@ -532,7 +545,8 @@ class Scriptures():
|
|
532
545
|
return scriptures
|
533
546
|
|
534
547
|
|
535
|
-
def link_scriptures(self, text, prefix='<a href=', suffix='>'):
|
548
|
+
def link_scriptures(self, text, prefix='<a href=', suffix='>'):
|
549
|
+
# this always rewrites (full by default); if rewrite not desired, get code the scripture and build your own link
|
536
550
|
|
537
551
|
def convert_range(bcv_range):
|
538
552
|
if not bcv_range:
|
@@ -574,6 +588,13 @@ class Scriptures():
|
|
574
588
|
return regex.sub(self._tagged, r1, text).replace('»»|', '{{').replace('|««', '}}')
|
575
589
|
|
576
590
|
|
591
|
+
def book_name(self, num):
|
592
|
+
try:
|
593
|
+
return self._tr_book_names[int(num)]
|
594
|
+
except:
|
595
|
+
self._error_report(num, 'OUT OF RANGE')
|
596
|
+
return None
|
597
|
+
|
577
598
|
def serial_chapter_number(self, bcv):
|
578
599
|
try:
|
579
600
|
return int(self._chapters.loc[(self._chapters['Book'] == int(bcv[0:2])) & (self._chapters['Chapter'] == int(bcv[2:5]))].values[0][0])
|
@@ -583,7 +604,7 @@ class Scriptures():
|
|
583
604
|
|
584
605
|
def serial_verse_number(self, bcv):
|
585
606
|
try:
|
586
|
-
return int(self._verses.loc[(self._verses['Book'] == int(bcv[0:2])) & (self._verses['Chapter'] == int(bcv[2:5])) & (self._verses['Verse'] == int(bcv[5:]))].values[0][0])
|
607
|
+
return int(self._verses.loc[(self._verses['Book'] == int(bcv[0:2])) & (self._verses['Chapter'] == int(bcv[2:5])) & (self._verses['Verse'] == int(bcv[5:]))].values[0][0]) + 1
|
587
608
|
except:
|
588
609
|
self._error_report(bcv, 'OUT OF RANGE')
|
589
610
|
return None
|
@@ -592,8 +613,12 @@ class Scriptures():
|
|
592
613
|
try:
|
593
614
|
book, chapter = self._chapters[self._chapters['ChapterId'] == int(chapter)].values[0][1:]
|
594
615
|
last = self._ranges.loc[(self._ranges.Book == book) & (self._ranges.Chapter == chapter), ['Last']].values[0][0]
|
595
|
-
|
596
|
-
|
616
|
+
bc = str(book).zfill(2) + str(chapter).zfill(3)
|
617
|
+
if book == 19 and chapter in self._headings: # some chapters start at verse 0
|
618
|
+
v = '000'
|
619
|
+
else:
|
620
|
+
v = '001'
|
621
|
+
return f"('{bc}{v}', '{bc}{str(last).zfill(3)}')"
|
597
622
|
except:
|
598
623
|
self._error_report(chapter, 'OUT OF RANGE')
|
599
624
|
return None
|
@@ -601,7 +626,7 @@ class Scriptures():
|
|
601
626
|
def code_verse(self, verse):
|
602
627
|
bcv = ''
|
603
628
|
try:
|
604
|
-
for i in self._verses[self._verses['VerseId'] == int(verse)].values[0][1:]:
|
629
|
+
for i in self._verses[self._verses['VerseId'] == int(verse)-1].values[0][1:]:
|
605
630
|
bcv += str(i).zfill(3)
|
606
631
|
return f"('{bcv[1:]}', '{bcv[1:]}')"
|
607
632
|
except:
|
linkture/res/resources.db
CHANGED
Binary file
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: linkture
|
3
|
-
Version:
|
3
|
+
Version: 3.1.0
|
4
4
|
Summary: PARSE and PROCESS BIBLE SCRIPTURE REFERENCES: extract, tag, link, rewrite, translate, BCV-encode and decode
|
5
5
|
Keywords: bible,scriptures,scripture-references,scripture-translation,scripture-parser,scripture-linker
|
6
6
|
Author-Email: "Eryk J." <infiniti@inventati.org>
|
@@ -23,7 +23,7 @@ Requires-Dist: setuptools>=59.6.0
|
|
23
23
|
Requires-Dist: argparse>=1.4.0
|
24
24
|
Requires-Dist: regex>=2023.8.8
|
25
25
|
Requires-Dist: unidecode>=1.3.8
|
26
|
-
Requires-Dist: pandas==2.2
|
26
|
+
Requires-Dist: pandas==2.2.*
|
27
27
|
Requires-Dist: pathlib>=1.0.1
|
28
28
|
Description-Content-Type: text/markdown
|
29
29
|
|
@@ -58,7 +58,7 @@ usage: linkture.py [-h] [-v] [-q] [-f in-file | -r reference] [-o out-file]
|
|
58
58
|
[--translate {Cebuano,Chinese,Danish,Dutch,English,Ewe,French,German,Greek,Hungarian,Italian,Japanese,Korean,Norwegian,Polish,Portuguese,Russian,Spanish,Tagalog,Ukrainian}]
|
59
59
|
[-s separator] [-u] [--full | --official | --standard]
|
60
60
|
[-c | -d | -l [prefix [suffix ...]] | -t | -x]
|
61
|
-
[-sc BCV | -sv BCV | -cc chapter | -
|
61
|
+
[-sc BCV | -sv BCV | -cv verse | -cc chapter | -bn book]
|
62
62
|
|
63
63
|
PARSE and PROCESS BIBLE SCRIPTURE REFERENCES: extract, tag, link, rewrite, translate, BCV-encode and decode.
|
64
64
|
See README for more information
|
@@ -100,9 +100,10 @@ type of conversion:
|
|
100
100
|
|
101
101
|
auxiliary functions:
|
102
102
|
-sc BCV return the serial number (1-1189) of the chapter with code "BCV" ("bbcccvvv")
|
103
|
-
-sv BCV return the serial number (1-
|
104
|
-
-
|
105
|
-
-
|
103
|
+
-sv BCV return the serial number (1-31194) of the verse with code "BCV" ("bbcccvvv")
|
104
|
+
-cv verse return the BCV code for serial verse number "verse" (integer)
|
105
|
+
-cc chapter return the BCV range for serial chapter number "chapter" (integer)
|
106
|
+
-bn book return the name of book number "book" (integer)
|
106
107
|
```
|
107
108
|
|
108
109
|
Some examples:
|
@@ -144,22 +145,25 @@ $ python3 -m linkture -r "Mat 17:17; Paul 3:16, 17" --full -x
|
|
144
145
|
$ python3 -m linkture -cc 2
|
145
146
|
('01002001', '01002025')
|
146
147
|
|
147
|
-
$ python3 -m linkture -cv
|
148
|
+
$ python3 -m linkture -cv 31194
|
148
149
|
('66022021', '66022021')
|
149
150
|
|
150
151
|
$ python3 -m linkture -sv '01001001'
|
151
152
|
1
|
152
153
|
|
153
|
-
python3 -m linkture -sc '66022001'
|
154
|
+
$ python3 -m linkture -sc '66022001'
|
154
155
|
1189
|
155
156
|
|
157
|
+
$ python3 -m linkture -bn 3 --official
|
158
|
+
Le
|
156
159
|
|
157
|
-
python3 -m linkture -
|
160
|
+
$ python3 -m linkture -bn 3 --translate German
|
161
|
+
3. Mose
|
162
|
+
|
163
|
+
$ python3 -m linkture -r '2Ti 3:16, 17' --full -s '_'
|
158
164
|
2_Timothy_3:16,_17
|
159
165
|
```
|
160
166
|
|
161
|
-
**Note**: The serial verse options (`-sv` and `-cv`) *do not* count Psalm headings as separate verses.
|
162
|
-
|
163
167
|
Of course, you can pass a whole text file to parse and process using the `-f in_file` flag, instead of `-r "references"`. And you can output to another text file (instead of the terminal) using `-o out_file`.
|
164
168
|
|
165
169
|
Unless you use `-q`, you will see in the terminal any out-of-range errors encountered while parsing. Of course, these entries will not be processed, but they will not affect the rest of the operation.
|
@@ -195,13 +199,16 @@ i = s.serial_chapter_number(ch_bcv)
|
|
195
199
|
# returns the serial number (1-1189) of the chapter identified by the provided BCV-format string; verse digits irrelevant
|
196
200
|
|
197
201
|
i = s.serial_verse_number(vs_bcv)
|
198
|
-
# returns the serial number (1-
|
202
|
+
# returns the serial number (1-31194) of the verse identified by the provided BCV-format string
|
203
|
+
|
204
|
+
book = s.book_name(i)
|
205
|
+
# returns the book name indicated by the provided integer (1-66)
|
199
206
|
|
200
207
|
ch_bcv = s.code_chapter(i)
|
201
208
|
# returns a BCV-format range string for the whole chapter indicated by the provided integer (1-1189)
|
202
209
|
|
203
210
|
vs_bcv = s.code_verse(i)
|
204
|
-
# returns a BCV-format range string for the verse indicated by the provided integer (1-
|
211
|
+
# returns a BCV-format range string for the verse indicated by the provided integer (1-31194)
|
205
212
|
```
|
206
213
|
|
207
214
|
Parameters:
|
@@ -0,0 +1,10 @@
|
|
1
|
+
linkture-3.1.0.dist-info/METADATA,sha256=8VfrvN7KiGAqo4JYbOY9iCqWhmc98dDL6oINGA9JGmY,11561
|
2
|
+
linkture-3.1.0.dist-info/WHEEL,sha256=thaaA2w1JzcGC48WYufAs8nrYZjJm8LqNfnXFOFyCC4,90
|
3
|
+
linkture-3.1.0.dist-info/entry_points.txt,sha256=6OYgBcLyFCUgeqLgnvMyOJxPCWzgy7se4rLPKtNonMs,34
|
4
|
+
linkture-3.1.0.dist-info/licenses/LICENSE,sha256=kPqKoVmo3Tx1HgQvqfjBZuYkjT1mZXnQ5R0KBbEeFfs,1064
|
5
|
+
linkture/__init__.py,sha256=-CsRDvXLUig8T6RvwkktRP8e8DWrpjlyqBcw26kOv1E,47
|
6
|
+
linkture/__main__.py,sha256=PqBZo9fvwbPT4rGeUOm3Hm0gsaNp3vSe5Y2py3LSa6o,6607
|
7
|
+
linkture/linkture.py,sha256=-HYl52SoUFg8XCgwy7tUXWwPuFcf2akSMPotkKrgGvM,25217
|
8
|
+
linkture/res/custom.json,sha256=qlpTEux2w7kb-w9ZimDqTLhnB0Eyy1Mj3zfbQ1sxKvg,2046
|
9
|
+
linkture/res/resources.db,sha256=0l6lUJB5p4cQ6YpnIn9rDTnmbiZGSKb6k3OKNZmVF7M,569344
|
10
|
+
linkture-3.1.0.dist-info/RECORD,,
|
linkture-2.6.4.dist-info/RECORD
DELETED
@@ -1,10 +0,0 @@
|
|
1
|
-
linkture-2.6.4.dist-info/METADATA,sha256=2fsK7M6RTXzEdven47AXhrDPcUTWS5d1P8ffgLPGuzw,11404
|
2
|
-
linkture-2.6.4.dist-info/WHEEL,sha256=thaaA2w1JzcGC48WYufAs8nrYZjJm8LqNfnXFOFyCC4,90
|
3
|
-
linkture-2.6.4.dist-info/entry_points.txt,sha256=6OYgBcLyFCUgeqLgnvMyOJxPCWzgy7se4rLPKtNonMs,34
|
4
|
-
linkture-2.6.4.dist-info/licenses/LICENSE,sha256=kPqKoVmo3Tx1HgQvqfjBZuYkjT1mZXnQ5R0KBbEeFfs,1064
|
5
|
-
linkture/__init__.py,sha256=-CsRDvXLUig8T6RvwkktRP8e8DWrpjlyqBcw26kOv1E,47
|
6
|
-
linkture/__main__.py,sha256=K1TDrBlT-_N_-iWpjOK_XW2rdm_IRiI7aWyKbFcdFxg,6478
|
7
|
-
linkture/linkture.py,sha256=hT1YuJRhXnB8PMWVsIca-P80PBoAn5O6W9RfvMf9hPE,23779
|
8
|
-
linkture/res/custom.json,sha256=qlpTEux2w7kb-w9ZimDqTLhnB0Eyy1Mj3zfbQ1sxKvg,2046
|
9
|
-
linkture/res/resources.db,sha256=9yD2RK1DOevcBnq9dEXpEyjZpln0enew4rpPr5fjoEQ,589824
|
10
|
-
linkture-2.6.4.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|