dimples 1.3.1__tar.gz → 1.3.2__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 (171) hide show
  1. {dimples-1.3.1 → dimples-1.3.2}/PKG-INFO +1 -1
  2. {dimples-1.3.1 → dimples-1.3.2}/dimples/common/facebook.py +1 -1
  3. {dimples-1.3.1 → dimples-1.3.2}/dimples/conn/flexible.py +5 -5
  4. {dimples-1.3.1 → dimples-1.3.2}/dimples/conn/gate.py +1 -1
  5. {dimples-1.3.1 → dimples-1.3.2}/dimples/conn/gatekeeper.py +1 -1
  6. {dimples-1.3.1 → dimples-1.3.2}/dimples/conn/mars.py +1 -1
  7. {dimples-1.3.1 → dimples-1.3.2}/dimples/conn/mtp.py +1 -1
  8. {dimples-1.3.1 → dimples-1.3.2}/dimples/conn/protocol/__init__.py +1 -1
  9. {dimples-1.3.1 → dimples-1.3.2}/dimples/conn/ws.py +32 -5
  10. {dimples-1.3.1 → dimples-1.3.2}/dimples/edge/shared.py +7 -3
  11. {dimples-1.3.1 → dimples-1.3.2}/dimples/station/shared.py +5 -1
  12. {dimples-1.3.1 → dimples-1.3.2}/dimples.egg-info/PKG-INFO +1 -1
  13. dimples-1.3.2/dimples.egg-info/requires.txt +6 -0
  14. {dimples-1.3.1 → dimples-1.3.2}/setup.py +8 -8
  15. dimples-1.3.1/dimples.egg-info/requires.txt +0 -6
  16. {dimples-1.3.1 → dimples-1.3.2}/README.md +0 -0
  17. {dimples-1.3.1 → dimples-1.3.2}/dimples/__init__.py +0 -0
  18. {dimples-1.3.1 → dimples-1.3.2}/dimples/client/__init__.py +0 -0
  19. {dimples-1.3.1 → dimples-1.3.2}/dimples/client/checker.py +0 -0
  20. {dimples-1.3.1 → dimples-1.3.2}/dimples/client/checkpoint.py +0 -0
  21. {dimples-1.3.1 → dimples-1.3.2}/dimples/client/cpu/__init__.py +0 -0
  22. {dimples-1.3.1 → dimples-1.3.2}/dimples/client/cpu/commands.py +0 -0
  23. {dimples-1.3.1 → dimples-1.3.2}/dimples/client/cpu/creator.py +0 -0
  24. {dimples-1.3.1 → dimples-1.3.2}/dimples/client/cpu/customized.py +0 -0
  25. {dimples-1.3.1 → dimples-1.3.2}/dimples/client/cpu/group.py +0 -0
  26. {dimples-1.3.1 → dimples-1.3.2}/dimples/client/cpu/grp_expel.py +0 -0
  27. {dimples-1.3.1 → dimples-1.3.2}/dimples/client/cpu/grp_invite.py +0 -0
  28. {dimples-1.3.1 → dimples-1.3.2}/dimples/client/cpu/grp_join.py +0 -0
  29. {dimples-1.3.1 → dimples-1.3.2}/dimples/client/cpu/grp_query.py +0 -0
  30. {dimples-1.3.1 → dimples-1.3.2}/dimples/client/cpu/grp_quit.py +0 -0
  31. {dimples-1.3.1 → dimples-1.3.2}/dimples/client/cpu/grp_reset.py +0 -0
  32. {dimples-1.3.1 → dimples-1.3.2}/dimples/client/cpu/grp_resign.py +0 -0
  33. {dimples-1.3.1 → dimples-1.3.2}/dimples/client/cpu/handshake.py +0 -0
  34. {dimples-1.3.1 → dimples-1.3.2}/dimples/client/facebook.py +0 -0
  35. {dimples-1.3.1 → dimples-1.3.2}/dimples/client/messenger.py +0 -0
  36. {dimples-1.3.1 → dimples-1.3.2}/dimples/client/network/__init__.py +0 -0
  37. {dimples-1.3.1 → dimples-1.3.2}/dimples/client/network/session.py +0 -0
  38. {dimples-1.3.1 → dimples-1.3.2}/dimples/client/network/state.py +0 -0
  39. {dimples-1.3.1 → dimples-1.3.2}/dimples/client/network/transition.py +0 -0
  40. {dimples-1.3.1 → dimples-1.3.2}/dimples/client/packer.py +0 -0
  41. {dimples-1.3.1 → dimples-1.3.2}/dimples/client/processor.py +0 -0
  42. {dimples-1.3.1 → dimples-1.3.2}/dimples/client/terminal.py +0 -0
  43. {dimples-1.3.1 → dimples-1.3.2}/dimples/common/__init__.py +0 -0
  44. {dimples-1.3.1 → dimples-1.3.2}/dimples/common/anonymous.py +0 -0
  45. {dimples-1.3.1 → dimples-1.3.2}/dimples/common/ans.py +0 -0
  46. {dimples-1.3.1 → dimples-1.3.2}/dimples/common/archivist.py +0 -0
  47. {dimples-1.3.1 → dimples-1.3.2}/dimples/common/checker.py +0 -0
  48. {dimples-1.3.1 → dimples-1.3.2}/dimples/common/compat/__init__.py +0 -0
  49. {dimples-1.3.1 → dimples-1.3.2}/dimples/common/compat/address.py +0 -0
  50. {dimples-1.3.1 → dimples-1.3.2}/dimples/common/compat/compatible.py +0 -0
  51. {dimples-1.3.1 → dimples-1.3.2}/dimples/common/compat/entity.py +0 -0
  52. {dimples-1.3.1 → dimples-1.3.2}/dimples/common/compat/loader.py +0 -0
  53. {dimples-1.3.1 → dimples-1.3.2}/dimples/common/compat/meta.py +0 -0
  54. {dimples-1.3.1 → dimples-1.3.2}/dimples/common/compat/network.py +0 -0
  55. {dimples-1.3.1 → dimples-1.3.2}/dimples/common/dbi/__init__.py +0 -0
  56. {dimples-1.3.1 → dimples-1.3.2}/dimples/common/dbi/account.py +0 -0
  57. {dimples-1.3.1 → dimples-1.3.2}/dimples/common/dbi/message.py +0 -0
  58. {dimples-1.3.1 → dimples-1.3.2}/dimples/common/dbi/session.py +0 -0
  59. {dimples-1.3.1 → dimples-1.3.2}/dimples/common/messenger.py +0 -0
  60. {dimples-1.3.1 → dimples-1.3.2}/dimples/common/packer.py +0 -0
  61. {dimples-1.3.1 → dimples-1.3.2}/dimples/common/processer.py +0 -0
  62. {dimples-1.3.1 → dimples-1.3.2}/dimples/common/protocol/__init__.py +0 -0
  63. {dimples-1.3.1 → dimples-1.3.2}/dimples/common/protocol/ans.py +0 -0
  64. {dimples-1.3.1 → dimples-1.3.2}/dimples/common/protocol/block.py +0 -0
  65. {dimples-1.3.1 → dimples-1.3.2}/dimples/common/protocol/customized.py +0 -0
  66. {dimples-1.3.1 → dimples-1.3.2}/dimples/common/protocol/group.py +0 -0
  67. {dimples-1.3.1 → dimples-1.3.2}/dimples/common/protocol/handshake.py +0 -0
  68. {dimples-1.3.1 → dimples-1.3.2}/dimples/common/protocol/login.py +0 -0
  69. {dimples-1.3.1 → dimples-1.3.2}/dimples/common/protocol/mute.py +0 -0
  70. {dimples-1.3.1 → dimples-1.3.2}/dimples/common/protocol/password.py +0 -0
  71. {dimples-1.3.1 → dimples-1.3.2}/dimples/common/protocol/report.py +0 -0
  72. {dimples-1.3.1 → dimples-1.3.2}/dimples/common/protocol/utils.py +0 -0
  73. {dimples-1.3.1 → dimples-1.3.2}/dimples/common/protocol/version.py +0 -0
  74. {dimples-1.3.1 → dimples-1.3.2}/dimples/common/register.py +0 -0
  75. {dimples-1.3.1 → dimples-1.3.2}/dimples/common/session.py +0 -0
  76. {dimples-1.3.1 → dimples-1.3.2}/dimples/conn/__init__.py +0 -0
  77. {dimples-1.3.1 → dimples-1.3.2}/dimples/conn/protocol/mars.py +0 -0
  78. {dimples-1.3.1 → dimples-1.3.2}/dimples/conn/protocol/ws.py +0 -0
  79. {dimples-1.3.1 → dimples-1.3.2}/dimples/conn/queue.py +0 -0
  80. {dimples-1.3.1 → dimples-1.3.2}/dimples/conn/seeker.py +0 -0
  81. {dimples-1.3.1 → dimples-1.3.2}/dimples/conn/session.py +0 -0
  82. {dimples-1.3.1 → dimples-1.3.2}/dimples/database/__init__.py +0 -0
  83. {dimples-1.3.1 → dimples-1.3.2}/dimples/database/account.py +0 -0
  84. {dimples-1.3.1 → dimples-1.3.2}/dimples/database/dos/__init__.py +0 -0
  85. {dimples-1.3.1 → dimples-1.3.2}/dimples/database/dos/base.py +0 -0
  86. {dimples-1.3.1 → dimples-1.3.2}/dimples/database/dos/document.py +0 -0
  87. {dimples-1.3.1 → dimples-1.3.2}/dimples/database/dos/group.py +0 -0
  88. {dimples-1.3.1 → dimples-1.3.2}/dimples/database/dos/group_history.py +0 -0
  89. {dimples-1.3.1 → dimples-1.3.2}/dimples/database/dos/group_keys.py +0 -0
  90. {dimples-1.3.1 → dimples-1.3.2}/dimples/database/dos/login.py +0 -0
  91. {dimples-1.3.1 → dimples-1.3.2}/dimples/database/dos/meta.py +0 -0
  92. {dimples-1.3.1 → dimples-1.3.2}/dimples/database/dos/private.py +0 -0
  93. {dimples-1.3.1 → dimples-1.3.2}/dimples/database/dos/station.py +0 -0
  94. {dimples-1.3.1 → dimples-1.3.2}/dimples/database/dos/user.py +0 -0
  95. {dimples-1.3.1 → dimples-1.3.2}/dimples/database/message.py +0 -0
  96. {dimples-1.3.1 → dimples-1.3.2}/dimples/database/redis/__init__.py +0 -0
  97. {dimples-1.3.1 → dimples-1.3.2}/dimples/database/redis/base.py +0 -0
  98. {dimples-1.3.1 → dimples-1.3.2}/dimples/database/redis/document.py +0 -0
  99. {dimples-1.3.1 → dimples-1.3.2}/dimples/database/redis/group.py +0 -0
  100. {dimples-1.3.1 → dimples-1.3.2}/dimples/database/redis/grp_history.py +0 -0
  101. {dimples-1.3.1 → dimples-1.3.2}/dimples/database/redis/grp_keys.py +0 -0
  102. {dimples-1.3.1 → dimples-1.3.2}/dimples/database/redis/login.py +0 -0
  103. {dimples-1.3.1 → dimples-1.3.2}/dimples/database/redis/message.py +0 -0
  104. {dimples-1.3.1 → dimples-1.3.2}/dimples/database/redis/meta.py +0 -0
  105. {dimples-1.3.1 → dimples-1.3.2}/dimples/database/redis/station.py +0 -0
  106. {dimples-1.3.1 → dimples-1.3.2}/dimples/database/redis/user.py +0 -0
  107. {dimples-1.3.1 → dimples-1.3.2}/dimples/database/session.py +0 -0
  108. {dimples-1.3.1 → dimples-1.3.2}/dimples/database/t_base.py +0 -0
  109. {dimples-1.3.1 → dimples-1.3.2}/dimples/database/t_cipherkey.py +0 -0
  110. {dimples-1.3.1 → dimples-1.3.2}/dimples/database/t_document.py +0 -0
  111. {dimples-1.3.1 → dimples-1.3.2}/dimples/database/t_group.py +0 -0
  112. {dimples-1.3.1 → dimples-1.3.2}/dimples/database/t_group_history.py +0 -0
  113. {dimples-1.3.1 → dimples-1.3.2}/dimples/database/t_group_keys.py +0 -0
  114. {dimples-1.3.1 → dimples-1.3.2}/dimples/database/t_login.py +0 -0
  115. {dimples-1.3.1 → dimples-1.3.2}/dimples/database/t_message.py +0 -0
  116. {dimples-1.3.1 → dimples-1.3.2}/dimples/database/t_meta.py +0 -0
  117. {dimples-1.3.1 → dimples-1.3.2}/dimples/database/t_private.py +0 -0
  118. {dimples-1.3.1 → dimples-1.3.2}/dimples/database/t_station.py +0 -0
  119. {dimples-1.3.1 → dimples-1.3.2}/dimples/database/t_user.py +0 -0
  120. {dimples-1.3.1 → dimples-1.3.2}/dimples/edge/__init__.py +0 -0
  121. {dimples-1.3.1 → dimples-1.3.2}/dimples/edge/messenger.py +0 -0
  122. {dimples-1.3.1 → dimples-1.3.2}/dimples/edge/octopus.py +0 -0
  123. {dimples-1.3.1 → dimples-1.3.2}/dimples/edge/start.py +0 -0
  124. {dimples-1.3.1 → dimples-1.3.2}/dimples/emitter.py +0 -0
  125. {dimples-1.3.1 → dimples-1.3.2}/dimples/group/__init__.py +0 -0
  126. {dimples-1.3.1 → dimples-1.3.2}/dimples/group/admin.py +0 -0
  127. {dimples-1.3.1 → dimples-1.3.2}/dimples/group/builder.py +0 -0
  128. {dimples-1.3.1 → dimples-1.3.2}/dimples/group/delegate.py +0 -0
  129. {dimples-1.3.1 → dimples-1.3.2}/dimples/group/emitter.py +0 -0
  130. {dimples-1.3.1 → dimples-1.3.2}/dimples/group/helper.py +0 -0
  131. {dimples-1.3.1 → dimples-1.3.2}/dimples/group/manager.py +0 -0
  132. {dimples-1.3.1 → dimples-1.3.2}/dimples/group/packer.py +0 -0
  133. {dimples-1.3.1 → dimples-1.3.2}/dimples/group/shared.py +0 -0
  134. {dimples-1.3.1 → dimples-1.3.2}/dimples/register/__init__.py +0 -0
  135. {dimples-1.3.1 → dimples-1.3.2}/dimples/register/base.py +0 -0
  136. {dimples-1.3.1 → dimples-1.3.2}/dimples/register/ext.py +0 -0
  137. {dimples-1.3.1 → dimples-1.3.2}/dimples/register/run.py +0 -0
  138. {dimples-1.3.1 → dimples-1.3.2}/dimples/register/shared.py +0 -0
  139. {dimples-1.3.1 → dimples-1.3.2}/dimples/server/__init__.py +0 -0
  140. {dimples-1.3.1 → dimples-1.3.2}/dimples/server/checker.py +0 -0
  141. {dimples-1.3.1 → dimples-1.3.2}/dimples/server/cpu/__init__.py +0 -0
  142. {dimples-1.3.1 → dimples-1.3.2}/dimples/server/cpu/ans.py +0 -0
  143. {dimples-1.3.1 → dimples-1.3.2}/dimples/server/cpu/creator.py +0 -0
  144. {dimples-1.3.1 → dimples-1.3.2}/dimples/server/cpu/document.py +0 -0
  145. {dimples-1.3.1 → dimples-1.3.2}/dimples/server/cpu/handshake.py +0 -0
  146. {dimples-1.3.1 → dimples-1.3.2}/dimples/server/cpu/login.py +0 -0
  147. {dimples-1.3.1 → dimples-1.3.2}/dimples/server/cpu/report.py +0 -0
  148. {dimples-1.3.1 → dimples-1.3.2}/dimples/server/deliver.py +0 -0
  149. {dimples-1.3.1 → dimples-1.3.2}/dimples/server/dis_roamer.py +0 -0
  150. {dimples-1.3.1 → dimples-1.3.2}/dimples/server/dispatcher.py +0 -0
  151. {dimples-1.3.1 → dimples-1.3.2}/dimples/server/facebook.py +0 -0
  152. {dimples-1.3.1 → dimples-1.3.2}/dimples/server/messenger.py +0 -0
  153. {dimples-1.3.1 → dimples-1.3.2}/dimples/server/packer.py +0 -0
  154. {dimples-1.3.1 → dimples-1.3.2}/dimples/server/processor.py +0 -0
  155. {dimples-1.3.1 → dimples-1.3.2}/dimples/server/push.py +0 -0
  156. {dimples-1.3.1 → dimples-1.3.2}/dimples/server/session.py +0 -0
  157. {dimples-1.3.1 → dimples-1.3.2}/dimples/server/session_center.py +0 -0
  158. {dimples-1.3.1 → dimples-1.3.2}/dimples/server/trace.py +0 -0
  159. {dimples-1.3.1 → dimples-1.3.2}/dimples/station/__init__.py +0 -0
  160. {dimples-1.3.1 → dimples-1.3.2}/dimples/station/handler.py +0 -0
  161. {dimples-1.3.1 → dimples-1.3.2}/dimples/station/start.py +0 -0
  162. {dimples-1.3.1 → dimples-1.3.2}/dimples/utils/__init__.py +0 -0
  163. {dimples-1.3.1 → dimples-1.3.2}/dimples/utils/cache.py +0 -0
  164. {dimples-1.3.1 → dimples-1.3.2}/dimples/utils/checker.py +0 -0
  165. {dimples-1.3.1 → dimples-1.3.2}/dimples/utils/config.py +0 -0
  166. {dimples-1.3.1 → dimples-1.3.2}/dimples/utils/log.py +0 -0
  167. {dimples-1.3.1 → dimples-1.3.2}/dimples.egg-info/SOURCES.txt +0 -0
  168. {dimples-1.3.1 → dimples-1.3.2}/dimples.egg-info/dependency_links.txt +0 -0
  169. {dimples-1.3.1 → dimples-1.3.2}/dimples.egg-info/entry_points.txt +0 -0
  170. {dimples-1.3.1 → dimples-1.3.2}/dimples.egg-info/top_level.txt +0 -0
  171. {dimples-1.3.1 → dimples-1.3.2}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dimples
