h-message-bus 0.0.25__tar.gz → 0.0.26__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 (46) hide show
  1. {h_message_bus-0.0.25 → h_message_bus-0.0.26}/PKG-INFO +1 -1
  2. {h_message_bus-0.0.25 → h_message_bus-0.0.26}/pyproject.toml +1 -1
  3. {h_message_bus-0.0.25 → h_message_bus-0.0.26}/src/h_message_bus/domain/models/request_message_topic.py +2 -0
  4. h_message_bus-0.0.26/src/h_message_bus/domain/models/twitter_user_metadata.py +76 -0
  5. h_message_bus-0.0.26/src/h_message_bus/domain/request_messages/twitter_get_users_request_message.py +42 -0
  6. h_message_bus-0.0.26/src/h_message_bus/domain/request_messages/twitter_get_users_response_message.py +44 -0
  7. {h_message_bus-0.0.25 → h_message_bus-0.0.26}/src/h_message_bus.egg-info/PKG-INFO +1 -1
  8. {h_message_bus-0.0.25 → h_message_bus-0.0.26}/src/h_message_bus.egg-info/SOURCES.txt +3 -0
  9. {h_message_bus-0.0.25 → h_message_bus-0.0.26}/README.md +0 -0
  10. {h_message_bus-0.0.25 → h_message_bus-0.0.26}/setup.cfg +0 -0
  11. {h_message_bus-0.0.25 → h_message_bus-0.0.26}/src/__init__.py +0 -0
  12. {h_message_bus-0.0.25 → h_message_bus-0.0.26}/src/h_message_bus/__init__.py +0 -0
  13. {h_message_bus-0.0.25 → h_message_bus-0.0.26}/src/h_message_bus/adapters/__init__.py +0 -0
  14. {h_message_bus-0.0.25 → h_message_bus-0.0.26}/src/h_message_bus/adapters/nats_message_adapter.py +0 -0
  15. {h_message_bus-0.0.25 → h_message_bus-0.0.26}/src/h_message_bus/adapters/nats_publisher_adapter.py +0 -0
  16. {h_message_bus-0.0.25 → h_message_bus-0.0.26}/src/h_message_bus/adapters/nats_subscriber_adapter.py +0 -0
  17. {h_message_bus-0.0.25 → h_message_bus-0.0.26}/src/h_message_bus/application/__init__.py +0 -0
  18. {h_message_bus-0.0.25 → h_message_bus-0.0.26}/src/h_message_bus/application/message_processor.py +0 -0
  19. {h_message_bus-0.0.25 → h_message_bus-0.0.26}/src/h_message_bus/application/message_publisher.py +0 -0
  20. {h_message_bus-0.0.25 → h_message_bus-0.0.26}/src/h_message_bus/application/message_subcriber.py +0 -0
  21. {h_message_bus-0.0.25 → h_message_bus-0.0.26}/src/h_message_bus/domain/__init__.py +0 -0
  22. {h_message_bus-0.0.25 → h_message_bus-0.0.26}/src/h_message_bus/domain/event_messages/__init__.py +0 -0
  23. {h_message_bus-0.0.25 → h_message_bus-0.0.26}/src/h_message_bus/domain/models/__init__.py +0 -0
  24. {h_message_bus-0.0.25 → h_message_bus-0.0.26}/src/h_message_bus/domain/models/event_message_topic.py +0 -0
  25. {h_message_bus-0.0.25 → h_message_bus-0.0.26}/src/h_message_bus/domain/models/hai_message.py +0 -0
  26. {h_message_bus-0.0.25 → h_message_bus-0.0.26}/src/h_message_bus/domain/models/vector_collection_metadata.py +0 -0
  27. {h_message_bus-0.0.25 → h_message_bus-0.0.26}/src/h_message_bus/domain/models/vector_query_answer.py +0 -0
  28. {h_message_bus-0.0.25 → h_message_bus-0.0.26}/src/h_message_bus/domain/request_messages/__init__.py +0 -0
  29. {h_message_bus-0.0.25 → h_message_bus-0.0.26}/src/h_message_bus/domain/request_messages/tg_message_request_message.py +0 -0
  30. {h_message_bus-0.0.25 → h_message_bus-0.0.26}/src/h_message_bus/domain/request_messages/tg_user_message_reply_request_message.py +0 -0
  31. {h_message_bus-0.0.25 → h_message_bus-0.0.26}/src/h_message_bus/domain/request_messages/tg_user_message_request_message.py +0 -0
  32. {h_message_bus-0.0.25 → h_message_bus-0.0.26}/src/h_message_bus/domain/request_messages/twitter_get_user_request_message.py +0 -0
  33. {h_message_bus-0.0.25 → h_message_bus-0.0.26}/src/h_message_bus/domain/request_messages/twitter_get_user_response_message.py +0 -0
  34. {h_message_bus-0.0.25 → h_message_bus-0.0.26}/src/h_message_bus/domain/request_messages/vector_query_collection_request_message.py +0 -0
  35. {h_message_bus-0.0.25 → h_message_bus-0.0.26}/src/h_message_bus/domain/request_messages/vector_query_collection_response_message.py +0 -0
  36. {h_message_bus-0.0.25 → h_message_bus-0.0.26}/src/h_message_bus/domain/request_messages/vector_read_metadata_request_message.py +0 -0
  37. {h_message_bus-0.0.25 → h_message_bus-0.0.26}/src/h_message_bus/domain/request_messages/vector_read_metadata_response_message.py +0 -0
  38. {h_message_bus-0.0.25 → h_message_bus-0.0.26}/src/h_message_bus/domain/request_messages/vector_save_request_message.py +0 -0
  39. {h_message_bus-0.0.25 → h_message_bus-0.0.26}/src/h_message_bus/domain/request_messages/web_get_docs_request_message.py +0 -0
  40. {h_message_bus-0.0.25 → h_message_bus-0.0.26}/src/h_message_bus/domain/request_messages/web_search_request_message.py +0 -0
  41. {h_message_bus-0.0.25 → h_message_bus-0.0.26}/src/h_message_bus/infrastructure/__init__.py +0 -0
  42. {h_message_bus-0.0.25 → h_message_bus-0.0.26}/src/h_message_bus/infrastructure/nats_client_repository.py +0 -0
  43. {h_message_bus-0.0.25 → h_message_bus-0.0.26}/src/h_message_bus/infrastructure/nats_config.py +0 -0
  44. {h_message_bus-0.0.25 → h_message_bus-0.0.26}/src/h_message_bus.egg-info/dependency_links.txt +0 -0
  45. {h_message_bus-0.0.25 → h_message_bus-0.0.26}/src/h_message_bus.egg-info/requires.txt +0 -0
  46. {h_message_bus-0.0.25 → h_message_bus-0.0.26}/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.25
