# ev-manager (Event Manager)
Useful when working with DCCs like Maya, MotionBuilder, Unreal Engine, etc. and you want different tools/scripts to communicate with each other.
## Installation:
```batch
pip install ev-manager
```
## Examples:
### Using classes:
```python
""" my_module.py """
from typing import Callable
from ev_manager import Event
class ExampleEvent(Event[Callable[[int], None]]):
pass
def my_callback(value: int):
print(f"Number: {value}")
ExampleEvent.bind(my_callback)
```
```python
>>> from my_module import ExampleEvent
>>> ExampleEvent.emit(5)
>>> "Number: 5"
```
### Using functions:
```python
import ev_manager
def hello_world():
print("Hello World!")
ev_manager.bind("MyEvent", hello_world)
```
```python
>>> import ev_manager
>>> ev_manager.emit("MyEvent")
>>> "Hello World!"
```
## Available functions:
| Function | Description |
| --- | --- |
| `bind(event, function)` | Bind a function to an event. |
| `unbind(event, function)` | Unbind a function from an event. |
| `unbind_all(*, event, function)` | Either unbind all functions from an event or unbind a function from all events. |
| `is_bound(event, function)` | Check if a function is bound to an event. |
| `emit(event, *args, **kwargs)` | Call all functions bound to an event. |
## Limitations:
Events are per Python instance. So they will for example not be communicating between different applications.
Raw data
{
"_id": null,
"home_page": "https://github.com/nils-soderman/ev-manager",
"name": "ev-manager",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": "",
"keywords": "event,manager,bind,subscribe,fire,function,callback,emit",
"author": "Nils Soderman",
"author_email": "",
"download_url": "https://files.pythonhosted.org/packages/f4/3a/0813d86883d05efb19e2fbaf8514ec1d9c4a4170ad0fdd5a1c33920c073b/ev-manager-0.1.0.tar.gz",
"platform": null,
"description": "# ev-manager (Event Manager)\n\nUseful when working with DCCs like Maya, MotionBuilder, Unreal Engine, etc. and you want different tools/scripts to communicate with each other.\n\n## Installation:\n```batch\npip install ev-manager\n```\n\n## Examples:\n\n### Using classes:\n\n```python\n\"\"\" my_module.py \"\"\"\n\nfrom typing import Callable\nfrom ev_manager import Event\n\nclass ExampleEvent(Event[Callable[[int], None]]):\n pass\n\ndef my_callback(value: int):\n print(f\"Number: {value}\")\n\nExampleEvent.bind(my_callback)\n```\n\n```python\n>>> from my_module import ExampleEvent\n>>> ExampleEvent.emit(5)\n>>> \"Number: 5\"\n```\n\n\n### Using functions:\n\n```python\nimport ev_manager\n\ndef hello_world():\n print(\"Hello World!\")\n\nev_manager.bind(\"MyEvent\", hello_world)\n```\n\n```python\n>>> import ev_manager\n>>> ev_manager.emit(\"MyEvent\")\n>>> \"Hello World!\"\n```\n\n\n## Available functions:\n\n| Function | Description |\n| --- | --- |\n| `bind(event, function)` | Bind a function to an event. |\n| `unbind(event, function)` | Unbind a function from an event. |\n| `unbind_all(*, event, function)` | Either unbind all functions from an event or unbind a function from all events. |\n| `is_bound(event, function)` | Check if a function is bound to an event. |\n| `emit(event, *args, **kwargs)` | Call all functions bound to an event. |\n\n\n## Limitations:\nEvents are per Python instance. So they will for example not be communicating between different applications.\n",
"bugtrack_url": null,
"license": "",
"summary": "Bind functions to events that can be called from any other script at any time.",
"version": "0.1.0",
"project_urls": {
"Homepage": "https://github.com/nils-soderman/ev-manager"
},
"split_keywords": [
"event",
"manager",
"bind",
"subscribe",
"fire",
"function",
"callback",
"emit"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "c77a1d518ad227c6d30b475d4fd737839a59f7e9ff4aa6f4acc52681001a8c30",
"md5": "dbf5764626c3ca79712e1a1b320fa30b",
"sha256": "994bd3b822b0b7d0e80ed2c75b95a2ed44c9067b73ea58e94d9a5bfab16cc6ea"
},
"downloads": -1,
"filename": "ev_manager-0.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "dbf5764626c3ca79712e1a1b320fa30b",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 4797,
"upload_time": "2024-03-03T11:36:56",
"upload_time_iso_8601": "2024-03-03T11:36:56.445997Z",
"url": "https://files.pythonhosted.org/packages/c7/7a/1d518ad227c6d30b475d4fd737839a59f7e9ff4aa6f4acc52681001a8c30/ev_manager-0.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "f43a0813d86883d05efb19e2fbaf8514ec1d9c4a4170ad0fdd5a1c33920c073b",
"md5": "cf2a6953a3b05652a9f26cdeded9414e",
"sha256": "0b96367ac0a36dffafa047ad25bf951d06df845dbd2d6e01eb46ba89dbad7c4a"
},
"downloads": -1,
"filename": "ev-manager-0.1.0.tar.gz",
"has_sig": false,
"md5_digest": "cf2a6953a3b05652a9f26cdeded9414e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 4070,
"upload_time": "2024-03-03T11:36:57",
"upload_time_iso_8601": "2024-03-03T11:36:57.825480Z",
"url": "https://files.pythonhosted.org/packages/f4/3a/0813d86883d05efb19e2fbaf8514ec1d9c4a4170ad0fdd5a1c33920c073b/ev-manager-0.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-03-03 11:36:57",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "nils-soderman",
"github_project": "ev-manager",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "ev-manager"
}