portal 3.1.1__tar.gz → 3.1.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 (35) hide show
  1. {portal-3.1.1/portal.egg-info → portal-3.1.3}/PKG-INFO +1 -1
  2. {portal-3.1.1 → portal-3.1.3}/portal/__init__.py +1 -1
  3. {portal-3.1.1 → portal-3.1.3}/portal/client.py +2 -5
  4. {portal-3.1.1 → portal-3.1.3}/portal/client_socket.py +3 -7
  5. {portal-3.1.1 → portal-3.1.3}/portal/contextlib.py +10 -0
  6. {portal-3.1.1 → portal-3.1.3}/portal/server_socket.py +2 -7
  7. {portal-3.1.1 → portal-3.1.3/portal.egg-info}/PKG-INFO +1 -1
  8. {portal-3.1.1 → portal-3.1.3}/LICENSE +0 -0
  9. {portal-3.1.1 → portal-3.1.3}/MANIFEST.in +0 -0
  10. {portal-3.1.1 → portal-3.1.3}/README.md +0 -0
  11. {portal-3.1.1 → portal-3.1.3}/portal/batching.py +0 -0
  12. {portal-3.1.1 → portal-3.1.3}/portal/buffers.py +0 -0
  13. {portal-3.1.1 → portal-3.1.3}/portal/packlib.py +0 -0
  14. {portal-3.1.1 → portal-3.1.3}/portal/poollib.py +0 -0
  15. {portal-3.1.1 → portal-3.1.3}/portal/process.py +0 -0
  16. {portal-3.1.1 → portal-3.1.3}/portal/server.py +0 -0
  17. {portal-3.1.1 → portal-3.1.3}/portal/sharray.py +0 -0
  18. {portal-3.1.1 → portal-3.1.3}/portal/thread.py +0 -0
  19. {portal-3.1.1 → portal-3.1.3}/portal/utils.py +0 -0
  20. {portal-3.1.1 → portal-3.1.3}/portal.egg-info/SOURCES.txt +0 -0
  21. {portal-3.1.1 → portal-3.1.3}/portal.egg-info/dependency_links.txt +0 -0
  22. {portal-3.1.1 → portal-3.1.3}/portal.egg-info/requires.txt +0 -0
  23. {portal-3.1.1 → portal-3.1.3}/portal.egg-info/top_level.txt +0 -0
  24. {portal-3.1.1 → portal-3.1.3}/pyproject.toml +0 -0
  25. {portal-3.1.1 → portal-3.1.3}/requirements.txt +0 -0
  26. {portal-3.1.1 → portal-3.1.3}/setup.cfg +0 -0
  27. {portal-3.1.1 → portal-3.1.3}/setup.py +0 -0
  28. {portal-3.1.1 → portal-3.1.3}/tests/test_batching.py +0 -0
  29. {portal-3.1.1 → portal-3.1.3}/tests/test_client.py +0 -0
  30. {portal-3.1.1 → portal-3.1.3}/tests/test_errfile.py +0 -0
  31. {portal-3.1.1 → portal-3.1.3}/tests/test_pack.py +0 -0
  32. {portal-3.1.1 → portal-3.1.3}/tests/test_process.py +0 -0
  33. {portal-3.1.1 → portal-3.1.3}/tests/test_server.py +0 -0
  34. {portal-3.1.1 → portal-3.1.3}/tests/test_socket.py +0 -0
  35. {portal-3.1.1 → portal-3.1.3}/tests/test_thread.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: portal
3
- Version: 3.1.1
3
+ Version: 3.1.3
4
4
  Summary: Fast and reliable distributed systems in Python
5
5
  Home-page: http://github.com/danijar/portal
6
6
  Author: Danijar Hafner
@@ -1,4 +1,4 @@
1
- __version__ = '3.1.1'
1
+ __version__ = '3.1.3'
2
2
 
3
3
  import multiprocessing as mp
4
4
  try:
@@ -47,7 +47,7 @@ class Client:
47
47
  def stats(self):
