Get notified when your functions finish running
Project description
FuncNotify ⏰
Get notified when your code finishes/crashes with one line of code
Documenttation | 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, cellphone="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()
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.2.5.5-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f128c2db7fd68479a013512d45d94ed83249a16d70fc948c4367fdb07f561655 |
|
MD5 | 7c38e9cf6af87cff94939f8ff81aae08 |
|
BLAKE2b-256 | 02560863db7f2423b79cc9980127076b588231c1b2357d5e5e956fe4983a405c |