Skip to main content

FuncNotify ⏰

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

Build Deploy DOC LCommit release License wheel

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, 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

.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.3.0.tar.gz (20.6 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.3.0-py3-none-any.whl (28.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: FuncNotify-1.3.0.tar.gz
  • Upload date:
  • Size: 20.6 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.3.0.tar.gz
Algorithm Hash digest
SHA256 ff04596f6fd4ab50296521fd55378102a87e250cc684a44bc6153b158f4b6b31
MD5 3ce24f6ec1ec23c079c11f3104ae1422
BLAKE2b-256 3a876cc3349d24f7a2476fbcc1a450321790d81e94f0a68298e8bc5c45db52c4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: FuncNotify-1.3.0-py3-none-any.whl
  • Upload date:
  • Size: 28.4 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.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 78e013d225083d5a75b8850a7e877c18242e318741268e3a0be47500f0f8b875
MD5 bea6a44fc6984668e4068ee2309b2bb2
BLAKE2b-256 b7ab84dccf3844e24bd5c725d2c583696884206c5e28129657134af3476777d1

See more details on using hashes here.

Release history Release notifications | RSS feed

1.3.7

2 files

1.3.6

2 files

1.3.5

2 files

1.3.4

2 files

1.3.3

2 files

1.3.2

2 files

This release

1.3.0 This release

2 files

1.2.5.7

2 files

1.2.5.6

2 files

1.2.5.5

2 files

1.2.5.3

2 files

1.2.5.2

2 files

1.2.5.1

2 files

1.2.4

2 files

1.2.3

2 files

1.2.0

2 files

1.1.3

2 files

1.1.2

2 files

1.0.7

1 file

1.0.6

1 file

1.0.5

1 file

1.0.4

1 file

1.0.3

1 file

1.0.2

1 file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page