summaryrefslogtreecommitdiff
path: root/python-klaxon.spec
diff options
context:
space:
mode:
Diffstat (limited to 'python-klaxon.spec')
-rw-r--r--python-klaxon.spec491
1 files changed, 491 insertions, 0 deletions
diff --git a/python-klaxon.spec b/python-klaxon.spec
new file mode 100644
index 0000000..2c48355
--- /dev/null
+++ b/python-klaxon.spec
@@ -0,0 +1,491 @@
+%global _empty_manifest_terminate_build 0
+Name: python-klaxon
+Version: 1.1.1
+Release: 1
+Summary: Use osascript to send notifications.
+License: Apache-2.0
+URL: https://pypi.org/project/klaxon/
+Source0: https://mirrors.aliyun.com/pypi/web/packages/50/aa/bcd55693e02900d08cc87dbd88b1b499c6de7b14f2ecc4334a4f65cbbcb0/klaxon-1.1.1.tar.gz
+BuildArch: noarch
+
+Requires: python3-notifiers
+Requires: python3-toml
+
+%description
+# klaxon
+
+![](https://github.com/knowsuchagency/klaxon/workflows/black/badge.svg)
+![](https://github.com/knowsuchagency/klaxon/workflows/mypy/badge.svg)
+![](https://github.com/knowsuchagency/klaxon/workflows/unit%20tests/badge.svg)
+
+Send Mac OS (or [notifiers][notifiers]) notifications from the terminal or Python programs.
+
+This is especially useful for when you want a push notification
+for some long-running background task.
+
+Similar to the [terminal-notifier ruby gem][terminal-notifier],
+but posix-compliant and able to send notifications via
+the [notifiers][notifiers] library.
+
+![hello-klaxon](static/recording.gif)
+
+## Installation
+For command-line use, the recommended method of installation is through [pipx].
+```bash
+pipx install klaxon
+```
+Naturally, klaxon can also be pip-installed.
+```bash
+pip install klaxon
+```
+
+## Usage
+
+### terminal
+
+```bash
+# blank notification
+klaxon
+# with custom message
+klaxon --message "this is the message body"
+# pipe message from other program
+echo "this is the message body" | klaxon --
+```
+
+### python
+
+```python
+from klaxon import klaxon, klaxonify
+
+# send a notification
+
+klaxon(
+ title='hello, klaxon',
+ subtitle='hola',
+ message='it me'
+)
+
+# we can decorate our functions to have
+# them send notifications at termination
+
+@klaxonify
+def hello(name='world'):
+ return f'hello, {name}'
+
+
+@klaxonify(title='oh hai', output_as_message=True)
+def foo():
+ return "This will be the message body."
+
+```
+
+## Non-MacOS Notifications
+
+### i.e. mobile | email | slack
+
+You'll need to install klaxon with the `notifiers` extra.
+
+```bash
+pipx install klaxon[notifiers]
+```
+
+You will need a `~/.config/klaxon/config.toml` or `pyproject.toml` file with the
+`tool.klaxon` namespace configured at the top level. Values from the latter will
+override values in the former.
+
+`enable-notifiers` will need to be set to `true` and you will need a `[[notifiers]]` key.
+
+The latter will determine the parameters passed to the `notifiers.notify` method.
+
+For example:
+
+`~/.config/klaxon/config.toml`
+```toml
+enable-notifiers = true
+
+[[notifiers]]
+name = 'slack'
+# see https://api.slack.com/incoming-webhooks#getting-started
+webhook_url = {{your webhook url}}
+
+[[notifiers]]
+name = 'pushover'
+user = {{your user token}}
+token = {{your application token}}
+```
+
+Voila! Now messages sent from klaxon will be pushed to slack and pushover.
+
+## Development
+
+```bash
+
+git clone git@github.com:knowsuchagency/klaxon.git
+
+cd klaxon
+
+# create a virtualenv and activate it
+
+python3 -m venv .venv
+source .venv/bin/activate
+
+# install poetry and use it to install project dependencies
+
+pip install -U pip
+pip install poetry
+poetry install
+
+# this will install `invoke` which will let you use the tasks defined in `tasks.py`
+
+# install pre-commit hooks
+
+inv install-hooks
+
+# from now on, as you make changes to the project, the pre-commit hooks and
+# github workflows will help make sure code is formatted properly and tests
+# are invoked as you commit, push, and submit pull requests
+```
+
+
+[terminal-notifier]: https://github.com/julienXX/terminal-notifier
+[pipx]: https://github.com/pipxproject/pipx
+[osascript]: https://apple.stackexchange.com/questions/57412/how-can-i-trigger-a-notification-center-notification-from-an-applescript-or-shel/115373#115373
+[notifiers]: https://github.com/notifiers/notifiers
+
+
+%package -n python3-klaxon
+Summary: Use osascript to send notifications.
+Provides: python-klaxon
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-klaxon
+# klaxon
+
+![](https://github.com/knowsuchagency/klaxon/workflows/black/badge.svg)
+![](https://github.com/knowsuchagency/klaxon/workflows/mypy/badge.svg)
+![](https://github.com/knowsuchagency/klaxon/workflows/unit%20tests/badge.svg)
+
+Send Mac OS (or [notifiers][notifiers]) notifications from the terminal or Python programs.
+
+This is especially useful for when you want a push notification
+for some long-running background task.
+
+Similar to the [terminal-notifier ruby gem][terminal-notifier],
+but posix-compliant and able to send notifications via
+the [notifiers][notifiers] library.
+
+![hello-klaxon](static/recording.gif)
+
+## Installation
+For command-line use, the recommended method of installation is through [pipx].
+```bash
+pipx install klaxon
+```
+Naturally, klaxon can also be pip-installed.
+```bash
+pip install klaxon
+```
+
+## Usage
+
+### terminal
+
+```bash
+# blank notification
+klaxon
+# with custom message
+klaxon --message "this is the message body"
+# pipe message from other program
+echo "this is the message body" | klaxon --
+```
+
+### python
+
+```python
+from klaxon import klaxon, klaxonify
+
+# send a notification
+
+klaxon(
+ title='hello, klaxon',
+ subtitle='hola',
+ message='it me'
+)
+
+# we can decorate our functions to have
+# them send notifications at termination
+
+@klaxonify
+def hello(name='world'):
+ return f'hello, {name}'
+
+
+@klaxonify(title='oh hai', output_as_message=True)
+def foo():
+ return "This will be the message body."
+
+```
+
+## Non-MacOS Notifications
+
+### i.e. mobile | email | slack
+
+You'll need to install klaxon with the `notifiers` extra.
+
+```bash
+pipx install klaxon[notifiers]
+```
+
+You will need a `~/.config/klaxon/config.toml` or `pyproject.toml` file with the
+`tool.klaxon` namespace configured at the top level. Values from the latter will
+override values in the former.
+
+`enable-notifiers` will need to be set to `true` and you will need a `[[notifiers]]` key.
+
+The latter will determine the parameters passed to the `notifiers.notify` method.
+
+For example:
+
+`~/.config/klaxon/config.toml`
+```toml
+enable-notifiers = true
+
+[[notifiers]]
+name = 'slack'
+# see https://api.slack.com/incoming-webhooks#getting-started
+webhook_url = {{your webhook url}}
+
+[[notifiers]]
+name = 'pushover'
+user = {{your user token}}
+token = {{your application token}}
+```
+
+Voila! Now messages sent from klaxon will be pushed to slack and pushover.
+
+## Development
+
+```bash
+
+git clone git@github.com:knowsuchagency/klaxon.git
+
+cd klaxon
+
+# create a virtualenv and activate it
+
+python3 -m venv .venv
+source .venv/bin/activate
+
+# install poetry and use it to install project dependencies
+
+pip install -U pip
+pip install poetry
+poetry install
+
+# this will install `invoke` which will let you use the tasks defined in `tasks.py`
+
+# install pre-commit hooks
+
+inv install-hooks
+
+# from now on, as you make changes to the project, the pre-commit hooks and
+# github workflows will help make sure code is formatted properly and tests
+# are invoked as you commit, push, and submit pull requests
+```
+
+
+[terminal-notifier]: https://github.com/julienXX/terminal-notifier
+[pipx]: https://github.com/pipxproject/pipx
+[osascript]: https://apple.stackexchange.com/questions/57412/how-can-i-trigger-a-notification-center-notification-from-an-applescript-or-shel/115373#115373
+[notifiers]: https://github.com/notifiers/notifiers
+
+
+%package help
+Summary: Development documents and examples for klaxon
+Provides: python3-klaxon-doc
+%description help
+# klaxon
+
+![](https://github.com/knowsuchagency/klaxon/workflows/black/badge.svg)
+![](https://github.com/knowsuchagency/klaxon/workflows/mypy/badge.svg)
+![](https://github.com/knowsuchagency/klaxon/workflows/unit%20tests/badge.svg)
+
+Send Mac OS (or [notifiers][notifiers]) notifications from the terminal or Python programs.
+
+This is especially useful for when you want a push notification
+for some long-running background task.
+
+Similar to the [terminal-notifier ruby gem][terminal-notifier],
+but posix-compliant and able to send notifications via
+the [notifiers][notifiers] library.
+
+![hello-klaxon](static/recording.gif)
+
+## Installation
+For command-line use, the recommended method of installation is through [pipx].
+```bash
+pipx install klaxon
+```
+Naturally, klaxon can also be pip-installed.
+```bash
+pip install klaxon
+```
+
+## Usage
+
+### terminal
+
+```bash
+# blank notification
+klaxon
+# with custom message
+klaxon --message "this is the message body"
+# pipe message from other program
+echo "this is the message body" | klaxon --
+```
+
+### python
+
+```python
+from klaxon import klaxon, klaxonify
+
+# send a notification
+
+klaxon(
+ title='hello, klaxon',
+ subtitle='hola',
+ message='it me'
+)
+
+# we can decorate our functions to have
+# them send notifications at termination
+
+@klaxonify
+def hello(name='world'):
+ return f'hello, {name}'
+
+
+@klaxonify(title='oh hai', output_as_message=True)
+def foo():
+ return "This will be the message body."
+
+```
+
+## Non-MacOS Notifications
+
+### i.e. mobile | email | slack
+
+You'll need to install klaxon with the `notifiers` extra.
+
+```bash
+pipx install klaxon[notifiers]
+```
+
+You will need a `~/.config/klaxon/config.toml` or `pyproject.toml` file with the
+`tool.klaxon` namespace configured at the top level. Values from the latter will
+override values in the former.
+
+`enable-notifiers` will need to be set to `true` and you will need a `[[notifiers]]` key.
+
+The latter will determine the parameters passed to the `notifiers.notify` method.
+
+For example:
+
+`~/.config/klaxon/config.toml`
+```toml
+enable-notifiers = true
+
+[[notifiers]]
+name = 'slack'
+# see https://api.slack.com/incoming-webhooks#getting-started
+webhook_url = {{your webhook url}}
+
+[[notifiers]]
+name = 'pushover'
+user = {{your user token}}
+token = {{your application token}}
+```
+
+Voila! Now messages sent from klaxon will be pushed to slack and pushover.
+
+## Development
+
+```bash
+
+git clone git@github.com:knowsuchagency/klaxon.git
+
+cd klaxon
+
+# create a virtualenv and activate it
+
+python3 -m venv .venv
+source .venv/bin/activate
+
+# install poetry and use it to install project dependencies
+
+pip install -U pip
+pip install poetry
+poetry install
+
+# this will install `invoke` which will let you use the tasks defined in `tasks.py`
+
+# install pre-commit hooks
+
+inv install-hooks
+
+# from now on, as you make changes to the project, the pre-commit hooks and
+# github workflows will help make sure code is formatted properly and tests
+# are invoked as you commit, push, and submit pull requests
+```
+
+
+[terminal-notifier]: https://github.com/julienXX/terminal-notifier
+[pipx]: https://github.com/pipxproject/pipx
+[osascript]: https://apple.stackexchange.com/questions/57412/how-can-i-trigger-a-notification-center-notification-from-an-applescript-or-shel/115373#115373
+[notifiers]: https://github.com/notifiers/notifiers
+
+
+%prep
+%autosetup -n klaxon-1.1.1
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "\"/%h/%f\"\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "\"/%h/%f\"\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "\"/%h/%f\"\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "\"/%h/%f\"\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "\"/%h/%f.gz\"\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-klaxon -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Tue Jun 20 2023 Python_Bot <Python_Bot@openeuler.org> - 1.1.1-1
+- Package Spec generated