h-message-bus 0.0.22__tar.gz → 0.0.24__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 (43) hide show
  1. {h_message_bus-0.0.22 → h_message_bus-0.0.24}/PKG-INFO +1 -1
  2. {h_message_bus-0.0.22 → h_message_bus-0.0.24}/pyproject.toml +1 -1
  3. {h_message_bus-0.0.22 → h_message_bus-0.0.24}/src/h_message_bus/adapters/nats_publisher_adapter.py +3 -2
  4. {h_message_bus-0.0.22 → h_message_bus-0.0.24}/src/h_message_bus/adapters/nats_subscriber_adapter.py +3 -2
  5. {h_message_bus-0.0.22 → h_message_bus-0.0.24}/src/h_message_bus/domain/request_messages/vector_save_request_message.py +8 -1
  6. {h_message_bus-0.0.22 → h_message_bus-0.0.24}/src/h_message_bus/infrastructure/nats_client_repository.py +8 -1
  7. {h_message_bus-0.0.22 → h_message_bus-0.0.24}/src/h_message_bus.egg-info/PKG-INFO +1 -1
  8. {h_message_bus-0.0.22 → h_message_bus-0.0.24}/README.md +0 -0
  9. {h_message_bus-0.0.22 → h_message_bus-0.0.24}/setup.cfg +0 -0
  10. {h_message_bus-0.0.22 → h_message_bus-0.0.24}/src/__init__.py +0 -0
  11. {h_message_bus-0.0.22 → h_message_bus-0.0.24}/src/h_message_bus/__init__.py +0 -0
  12. {h_message_bus-0.0.22 → h_message_bus-0.0.24}/src/h_message_bus/adapters/__init__.py +0 -0
  13. {h_message_bus-0.0.22 → h_message_bus-0.0.24}/src/h_message_bus/adapters/nats_message_adapter.py +0 -0
  14. {h_message_bus-0.0.22 → h_message_bus-0.0.24}/src/h_message_bus/application/__init__.py +0 -0
  15. {h_message_bus-0.0.22 → h_message_bus-0.0.24}/src/h_message_bus/application/message_processor.py +0 -0
  16. {h_message_bus-0.0.22 → h_message_bus-0.0.24}/src/h_message_bus/application/message_publisher.py +0 -0
  17. {h_message_bus-0.0.22 → h_message_bus-0.0.24}/src/h_message_bus/application/message_subcriber.py +0 -0
  18. {h_message_bus-0.0.22 → h_message_bus-0.0.24}/src/h_message_bus/domain/__init__.py +0 -0
  19. {h_message_bus-0.0.22 → h_message_bus-0.0.24}/src/h_message_bus/domain/event_messages/__init__.py +0 -0
  20. {h_message_bus-0.0.22 → h_message_bus-0.0.24}/src/h_message_bus/domain/models/__init__.py +0 -0
  21. {h_message_bus-0.0.22 → h_message_bus-0.0.24}/src/h_message_bus/domain/models/event_message_topic.py +0 -0
  22. {h_message_bus-0.0.22 → h_message_bus-0.0.24}/src/h_message_bus/domain/models/hai_message.py +0 -0
  23. {h_message_bus-0.0.22 → h_message_bus-0.0.24}/src/h_message_bus/domain/models/request_message_topic.py +0 -0
  24. {h_message_bus-0.0.22 → h_message_bus-0.0.24}/src/h_message_bus/domain/models/vector_collection_metadata.py +0 -0
  25. {h_message_bus-0.0.22 → h_message_bus-0.0.24}/src/h_message_bus/domain/models/vector_query_answer.py +0 -0
  26. {h_message_bus-0.0.22 → h_message_bus-0.0.24}/src/h_message_bus/domain/request_messages/__init__.py +0 -0
  27. {h_message_bus-0.0.22 → h_message_bus-0.0.24}/src/h_message_bus/domain/request_messages/tg_message_request_message.py +0 -0
  28. {h_message_bus-0.0.22 → h_message_bus-0.0.24}/src/h_message_bus/domain/request_messages/tg_user_message_reply_request_message.py +0 -0
  29. {h_message_bus-0.0.22 → h_message_bus-0.0.24}/src/h_message_bus/domain/request_messages/tg_user_message_request_message.py +0 -0
  30. {h_message_bus-0.0.22 → h_message_bus-0.0.24}/src/h_message_bus/domain/request_messages/twitter_get_user_request_message.py +0 -0
  31. {h_message_bus-0.0.22 → h_message_bus-0.0.24}/src/h_message_bus/domain/request_messages/twitter_get_user_response_message.py +0 -0
  32. {h_message_bus-0.0.22 → h_message_bus-0.0.24}/src/h_message_bus/domain/request_messages/vector_query_collection_request_message.py +0 -0
  33. {h_message_bus-0.0.22 → h_message_bus-0.0.24}/src/h_message_bus/domain/request_messages/vector_query_collection_response_message.py +0 -0
  34. {h_message_bus-0.0.22 → h_message_bus-0.0.24}/src/h_message_bus/domain/request_messages/vector_read_metadata_request_message.py +0 -0
  35. {h_message_bus-0.0.22 → h_message_bus-0.0.24}/src/h_message_bus/domain/request_messages/vector_read_metadata_response_message.py +0 -0
  36. {h_message_bus-0.0.22 → h_message_bus-0.0.24}/src/h_message_bus/domain/request_messages/web_get_docs_request_message.py +0 -0
  37. {h_message_bus-0.0.22 → h_message_bus-0.0.24}/src/h_message_bus/domain/request_messages/web_search_request_message.py +0 -0
  38. {h_message_bus-0.0.22 → h_message_bus-0.0.24}/src/h_message_bus/infrastructure/__init__.py +0 -0
  39. {h_message_bus-0.0.22 → h_message_bus-0.0.24}/src/h_message_bus/infrastructure/nats_config.py +0 -0
  40. {h_message_bus-0.0.22 → h_message_bus-0.0.24}/src/h_message_bus.egg-info/SOURCES.txt +0 -0
  41. {h_message_bus-0.0.22 → h_message_bus-0.0.24}/src/h_message_bus.egg-info/dependency_links.txt +0 -0
  42. {h_message_bus-0.0.22 → h_message_bus-0.0.24}/src/h_message_bus.egg-info/requires.txt +0 -0
  43. {h_message_bus-0.0.22 → h_message_bus-0.0.24}/src/h_message_bus.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: h_message_bus