3
+ Version: 0.0.26
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.25"
7
+ version = "0.0.26"
8
8
  authors = [
9
9
  {name = "shoebill", email = "shoebill.hai@gmail.com"},
10
10
  ]
@@ -30,6 +30,8 @@ class RequestMessageTopic(str, Enum):
30
30
  # Twitter
31
31
  TWITTER_GET_USER = "hai.twitter.get.user"
32
32
  TWITTER_GET_USER_RESPONSE = "hai.twitter.get.user.response"
33
+ TWITTER_GET_USERS = "hai.twitter.get.users"
34
+ TWITTER_GET_USERS_RESPONSE = "hai.twitter.get.users.response"
33
35
 
34
36
  TWITTER_USER_SEND_AI_CHAT_SEND = "hai.twitter.user.chat.send"
35
37
  TWITTER_USER_SEND_AI_CHAT_SEND_RESPONSE = "hai.twitter.user.chat.send.response"
@@ -0,0 +1,76 @@
1
+ class TwitterUserMetadata:
2
+ def __init__(self,
3
+ id: str,
4
+ screen_name: str,
5
+ user_name: str = None,
6
+ description: str = None,
7
+ followers_count: int = 0,
8
+ like_count: int = 0,
9
+ is_verified: bool = False,
10
+ url: str = None,
11
+ bio_urls: list = None):
12
+ """
13
+ Initialize a TwitterUserMetadata instance.
14
+
15
+ Args:
16
+ id (str): The user's Twitter ID
17
+ screen_name (str): The user's screen name
18
+ user_name (str, optional): The user's name
19
+ description (str, optional): The user's bio description
20
+ followers_count (int, optional): Number of followers
21
+ like_count (int, optional): Number of likes
22
+ is_verified (bool, optional): Whether the user is verified
23
+ url (str, optional): The user's profile URL
24
+ bio_urls (list, optional): URLs mentioned in the user's bio
25
+ """
26
+ self.id = id
27
+ self.screen_name = screen_name
28
+ self.user_name = user_name
29
+ self.description = description
30
+ self.followers_count = followers_count
31
+ self.like_count = like_count
32
+ self.is_verified = is_verified
33
+ self.url = url
34
+ self.bio_urls = bio_urls or []
35
+
36
+ def to_dict(self) -> dict:
37
+ """
38
+ Convert TwitterUserMetadata instance to a dictionary.
39
+
40
+ Returns:
41
+ dict: A dictionary representation of the TwitterUserMetadata instance.
42
+ """
43
+ return {
44
+ 'id': self.id,
45
+ 'screen_name': self.screen_name,
46
+ 'user_name': self.user_name,
47
+ 'description': self.description,
48
+ 'followers_count': self.followers_count,
49
+ 'like_count': self.like_count,
50
+ 'is_verified': self.is_verified,
51
+ 'url': self.url,
52
+ 'bio_urls': self.bio_urls
53
+ }
54
+
55
+ @classmethod
56
+ def from_dict(cls, data: dict) -> 'TwitterUserMetadata':
57
+ """
58
+ Create a TwitterUserMetadata instance from a dictionary.
59
+
60
+ Args:
61
+ data (dict): A dictionary containing TwitterUserMetadata attributes
62
+
63
+ Returns:
64
+ TwitterUserMetadata: A new TwitterUserMetadata instance
65
+ """
66
+ return cls(
67
+ id=data.get('id'),
68
+ screen_name=data.get('screen_name'),
69
+ user_name=data.get('user_name'),
70
+ description=data.get('description'),
71
+ followers_count=data.get('followers_count', 0),
72
+ like_count=data.get('like_count', 0),
73
+ is_verified=data.get('is_verified', False),
74
+ url=data.get('url'),
75
+ bio_urls=data.get('bio_urls', [])
76
+ )
@@ -0,0 +1,42 @@
1
+ import json
2
+ from typing import Type, TypeVar, Dict, Any, List
3
+
4
+ from ..models.request_message_topic import RequestMessageTopic
5
+ from ...domain.models.hai_message import HaiMessage
6
+
7
+ T = TypeVar('T', bound='HaiMessage')
8
+
9
+ class TwitterGetUsersRequestMessage(HaiMessage):
10
+ """Message to request Twitter user information"""
11
+
12
+ @classmethod
13
+ def create(cls: Type[T], topic: str, payload: Dict[Any, Any]) -> T:
14
+ """Create a message - inherited from HaiMessage"""
15
+ return super().create(topic=topic, payload=payload)
16
+
17
+ @classmethod
18
+ def create_message(cls, usernames: List[str]) -> 'TwitterGetUsersRequestMessage':
19
+ """Create a message requesting Twitter user data"""
20
+ return cls.create(
21
+ topic=RequestMessageTopic.TWITTER_GET_USERS,
22
+ payload={"usernames": json.dumps(usernames)},
23
+ )
24
+
25
+ @property
26
+ def usernames(self) -> List[str]:
27
+ """Get the username from the payload"""
28
+ usernames_payload = self.payload.get("usernames", "")
29
+ usernames = json.loads(usernames_payload)
30
+ response_list = []
31
+ for username in usernames:
32
+ response_list.append(username)
33
+ return response_list
34
+
35
+ @classmethod
36
+ def from_hai_message(cls, message: HaiMessage) -> 'TwitterGetUsersRequestMessage':
37
+ payload = message.payload
38
+ usernames = payload.get("usernames", "")
39
+ usernames_list = json.loads(usernames)
40
+ return cls.create_message(
41
+ usernames=usernames_list
42
+ )
@@ -0,0 +1,44 @@
1
+ import json
2
+ from typing import Type, TypeVar, Dict, Any, List
3
+
4
+ from ..models.request_message_topic import RequestMessageTopic
5
+ from ..models.twitter_user_metadata import TwitterUserMetadata
6
+ from ...domain.models.hai_message import HaiMessage
7
+
8
+ T = TypeVar('T', bound='HaiMessage')
9
+
10
+ class TwitterGetUsersResponseMessage(HaiMessage):
11
+
12
+ @classmethod
13
+ def create(cls: Type[T], topic: str, payload: Dict[Any, Any]) -> T:
14
+ """Create a message - inherited from HaiMessage"""
15
+ return super().create(topic=topic, payload=payload)
16
+
17
+ @classmethod
18
+ def create_message(cls, users: List[dict[str, str]]) -> 'TwitterGetUsersResponseMessage':
19
+ user_result = json.dumps(users)
20
+ return cls.create(
21
+ topic=RequestMessageTopic.TWITTER_GET_USERS_RESPONSE,
22
+ payload={
23
+ "users": user_result,
24
+ },
25
+ )
26
+
27
+ @property
28
+ def users(self) -> List[TwitterUserMetadata]:
29
+ """Get the collection name from the message payload"""
30
+ users = self.payload.get("users", "")
31
+ users_dict = json.loads(users)
32
+ response_list = []
33
+ for user in users_dict:
34
+ response_list.append(TwitterUserMetadata.from_dict(user))
35
+ return response_list
36
+
37
+ @classmethod
38
+ def from_hai_message(cls, message: HaiMessage) -> 'TwitterGetUsersResponseMessage':
39
+ payload = message.payload
40
+ metadata = payload.get("users", "")
41
+ meta_list = json.loads(metadata)
42
+ return cls.create_message(
43
+ users=meta_list
44
+ )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: h_message_bus
3
- Version: 0.0.25
3
+ Version: 0.0.26
4
4
  Summary: Message bus integration for HAI