3
- Version: 1.3.1
3
+ Version: 1.3.2
4
4
  Summary: DIMP Library for Edges and Stations
5
5
  Home-page: https://github.com/dimchat/demo-py
6
6
  Author: Albert Moky
@@ -100,7 +100,7 @@ class CommonFacebook(Facebook, Logging, ABC):
100
100
  archivist.current_user = user
101
101
  return user
102
102
 
103
- def set_current_user(self, user: User):
103
+ async def set_current_user(self, user: User):
104
104
  if user.data_source is None:
105
105
  user.data_source = self
106
106
  self.archivist.current_user = user
@@ -28,7 +28,7 @@
28
28
  # SOFTWARE.
29
29
  # ==============================================================================
30
30
 
31
- from typing import Optional, Union, List
31
+ from typing import Optional, List
32
32
 
33
33
  from startrek.types import SocketAddress
34
34
  from startrek.skywalker import Runner
@@ -140,13 +140,13 @@ class FlexiblePorter(StarPorter, DeparturePacker, Logging):
140
140
  return await docker.process()
141
141
 
142
142
  # Override
143
- async def send_data(self, payload: Union[bytes, bytearray]) -> bool:
143
+ async def send_data(self, payload: bytes) -> bool:
144
144
  docker = self.__porter
145
145
  if docker is None:
