Пример #1
0
def process_qotd_arguments(args: argparse.Namespace):
    bible = pybible_load.load(args.bible)
    book = random.choice(bible)
    chapter = random.choice(book.chapters)
    verse = random.choice(chapter.verses)
    yield Reference(verse.text, book.title, chapter.number,
                    verse.number, bible.name)
Пример #2
0
def process_nt_arguments(args: argparse.Namespace):
    bible = pybible_load.load(args.bible)
    if args.size:
        yield f"The New Testament has {len(bible.nt())} books"
    else:
        for reference in (Reference(verse.text, book.title, chapter.number,
                                    verse.number, bible.name)
                          for book in bible.nt()
                          for chapter in book.chapters for verse
                          in chapter.verses):
            yield reference
Пример #3
0
def process_book_arguments(args: argparse.Namespace):
    bible = pybible_load.load(args.bible, args.book)
    book = bible[0]
    if args.size:
        yield f"{book.title} has {len(book)} chapters"
    else:
        for reference in (Reference(verse.text, book.title, chapter.number,
                                    verse.number, bible.name)
                          for chapter in book.chapters for verse
                          in chapter.verses):
            yield reference
Пример #4
0
def process_verse_arguments(args: argparse.Namespace):
    bible = pybible_load.load(args.bible, args.verse[0])
    book = bible[0]
    chapter = book[cast_integer_argument(parser, args.verse[1], "--verse",
                                         "CHAPTER_NUMBER")]
    verse = chapter[cast_integer_argument(parser, args.verse[2], "--verse",
                                          "VERSE_NUMBER")]
    if args.size:
        yield f"Verse {verse.number} of Chapter {chapter.number} " \
              f"of {book.title} has {len(verse)} characters"
    else:
        yield Reference(verse.text, book.title, chapter.number,
                        verse.number, bible.name)
Пример #5
0
def process_chapter_arguments(args: argparse.Namespace):
    bible = pybible_load.load(args.bible, args.chapter[0])
    book = bible[0]
    chapter = book[cast_integer_argument(parser, args.chapter[1],
                                         "--chapter", "CHAPTER_NUMBER")]
    if args.size:
        yield f"Chapter {chapter.number} of {book.title} " \
              f"has {len(chapter)} verses"
    else:
        for reference in (Reference(verse.text, book.title, chapter.number,
                                    verse.number, bible.name)
                          for verse in chapter.verses):
            yield reference
Пример #6
0
def process_arguments(parser: argparse.ArgumentParser):
    args = parser.parse_args()
    bible_arg = args.bible

    bible = pybible_load.load(bible_arg)

    if args.old_testament:
        if args.size:
            return f"The old testament has {len(bible.ot())} books"
        else:
            references = [
                Reference(verse.text, book.title, chapter.number, verse.number)
                for book in bible.ot() for chapter in book.chapters
                for verse in chapter.verses
            ]

    elif args.new_testament:
        if args.size:
            return f"The new testament has {len(bible.nt())} books"
        else:
            references = [
                Reference(verse.text, book.title, chapter.number, verse.number)
                for book in bible.nt() for chapter in book.chapters
                for verse in chapter.verses
            ]

    elif args.book:
        book = bible[args.book]
        if args.size:
            return f"{book.title} has {len(book)} chapters"
        else:
            references = [
                Reference(verse.text, book.title, chapter.number, verse.number)
                for chapter in book.chapters for verse in chapter.verses
            ]

    elif args.chapter:
        book = bible[args.chapter[0]]
        chapter = book[cast_integer_argument(parser, args.chapter[1],
                                             "--chapter", "CHAPTER_NUMBER")]
        if args.size:
            return f"Chapter {chapter.number} of {book.title} has {len(chapter)} verses"
        else:
            references = [
                Reference(verse.text, book.title, chapter.number, verse.number)
                for verse in chapter.verses
            ]

    elif args.verse:
        book = bible[args.verse[0]]
        chapter = book[cast_integer_argument(parser, args.verse[1], "--verse",
                                             "CHAPTER_NUMBER")]
        verse = chapter[cast_integer_argument(parser, args.verse[2], "--verse",
                                              "VERSE_NUMBER")]
        if args.size:
            return f"Verse {verse.number} of Chapter {chapter.number} of {book.title} has {len(verse)} characters"
        else:
            references = [
                Reference(verse.text, book.title, chapter.number, verse.number)
            ]

    else:
        if args.size:
            return f"{bible.name} has {len(bible)} books"
        else:
            references = [
                Reference(verse.text, book.title, chapter.number, verse.number)
                for book in bible.books for chapter in book.chapters
                for verse in chapter.verses
            ]

    if args.reference:
        return [
            f"{reference.verse_text} - {reference.book_title} {reference.chapter_number}:{reference.verse_number}"
            for reference in references
        ]
    else:
        return [f"{reference.verse_text}" for reference in references]
Пример #7
0
def book():
    return pybible_load.load()[constants.BOOK_KEY_TEST]
Пример #8
0
def verse():
    return pybible_load.load()[constants.BOOK_KEY_TEST][constants.POS_TEST][
        constants.POS_TEST]
Пример #9
0
def bible():
    return pybible_load.load()
Пример #10
0
def test_load():
    bible = pybible_load.load(constants.BIBLE_NAME_ARG_TEST)
    assert isinstance(bible, Bible)
Пример #11
0
def test_load_fail():
    with pytest.raises(SystemExit):
        bible = pybible_load.load(constants.BIBLE_NAME_ARG_TEST_ERROR)
        assert isinstance(bible, Bible)
Пример #12
0
def chapter():
    return pybible_load.load()[constants.BOOK_KEY_TEST][constants.POS_TEST]
Пример #13
0
def verse():
    book = pybible_load.load()[constants.BOOK_KEY_TEST]
    return book[constants.POS_TEST][constants.POS_TEST]