dimples 1.0.3__tar.gz → 1.1.0__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-1.0.3 → dimples-1.1.0}/PKG-INFO +1 -1
  2. {dimples-1.0.3 → dimples-1.1.0}/dimples/edge/octopus.py +1 -15
  3. {dimples-1.0.3 → dimples-1.1.0}/dimples/server/dispatcher.py +2 -1
  4. {dimples-1.0.3 → dimples-1.1.0}/dimples/server/push.py +2 -1
  5. {dimples-1.0.3 → dimples-1.1.0}/dimples/server/session.py +6 -2
  6. {dimples-1.0.3 → dimples-1.1.0}/dimples/utils/__init__.py +35 -0
  7. {dimples-1.0.3 → dimples-1.1.0}/dimples.egg-info/PKG-INFO +1 -1
  8. {dimples-1.0.3 → dimples-1.1.0}/setup.py +1 -1
  9. {dimples-1.0.3 → dimples-1.1.0}/README.md +0 -0
  10. {dimples-1.0.3 → dimples-1.1.0}/dimples/__init__.py +0 -0
  11. {dimples-1.0.3 → dimples-1.1.0}/dimples/client/__init__.py +0 -0
  12. {dimples-1.0.3 → dimples-1.1.0}/dimples/client/archivist.py +0 -0
  13. {dimples-1.0.3 → dimples-1.1.0}/dimples/client/checkpoint.py +0 -0
  14. {dimples-1.0.3 → dimples-1.1.0}/dimples/client/cpu/__init__.py +0 -0
  15. {dimples-1.0.3 → dimples-1.1.0}/dimples/client/cpu/commands.py +0 -0
  16. {dimples-1.0.3 → dimples-1.1.0}/dimples/client/cpu/creator.py +0 -0
  17. {dimples-1.0.3 → dimples-1.1.0}/dimples/client/cpu/group.py +0 -0
  18. {dimples-1.0.3 → dimples-1.1.0}/dimples/client/cpu/grp_expel.py +0 -0
  19. {dimples-1.0.3 → dimples-1.1.0}/dimples/client/cpu/grp_invite.py +0 -0
  20. {dimples-1.0.3 → dimples-1.1.0}/dimples/client/cpu/grp_join.py +0 -0
  21. {dimples-1.0.3 → dimples-1.1.0}/dimples/client/cpu/grp_query.py +0 -0
  22. {dimples-1.0.3 → dimples-1.1.0}/dimples/client/cpu/grp_quit.py +0 -0
  23. {dimples-1.0.3 → dimples-1.1.0}/dimples/client/cpu/grp_reset.py +0 -0
  24. {dimples-1.0.3 → dimples-1.1.0}/dimples/client/cpu/grp_resign.py +0 -0
  25. {dimples-1.0.3 → dimples-1.1.0}/dimples/client/cpu/handshake.py +0 -0
  26. {dimples-1.0.3 → dimples-1.1.0}/dimples/client/facebook.py +0 -0
  27. {dimples-1.0.3 → dimples-1.1.0}/dimples/client/messenger.py +0 -0
  28. {dimples-1.0.3 → dimples-1.1.0}/dimples/client/network/__init__.py +0 -0
  29. {dimples-1.0.3 → dimples-1.1.0}/dimples/client/network/session.py +0 -0
  30. {dimples-1.0.3 → dimples-1.1.0}/dimples/client/network/state.py +0 -0
  31. {dimples-1.0.3 → dimples-1.1.0}/dimples/client/network/transition.py +0 -0
  32. {dimples-1.0.3 → dimples-1.1.0}/dimples/client/packer.py +0 -0
  33. {dimples-1.0.3 → dimples-1.1.0}/dimples/client/processor.py +0 -0
  34. {dimples-1.0.3 → dimples-1.1.0}/dimples/client/terminal.py +0 -0
  35. {dimples-1.0.3 → dimples-1.1.0}/dimples/common/__init__.py +0 -0
  36. {dimples-1.0.3 → dimples-1.1.0}/dimples/common/anonymous.py +0 -0
  37. {dimples-1.0.3 → dimples-1.1.0}/dimples/common/ans.py +0 -0
  38. {dimples-1.0.3 → dimples-1.1.0}/dimples/common/archivist.py +0 -0
  39. {dimples-1.0.3 → dimples-1.1.0}/dimples/common/compat/__init__.py +0 -0
  40. {dimples-1.0.3 → dimples-1.1.0}/dimples/common/compat/btc.py +0 -0
  41. {dimples-1.0.3 → dimples-1.1.0}/dimples/common/compat/compatible.py +0 -0
  42. {dimples-1.0.3 → dimples-1.1.0}/dimples/common/compat/entity.py +0 -0
  43. {dimples-1.0.3 → dimples-1.1.0}/dimples/common/compat/meta.py +0 -0
  44. {dimples-1.0.3 → dimples-1.1.0}/dimples/common/compat/network.py +0 -0
  45. {dimples-1.0.3 → dimples-1.1.0}/dimples/common/dbi/__init__.py +0 -0
  46. {dimples-1.0.3 → dimples-1.1.0}/dimples/common/dbi/account.py +0 -0
  47. {dimples-1.0.3 → dimples-1.1.0}/dimples/common/dbi/message.py +0 -0
  48. {dimples-1.0.3 → dimples-1.1.0}/dimples/common/dbi/session.py +0 -0
  49. {dimples-1.0.3 → dimples-1.1.0}/dimples/common/facebook.py +0 -0
  50. {dimples-1.0.3 → dimples-1.1.0}/dimples/common/messenger.py +0 -0
  51. {dimples-1.0.3 → dimples-1.1.0}/dimples/common/packer.py +0 -0
  52. {dimples-1.0.3 → dimples-1.1.0}/dimples/common/processer.py +0 -0
  53. {dimples-1.0.3 → dimples-1.1.0}/dimples/common/protocol/__init__.py +0 -0
  54. {dimples-1.0.3 → dimples-1.1.0}/dimples/common/protocol/ans.py +0 -0
  55. {dimples-1.0.3 → dimples-1.1.0}/dimples/common/protocol/block.py +0 -0
  56. {dimples-1.0.3 → dimples-1.1.0}/dimples/common/protocol/handshake.py +0 -0
  57. {dimples-1.0.3 → dimples-1.1.0}/dimples/common/protocol/login.py +0 -0
  58. {dimples-1.0.3 → dimples-1.1.0}/dimples/common/protocol/mute.py +0 -0
  59. {dimples-1.0.3 → dimples-1.1.0}/dimples/common/protocol/report.py +0 -0
  60. {dimples-1.0.3 → dimples-1.1.0}/dimples/common/register.py +0 -0
  61. {dimples-1.0.3 → dimples-1.1.0}/dimples/common/session.py +0 -0
  62. {dimples-1.0.3 → dimples-1.1.0}/dimples/conn/__init__.py +0 -0
  63. {dimples-1.0.3 → dimples-1.1.0}/dimples/conn/flexible.py +0 -0
  64. {dimples-1.0.3 → dimples-1.1.0}/dimples/conn/gate.py +0 -0
  65. {dimples-1.0.3 → dimples-1.1.0}/dimples/conn/gatekeeper.py +0 -0
  66. {dimples-1.0.3 → dimples-1.1.0}/dimples/conn/mars.py +0 -0
  67. {dimples-1.0.3 → dimples-1.1.0}/dimples/conn/mtp.py +0 -0
  68. {dimples-1.0.3 → dimples-1.1.0}/dimples/conn/protocol/__init__.py +0 -0
  69. {dimples-1.0.3 → dimples-1.1.0}/dimples/conn/protocol/mars.py +0 -0
  70. {dimples-1.0.3 → dimples-1.1.0}/dimples/conn/protocol/ws.py +0 -0
  71. {dimples-1.0.3 → dimples-1.1.0}/dimples/conn/queue.py +0 -0
  72. {dimples-1.0.3 → dimples-1.1.0}/dimples/conn/seeker.py +0 -0
  73. {dimples-1.0.3 → dimples-1.1.0}/dimples/conn/session.py +0 -0
  74. {dimples-1.0.3 → dimples-1.1.0}/dimples/conn/ws.py +0 -0
  75. {dimples-1.0.3 → dimples-1.1.0}/dimples/database/__init__.py +0 -0
  76. {dimples-1.0.3 → dimples-1.1.0}/dimples/database/account.py +0 -0
  77. {dimples-1.0.3 → dimples-1.1.0}/dimples/database/dos/__init__.py +0 -0
  78. {dimples-1.0.3 → dimples-1.1.0}/dimples/database/dos/base.py +0 -0
  79. {dimples-1.0.3 → dimples-1.1.0}/dimples/database/dos/document.py +0 -0
  80. {dimples-1.0.3 → dimples-1.1.0}/dimples/database/dos/group.py +0 -0
  81. {dimples-1.0.3 → dimples-1.1.0}/dimples/database/dos/group_history.py +0 -0
  82. {dimples-1.0.3 → dimples-1.1.0}/dimples/database/dos/group_keys.py +0 -0
  83. {dimples-1.0.3 → dimples-1.1.0}/dimples/database/dos/login.py +0 -0
  84. {dimples-1.0.3 → dimples-1.1.0}/dimples/database/dos/meta.py +0 -0
  85. {dimples-1.0.3 → dimples-1.1.0}/dimples/database/dos/private.py +0 -0
  86. {dimples-1.0.3 → dimples-1.1.0}/dimples/database/dos/station.py +0 -0
  87. {dimples-1.0.3 → dimples-1.1.0}/dimples/database/dos/user.py +0 -0
  88. {dimples-1.0.3 → dimples-1.1.0}/dimples/database/message.py +0 -0
  89. {dimples-1.0.3 → dimples-1.1.0}/dimples/database/session.py +0 -0
  90. {dimples-1.0.3 → dimples-1.1.0}/dimples/database/t_cipherkey.py +0 -0
  91. {dimples-1.0.3 → dimples-1.1.0}/dimples/database/t_document.py +0 -0
  92. {dimples-1.0.3 → dimples-1.1.0}/dimples/database/t_group.py +0 -0
  93. {dimples-1.0.3 → dimples-1.1.0}/dimples/database/t_group_history.py +0 -0
  94. {dimples-1.0.3 → dimples-1.1.0}/dimples/database/t_group_keys.py +0 -0
  95. {dimples-1.0.3 → dimples-1.1.0}/dimples/database/t_login.py +0 -0
  96. {dimples-1.0.3 → dimples-1.1.0}/dimples/database/t_message.py +0 -0
  97. {dimples-1.0.3 → dimples-1.1.0}/dimples/database/t_meta.py +0 -0
  98. {dimples-1.0.3 → dimples-1.1.0}/dimples/database/t_private.py +0 -0
  99. {dimples-1.0.3 → dimples-1.1.0}/dimples/database/t_station.py +0 -0
  100. {dimples-1.0.3 → dimples-1.1.0}/dimples/database/t_user.py +0 -0
  101. {dimples-1.0.3 → dimples-1.1.0}/dimples/edge/__init__.py +0 -0
  102. {dimples-1.0.3 → dimples-1.1.0}/dimples/edge/shared.py +0 -0
  103. {dimples-1.0.3 → dimples-1.1.0}/dimples/edge/start.py +0 -0
  104. {dimples-1.0.3 → dimples-1.1.0}/dimples/group/__init__.py +0 -0
  105. {dimples-1.0.3 → dimples-1.1.0}/dimples/group/admin.py +0 -0
  106. {dimples-1.0.3 → dimples-1.1.0}/dimples/group/builder.py +0 -0
  107. {dimples-1.0.3 → dimples-1.1.0}/dimples/group/delegate.py +0 -0
  108. {dimples-1.0.3 → dimples-1.1.0}/dimples/group/emitter.py +0 -0
  109. {dimples-1.0.3 → dimples-1.1.0}/dimples/group/helper.py +0 -0
  110. {dimples-1.0.3 → dimples-1.1.0}/dimples/group/manager.py +0 -0
  111. {dimples-1.0.3 → dimples-1.1.0}/dimples/group/packer.py +0 -0
  112. {dimples-1.0.3 → dimples-1.1.0}/dimples/register/__init__.py +0 -0
  113. {dimples-1.0.3 → dimples-1.1.0}/dimples/register/base.py +0 -0
  114. {dimples-1.0.3 → dimples-1.1.0}/dimples/register/ext.py +0 -0
  115. {dimples-1.0.3 → dimples-1.1.0}/dimples/register/run.py +0 -0
  116. {dimples-1.0.3 → dimples-1.1.0}/dimples/register/shared.py +0 -0
  117. {dimples-1.0.3 → dimples-1.1.0}/dimples/server/__init__.py +0 -0
  118. {dimples-1.0.3 → dimples-1.1.0}/dimples/server/archivist.py +0 -0
  119. {dimples-1.0.3 → dimples-1.1.0}/dimples/server/cpu/__init__.py +0 -0
  120. {dimples-1.0.3 → dimples-1.1.0}/dimples/server/cpu/ans.py +0 -0
  121. {dimples-1.0.3 → dimples-1.1.0}/dimples/server/cpu/document.py +0 -0
  122. {dimples-1.0.3 → dimples-1.1.0}/dimples/server/cpu/handshake.py +0 -0
  123. {dimples-1.0.3 → dimples-1.1.0}/dimples/server/cpu/login.py +0 -0
  124. {dimples-1.0.3 → dimples-1.1.0}/dimples/server/cpu/report.py +0 -0
  125. {dimples-1.0.3 → dimples-1.1.0}/dimples/server/messenger.py +0 -0
  126. {dimples-1.0.3 → dimples-1.1.0}/dimples/server/packer.py +0 -0
  127. {dimples-1.0.3 → dimples-1.1.0}/dimples/server/processor.py +0 -0
  128. {dimples-1.0.3 → dimples-1.1.0}/dimples/server/session_center.py +0 -0
  129. {dimples-1.0.3 → dimples-1.1.0}/dimples/server/trace.py +0 -0
  130. {dimples-1.0.3 → dimples-1.1.0}/dimples/station/__init__.py +0 -0
  131. {dimples-1.0.3 → dimples-1.1.0}/dimples/station/handler.py +0 -0
  132. {dimples-1.0.3 → dimples-1.1.0}/dimples/station/shared.py +0 -0
  133. {dimples-1.0.3 → dimples-1.1.0}/dimples/station/start.py +0 -0
  134. {dimples-1.0.3 → dimples-1.1.0}/dimples/utils/cache.py +0 -0
  135. {dimples-1.0.3 → dimples-1.1.0}/dimples/utils/config.py +0 -0
  136. {dimples-1.0.3 → dimples-1.1.0}/dimples/utils/dos.py +0 -0
  137. {dimples-1.0.3 → dimples-1.1.0}/dimples/utils/log.py +0 -0
  138. {dimples-1.0.3 → dimples-1.1.0}/dimples.egg-info/SOURCES.txt +0 -0
  139. {dimples-1.0.3 → dimples-1.1.0}/dimples.egg-info/dependency_links.txt +0 -0
  140. {dimples-1.0.3 → dimples-1.1.0}/dimples.egg-info/entry_points.txt +0 -0
  141. {dimples-1.0.3 → dimples-1.1.0}/dimples.egg-info/requires.txt +0 -0
  142. {dimples-1.0.3 → dimples-1.1.0}/dimples.egg-info/top_level.txt +0 -0
  143. {dimples-1.0.3 → dimples-1.1.0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dimples
3
- Version: 1.0.3
3
+ Version: 1.1.0
4
4
  Summary: DIMP Library for Edges and Stations
5
5
  Home-page: https://github.com/dimchat/demo-py
6
6
  Author: Albert Moky
@@ -380,24 +380,10 @@ def create_messenger(facebook: ClientFacebook, database: MessageDBI,
380
380
  def create_terminal(messenger: OctopusMessenger) -> Terminal:
381
381
  terminal = Terminal(messenger=messenger)
382
382
  messenger.terminal = terminal
383
- thr = threading.Thread(target=__start_terminal, args=(terminal,), daemon=True)
384
- thr.start()
383
+ Runner.thread_run(terminal)
385
384
  return terminal
386
385
 
387
386
 
388
- def __start_terminal(terminal: Terminal):
389
- Runner.sync_run(main=__run_terminal(terminal=terminal))
390
-
391
-
392
- async def __run_terminal(terminal: Terminal):
393
- await terminal.start()
394
- while True:
395
- await Runner.sleep(seconds=2.0)
396
- if not terminal.running:
397
- break
398
- Log.warning(msg='terminal stopped: %s' % terminal)
399
-
400
-
401
387
  async def update_station(station: Station, database: SessionDBI):
402
388
  Log.info(msg='update station: %s' % station)
403
389
  # SP ID
@@ -133,7 +133,8 @@ class Dispatcher(MessageDeliver, Logging):
133
133
  assert db is not None, 'dispatcher not initialized'
134
134
  runner = Roamer(database=db)
135
135
  self.__roamer = runner
136
- Runner.async_run(coroutine=runner.start())
136
+ # Runner.async_run(coroutine=runner.start())
137
+ Runner.thread_run(runner)
137
138
  return runner
138
139
 
139
140
  def add_roaming(self, user: ID, station: ID) -> bool:
@@ -124,7 +124,8 @@ class PushCenter(DaemonRunner, Logging):
124
124
  self.__queue = MessageQueue()
125
125
  self.__keeper = BadgeKeeper()
126
126
  self.__service: Optional[PushService] = None
127
- Runner.async_run(coroutine=self.start())
127
+ # Runner.async_run(coroutine=self.start())
128
+ Runner.thread_run(self)
128
129
 
129
130
  @property
130
131
  def service(self) -> Optional[PushService]:
@@ -95,7 +95,9 @@ class ServerSession(BaseSession):
95
95
  if super().set_identifier(identifier=identifier):
96
96
  session_change_id(session=self, new_id=identifier, old_id=old)
97
97
  # load cached message asynchronously
98
- Runner.async_run(coroutine=load_cached_messages(session=self))
98
+ crt = load_cached_messages(session=self)
99
+ # Runner.async_run(coroutine=crt)
100
+ Runner.thread_run(crt)
99
101
  return True
100
102
 
101
103
  # Override
@@ -103,7 +105,9 @@ class ServerSession(BaseSession):
103
105
  if super().set_active(active=active, when=when):
104
106
  session_change_active(session=self, active=active)
105
107
  # load cached message asynchronously
106
- Runner.async_run(coroutine=load_cached_messages(session=self))
108
+ crt = load_cached_messages(session=self)
109
+ # Runner.async_run(coroutine=crt)
110
+ Runner.thread_run(crt)
107
111
  return True
108
112
 
109
113
  # Override
@@ -33,6 +33,7 @@
33
33
  -- Albert Moky @ Jan. 23, 2019
34
34
  """
35
35
 
36
+ import threading
36
37
  from typing import Optional, List, Dict
37
38
 
38
39
  from dimsdk import md5, sha1, sha256, keccak256, ripemd160
@@ -142,3 +143,37 @@ __all__ = [
142
143
  'template_replace',
143
144
 
144
145
  ]
146
+
147
+
148
+ #
149
+ # Patch for Runner
150
+ #
151
+ async def _run_forever(runner: Runner):
152
+ await runner.start()
153
+ while True:
154
+ await Runner.sleep(seconds=2.0)
155
+ if not runner.running:
156
+ break
157
+ Log.warning(msg='runner stopped: %s' % runner)
158
+
159
+
160
+ def _start_runner(runner: Runner):
161
+ Runner.sync_run(main=_run_forever(runner=runner))
162
+
163
+
164
+ def _start_coroutine(coroutine):
165
+ Runner.sync_run(main=coroutine)
166
+
167
+
168
+ def _bg_run(target):
169
+ if isinstance(target, Runner):
170
+ fn = _start_runner
171
+ else:
172
+ fn = _start_coroutine
173
+ thr = threading.Thread(target=fn, args=(target,), daemon=True)
174
+ thr.start()
175
+ return thr
176
+
177
+
178
+ """ Run coroutine in background thread """
179
+ Runner.thread_run = _bg_run
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dimples
3
- Version: 1.0.3
3
+ Version: 1.1.0
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__ = '1.0.3'
17
+ __version__ = '1.1.0'
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