%global _empty_manifest_terminate_build 0 Name: python-observable Version: 1.0.3 Release: 1 Summary: minimalist event system License: MIT URL: https://github.com/timofurrer/observable Source0: https://mirrors.nju.edu.cn/pypi/web/packages/24/57/013c2610cf93f9ae87e522be17d679bcba0e7cee2cd8da4dc8efddef1138/observable-1.0.3.tar.gz BuildArch: noarch %description # observable [![Build Status](https://travis-ci.com/timofurrer/observable.svg?branch=master)](https://travis-ci.com/timofurrer/observable) [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/ambv/black) **pyobservable** is a minimalist event system for python. It provides you an easy-to-use interface to trigger arbitrary functions when specific events occur. ```python from observable import Observable obs = Observable() @obs.on("error") def error_handler(message): # do some fancy error handling logging.error(f"An error occured: {message}") ... def do_time_travel(): # do some time traveling ... if year != 1291: obs.trigger("error", "Time travel to 1291 didn't work") ``` **Note:** We are Python 3 only! Only Python Versions >= 3.5 are supported. Use [v0.3.2](https://pypi.org/project/observable/0.3.2/) for older Python Versions. ## How to use Use a `pip` to install it from PyPI: pip install observable After completion you can start using `observable`: ```python from observable import Observable obs = Observable() ``` ## Usage ### `on`: Register event handler with `on` There are two ways to register a function to an event.
The first way is to register the event with a decorator like this: ```python @obs.on("error") def error_func(message): print("Error: %s" % message) ``` The second way is to register it with a method call: ```python def error_func(message): print("Error: %s" % message) obs.on("error", error_func) ``` ### `once`: Register event handler with `once` `once` works like `on`, but once the event handler is triggered it will be removed and cannot be triggered again. ### `trigger`: trigger event You can trigger a registered event with the `trigger` method: ```python obs.trigger("error", "This is my error message") ``` If no handler for the event `error` could be found an `Observable.NoHandlerFound`-Exception will be raised. ### `off`: remove handler and events Remove a handler from a specified event: ```python obs.off("error", error_func) ``` ```python obs.off("error", [error_func, second_error_func]) ``` Remove all handlers from a specified event: ```python obs.off("error") ``` Clear all events: ```python obs.off() ``` ### `get_all_handlers`, `get_handlers` and `is_registered`: Check which handlers are registered Imagine you registered the following handlers: ```python @obs.on("success") def success_func(): print("Success!") @obs.on("error") def error_func(message): print("Error: %s" % message) ``` Then you can do the following to inspect the registered handlers: ```python >>> obs.get_all_handlers() {'success': [], 'error': []} >>> obs.get_handlers("success") [] >>> obs.get_handlers("other_event") [] ``` *** *

