Get notified when your functions finish running
Project description
FuncNotify ⏰
Get notified when your code finishes/crashes with one line of code
Documentation | GitHub | PyPI
Installation:
$ pip install FuncNotify
Quick Guide:
# Add more as projects grow!
from FuncNotify import time_func, time_text, time_slack
@time_func(NotifyMethod="Text", use_env=True, env_path".env", update_env=True, phone="8001234567")
def wait_func():
"""This function will use the text method and pull env varaibles from
`.env`, it will update the already determined env variables too!"""
do_something()
@time_Text()
def wait_func2():
"""All parameters are optional and each method has a personal decorator,
even the function call is optional see below"""
do_something()
@time_Text
def wait_func3():
"""Auto pull from `.env` is enabled by default with Method specific
time decorators"""
do_something()
@time_func(multi_target=[{...}, {...}], multi_env=["1.env", "2.env"])
def wait_func4():
"""Send to multiple sources either through specifiying multiple
dictionaries of kwargs or multiple .env paths, or both in pairs!"""
do_something()
custom_message("HELLO WORLD", NotifyMethod="Text", multi_target=[{...}, {...}], multi_env=["1.env", "2.env"])
"""Custom messaging is here, pass the same arguments in as time_func and you
can mass send messages in many methods"""
if __name__ == "__main__":
"""You don't even need to use the timer as a decorator,
use it as a normal function This is how we do testing 😊 """
time_func(function=wait_func5)(*func5_args, **func5_kwargs)
All accomplish the same objective of notifying the user after wait_func()
completes, one does so with the phone number saved as a env variable in .env
so it never accidentally gets exposed.
CLI arguments:
$ FuncNotify [command here] --kwargs NotifyMethod=Text phone=8001234567
$ FuncNotify go run main.go --kwargs NotifyMethod=Email multi_env=1.env multi_env=2.env
$ FuncNotify sleep 5 --kwargs NotifyMethod=Text multi_target="[{'NotifyMethod': 'Print', 'verbose': True}, {'phone': '8001234567'}]"
Anything after --kwargs
with an equal sign will automatically be parsesd as a key word argument for FuncNotify. The remainder without =
will be executed. Wrap lists, dicts, and tuples in "
so they get read properly. This allows you to time any script.
Demo:
$ pip install FuncNotify
$ FuncNotify sleep 5 --kwargs NotifyMethod=Print
To expand, create a .env
file and a twilio account according to these instructions (it's free!). Instead of hard coding variables or exporting them to your env, jusst put them in the twilio alerts section of your .env
, skp installing twilio as it's already installed. Then try:
$ FuncNotify sleep 5 --kwargs NotifyMethod=Text
Supported Notify Methods:
Platform |
---|
Console Print |
Email Twilio |
Email Yagmail |
Text |
Slack |
Microsoft Teams |
Create following .env in CWD
Project details
Release history Release notifications | RSS feed
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
Hashes for FuncNotify-1.3.5-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ce9b53aa15ccc156d6a0fd5af689327c7406e44fce90f359062c8c0e4b75098d |
|
MD5 | d4e4b8d9f5d207b74f0eff96e33f5db3 |
|
BLAKE2b-256 | d43afa4bb8684466e1058ca7f6b4b23c8b84a60e8bc90b533dcb30ca14b869bb |