146
146
  self.error(msg='docker not ready, failed to send payload: %s' % payload)
147
147
  return False
148
148
  elif isinstance(docker, WSPorter):
149
- ship = docker.pack(payload=payload)
149
+ ship = docker.pack(payload=payload, priority=0, needs_respond=True)
150
150
  return await docker.send_ship(ship=ship)
151
151
  elif isinstance(docker, MTPStreamPorter):
152
152
  # sn = TransactionID.from_data(data=ship.sn)
@@ -170,11 +170,11 @@ class FlexiblePorter(StarPorter, DeparturePacker, Logging):
170
170
  await docker.heartbeat()
171
171
 
172
172
  # Override
173
- def pack(self, payload: bytes, priority: int = 0) -> Optional[Departure]:
173
+ def pack(self, payload: bytes, priority: int, needs_respond: bool) -> Optional[Departure]:
174
174
  docker = self.__porter
175
175
  if docker is None:
176
176
  self.error(msg='docker not ready, failed to pack: %s' % payload)
177
177
  return None
178
178
  else:
179
179
  assert isinstance(docker, DeparturePacker), 'docker error: %s' % docker
180
- return docker.pack(payload=payload, priority=priority)
180
+ return docker.pack(payload=payload, priority=priority, needs_respond=needs_respond)
@@ -116,7 +116,7 @@ class CommonGate(StarGate, Logging, Generic[H], ABC):
116
116
  ship = MarsStreamPorter.create_departure(mars=mars)
