busline 0.5.0__tar.gz → 0.5.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. {busline-0.5.0 → busline-0.5.1}/PKG-INFO +3 -3
  2. {busline-0.5.0 → busline-0.5.1}/busline/client/pubsub_client.py +24 -1
  3. {busline-0.5.0 → busline-0.5.1}/busline.egg-info/PKG-INFO +3 -3
  4. {busline-0.5.0 → busline-0.5.1}/pyproject.toml +3 -3
  5. {busline-0.5.0 → busline-0.5.1}/LICENSE +0 -0
  6. {busline-0.5.0 → busline-0.5.1}/README.md +0 -0
  7. {busline-0.5.0 → busline-0.5.1}/busline/__init__.py +0 -0
  8. {busline-0.5.0 → busline-0.5.1}/busline/client/__init__.py +0 -0
  9. {busline-0.5.0 → busline-0.5.1}/busline/client/client.py +0 -0
  10. {busline-0.5.0 → busline-0.5.1}/busline/client/eventbus_connector.py +0 -0
  11. {busline-0.5.0 → busline-0.5.1}/busline/client/multiclient.py +0 -0
  12. {busline-0.5.0 → busline-0.5.1}/busline/client/publisher/__init__.py +0 -0
  13. {busline-0.5.0 → busline-0.5.1}/busline/client/publisher/publisher.py +0 -0
  14. {busline-0.5.0 → busline-0.5.1}/busline/client/subscriber/__init__.py +0 -0
  15. {busline-0.5.0 → busline-0.5.1}/busline/client/subscriber/event_handler/__init__.py +0 -0
  16. {busline-0.5.0 → busline-0.5.1}/busline/client/subscriber/event_handler/closure_event_handler.py +0 -0
  17. {busline-0.5.0 → busline-0.5.1}/busline/client/subscriber/event_handler/event_handler.py +0 -0
  18. {busline-0.5.0 → busline-0.5.1}/busline/client/subscriber/event_handler/multi_handler.py +0 -0
  19. {busline-0.5.0 → busline-0.5.1}/busline/client/subscriber/subscriber.py +0 -0
  20. {busline-0.5.0 → busline-0.5.1}/busline/client/subscriber/topic_subscriber.py +0 -0
  21. {busline-0.5.0 → busline-0.5.1}/busline/event/__init__.py +0 -0
  22. {busline-0.5.0 → busline-0.5.1}/busline/event/event.py +0 -0
  23. {busline-0.5.0 → busline-0.5.1}/busline/event/registry.py +0 -0
  24. {busline-0.5.0 → busline-0.5.1}/busline/event/test.py +0 -0
  25. {busline-0.5.0 → busline-0.5.1}/busline/exceptions.py +0 -0
  26. {busline-0.5.0 → busline-0.5.1}/busline/local/__init__.py +0 -0
  27. {busline-0.5.0 → busline-0.5.1}/busline/local/eventbus/__init__.py +0 -0
  28. {busline-0.5.0 → busline-0.5.1}/busline/local/eventbus/async_local_eventbus.py +0 -0
  29. {busline-0.5.0 → busline-0.5.1}/busline/local/eventbus/eventbus.py +0 -0
  30. {busline-0.5.0 → busline-0.5.1}/busline/local/eventbus/local_eventbus.py +0 -0
  31. {busline-0.5.0 → busline-0.5.1}/busline/local/local_pubsub_client.py +0 -0
  32. {busline-0.5.0 → busline-0.5.1}/busline/local/publisher/__init__.py +0 -0
  33. {busline-0.5.0 → busline-0.5.1}/busline/local/publisher/local_publisher.py +0 -0
  34. {busline-0.5.0 → busline-0.5.1}/busline/local/subscriber/__init__.py +0 -0
  35. {busline-0.5.0 → busline-0.5.1}/busline/local/subscriber/local_subscriber.py +0 -0
  36. {busline-0.5.0 → busline-0.5.1}/busline/local/test.py +0 -0
  37. {busline-0.5.0 → busline-0.5.1}/busline.egg-info/SOURCES.txt +0 -0
  38. {busline-0.5.0 → busline-0.5.1}/busline.egg-info/dependency_links.txt +0 -0
  39. {busline-0.5.0 → busline-0.5.1}/busline.egg-info/top_level.txt +0 -0
  40. {busline-0.5.0 → busline-0.5.1}/setup.cfg +0 -0
