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.5.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.5-py3-none-any.whl (5.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: drpython-0.1.5.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.5.tar.gz
Algorithm Hash digest
SHA256 29ec655ac196fe6a5379ea09dc3c2b870af7ff29ae68ad6e96ead430b5ae0e57
MD5 b8b28d34882906f93ba020cab7bcfc19
BLAKE2b-256 a8b72538586f6f988b7409da5a7fe591af0f9db713cf2e2e1b3ace090f278274

See more details on using hashes here.

File details

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

File metadata

  • Download URL: drpython-0.1.5-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.5-py3-none-any.whl
Algorithm Hash digest
SHA256 880aefae16f10ad13f14cf40b7d50479490610e5be2eb969d6a24d7bfb33e2b9
MD5 c39c2cd6b822ac951a4e8659dcc897f3
BLAKE2b-256 cc9cb1ed2c8b9c532615a44777d4b42271328ec13b1552443c418a53a44c4506

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