117
117
  return await worker.send_ship(ship=ship)
118
118
  elif isinstance(worker, WSPorter):
119
- ship = worker.pack(payload=payload)
119
+ ship = worker.pack(payload=payload, priority=1, needs_respond=False)
120
120
  return await worker.send_ship(ship=ship)
121
121
  else:
122
122
  raise LookupError('docker error (%s, %s): %s' % (remote, local, worker))
@@ -261,7 +261,7 @@ class GateKeeper(Runner, PorterDelegate, Logging):
261
261
  async def _porter_pack(self, payload: bytes, priority: int = 0) -> Optional[Departure]:
262
262
  docker = await self.gate.fetch_porter(remote=self.remote_address, local=None)
263
263
  assert isinstance(docker, DeparturePacker), 'departure packer error: %s' % docker
264
- return docker.pack(payload=payload, priority=priority)
264
+ return docker.pack(payload=payload, priority=priority, needs_respond=True)
265
265
 
266
266
  def _queue_append(self, msg: ReliableMessage, ship: Departure) -> bool:
267
267
  return self.__queue.append(msg=msg, ship=ship)
@@ -292,7 +292,7 @@ class MarsStreamPorter(PlainPorter, DeparturePacker):
292
292
  pass
293
293
 
294
294
  # Override
