Skip to main content

FuncNotify

Get notified when your code finishes/crashes with one line of code

Build Deploy LCommit release License

Premise:

Sometimes, functions take a long time. I wanted to create something that automatically notifies you when they're completed or of any errors, training ML. The advantage over other decorator nontifiers is that there's an added option to hide your api tokens and emails so they aren't accidentally pushed to a public repo. All this with just one line of code.

This is a super lean ReadMe, check out the github linked here

Installation

$ pip install FuncNotify

Use case

# 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=Email multi_env=1.env multi_env=2.env 
$ FuncNotify go run main.go --kwargs NotifyMethod=Text cellphone=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. This allows you to time any script. multi_target not yet supported

Basic/Quick 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 .env in current working directory and fill out information that you wanna use

template.env

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

FuncNotify-1.2.4.tar.gz (19.1 kB view details)

Uploaded Source

Built Distribution

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

FuncNotify-1.2.4-py3-none-any.whl (26.5 kB view details)

Uploaded Python 3

File details

Details for the file FuncNotify-1.2.4.tar.gz.

File metadata

  • Download URL: FuncNotify-1.2.4.tar.gz
  • Upload date:
  • Size: 19.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.0

File hashes

Hashes for FuncNotify-1.2.4.tar.gz
Algorithm Hash digest
SHA256 0b74ac623e5095ab4d363019f9927a155969c8d90cf628a30fd7e39dcdda5623
MD5 ef88610e967bbba5c2f470842124efa6
BLAKE2b-256 e9860f6b00bc5626a0a58ed595b5f139905e83a4f15005adb18ebd475b0062bb

See more details on using hashes here.

File details

Details for the file FuncNotify-1.2.4-py3-none-any.whl.

File metadata

  • Download URL: FuncNotify-1.2.4-py3-none-any.whl
  • Upload date:
  • Size: 26.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.0

File hashes

Hashes for FuncNotify-1.2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 c3abe0efc2a40ec93ce28ef08e9ab222e8d69660ba5054d3256f6978e09d6e61
MD5 296e864920da30d02de86b64b6dae950
BLAKE2b-256 da02fe6a0055e0ee3b3b71f2b86a47ce4cfd13c72c0211d6c9d2f73f3925742c

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 Sentry Error logging StatusPage Status page