3
- Version: 0.0.22
3
+ Version: 0.0.24
4
4
  Summary: Message bus integration for HAI
5
5
  Author-email: shoebill <shoebill.hai@gmail.com>
6
6
  Classifier: Programming Language :: Python :: 3
@@ -4,7 +4,7 @@
4
4
 
5
5
  [project]
6
6
  name = "h_message_bus"
7
- version = "0.0.22"
7
+ version = "0.0.24"
8
8
  authors = [
9
9
  {name = "shoebill", email = "shoebill.hai@gmail.com"},
10
10
  ]
@@ -1,3 +1,4 @@
1
+ import asyncio
1
2
  from typing import Optional
2
3
 
3
4
  from ..application.message_publisher import MessagePublisher
@@ -23,14 +24,14 @@ class NatsPublisherAdapter(MessagePublisher):
23
24
  def __init__(self, nats_client: NatsClientRepository):
24
25
  self.nats_client = nats_client
25
26
 
26
- async def publish(self, message: HaiMessage):
27
+ async def publish(self, message: HaiMessage, wait_time: float = 0.1):
27
28
  """Publish a message to NATS."""
28
29
  try:
29
-
30
30
  await self.nats_client.publish(
31
31
  message.topic,
32
32
  message.to_json().encode()
33
33
  )
34
+ await asyncio.sleep(wait_time)
34
35
  except Exception as e:
35
36
  print(f"Failed to publish message: {e}")
36
37
  return
@@ -1,4 +1,4 @@
1
- from typing import Dict
1
+ from typing import Dict, Any
2
2
 
3
3
  from ..adapters.nats_message_adapter import NatsMessageAdapter
4
4
  from ..application.message_processor import MessageProcessor
@@ -30,7 +30,7 @@ class NatsSubscriberAdapter(MessageSubscriber):
30
30
  self.subscriptions = []