This project is published under [MIT](LICENSE).
A [Timo Furrer](https://tuxtimo.me) project.
- :tada: -

* %package -n python3-observable Summary: minimalist event system Provides: python-observable BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-observable # observable [![Build Status](https://travis-ci.com/timofurrer/observable.svg?branch=master)](https://travis-ci.com/timofurrer/observable) [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/ambv/black) **pyobservable** is a minimalist event system for python. It provides you an easy-to-use interface to trigger arbitrary functions when specific events occur. ```python from observable import Observable obs = Observable() @obs.on("error") def error_handler(message): # do some fancy error handling logging.error(f"An error occured: {message}") ... def do_time_travel(): # do some time traveling ... if year != 1291: obs.trigger("error", "Time travel to 1291 didn't work") ``` **Note:** We are Python 3 only! Only Python Versions >= 3.5 are supported. Use [v0.3.2](https://pypi.org/project/observable/0.3.2/) for older Python Versions. ## How to use Use a `pip` to install it from PyPI: pip install observable After completion you can start using `observable`: ```python from observable import Observable obs = Observable() ``` ## Usage ### `on`: Register event handler with `on` There are two ways to register a function to an event.
The first way is to register the event with a decorator like this: ```python @obs.on("error") def error_func(message): print("Error: %s" % message) ``` The second way is to register it with a method call: ```python def error_func(message): print("Error: %s" % message) obs.on("error", error_func) ``` ### `once`: Register event handler with `once` `once` works like `on`, but once the event handler is triggered it will be removed and cannot be triggered again. ### `trigger`: trigger event You can trigger a registered event with the `trigger` method: ```python obs.trigger("error", "This is my error message") ``` If no handler for the event `error` could be found an `Observable.NoHandlerFound`-Exception will be raised. ### `off`: remove handler and events Remove a handler from a specified event: ```python obs.off("error", error_func) ``` ```python obs.off("error", [error_func, second_error_func]) ``` Remove all handlers from a specified event: ```python obs.off("error") ``` Clear all events: ```python obs.off() ``` ### `get_all_handlers`, `get_handlers` and `is_registered`: Check which handlers are registered Imagine you registered the following handlers: ```python @obs.on("success") def success_func(): print("Success!") @obs.on("error") def error_func(message): print("Error: %s" % message) ``` Then you can do the following to inspect the registered handlers: ```python >>> obs.get_all_handlers() {'success': [], 'error': []} >>> obs.get_handlers("success") [] >>> obs.get_handlers("other_event") [] ``` *** *

This project is published under [MIT](LICENSE).
A [Timo Furrer](https://tuxtimo.me) project.
- :tada: -

* %package help Summary: Development documents and examples for observable Provides: python3-observable-doc %description help # observable [![Build Status](https://travis-ci.com/timofurrer/observable.svg?branch=master)](https://travis-ci.com/timofurrer/observable) [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/ambv/black) **pyobservable** is a minimalist event system for python. It provides you an easy-to-use interface to trigger arbitrary functions when specific events occur. ```python from observable import Observable obs = Observable() @obs.on("error") def error_handler(message): # do some fancy error handling logging.error(f"An error occured: {message}") ... def do_time_travel(): # do some time traveling ... if year != 1291: obs.trigger("error", "Time travel to 1291 didn't work") ``` **Note:** We are Python 3 only! Only Python Versions >= 3.5 are supported. Use [v0.3.2](https://pypi.org/project/observable/0.3.2/) for older Python Versions. ## How to use Use a `pip` to install it from PyPI: pip install observable After completion you can start using `observable`: ```python from observable import Observable obs = Observable() ``` ## Usage ### `on`: Register event handler with `on` There are two ways to register a function to an event.
The first way is to register the event with a decorator like this: ```python @obs.on("error") def error_func(message): print("Error: %s" % message) ``` The second way is to register it with a method call: ```python def error_func(message): print("Error: %s" % message) obs.on("error", error_func) ``` ### `once`: Register event handler with `once` `once` works like `on`, but once the event handler is triggered it will be removed and cannot be triggered again. ### `trigger`: trigger event You can trigger a registered event with the `trigger` method: ```python obs.trigger("error", "This is my error message") ``` If no handler for the event `error` could be found an `Observable.NoHandlerFound`-Exception will be raised. ### `off`: remove handler and events Remove a handler from a specified event: ```python obs.off("error", error_func) ``` ```python obs.off("error", [error_func, second_error_func]) ``` Remove all handlers from a specified event: ```python obs.off("error") ``` Clear all events: ```python obs.off() ``` ### `get_all_handlers`, `get_handlers` and `is_registered`: Check which handlers are registered Imagine you registered the following handlers: ```python @obs.on("success") def success_func(): print("Success!") @obs.on("error") def error_func(message): print("Error: %s" % message) ``` Then you can do the following to inspect the registered handlers: ```python >>> obs.get_all_handlers() {'success': [], 'error': []} >>> obs.get_handlers("success") [] >>> obs.get_handlers("other_event") [] ``` *** *

This project is published under [MIT](LICENSE).
A [Timo Furrer](https://tuxtimo.me) project.
- :tada: -

* %prep %autosetup -n observable-1.0.3 %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-observable -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Tue Apr 11 2023 Python_Bot - 1.0.3-1 - Package Spec generated