Skip to main content

Send users notifications through various platforms

Project description

logo

Downloads PyPI version Open Source

Notify

Sending mails and teams messages in a smart way. This project makes it easy to send basic messages through Teams or Email.

Installation


pip install zyppnotify

Notify Mail

When using the NotifyMail class, the environment variables EMAIL_USER (mailadress you want to mail with), MAIL_TENANT_ID, MAIL_CLIENT_ID and MAIL_CLIENT_SECRET (3x App registration credentials with User.Read.All permission with admin consent to authenticate to MS Graph) need to be set. The initialization of this class will return an error if one of thes variables is not set.

from notify import NotifyMail, NotifyTeams

# versturen van een basis bericht met onderwerp en tekst
mail = NotifyMail(to="reveiver@domain.com",
                  subject="Notify me!",
                  message="This is a test message, send through the notify package")

mail.send_email()

Notify Teams

For the Notify for Teams (1.0.0) you can create a webhook as by following the steps in the Microsoft documentation.

Requirement: Add member that sends the message to the channel

In the workflow app, make sure the message is sent as user, and not as Flowbot.

from notify import NotifyTeams
from notify.tests import import_sample_dfs

webhook = ("REPLACE_ME")

teams = NotifyTeams(webhook=webhook)

# versturen van een basis bericht met onderwerp en tekst
teams.basic_message(title="Notify me!",
                    message="This is a test message, send through the notify package")

# versturen van een uitgebreid rapport over dataframes.
dfs = import_sample_dfs()
teams.basic_message(title="Notify me!",
                    message="This is optional",
                    buttons={"button_name": "https://www.my_link.nl"},
                    dfs=dfs) #  creates a report on the dataframes processed.

Add extra elements to Teams message

With the parameter extra the user can add adaptive cards elements to the message. The extra parameter should be a list of dictionaries. The dictionaries should contain the keys index and item. The index key should be an integer and the item key should be a dictionary containing the adaptive card element. The index key determines the location in the message.

from notify import NotifyTeams

webhook = ("REPLACE_ME")

teams = NotifyTeams(webhook=webhook)

extra_item = {"type": "TextBlock", "color": "good", "text": "This is extra text in green", "wrap": "true"}
teams.basic_message(title="Notify me!",
                    message="This is optional",
                    buttons={"button_name": "https://www.my_link.nl"},
                    extra=[{"index": 3, "item": extra_item}]) #  creates a report on the dataframes processed.

With the method create_adaptive_card_dataframe(df) you can create an Adaptive Card dataframe to be added as an extra element.

from notify import NotifyTeams
from notify.tests import import_sample_dfs

webhook = ("REPLACE_ME")

teams = NotifyTeams(webhook=webhook)
df = import_sample_dfs().get("Transactions")
extra_df = teams.create_adaptive_card_dataframe(df)
teams.basic_message(title="Notify me!",
                    message="This is optional",
                    buttons={"button_name": "https://www.my_link.nl"},
                    extra=[{"index": 3, "item": extra_df}]) #  creates a report on the dataframes processed.

Notify utils

from notify import format_numbers, dataframe_to_html
from notify.tests import import_sample_dfs

df = import_sample_dfs().get("Transactions")

# format numbers and currencies using dutch locale
df = format_numbers(df, currency_columns=["amount"], number_columns=[])
html_table = dataframe_to_html(df)

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

zyppnotify-1.2.0.tar.gz (11.9 kB view details)

Uploaded Source

Built Distribution

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

zyppnotify-1.2.0-py3-none-any.whl (11.6 kB view details)

Uploaded Python 3

File details

Details for the file zyppnotify-1.2.0.tar.gz.

File metadata

  • Download URL: zyppnotify-1.2.0.tar.gz
  • Upload date:
  • Size: 11.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for zyppnotify-1.2.0.tar.gz
Algorithm Hash digest
SHA256 c1ec2c4939c4f0ad809b8e776517bd51b2204b5c7374c9413a435c28b7cce40c
MD5 bf7920ac6449e3a71b78701b5e77c331
BLAKE2b-256 35a00cdf20a9efe24ff497b7004a79f9c1c702d27ae5428be2ac5041c2a10165

See more details on using hashes here.

File details

Details for the file zyppnotify-1.2.0-py3-none-any.whl.

File metadata

  • Download URL: zyppnotify-1.2.0-py3-none-any.whl
  • Upload date:
  • Size: 11.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for zyppnotify-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d5d367918774fd4efa87384c238302de84d0119a49ab507221ec489a6a0ecc4f
MD5 21be6d92550f35ca2b816528babab6ae
BLAKE2b-256 aff438cf90c68f045e56c03916d8c4dbfd65f1e4f6660857e0a3cb9f66b58e3e

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