295
- def pack(self, payload: bytes, priority: int = 0) -> Optional[Departure]:
295
+ def pack(self, payload: bytes, priority: int, needs_respond: bool) -> Optional[Departure]:
296
296
  mars = MarsHelper.create_push(payload=payload)
297
297
  return self.create_departure(mars=mars, priority=priority)
298
298
 
@@ -197,7 +197,7 @@ class MTPStreamPorter(PackagePorter, DeparturePacker):
197
197
  return MTPHelper.respond_message(sn=sn, pages=pages, index=index, body=OK)
198
198
 
199
199
  # Override
200
- def pack(self, payload: bytes, priority: int = 0) -> Optional[Departure]:
200
+ def pack(self, payload: bytes, priority: int, needs_respond: bool) -> Optional[Departure]:
201
201
  pkg = MTPHelper.create_message(body=payload)
202
202
  return self._create_departure(pack=pkg, priority=priority)
203
203
 
@@ -40,7 +40,7 @@ from .mars import NetMsg, NetMsgHead, NetMsgSeq
40
40
  class DeparturePacker(ABC):
41
41
 
42
42
  @abstractmethod
43
- def pack(self, payload: bytes, priority: int = 0) -> Optional[Departure]:
43
+ def pack(self, payload: bytes, priority: int, needs_respond: bool) -> Optional[Departure]:
44
44
  raise NotImplemented
