Files
kjvstudy.org/scripts/generate_reformed_crossrefs.py

167 lines
4.6 KiB
Python

#!/usr/bin/env python3
"""
Generate Reformed-focused cross-references for KJV Study.
This script helps identify and organize cross-references based on
Reformed theological themes and doctrines.
"""
import json
from pathlib import Path
# Key Reformed Theological Themes
REFORMED_THEMES = {
"total_depravity": {
"description": "Human inability and the effects of sin",
"key_verses": [
"Romans 3:10-12",
"Romans 3:23",
"Ephesians 2:1-3",
"Genesis 6:5",
"Jeremiah 17:9",
"John 6:44",
"1 Corinthians 2:14",
"Romans 8:7-8",
]
},
"unconditional_election": {
"description": "God's sovereign choice in salvation",
"key_verses": [
"Ephesians 1:4-5",
"Romans 9:11-16",
"2 Thessalonians 2:13",
"Acts 13:48",
"John 15:16",
"Romans 8:29-30",
"2 Timothy 1:9",
]
},
"particular_redemption": {
"description": "Christ died for His elect/sheep",
"key_verses": [
"John 10:11",
"John 10:15",
"Matthew 1:21",
"Ephesians 5:25",
"Acts 20:28",
"John 17:9",
]
},
"irresistible_grace": {
"description": "Effectual calling and regeneration",
"key_verses": [
"John 6:37",
"John 6:44-45",
"Acts 16:14",
"Ezekiel 36:26-27",
"1 Peter 1:3",
"2 Corinthians 4:6",
"Philippians 2:13",
]
},
"perseverance_saints": {
"description": "Eternal security and preservation",
"key_verses": [
"John 10:27-29",
"Romans 8:38-39",
"Philippians 1:6",
"1 Peter 1:5",
"Jude 1:24",
"Romans 8:29-30",
]
},
"sovereignty_god": {
"description": "God's absolute sovereignty over all things",
"key_verses": [
"Daniel 4:35",
"Ephesians 1:11",
"Proverbs 16:9",
"Proverbs 21:1",
"Isaiah 46:10",
"Romans 9:18-21",
"Acts 4:27-28",
]
},
"covenant_grace": {
"description": "Covenant theology and promises",
"key_verses": [
"Genesis 17:7",
"Jeremiah 31:31-33",
"Hebrews 8:6-13",
"2 Corinthians 3:6",
"Galatians 3:15-18",
"Luke 22:20",
]
},
"justification_faith": {
"description": "Justification by faith alone",
"key_verses": [
"Romans 3:28",
"Romans 4:5",
"Romans 5:1",
"Galatians 2:16",
"Ephesians 2:8-9",
"Philippians 3:9",
"Genesis 15:6",
]
},
"union_christ": {
"description": "Union with Christ",
"key_verses": [
"Romans 6:3-5",
"Galatians 2:20",
"Ephesians 1:3-4",
"Colossians 3:3",
"1 Corinthians 1:30",
"John 15:1-5",
]
},
}
def parse_verse_range(ref: str) -> list:
"""Parse verse reference like 'Romans 3:10-12' into individual verses."""
if '-' in ref:
# Handle verse ranges
parts = ref.split()
book = ' '.join(parts[:-1])
chapter_verses = parts[-1]
if ':' in chapter_verses:
chapter, verse_range = chapter_verses.split(':')
if '-' in verse_range:
start, end = verse_range.split('-')
return [f"{book} {chapter}:{v}" for v in range(int(start), int(end) + 1)]
return [ref]
def generate_theme_crossrefs():
"""Generate cross-references organized by Reformed themes."""
print("=" * 80)
print("REFORMED CROSS-REFERENCE GENERATOR")
print("=" * 80)
print()
for theme_key, theme_data in REFORMED_THEMES.items():
print(f"\n{theme_key.upper().replace('_', ' ')}")
print(f" {theme_data['description']}")
print(f" Key verses: {len(theme_data['key_verses'])}")
print()
# Expand verse ranges
all_verses = []
for ref in theme_data['key_verses']:
all_verses.extend(parse_verse_range(ref))
for verse in all_verses[:3]: # Show first 3 as examples
print(f" - {verse}")
if len(all_verses) > 3:
print(f" ... and {len(all_verses) - 3} more")
print()
print("=" * 80)
print(f"Total themes: {len(REFORMED_THEMES)}")
print("=" * 80)
if __name__ == "__main__":
generate_theme_crossrefs()