48
48
  now = time.time()
49
49
  stats = {
50
- 'inflight': self._numinflight(),
50
+ 'inflight': len(self.futures),
51
51
  'numsend': self.sendrate[0],
52
52
  'numrecv': self.recvrate[0],
53
53
  'sendrate': self.sendrate[0] / (now - self.sendrate[1]),
@@ -65,7 +65,7 @@ class Client:
65
65
  def call(self, method, *data):
66
66
  reqnum = next(self.reqnum).to_bytes(8, 'little', signed=False)
67
67
  start = time.time()
68
- while self._numinflight() >= self.maxinflight:
68
+ while len(self.futures) >= self.maxinflight:
69
69
  with self.cond: self.cond.wait(timeout=0.2)
70
70
  try:
71
71
  self.socket.require_connection(timeout=0)
@@ -93,9 +93,6 @@ class Client:
93
93
  self.futures.clear()
94
94
  self.socket.close(timeout)
95
95
 
96
- def _numinflight(self):
97
- return len([x for x in self.futures.values() if not x.don])
98
-
99
96
  def _recv(self, data):
100
97
  assert len(data) >= 16, 'Unexpectedly short response'
101
98
  reqnum = bytes(data[:8])
@@ -10,7 +10,6 @@ import time
10
10
  from . import buffers
11
11
  from . import contextlib
12
12
  from . import thread
13
- from . import utils
14
13
 
15
14
 
16
15
  class Disconnected(Exception):
@@ -39,6 +38,7 @@ class ClientSocket:
39
38
  if port is None:
40
39
  host, port = host.rsplit(':', 1)
41
40
  port = int(port)
41
+ assert host, host
42
42
  self.addr = (host, port)
43
43
  self.name = name
44
44
  self.options = Options(**{**contextlib.context.clientkw, **kwargs})
@@ -227,9 +227,5 @@ class ClientSocket:
227
227
  def _log(self, *args):
228
228
  if not self.options.logging:
229
229
  return
230
- if self.options.logging_color:
231
- style = utils.style(color=self.options.logging_color)
232
- reset = utils.style(reset=True)
233
- else:
234
- style, reset = '', ''
235
- print(style + f'[{self.name}]' + reset, *args)
230
+ contextlib.context.print(
231
+ self.name, *args, color=self.options.logging_color)
@@ -96,6 +96,16 @@ class Context:
96
96
  self.initfns.append(pkl)
97
97
  call_now and fn()
98
98
 
99
+ def print(self, name, *args, color=None):
100
+ assert args
101
+ if color:
102
+ style = utils.style(color=color)
103
+ reset = utils.style(reset=True)
104
+ else:
105
+ style, reset = '', ''
106
+ with self.printlock:
107
+ print(style + f'[{name}]' + reset, *args)
108
+
99
109
  def error(self, e, name=None):
100
110
  typ, tb = type(e), e.__traceback__
101
111
  summary = list(traceback.format_exception_only(typ, e))[0].strip('\n')
@@ -7,7 +7,6 @@ import socket
7
7
  from . import buffers
8
8
  from . import contextlib
9
9
  from . import thread
10
- from . import utils
11
10
 
12
11
 
13
12
  class Connection:
@@ -164,9 +163,5 @@ class ServerSocket:
164
163
  def _log(self, *args, **kwargs):
165
164
  if not self.options.logging:
166
165
  return
167
- if self.options.logging_color:
168
- style = utils.style(color=self.options.logging_color)
169
- reset = utils.style(reset=True)
170
- else:
171
- style, reset = '', ''
172
- print(style + f'[{self.name}]' + reset, *args)
166
+ contextlib.context.print(
167
+ self.name, *args, color=self.options.logging_color)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: portal
3
- Version: 3.1.1
3
+ Version: 3.1.3
4
4
  Summary: Fast and reliable distributed systems in Python
5
5
  Home-page: http://github.com/danijar/portal
6
6
  Author: Danijar Hafner
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