5
5
  Author-email: shoebill <shoebill.hai@gmail.com>
6
6
  Classifier: Programming Language :: Python :: 3
@@ -21,6 +21,7 @@ src/h_message_bus/domain/models/__init__.py
21
21
  src/h_message_bus/domain/models/event_message_topic.py
22
22
  src/h_message_bus/domain/models/hai_message.py
23
23
  src/h_message_bus/domain/models/request_message_topic.py
24
+ src/h_message_bus/domain/models/twitter_user_metadata.py
24
25
  src/h_message_bus/domain/models/vector_collection_metadata.py
25
26
  src/h_message_bus/domain/models/vector_query_answer.py
26
27
  src/h_message_bus/domain/request_messages/__init__.py
@@ -29,6 +30,8 @@ src/h_message_bus/domain/request_messages/tg_user_message_reply_request_message.
29
30
  src/h_message_bus/domain/request_messages/tg_user_message_request_message.py
30
31
  src/h_message_bus/domain/request_messages/twitter_get_user_request_message.py
31
32
  src/h_message_bus/domain/request_messages/twitter_get_user_response_message.py
33
+ src/h_message_bus/domain/request_messages/twitter_get_users_request_message.py
34
+ src/h_message_bus/domain/request_messages/twitter_get_users_response_message.py
32
35
  src/h_message_bus/domain/request_messages/vector_query_collection_request_message.py
33
36
  src/h_message_bus/domain/request_messages/vector_query_collection_response_message.py
34
37
  src/h_message_bus/domain/request_messages/vector_read_metadata_request_message.py
File without changes
File without changes