vitorpio / pybible-cli

Bible reference CLI application
MIT License
13 stars 3 forks source link

test

Pybible-cli - Bible reference

The pybible-cli is a basic module for referencing the bible's books, chapters and verses. Using the command line, it is possible to reference the King James Bible.

Installation

You can install the pybible-cli from PyPI: pip install pybible-cli

This module requires at least Python version 3.

How to use

The pybible-cli is a command line application, named pybible. To reference (print on your terminal) verses, chapters, books and even the whole bible simply call the command:

$ pybible
In the beginning God created the heaven and the earth.
...
The grace of our Lord Jesus Christ be with you all. Amen.

It's possible to reference the whole bible as above or just parts of it, some examples are:

Reference the old testament:

$ pybible -ot
In the beginning God created the heaven and the earth.
...
And he shall turn the heart of the fathers to the children, and the heart of the children to their fathers, lest I come and smite the earth with a curse

Reference the new testament:

$ pybible -nt
The book of the generation of Jesus Christ, the son of David, the son of Abraham.
...
The grace of our Lord Jesus Christ be with you all. Amen.

Reference the book of John:

$ pybible --book john
In the beginning was the Word, and the Word was with God, and the Word was God.
...
And there are also many other things which Jesus did, the which, if they should be written every one, I suppose that even the world itself could not contain the books that should be written. Amen.

Reference the third chapter from the book of John:

$ pybible --chapter john 3
There was a man of the Pharisees, named Nicodemus, a ruler of the Jews:
...
He that believeth on the Son hath everlasting life: and he that believeth not the Son shall not see life; but the wrath of God abideth on him.

Reference the fourth verse of the third chapter from the book of John:

$ pybible --verse john 3 4
Nicodemus saith unto him, How can a man be born when he is old? can he enter the second time into his mother's womb, and be born?

Get a random verse with the --qotd argument:

$ pybible --qotd
"And the house which I build is great: for great is our God above all gods." - 2 Chronicles 2:5 (King James Bible)    

It is possible to add parameters to include the reference on the output(-r, --reference) and count the size(-s, --size) of what is been referenced.

For help, execute:

$ pybible -h
usage: pybible [-h] [--bible BIBLE]
               [-ot | -nt | --qotd | --book BOOK_NAME | --chapter BOOK_NAME CHAPTER_NUMBER | --verse BOOK_NAME CHAPTER_NUMBER VERSE_NUMBER]
               [-r] [-s]

Bible reference

optional arguments:
  -h, --help            show this help message and exit
  --bible BIBLE         Bible version to use
  -ot, --old_testament  Reference the old testament
  -nt, --new_testament  Reference the new testament
  --qotd                Quote a single, random verse
  --book BOOK_NAME      Reference book
  --chapter BOOK_NAME CHAPTER_NUMBER
                        Reference book and chapter
  --verse BOOK_NAME CHAPTER_NUMBER VERSE_NUMBER
                        Reference book, chapter and verse
  -r, --reference       Include book, chapter number and verse reference
  -s, --size            Size of bible, book, chapter or vere referenced

✞

You can also use pybible-cli in your on python code for referencing the bible, just import the pybible_load module from the pybible package:

>>> from pybible import pybible_load
>>> bible = pybible_load.load()
>>> bible.name
'King James Bible'

Contributing

If you like this module feel free to contribute and make the pybible-cli module a pythonic bible reference module (that is the goal).

At this point there is only one bible version available (King James Version), you can help add more versions of the bible to this module, just follow the OOP structure inside the classes package and pickle it into a single file.

There are some performance issues involving unpickling, you can help with that too ;)

Feel free to reach out to me for new features and ideas ...