Skip to main content

Modular notifications: drpython.telegram & drpython.email

Project description

drpython

Modular notifications for Python projects: simple helpers for Telegram bots and SMTP email.

This library provides two small utilities:

  • drpython.telegram: send messages via a Telegram bot.
  • drpython.email: send emails via an SMTP server.

Both modules expose a light class (TelegramNotifier, EmailNotifier) and a convenience function (notify_telegram, notify_email).

Installation

  • Using uv (recommended for projects):

    uv add drpython
    
  • Using pip:

    pip install drpython
    

Quickstart

You can pass credentials directly to the functions/classes, or supply them via environment variables. If you keep secrets in a .env file, load it with python-dotenv before calling the notifiers.

from dotenv import load_dotenv
load_dotenv()  # Only needed if using a .env file

Telegram

Environment variables used:

  • DRPYTHON_TELEGRAM_TOKEN
  • DRPYTHON_CHAT_ID

Send a Telegram message using environment variables:

from drpython.telegram import notify_telegram

ok = notify_telegram("Hello from drpython!", parse_mode="HTML")
print(ok)  # True if sent

Or pass credentials explicitly:

from drpython.telegram import TelegramNotifier

bot = TelegramNotifier(token="<BOT_TOKEN>", chat_id="<CHAT_ID>")
ok = bot.send("<b>Bold</b> and <i>italic</i>", parse_mode="HTML", disable_notification=False)
print(ok)

Email (SMTP)

Environment variables used:

  • DRPYTHON_SMTP_HOST (e.g., smtp.gmail.com)
  • DRPYTHON_SMTP_PORT (default 587)
  • DRPYTHON_SMTP_USER
  • DRPYTHON_SMTP_PASSWORD
  • DRPYTHON_SMTP_FROM (defaults to user)

Send an email using environment variables:

from drpython.email import notify_email

ok = notify_email(
    to="recipient@example.com",
    subject="Greetings",
    body="Hello from drpython!",
    html=False,  # set True to send HTML
)
print(ok)

Or pass credentials explicitly and use the class:

from drpython.email import EmailNotifier

mailer = EmailNotifier(
    host="smtp.example.com",
    port=587,
    user="user@example.com",
    password="app_password",
    from_addr="user@example.com",
)

ok = mailer.send(
    to=["recipient@example.com", "other@example.com"],
    subject="Attachments and HTML",
    body="<b>Hello</b> world",
    html=True,
    cc="cc@example.com",
    bcc=["bcc1@example.com", "bcc2@example.com"],
    attachments=["path/to/file.pdf"],
)
print(ok)

Using .env

If you prefer a .env file, create it and load it in your app:

# Telegram
DRPYTHON_TELEGRAM_TOKEN=your-bot-token
DRPYTHON_CHAT_ID=your-chat-id

# SMTP
DRPYTHON_SMTP_HOST=smtp.example.com
DRPYTHON_SMTP_PORT=587
DRPYTHON_SMTP_USER=user@example.com
DRPYTHON_SMTP_PASSWORD=app_password
DRPYTHON_SMTP_FROM=user@example.com

Then load it:

from dotenv import load_dotenv
load_dotenv()

Never commit real tokens or passwords to source control.

Notes

  • Commands above are shown for Windows PowerShell.
  • notify_telegram uses requests.get and returns True/False based on Telegram API response.
  • notify_email uses smtplib.SMTP and returns True/False based on send success.
  • If you encounter build/publish issues, ensure your pyproject.toml includes a src/drpython wheel target and excludes .env from distributions.

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

drpython-0.1.4.tar.gz (17.9 kB view details)

Uploaded Source

Built Distribution

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

drpython-0.1.4-py3-none-any.whl (5.5 kB view details)

Uploaded Python 3

File details

Details for the file drpython-0.1.4.tar.gz.

File metadata

  • Download URL: drpython-0.1.4.tar.gz
  • Upload date:
  • Size: 17.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.5

File hashes

Hashes for drpython-0.1.4.tar.gz
Algorithm Hash digest
SHA256 f78a88eed0d564c495a3cbe25fa79169750e4c56901059c0800ec8059cffed71
MD5 b4dadb96afa795045d7fe991cb2b44d8
BLAKE2b-256 d61332333ce8edc51666717c84ccf0a5cbf41b2e444007e224ca48f7e8f57d02

See more details on using hashes here.

File details

Details for the file drpython-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: drpython-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 5.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.5

File hashes

Hashes for drpython-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 a2969b6e3a5426e5adc581c777b7169ef9730f8ddd9547756415a8f3f24f8a2e
MD5 e9bf39c967260be4b2484173ccca345e
BLAKE2b-256 17fa20355d6596274225544cd7a4a3da67f7f0f7421eb7e845d6893b0a2f2074

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