31
31
  self.adapters: Dict[str, NatsMessageAdapter] = {}
32
32
 
33
- async def subscribe(self, topic: str, processor: MessageProcessor) -> None:
33
+ async def subscribe(self, topic: str, processor: MessageProcessor) -> Any:
34
34
  """Subscribe to a topic with a message handler."""
35
35
  # Create an adapter for this use case
36
36
  message_adapter = NatsMessageAdapter(processor)
@@ -43,6 +43,7 @@ class NatsSubscriberAdapter(MessageSubscriber):
43
43
  )
44
44
 
45
45
  self.subscriptions.append(subscription)
46
+ return subscription
46
47
 
47
48
  async def unsubscribe_all(self) -> None:
48
49
  """Unsubscribe from all subscriptions."""
@@ -14,12 +14,13 @@ class VectorSaveRequestMessage(HaiMessage):
14
14
  return super().create(topic=topic, payload=payload)
15
15
 
16
16
  @classmethod
17
- def create_message(cls, collection_name: str, document_id: str, content: str, metadata: dict[str,str]) -> 'VectorSaveRequestMessage':
17
+ def create_message(cls, collection_name: str, collection_metadata: dict[str,str], document_id: str, content: str, metadata: dict[str,str]) -> 'VectorSaveRequestMessage':
18
18
  """Create a message requesting Twitter user data"""
19
19
  return cls.create(
20
20
  topic=RequestMessageTopic.VECTORS_SAVE,
21
21
  payload={
22
22
  "collection_name": collection_name,
23
+ "collection_metadata": collection_metadata,
23
24
  "document_id": document_id,
24
25
  "content": content,
25
26
  "metadata": metadata
@@ -31,6 +32,11 @@ class VectorSaveRequestMessage(HaiMessage):
31
32
  """Get the collection name from the payload"""
32
33
  return self.payload.get("collection_name")
33
34
 
35
+ @property
36
+ def collection_metadata(self) -> str:
37
+ """Get the collection name from the payload"""
38
+ return self.payload.get("collection_metadata")
39
+
34
40
  @property
35
41
  def document_id(self) -> str:
36
42
  """Get the document ID from the payload"""
@@ -53,6 +59,7 @@ class VectorSaveRequestMessage(HaiMessage):
53
59
 
54
60
  return cls.create_message(
55
61
  collection_name=payload.get("collection_name", ''),
62
+ collection_metadata=payload.get("collection_metadata", {}),
56
63
  document_id=payload.get("document_id", ''),
57
64
  content=payload.get("content", ''),
58
65
  metadata=payload.get("metadata", {})
@@ -1,3 +1,4 @@
1
+ import logging
1
2
  from typing import Optional, Callable, Any
2
3
 
3
4
  import nats
@@ -30,11 +31,13 @@ class NatsClientRepository:
30
31
  self.client: NatsClient | None = None
31
32
 
32
33
  self.subscriptions = []
34
+ self.logger = logging.getLogger(__name__)
33
35
 
34
36
  async def connect(self) -> None:
35
37
  """Connect to NATS server."""
36
38
  if self.client and self.client.is_connected:
37
39
  return
40
+ self.logger.info(f"Connecting to NATS server at {self.config.server}")
38
41
 
39
42
  self.client = await nats.connect(
40
43
  servers=self.config.server,
@@ -50,7 +53,11 @@ class NatsClientRepository:
50
53
  if not self.client or not self.client.is_connected:
51
54
  await self.connect()
52
55
 
53
- await self.client.publish(subject, payload)
56
+ try:
57
+ await self.client.publish(subject, payload)
58
+ except Exception as e:
59
+ print(f"Failed to publish message: {e}")
60
+ return
54
61
 
55
62
  async def subscribe(self, subject: str, callback: Callable) -> Any:
56
63
  """Subscribe to a subject with a callback."""
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: h_message_bus
3
- Version: 0.0.22
3
+ Version: 0.0.24
4
4
  Summary: Message bus integration for HAI
5
5
  Author-email: shoebill <shoebill.hai@gmail.com>
6
6
  Classifier: Programming Language :: Python :: 3
File without changes
File without changes