45
45
 
46
46
 
@@ -35,7 +35,7 @@ from typing import Optional, List, Tuple
35
35
  from startrek.types import SocketAddress
36
36
  from startrek.skywalker import Runner
37
37
  from startrek import Arrival, Departure
38
- from startrek import ArrivalShip, DepartureShip, DeparturePriority
38
+ from startrek import ArrivalShip, DepartureShip
39
39
  from startrek import BaseConnection, BaseChannel
40
40
 
41
41
  from tcp import PlainPorter
@@ -51,6 +51,18 @@ class WSArrival(ArrivalShip):
51
51
  self.__package = package
52
52
  self.__payload = payload
53
53
 
54
+ # Override
55
+ def __str__(self) -> str:
56
+ clazz = self.__class__.__name__
57
+ size = len(self.__package)
58
+ return '<%s size=%d />' % (clazz, size)
59
+
60
+ # Override
61
+ def __repr__(self) -> str:
62
+ clazz = self.__class__.__name__
63
+ size = len(self.__package)
64
+ return '<%s size=%d />' % (clazz, size)
65
+
54
66
  @property
55
67
  def package(self) -> bytes:
56
68
  return self.__package
@@ -80,6 +92,18 @@ class WSDeparture(DepartureShip):
80
92
  self.__payload = payload
81
93
  self.__important = important
82
94
 
95
+ # Override
96
+ def __str__(self) -> str:
97
+ clazz = self.__class__.__name__
98
+ size = len(self.__package)
99
+ return '<%s size=%d />' % (clazz, size)
100
+
101
+ # Override
102
+ def __repr__(self) -> str:
103
+ clazz = self.__class__.__name__
104
+ size = len(self.__package)
105
+ return '<%s size=%d />' % (clazz, size)
106
+
83
107
  @property
84
108
  def package(self) -> bytes:
85
109
  return self.__package
@@ -241,8 +265,7 @@ class WSPorter(PlainPorter, DeparturePacker):
241
265
  elif body_len == 4:
242
266
  if body == PING:
243
267
  # 'PING' -> 'PONG'
244
- ship = self.pack(payload=PONG, priority=DeparturePriority.SLOWER)
245
- await self.send_ship(ship=ship)
268
+ await self.respond(payload=PONG)
246
269
  return None
247
270
  elif body == PONG or body == NOOP:
248
271
  # ignore
@@ -265,9 +288,13 @@ class WSPorter(PlainPorter, DeparturePacker):
265
288
  pass
266
289
 
267
290
  # Override
268
- def pack(self, payload: bytes, priority: int = 0) -> Optional[Departure]:
291
+ def _create_departure(self, payload: bytes, priority: int, needs_respond: bool) -> Departure:
292
+ return self.pack(payload=payload, priority=priority, needs_respond=needs_respond)
293
+
294
+ # Override
295
+ def pack(self, payload: bytes, priority: int, needs_respond: bool) -> Optional[Departure]:
269
296
  req_pack = WebSocket.pack(payload=payload)
270
- important = self.__ack_enable
297
+ important = needs_respond and self.__ack_enable
271
298
  return WSDeparture(package=req_pack, payload=payload, priority=priority, important=important)
272
299
 
273
300
  @classmethod
@@ -86,6 +86,9 @@ class GlobalVariable:
86
86
  @messenger.setter
87
87
  def messenger(self, transceiver: ClientMessenger):
88
88
  self.__messenger = transceiver
89
+ # set for group manager
90
+ man = SharedGroupManager()
91
+ man.messenger = transceiver
89
92
  # set for entity checker
90
93
  checker = self.facebook.checker
91
94
  assert isinstance(checker, ClientChecker), 'entity checker error: %s' % checker
@@ -130,7 +133,7 @@ class GlobalVariable:
130
133
  visa = Document.parse(document=visa.copy_dictionary())
131
134
  visa.sign(private_key=sign_key)
132
135
  await facebook.save_document(document=visa)
133
- facebook.set_current_user(user=user)
136
+ await facebook.set_current_user(user=user)
134
137
 
135
138
 
136
139
  def create_redis_connector(config: Config) -> Optional[RedisConnector]:
@@ -178,7 +181,7 @@ async def create_database(config: Config) -> Tuple[AccountDBI, MessageDBI, Sessi
178
181
  found = True
179
182
  break
180
183
  if not found:
181
- print('removing neighbor station: %s' % old)
184
+ print('removing neighbor station: %s, %s' % (old, provider))
182
185
  await sdb.remove_station(host=old.host, port=old.port, provider=provider)
183
186
  # 2. add new neighbors
184
187
  for node in neighbors:
@@ -188,8 +191,9 @@ async def create_database(config: Config) -> Tuple[AccountDBI, MessageDBI, Sessi
188
191
  found = True
189
192
  break
190
193
  if not found:
191
- print('adding neighbor node: %s' % node)
194
+ print('adding neighbor node: %s -> %s' % (node, provider))
192
195
  await sdb.add_station(identifier=None, host=node.host, port=node.port, provider=provider)
196
+ # OK
193
197
  return adb, mdb, sdb
194
198
 
195
199
 
@@ -90,6 +90,9 @@ class GlobalVariable:
90
90
  @messenger.setter
91
91
  def messenger(self, transceiver: ServerMessenger):
92
92
  self.__messenger = transceiver
93
+ # set for group manager
94
+ man = SharedGroupManager()
95
+ man.messenger = transceiver
93
96
  # set for entity checker
94
97
  checker = self.facebook.checker
95
98
  assert isinstance(checker, ServerChecker), 'entity checker error: %s' % checker
@@ -145,7 +148,7 @@ class GlobalVariable:
145
148
  visa = Document.parse(document=visa.copy_dictionary())
146
149
  visa.sign(private_key=sign_key)
147
150
  await facebook.save_document(document=visa)
148
- facebook.set_current_user(user=user)
151
+ await facebook.set_current_user(user=user)
149
152
 
150
153
 
151
154
  def create_redis_connector(config: Config) -> Optional[RedisConnector]:
@@ -205,6 +208,7 @@ async def create_database(config: Config) -> Tuple[AccountDBI, MessageDBI, Sessi
205
208
  if not found:
206
209
  print('adding neighbor node: %s' % node)
207
210
  await sdb.add_station(identifier=None, host=node.host, port=node.port, provider=provider)
211
+ # OK
208
212
  return adb, mdb, sdb
209
213
 
210
214
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dimples
3
- Version: 1.3.1
3
+ Version: 1.3.2
4
4
  Summary: DIMP Library for Edges and Stations
5
5
  Home-page: https://github.com/dimchat/demo-py
6
6
  Author: Albert Moky
@@ -0,0 +1,6 @@
1
+ dimplugins>=2.2.1
2
+ dimsdk>=2.2.2
3
+ startrek>=2.2.2
4
+ tcp>=2.2.2
5
+ udp>=2.2.2
6
+ aiou>=0.3.0
@@ -14,7 +14,7 @@ import io
14
14
 
15
15
  from setuptools import setup, find_packages
16
16
 
17
- __version__ = '1.3.1'
17
+ __version__ = '1.3.2'
18
18
  __author__ = 'Albert Moky'
19
19
  __contact__ = 'albert.moky@gmail.com'
20
20
 
@@ -53,14 +53,14 @@ setup(
53
53
  # 'ecdsa', # 0.16.1
54
54
  'dimplugins>=2.2.1',
55
55
 
56
- 'dimsdk>=2.2.1',
57
- # 'dimp>=2.2.1',
58
- # 'dkd>=2.2.1',
59
- # 'mkm>=2.2.1',
56
+ 'dimsdk>=2.2.2',
57
+ # 'dimp>=2.2.2',
58
+ # 'dkd>=2.2.2',
59
+ # 'mkm>=2.2.2',
60
60
 
61
- 'startrek>=2.2.1',
62
- 'tcp>=2.2.1',
63
- 'udp>=2.2.1',
61
+ 'startrek>=2.2.2',
62
+ 'tcp>=2.2.2',
63
+ 'udp>=2.2.2',
64
64
 
65
65
  'aiou>=0.3.0',
66
66
  ]
@@ -1,6 +0,0 @@
1
- dimplugins>=2.2.1
2
- dimsdk>=2.2.1
3
- startrek>=2.2.1
4
- tcp>=2.2.1
5
- udp>=2.2.1
6
- aiou>=0.3.0
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