Hafez Poems
Project description
Divan Hafez Poems & Omen
This library gives you access to the Hafez Poems. To get more information about this poet, you can check https://en.wikipedia.org/wiki/Hafez.
Poems can be accessed as following:
- By the number of poem,
- By searching a query,
- Random poem (known as Omen or
Fal
in Persian)
Installation
This package can be installed:
- using
pip
:
pip install hafez
- using
Makefile
on a cloned/forked repo:
make install
- using
pip
on a cloned/forked repo:
pip install -e . --upgrade --upgrade-strategy only-if-needed
Methods
hafez.total_poems()
->int
It returns `int`, the total number of poems available in the package.
hafez.get_poem(poem_id: int)
->dict
It returns the poem in a dictionary format (see Poem Data Structure)
-
poem_id: int
: It is a number between1
andhafez.total_poems()
. -
hafez.omen()
orhafez.fal()
->dict
It returns a random poem in a dictionary format (see Poem Data Structure)
hafez.search(qeury: str)
->list
It returns a list of poems in a dictionary format (see Poem Data Structure)
-
query: str
: It is a string to search within the verses of the Divan Hafez -
hafez.download_all_audio(force: boolean = False)
->int
It downloads all the audio files.
-
force: boolean = False
: If it is set toFalse
, it only downloads the file if not previously downloaded. If set toTrue
, it will force to re-download and replace the existing file. -
hafez.download_audio(poem: int)
->int
It downloads the audio file of the given `poem`. It returns `1`, once the downloaded is completed.
hafez.get_audio(poem: int=1, download: boolean = True)
->str
It returns the absolute path of the audio file related to the given `poem`.
poem: int=1
: It is the poem number.download: boolean = True
: Ifdownload=True
, it downloads the audio file if not existing.
Poem's Data Structure
{"id": 1,
"poem": [],
"interpretation": "",
"mp3": "https://..."}
Example
# it returns the total number of poems
# returns: int
total_number_of_poems = hafez.total_poems()
# get a poem by ID
# returns: dict
poem_5 = hafez.get_poem(5)
# get a random poem - omen (fal)
# returns: dict
omen = hafez.omen() # same as: hafez.fal()
# search within the verses of poems
# returns: list[dict]
search_result = hafez.search("حافظ")
Database
The poems of Divan Hafez are extracted from an open-source database as below:
Source: https://github.com/mahmoud-eskandari/HafezFaalDatabase
Vocal Audios
The vocal audio files are done by Ms. Modares Zadeh, and it is available below:
Source: https://avayemastan.deklame.net/hafez/
Demo
You can access the demo version deployed on Streamlit server at:
https://divan-hafez.streamlit.app/
Developer(s)
Kaveh Bakhtiyari - Website | Medium | LinkedIn | GitHub
Contribution
Feel free to join the open-source community and contribute to this repository.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file hafez-0.2.6.tar.gz
.
File metadata
- Download URL: hafez-0.2.6.tar.gz
- Upload date:
- Size: 435.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.9.18
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ba693d262c181bb086480626892bf22ea286173b812da6a4a21c5dc744c61e2a |
|
MD5 | fcf6ba906758e2e86c66cff5bca681b3 |
|
BLAKE2b-256 | fc4a454d2b78d5505b56c0e877dbd4da70714dc32e689fcfabef6296d7111f67 |
File details
Details for the file hafez-0.2.6-py3-none-any.whl
.
File metadata
- Download URL: hafez-0.2.6-py3-none-any.whl
- Upload date:
- Size: 447.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.9.18
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2941ad0c7b0d9405db1ec3602f03d5bf65324e801bccee35b85766dd79e4ead2 |
|
MD5 | 0b642df5b3938a44298da991d1d18a2a |
|
BLAKE2b-256 | e878887b4400320e83cfb4d76b891f9ad2f1bcbc5cde32b3205455fbc2f4f8d2 |