Skip to main content

kathekon is a Python library and CLI tool for fetching Stoic quotes and with interpretations.

Project description

kathekon

kathekon is a Python library and CLI tool for exploring Stoic philosophy through curated quotes. It allows you to fetch random or daily quotes, insert quotes into files like README.md, and generate thoughtful interpretations using OpenAI.


Features

  • Fetch Quotes:

    • Retrieve random Stoic quotes or specific quotes by author or ID.
    • Generate consistent daily quotes based on the day of the year.
    • Fetch multiple quotes at once for broader inspiration.
  • CLI Tool:

    • Display quotes in the terminal with elegant formatting.
    • Update files (e.g., README.md) with quotes and their interpretations.
  • OpenAI Integration (Optional):

    • Generate thoughtful interpretations of quotes using OpenAI's GPT models.
  • Library Integration:

    • Use Quotes as a Python library to integrate Stoic philosophy into your projects.

Installation

Install kathekon using pip:

pip install kathekon

To include OpenAI features, install with the [openai] or [all] extras:

pip install kathekon[openai]
pip install kathekon[all]

Usage

CLI Commands

After installation, you can use the CLI commands kathekon or stoic-quote.

Display a Random Quote

kathekon random --author "Marcus Aurelius"

Display Today’s Quote

kathekon daily

Insert a Quote into README.md

Ensure your README.md includes markers like this:

<!--START_SECTION:quote-text-->
<!--END_SECTION:quote-text-->

<!--START_SECTION:quote-author-->
<!--END_SECTION:quote-author-->

<!--START_SECTION:quote-interpretation-->
<!--END_SECTION:quote-interpretation-->

Then, insert a random or daily quote:

# Insert a random quote by Marcus Aurelius
kathekon readme random --file README.md --author "Marcus Aurelius"

# Insert today’s Stoic quote
kathekon readme daily --file README.md

Example of a Resulting README

<!--START_SECTION:quote-text-->
“Waste no more time arguing about what a good man should be. Be one.”
<!--END_SECTION:quote-text-->

<!--START_SECTION:quote-author-->
Marcus Aurelius
<!--END_SECTION:quote-author-->

<!--START_SECTION:quote-interpretation-->
When we spend too much time debating the meaning of virtue, we risk delaying its practice. This quote calls for immediate action: embody the qualities you admire in others and strive to be the person you aspire to be. In modern life, this might mean taking decisive steps to act with kindness and integrity rather than theorizing endlessly about morality.
<!--END_SECTION:quote-interpretation-->

Library Usage

Fetch a Random Quote

from kathekon import Quotes

quotes = Quotes()
quote = quotes.get_quote(author="Epictetus")
print(f"{quote.text}{quote.author}")

Generate Today’s Quote

daily_quote = quotes.get_daily_quote(interpretation="gpt+fallback")
print(f"{daily_quote.text}{daily_quote.author}")
print(f"Interpretation: {daily_quote.interpretation}")

Fetch Multiple Quotes

You can fetch multiple quotes at once with optional filters like author, limit, or interpretation.

from kathekon import Quotes

quotes = Quotes()

# Fetch up to 5 random quotes
for quote in quotes.get_quotes(limit=5):
    print(f"{quote.text}{quote.author}")

# Fetch 3 quotes by Seneca with interpretations from the database
for quote in quotes.get_quotes(author="Seneca", limit=3, interpretation="db"):
    print(f"{quote.text}{quote.author}")
    print(f"Interpretation: {quote.interpretation}")

OpenAI Integration

To enable OpenAI-powered interpretations, set your API key in the OPENAI_API_KEY environment variable:

export OPENAI_API_KEY="your-api-key"

Then, use the CLI or library to fetch quotes with AI-generated interpretations.


Contributing

Contributions are welcome! Feel free to submit issues or pull requests on the GitHub repository.


License

kathekon is licensed under the MIT License. See LICENSE for details.

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

kathekon-0.0.1.tar.gz (3.4 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

kathekon-0.0.1-py3-none-any.whl (3.4 MB view details)

Uploaded Python 3

File details

Details for the file kathekon-0.0.1.tar.gz.

File metadata

  • Download URL: kathekon-0.0.1.tar.gz
  • Upload date:
  • Size: 3.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for kathekon-0.0.1.tar.gz
Algorithm Hash digest
SHA256 e0c8dcb56062d628af21720e16fe5da3e99325efda957d7c657f8ac15dbf8034
MD5 05088d6e074f22ebd89e3912467d4a61
BLAKE2b-256 45f7354994ed1a3bb2950874a54883c25825fd5ae21e1e5a943a3280574d8745

See more details on using hashes here.

File details

Details for the file kathekon-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: kathekon-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 3.4 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for kathekon-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 78be3651d20ed8fc1e5f0ac02d75c1ac297c6b7fb89f8d7466476416325a09ed
MD5 89415dd09904df10d5418d0126bfcae4
BLAKE2b-256 f21925a3c6b33aeb5ac7516488b6faaa8f57356b31d83129751525e671df2424

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page