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 variables 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 an 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 parsed 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, just put them in the twilio alerts section of your .env, skip 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
Release files for FuncNotify 1.3.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| FuncNotify-1.3.7.tar.gz | 21.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| FuncNotify-1.3.7-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 51.8 kB
Release files / FuncNotify-1.3.7.tar.gz
| Download URL | FuncNotify-1.3.7.tar.gz |
|---|---|
| Size | 21.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
36375dd2e55c0f5ec7021ef52be0bbee50932761e9776ed88ffa986de65e3118
|
|
BLAKE2b-256 checksum How to use checksums |
1f455c3aba354e8003fc1df51ee48efebce9564b5b831fa9bcbb1b8160ad127d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.0
|
Release files / FuncNotify-1.3.7-py3-none-any.whl
| Download URL | FuncNotify-1.3.7-py3-none-any.whl |
|---|---|
| Size | 29.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
fd80b6b2d8fc8b7bd73678dd31d915557134f74c901956fc8abc599663736d18
|
|
BLAKE2b-256 checksum How to use checksums |
53048e4b3ba31ebedebd39db4de1c5cb9b6c42da7ad03614725fa017c96827be
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.0
|