Fast & Free notifications for your code: Python wrapper around the ntfy.sh notifications service.
Project description
ntfy-wrapper
is a free and hassle-free customizable notifier for Python. No login, no API token, no fees, no bullshit.
It's actually a simple Python wrapper around ntfy
. Kudos to them ❤️
You can now send notification from your Python code and receive them on your computer through a Web App or a CLI, or on your phone with a dedicated app!
Again, all credit to ntfy
.
Install
Install ntfy-wrapper
(and its 2 dependencies: requests
and typer
) with pip
:
pip install ntfy-wrapper
How to use
from ntfy_wrapper import Notifier
if __name__ == "__main__":
ntfy = Notifier(defaults={"title": "Your Project Name"})
# grab the topic id that was just printed here ⬆️ in order
# to subscribe to it on the web app or cli or mobile app
# (ntfy_wrapper will dump a config file so the same id will be
# re-used next time. Remember to *exclude* it from version control)
ntfy.notify("Job has been allocated, starting Model training")
try:
results = do_some_stuff()
if results["metric"] > threshold:
ntfy.notify(
f"Great model! Its metric is {results['metric']:.3f}",
tags="white_check_mark", # this is the ✅ emoji
click=results["online_run_url"],
)
else:
ntfy.notify(f"Done, but not great ({results['metric']:.3f})", tags="disappointed")
except Exception as e:
ntfy.notify(f"Error! -> {str(e)}", priority=4, emails="you@foo.bar")
Command-line
ntfy_wrapper
comes with a command-line interface called py-ntfy
. It uses the great Python CLI tool Typer
-
Get help
$ py-ntfy --help Usage: py-ntfy [OPTIONS] COMMAND [ARGS]... ╭─ Options ────────────────────────────────────────────────────────────────╮ │ --install-completion Install completion for the current shell. │ │ --show-completion Show completion for the current shell, to │ │ copy it or customize the installation. │ │ --help Show this message and exit. │ ╰──────────────────────────────────────────────────────────────────────────╯ ╭─ Commands ───────────────────────────────────────────────────────────────╮ │ add [command sub-group] Add a new notification target or a default │ │ notification value. Run `$ py-ntfy add --help` for more info. │ │ clean Removes the configuration file. Use --conf-path to specify a │ │ path to the configuration file. Use --force to skip the │ │ confirmation prompt. │ │ init Initializes the configuration file. It should NOT be tracked by │ │ version control in order to protect the topic ID. Use │ │ --conf-path to specify a path to the configuration file. Use │ │ --force to overwrite an existing configuration file. │ │ remove [command sub-group] Remove a notification target or a default │ │ notification value. Run `$ py-ntfy remove --help` for more info. │ ╰──────────────────────────────────────────────────────────────────────────╯ $ py-ntfy add --help (similar output) $ py-ntfy add default --help (similar output) $ py-ntfy remove --help (similar output)
-
Initialize the configuration file
$ py-ntfy init 🔑 Your first topic is `f8e34b7a-74a3-49e7-96fc-4d89eaf6ea6c`. Use it to subscribe to notifications! 🎊 Config file created at /path/to/repo/.ntfy.conf
-
Add a topic or an email
$ py-ntfy add topic some-secret-string-for-your-topic 🎊 Topic `some-secret-string-for-your-topic` added to /path/to/repo/.ntfy.conf $ py-ntfy add email you@foo.bar 🎊 Email you@foo.bar added to /Users/.../vict0rsch/ntfy-wrapper/.ntfy.conf
-
Add a default value for the
.notify(...)
calls$ py-ntfy add default key value 🎊 Default key=value added to /Users/.../vict0rsch/ntfy-wrapper/.ntfy.conf
-
Remove items by simply replacing
add
byremove
$ py-ntfy remove default key 🎊 Default key=value removed from /Users/.../vict0rsch/ntfy-wrapper/.ntfy.conf $ py-ntfy remove email hello@you.com Email hello@you.com does not exist. Ignoring.
-
Change the default configuration path for any command with the option
--conf-path
- Specify a directory
--conf-path path/to/conf/directory
and.ntfy.conf
will be created there - Specify a file
--conf-path path/to/file.conf
and that will be used as a configuration file
- Specify a directory
Todo
- Better readme and doc
- CLI
- Screenshots
-
requests
timeout or non-blocking
Project details
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 ntfy_wrapper-0.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6bb1979855568b0254a641b7fe396cca639b5e2f5c73f04c08cb7d3cbb29ace0 |
|
MD5 | fb83f777ba8316ae00db4a73785b017d |
|
BLAKE2b-256 | e3178718eec570e224b6f9550e0a8af9777b0bad41d69a4970e59eefa2ce1ee7 |