@@ -1,10 +1,10 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: busline
3
- Version: 0.5.0
3
+ Version: 0.5.1
4
4
  Summary: Agnostic eventbus for Python
5
5
  Author-email: Nicola Ricciardi <ricciardincl@gmail.com>
6
- Project-URL: Homepage, https://github.com/nricciardi/py-busline
7
- Project-URL: Issues, https://github.com/nricciardi/py-busline/issues
6
+ Project-URL: Homepage, https://github.com/orbitalis-framework/py-busline
7
+ Project-URL: Issues, https://github.com/orbitalis-framework/py-busline/issues
8
8
  Classifier: Programming Language :: Python :: 3
9
9
  Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
10
10
  Classifier: Operating System :: OS Independent
@@ -4,6 +4,8 @@ from typing import Optional, override, List, Self
4
4
 
5
5
  from busline.client.client import EventBusClient
6
6
  from busline.client.publisher.publisher import Publisher
7
+ from busline.client.subscriber.event_handler.event_handler import EventHandler
8
+ from busline.client.subscriber.topic_subscriber import TopicSubscriber
7
9
  from busline.event.event import Event
8
10
  from busline.client.subscriber.subscriber import Subscriber
9
11
 
@@ -33,7 +35,7 @@ class PubSubClient(EventBusClient):
33
35
  return cls(publishers, subscribers)
34
36
 
35
37
  @classmethod
36
- def from_pubsub_client(cls, client: 'PubSubClient') -> Self:
38
+ def from_pubsub_client(cls, client: Self) -> Self:
37
39
  return cls(client.publishers.copy(), client.subscribers.copy())
38
40
 
39
41
  @override
@@ -89,6 +91,27 @@ class PubSubClient(EventBusClient):
89
91
  ])
90
92
 
91
93
 
94
+ @dataclass
95
+ class PubSubTopicClient(PubSubClient):
96
+ """
97
+ Eventbus client which should used by components which wouldn't be a publisher/subscriber, but they need them
98
+
99
+ Author: Nicola Ricciardi
100
+ """
101
+
102
+ subscribers: List[TopicSubscriber]
103
+
104
+ @override
105
+ async def subscribe(self, topic: str, handler: Optional[EventHandler] = None, **kwargs):
106
+ """
107
+ Subscribe all subscribers on topic
108
+ """
109
+
110
+ await asyncio.gather(*[
111
+ subscriber.subscribe(topic, handler=handler, **kwargs) for subscriber in self.subscribers
112
+ ])
113
+
114
+
92
115
  @dataclass
93
116
  class PubSubClientBuilder:
94
117
  """
@@ -1,10 +1,10 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: busline
3
- Version: 0.5.0
3
+ Version: 0.5.1
4
4
  Summary: Agnostic eventbus for Python
5
5
  Author-email: Nicola Ricciardi <ricciardincl@gmail.com>
6
- Project-URL: Homepage, https://github.com/nricciardi/py-busline
7
- Project-URL: Issues, https://github.com/nricciardi/py-busline/issues
6
+ Project-URL: Homepage, https://github.com/orbitalis-framework/py-busline
7
+ Project-URL: Issues, https://github.com/orbitalis-framework/py-busline/issues
8
8
  Classifier: Programming Language :: Python :: 3
9
9
  Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
10
10
  Classifier: Operating System :: OS Independent
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "busline"
3
- version = "0.5.0"
3
+ version = "0.5.1"
4
4
  authors = [
5
5
  { name="Nicola Ricciardi", email="ricciardincl@gmail.com" },
6
6
  ]
@@ -14,5 +14,5 @@ classifiers = [
14
14
  ]
15
15
 
16
16
  [project.urls]
17
- Homepage = "https://github.com/nricciardi/py-busline"
18
- Issues = "https://github.com/nricciardi/py-busline/issues"
17
+ Homepage = "https://github.com/orbitalis-framework/py-busline"
18
+ Issues = "https://github.com/orbitalis-framework/py-busline/issues"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes