dimples 0.5.2__tar.gz → 0.5.3__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 (143) hide show
  1. {dimples-0.5.2 → dimples-0.5.3}/PKG-INFO +1 -1
  2. {dimples-0.5.2 → dimples-0.5.3}/dimples/common/messenger.py +5 -5
  3. {dimples-0.5.2 → dimples-0.5.3}/dimples/group/emitter.py +3 -2
  4. {dimples-0.5.2 → dimples-0.5.3}/dimples/server/packer.py +21 -15
  5. {dimples-0.5.2 → dimples-0.5.3}/dimples/server/processor.py +0 -4
  6. {dimples-0.5.2 → dimples-0.5.3}/dimples.egg-info/PKG-INFO +1 -1
  7. {dimples-0.5.2 → dimples-0.5.3}/setup.py +1 -1
  8. {dimples-0.5.2 → dimples-0.5.3}/README.md +0 -0
  9. {dimples-0.5.2 → dimples-0.5.3}/dimples/__init__.py +0 -0
  10. {dimples-0.5.2 → dimples-0.5.3}/dimples/client/__init__.py +0 -0
  11. {dimples-0.5.2 → dimples-0.5.3}/dimples/client/archivist.py +0 -0
  12. {dimples-0.5.2 → dimples-0.5.3}/dimples/client/checkpoint.py +0 -0
  13. {dimples-0.5.2 → dimples-0.5.3}/dimples/client/cpu/__init__.py +0 -0
  14. {dimples-0.5.2 → dimples-0.5.3}/dimples/client/cpu/commands.py +0 -0
  15. {dimples-0.5.2 → dimples-0.5.3}/dimples/client/cpu/creator.py +0 -0
  16. {dimples-0.5.2 → dimples-0.5.3}/dimples/client/cpu/group.py +0 -0
  17. {dimples-0.5.2 → dimples-0.5.3}/dimples/client/cpu/grp_expel.py +0 -0
  18. {dimples-0.5.2 → dimples-0.5.3}/dimples/client/cpu/grp_invite.py +0 -0
  19. {dimples-0.5.2 → dimples-0.5.3}/dimples/client/cpu/grp_join.py +0 -0
  20. {dimples-0.5.2 → dimples-0.5.3}/dimples/client/cpu/grp_query.py +0 -0
  21. {dimples-0.5.2 → dimples-0.5.3}/dimples/client/cpu/grp_quit.py +0 -0
  22. {dimples-0.5.2 → dimples-0.5.3}/dimples/client/cpu/grp_reset.py +0 -0
  23. {dimples-0.5.2 → dimples-0.5.3}/dimples/client/cpu/grp_resign.py +0 -0
  24. {dimples-0.5.2 → dimples-0.5.3}/dimples/client/cpu/handshake.py +0 -0
  25. {dimples-0.5.2 → dimples-0.5.3}/dimples/client/facebook.py +0 -0
  26. {dimples-0.5.2 → dimples-0.5.3}/dimples/client/messenger.py +0 -0
  27. {dimples-0.5.2 → dimples-0.5.3}/dimples/client/network/__init__.py +0 -0
  28. {dimples-0.5.2 → dimples-0.5.3}/dimples/client/network/session.py +0 -0
  29. {dimples-0.5.2 → dimples-0.5.3}/dimples/client/network/state.py +0 -0
  30. {dimples-0.5.2 → dimples-0.5.3}/dimples/client/network/transition.py +0 -0
  31. {dimples-0.5.2 → dimples-0.5.3}/dimples/client/packer.py +0 -0
  32. {dimples-0.5.2 → dimples-0.5.3}/dimples/client/processor.py +0 -0
  33. {dimples-0.5.2 → dimples-0.5.3}/dimples/client/terminal.py +0 -0
  34. {dimples-0.5.2 → dimples-0.5.3}/dimples/common/__init__.py +0 -0
  35. {dimples-0.5.2 → dimples-0.5.3}/dimples/common/anonymous.py +0 -0
  36. {dimples-0.5.2 → dimples-0.5.3}/dimples/common/ans.py +0 -0
  37. {dimples-0.5.2 → dimples-0.5.3}/dimples/common/archivist.py +0 -0
  38. {dimples-0.5.2 → dimples-0.5.3}/dimples/common/compat/__init__.py +0 -0
  39. {dimples-0.5.2 → dimples-0.5.3}/dimples/common/compat/btc.py +0 -0
  40. {dimples-0.5.2 → dimples-0.5.3}/dimples/common/compat/compatible.py +0 -0
  41. {dimples-0.5.2 → dimples-0.5.3}/dimples/common/compat/entity.py +0 -0
  42. {dimples-0.5.2 → dimples-0.5.3}/dimples/common/compat/meta.py +0 -0
  43. {dimples-0.5.2 → dimples-0.5.3}/dimples/common/compat/network.py +0 -0
  44. {dimples-0.5.2 → dimples-0.5.3}/dimples/common/dbi/__init__.py +0 -0
  45. {dimples-0.5.2 → dimples-0.5.3}/dimples/common/dbi/account.py +0 -0
  46. {dimples-0.5.2 → dimples-0.5.3}/dimples/common/dbi/message.py +0 -0
  47. {dimples-0.5.2 → dimples-0.5.3}/dimples/common/dbi/session.py +0 -0
  48. {dimples-0.5.2 → dimples-0.5.3}/dimples/common/facebook.py +0 -0
  49. {dimples-0.5.2 → dimples-0.5.3}/dimples/common/packer.py +0 -0
  50. {dimples-0.5.2 → dimples-0.5.3}/dimples/common/processer.py +0 -0
  51. {dimples-0.5.2 → dimples-0.5.3}/dimples/common/protocol/__init__.py +0 -0
  52. {dimples-0.5.2 → dimples-0.5.3}/dimples/common/protocol/ans.py +0 -0
  53. {dimples-0.5.2 → dimples-0.5.3}/dimples/common/protocol/block.py +0 -0
  54. {dimples-0.5.2 → dimples-0.5.3}/dimples/common/protocol/handshake.py +0 -0
  55. {dimples-0.5.2 → dimples-0.5.3}/dimples/common/protocol/login.py +0 -0
  56. {dimples-0.5.2 → dimples-0.5.3}/dimples/common/protocol/mute.py +0 -0
  57. {dimples-0.5.2 → dimples-0.5.3}/dimples/common/protocol/report.py +0 -0
  58. {dimples-0.5.2 → dimples-0.5.3}/dimples/common/register.py +0 -0
  59. {dimples-0.5.2 → dimples-0.5.3}/dimples/common/session.py +0 -0
  60. {dimples-0.5.2 → dimples-0.5.3}/dimples/conn/__init__.py +0 -0
  61. {dimples-0.5.2 → dimples-0.5.3}/dimples/conn/gate.py +0 -0
  62. {dimples-0.5.2 → dimples-0.5.3}/dimples/conn/gatekeeper.py +0 -0
  63. {dimples-0.5.2 → dimples-0.5.3}/dimples/conn/mars.py +0 -0
  64. {dimples-0.5.2 → dimples-0.5.3}/dimples/conn/mtp.py +0 -0
  65. {dimples-0.5.2 → dimples-0.5.3}/dimples/conn/protocol/__init__.py +0 -0
  66. {dimples-0.5.2 → dimples-0.5.3}/dimples/conn/protocol/mars.py +0 -0
  67. {dimples-0.5.2 → dimples-0.5.3}/dimples/conn/protocol/ws.py +0 -0
  68. {dimples-0.5.2 → dimples-0.5.3}/dimples/conn/queue.py +0 -0
  69. {dimples-0.5.2 → dimples-0.5.3}/dimples/conn/seeker.py +0 -0
  70. {dimples-0.5.2 → dimples-0.5.3}/dimples/conn/session.py +0 -0
  71. {dimples-0.5.2 → dimples-0.5.3}/dimples/conn/ws.py +0 -0
  72. {dimples-0.5.2 → dimples-0.5.3}/dimples/database/__init__.py +0 -0
  73. {dimples-0.5.2 → dimples-0.5.3}/dimples/database/account.py +0 -0
  74. {dimples-0.5.2 → dimples-0.5.3}/dimples/database/dos/__init__.py +0 -0
  75. {dimples-0.5.2 → dimples-0.5.3}/dimples/database/dos/base.py +0 -0
  76. {dimples-0.5.2 → dimples-0.5.3}/dimples/database/dos/document.py +0 -0
  77. {dimples-0.5.2 → dimples-0.5.3}/dimples/database/dos/group.py +0 -0
  78. {dimples-0.5.2 → dimples-0.5.3}/dimples/database/dos/group_history.py +0 -0
  79. {dimples-0.5.2 → dimples-0.5.3}/dimples/database/dos/group_keys.py +0 -0
  80. {dimples-0.5.2 → dimples-0.5.3}/dimples/database/dos/login.py +0 -0
  81. {dimples-0.5.2 → dimples-0.5.3}/dimples/database/dos/meta.py +0 -0
  82. {dimples-0.5.2 → dimples-0.5.3}/dimples/database/dos/private.py +0 -0
  83. {dimples-0.5.2 → dimples-0.5.3}/dimples/database/dos/station.py +0 -0
  84. {dimples-0.5.2 → dimples-0.5.3}/dimples/database/dos/user.py +0 -0
  85. {dimples-0.5.2 → dimples-0.5.3}/dimples/database/message.py +0 -0
  86. {dimples-0.5.2 → dimples-0.5.3}/dimples/database/session.py +0 -0
  87. {dimples-0.5.2 → dimples-0.5.3}/dimples/database/t_cipherkey.py +0 -0
  88. {dimples-0.5.2 → dimples-0.5.3}/dimples/database/t_document.py +0 -0
  89. {dimples-0.5.2 → dimples-0.5.3}/dimples/database/t_group.py +0 -0
  90. {dimples-0.5.2 → dimples-0.5.3}/dimples/database/t_group_history.py +0 -0
  91. {dimples-0.5.2 → dimples-0.5.3}/dimples/database/t_group_keys.py +0 -0
  92. {dimples-0.5.2 → dimples-0.5.3}/dimples/database/t_login.py +0 -0
  93. {dimples-0.5.2 → dimples-0.5.3}/dimples/database/t_message.py +0 -0
  94. {dimples-0.5.2 → dimples-0.5.3}/dimples/database/t_meta.py +0 -0
  95. {dimples-0.5.2 → dimples-0.5.3}/dimples/database/t_private.py +0 -0
  96. {dimples-0.5.2 → dimples-0.5.3}/dimples/database/t_station.py +0 -0
  97. {dimples-0.5.2 → dimples-0.5.3}/dimples/database/t_user.py +0 -0
  98. {dimples-0.5.2 → dimples-0.5.3}/dimples/edge/__init__.py +0 -0
  99. {dimples-0.5.2 → dimples-0.5.3}/dimples/edge/octopus.py +0 -0
  100. {dimples-0.5.2 → dimples-0.5.3}/dimples/edge/shared.py +0 -0
  101. {dimples-0.5.2 → dimples-0.5.3}/dimples/edge/start.py +0 -0
  102. {dimples-0.5.2 → dimples-0.5.3}/dimples/group/__init__.py +0 -0
  103. {dimples-0.5.2 → dimples-0.5.3}/dimples/group/admin.py +0 -0
  104. {dimples-0.5.2 → dimples-0.5.3}/dimples/group/builder.py +0 -0
  105. {dimples-0.5.2 → dimples-0.5.3}/dimples/group/delegate.py +0 -0
  106. {dimples-0.5.2 → dimples-0.5.3}/dimples/group/helper.py +0 -0
  107. {dimples-0.5.2 → dimples-0.5.3}/dimples/group/manager.py +0 -0
  108. {dimples-0.5.2 → dimples-0.5.3}/dimples/group/packer.py +0 -0
  109. {dimples-0.5.2 → dimples-0.5.3}/dimples/register/__init__.py +0 -0
  110. {dimples-0.5.2 → dimples-0.5.3}/dimples/register/base.py +0 -0
  111. {dimples-0.5.2 → dimples-0.5.3}/dimples/register/ext.py +0 -0
  112. {dimples-0.5.2 → dimples-0.5.3}/dimples/register/run.py +0 -0
  113. {dimples-0.5.2 → dimples-0.5.3}/dimples/register/shared.py +0 -0
  114. {dimples-0.5.2 → dimples-0.5.3}/dimples/server/__init__.py +0 -0
  115. {dimples-0.5.2 → dimples-0.5.3}/dimples/server/archivist.py +0 -0
  116. {dimples-0.5.2 → dimples-0.5.3}/dimples/server/cpu/__init__.py +0 -0
  117. {dimples-0.5.2 → dimples-0.5.3}/dimples/server/cpu/ans.py +0 -0
  118. {dimples-0.5.2 → dimples-0.5.3}/dimples/server/cpu/document.py +0 -0
  119. {dimples-0.5.2 → dimples-0.5.3}/dimples/server/cpu/handshake.py +0 -0
  120. {dimples-0.5.2 → dimples-0.5.3}/dimples/server/cpu/login.py +0 -0
  121. {dimples-0.5.2 → dimples-0.5.3}/dimples/server/cpu/report.py +0 -0
  122. {dimples-0.5.2 → dimples-0.5.3}/dimples/server/dispatcher.py +0 -0
  123. {dimples-0.5.2 → dimples-0.5.3}/dimples/server/messenger.py +0 -0
  124. {dimples-0.5.2 → dimples-0.5.3}/dimples/server/push.py +0 -0
  125. {dimples-0.5.2 → dimples-0.5.3}/dimples/server/session.py +0 -0
  126. {dimples-0.5.2 → dimples-0.5.3}/dimples/server/session_center.py +0 -0
  127. {dimples-0.5.2 → dimples-0.5.3}/dimples/server/trace.py +0 -0
  128. {dimples-0.5.2 → dimples-0.5.3}/dimples/station/__init__.py +0 -0
  129. {dimples-0.5.2 → dimples-0.5.3}/dimples/station/handler.py +0 -0
  130. {dimples-0.5.2 → dimples-0.5.3}/dimples/station/shared.py +0 -0
  131. {dimples-0.5.2 → dimples-0.5.3}/dimples/station/start.py +0 -0
  132. {dimples-0.5.2 → dimples-0.5.3}/dimples/utils/__init__.py +0 -0
  133. {dimples-0.5.2 → dimples-0.5.3}/dimples/utils/cache.py +0 -0
  134. {dimples-0.5.2 → dimples-0.5.3}/dimples/utils/config.py +0 -0
  135. {dimples-0.5.2 → dimples-0.5.3}/dimples/utils/dos.py +0 -0
  136. {dimples-0.5.2 → dimples-0.5.3}/dimples/utils/log.py +0 -0
  137. {dimples-0.5.2 → dimples-0.5.3}/dimples/utils/singleton.py +0 -0
  138. {dimples-0.5.2 → dimples-0.5.3}/dimples.egg-info/SOURCES.txt +0 -0
  139. {dimples-0.5.2 → dimples-0.5.3}/dimples.egg-info/dependency_links.txt +0 -0
  140. {dimples-0.5.2 → dimples-0.5.3}/dimples.egg-info/entry_points.txt +0 -0
  141. {dimples-0.5.2 → dimples-0.5.3}/dimples.egg-info/requires.txt +0 -0
  142. {dimples-0.5.2 → dimples-0.5.3}/dimples.egg-info/top_level.txt +0 -0
  143. {dimples-0.5.2 → dimples-0.5.3}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dimples
3
- Version: 0.5.2
3
+ Version: 0.5.3
4
4
  Summary: DIMP Library for Edges and Stations
5
5
  Home-page: https://github.com/dimchat/demo-py
6
6
  Author: Albert Moky
@@ -41,7 +41,7 @@ from typing import Optional, Union, Tuple
41
41
  from dimsdk import SymmetricKey
42
42
  from dimsdk import ID
43
43
  from dimsdk import Content, Envelope
44
- from dimsdk import Command
44
+ from dimsdk import Command, DocumentCommand
45
45
  from dimsdk import InstantMessage, SecureMessage, ReliableMessage
46
46
  from dimsdk import EntityDelegate, CipherKeyDelegate
47
47
  from dimsdk import Messenger, Packer, Processor
@@ -170,9 +170,9 @@ class CommonMessenger(Messenger, Transmitter, Logging, ABC):
170
170
 
171
171
  # private
172
172
  def _attach_visa_time(self, sender: ID, msg: InstantMessage) -> bool:
173
- if isinstance(msg.content, Command):
173
+ if isinstance(msg.content, DocumentCommand):
174
174
  # no need to attach times for command
175
- return False
175
+ return True
176
176
  doc = self.facebook.visa(identifier=sender)
177
177
  if doc is None:
178
178
  self.error(msg='failed to get visa document for sender: %s' % sender)
@@ -200,8 +200,8 @@ class CommonMessenger(Messenger, Transmitter, Logging, ABC):
200
200
  # attach sender's document times
201
201
  # for the receiver to check whether user info synchronized
202
202
  ok = self._attach_visa_time(sender=sender, msg=msg)
203
- assert ok or isinstance(msg.content, Command), \
204
- 'failed to attach document time: %s => %s' % (sender, msg.content)
203
+ if not ok:
204
+ self.warning(msg='failed to attach document time: %s => %s' % (sender, msg.content))
205
205
  #
206
206
  # 1. encrypt message
207
207
  #
@@ -97,7 +97,7 @@ class GroupEmitter(Logging):
97
97
  def _attach_group_times(self, group: ID, msg: InstantMessage) -> bool:
98
98
  if isinstance(msg.content, GroupCommand):
99
99
  # no need to attach times for group command
100
- return False
100
+ return True
101
101
  facebook = self.facebook
102
102
  doc = facebook.bulletin(identifier=group)
103
103
  if doc is None:
@@ -130,7 +130,8 @@ class GroupEmitter(Logging):
130
130
  # attach group document & history times
131
131
  # for the receiver to check whether group info synchronized
132
132
  ok = self._attach_group_times(group=group, msg=msg)
133
- assert ok or isinstance(msg.content, GroupCommand), 'failed to attach group times: %s => %s' % (group, content)
133
+ if not ok:
134
+ self.warning(msg='failed to attach group times: %s => %s' % (group, content))
134
135
  # TODO: if it's a file message
135
136
  # please upload the file data first
136
137
  # before calling this
@@ -76,23 +76,29 @@ class ServerMessagePacker(CommonMessagePacker):
76
76
  # TODO: trusted station list
77
77
  return True
78
78
 
79
+ # Override
80
+ def deserialize_message(self, data: bytes) -> Optional[ReliableMessage]:
81
+ msg = super().deserialize_message(data=data)
82
+ if msg is not None:
83
+ sender = msg.sender
84
+ receiver = msg.receiver
85
+ # check duplicated
86
+ if self.__is_traced(msg=msg):
87
+ # cycled message
88
+ if sender.type == EntityType.STATION or receiver.type == EntityType.STATION:
89
+ # ignore cycled station message
90
+ self.warning(msg='drop cycled station message: %s -> %s' % (sender, receiver))
91
+ return None
92
+ elif receiver.is_broadcast:
93
+ # ignore cycled broadcast message
94
+ self.warning(msg='drop cycled broadcast message: %s -> %s' % (sender, receiver))
95
+ return None
96
+ self.warning(msg='cycled message: %s -> %s' % (sender, receiver))
97
+ return msg
98
+
79
99
  # Override
80
100
  def verify_message(self, msg: ReliableMessage) -> Optional[SecureMessage]:
81
- sender = msg.sender
82
- receiver = msg.receiver
83
- # check duplicated
84
- if self.__is_traced(msg=msg):
85
- # cycled message
86
- if sender.type == EntityType.STATION or receiver.type == EntityType.STATION:
87
- # ignore cycled station message
88
- self.warning(msg='cycled station message: %s -> %s' % (sender, receiver))
89
- return None
90
- elif receiver.is_broadcast:
91
- # ignore cycled broadcast message
92
- self.warning(msg='cycled broadcast message: %s -> %s' % (sender, receiver))
93
- return None
94
- self.warning(msg='cycled message: %s -> %s' % (sender, receiver))
95
- # check session
101
+ # check session ready
96
102
  if self.__is_trusted(sender=msg.sender):
97
103
  # no need to verify message from this sender
98
104
  self.debug(msg='trusted sender: %s' % msg.sender)
@@ -41,7 +41,6 @@ from dimsdk import ContentProcessor, ContentProcessorCreator
41
41
 
42
42
  from dimsdk.cpu import BaseContentProcessor, BaseContentProcessorCreator
43
43
 
44
- from ..utils import get_msg_info
45
44
  from ..common import HandshakeCommand, LoginCommand
46
45
  from ..common import ReportCommand, AnsCommand
47
46
  from ..common import CommonFacebook, CommonMessenger
@@ -165,9 +164,6 @@ class ServerMessageProcessor(CommonMessageProcessor):
165
164
  # TODO: override to deliver to the receiver when catch exception "receiver error ..."
166
165
 
167
166
  def _force_handshake(self, msg: ReliableMessage) -> List[ReliableMessage]:
168
- if self.messenger.verify_message(msg=msg) is None:
169
- assert False, 'failed to verify message: %s' % get_msg_info(msg=msg)
170
- # return []
171
167
  session = self.messenger.session
172
168
  sess_id = session.identifier
173
169
  current = self.facebook.current_user
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dimples
3
- Version: 0.5.2
3
+ Version: 0.5.3
4
4
  Summary: DIMP Library for Edges and Stations
5
5
  Home-page: https://github.com/dimchat/demo-py
6
6
  Author: Albert Moky
@@ -14,7 +14,7 @@ import io
14
14
 
15
15
  from setuptools import setup, find_packages
16
16
 
17
- __version__ = '0.5.2'
17
+ __version__ = '0.5.3'
18
18
  __author__ = 'Albert Moky'
19
19
  __contact__ = 'albert.moky@gmail.com'
20
20
 
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes