rloop 0.1.0a3__tar.gz → 0.1.0a4__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 (32) hide show
  1. {rloop-0.1.0a3 → rloop-0.1.0a4}/Cargo.lock +29 -27
  2. {rloop-0.1.0a3 → rloop-0.1.0a4}/Cargo.toml +7 -1
  3. {rloop-0.1.0a3 → rloop-0.1.0a4}/PKG-INFO +1 -1
  4. {rloop-0.1.0a3 → rloop-0.1.0a4}/pyproject.toml +1 -1
  5. {rloop-0.1.0a3 → rloop-0.1.0a4}/rloop/_rloop.pyi +21 -5
  6. {rloop-0.1.0a3 → rloop-0.1.0a4}/rloop/futures.py +2 -2
  7. {rloop-0.1.0a3 → rloop-0.1.0a4}/rloop/loop.py +285 -34
  8. rloop-0.1.0a4/rloop/server.py +71 -0
  9. {rloop-0.1.0a3 → rloop-0.1.0a4}/rloop/subprocess.py +9 -9
  10. {rloop-0.1.0a3 → rloop-0.1.0a4}/rloop/utils.py +30 -2
  11. rloop-0.1.0a4/src/event_loop.rs +1089 -0
  12. rloop-0.1.0a4/src/handles.rs +207 -0
  13. {rloop-0.1.0a3 → rloop-0.1.0a4}/src/io.rs +9 -15
  14. {rloop-0.1.0a3 → rloop-0.1.0a4}/src/lib.rs +10 -2
  15. rloop-0.1.0a4/src/log.rs +63 -0
  16. rloop-0.1.0a4/src/py.rs +94 -0
  17. rloop-0.1.0a4/src/server.rs +117 -0
  18. rloop-0.1.0a4/src/sock.rs +74 -0
  19. rloop-0.1.0a4/src/tcp.rs +768 -0
  20. rloop-0.1.0a4/src/time.rs +34 -0
  21. rloop-0.1.0a4/src/utils.rs +12 -0
  22. rloop-0.1.0a3/src/event_loop.rs +0 -762
  23. rloop-0.1.0a3/src/handles.rs +0 -96
  24. rloop-0.1.0a3/src/py.rs +0 -25
  25. {rloop-0.1.0a3 → rloop-0.1.0a4}/LICENSE +0 -0
  26. {rloop-0.1.0a3 → rloop-0.1.0a4}/README.md +0 -0
  27. {rloop-0.1.0a3 → rloop-0.1.0a4}/rloop/__init__.py +0 -0
  28. {rloop-0.1.0a3 → rloop-0.1.0a4}/rloop/_compat.py +0 -0
  29. {rloop-0.1.0a3 → rloop-0.1.0a4}/rloop/exc.py +0 -0
  30. {rloop-0.1.0a3 → rloop-0.1.0a4}/rloop/transports.py +0 -0
  31. {rloop-0.1.0a3 → rloop-0.1.0a4}/tests/conftest.py +0 -0
  32. {rloop-0.1.0a3 → rloop-0.1.0a4}/tests/test_sockets.py +0 -0
@@ -4,9 +4,9 @@ version = 4
4
4
 
5
5
  [[package]]
6
6
  name = "anyhow"
7
- version = "1.0.94"
7
+ version = "1.0.95"
8
8
  source = "registry+https://github.com/rust-lang/crates.io-index"
9
- checksum = "c1fd03a028ef38ba2276dce7e33fcd6369c158a1bca17946c4b1b701891c1ff7"
9
+ checksum = "34ac096ce696dc2fcabef30516bb13c0a68a11d30131d3df6f04711467681b04"
10
10
 
11
11
  [[package]]
12
12
  name = "autocfg"
@@ -16,15 +16,15 @@ checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26"
16
16
 
17
17
  [[package]]
18
18
  name = "bitflags"
19
- version = "2.6.0"
19
+ version = "2.8.0"
20
20
  source = "registry+https://github.com/rust-lang/crates.io-index"
21
- checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de"
21
+ checksum = "8f68f53c83ab957f72c32642f3868eec03eb974d1fb82e453128456482613d36"
22
22
 
23
23
  [[package]]
24
24
  name = "cc"
25
- version = "1.2.5"
25
+ version = "1.2.10"
26
26
  source = "registry+https://github.com/rust-lang/crates.io-index"
27
- checksum = "c31a0499c1dc64f458ad13872de75c0eb7e3fdb0e67964610c914b034fc5956e"
27
+ checksum = "13208fcbb66eaeffe09b99fffbe1af420f00a7b35aa99ad683dfc1aa76145229"
28
28
  dependencies = [
29
29
  "shlex",
30
30
  ]
@@ -91,9 +91,9 @@ dependencies = [
91
91
 
92
92
  [[package]]
93
93
  name = "log"
94
- version = "0.4.22"
94
+ version = "0.4.25"
95
95
  source = "registry+https://github.com/rust-lang/crates.io-index"
96
- checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24"
96
+ checksum = "04cbf5b083de1c7e0222a7a51dbfdba1cbe1c6ab0b15e29fff3f6c077fd9cd9f"
97
97
 
98
98
  [[package]]
99
99
  name = "memoffset"
@@ -143,18 +143,18 @@ checksum = "280dc24453071f1b63954171985a0b0d30058d287960968b9b2aca264c8d4ee6"
143
143
 
144
144
  [[package]]
145
145
  name = "proc-macro2"
146
- version = "1.0.92"
146
+ version = "1.0.93"
147
147
  source = "registry+https://github.com/rust-lang/crates.io-index"
148
- checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0"
148
+ checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99"
149
149
  dependencies = [
150
150
  "unicode-ident",
151
151
  ]
152
152
 
153
153
  [[package]]
154
154
  name = "pyo3"
155
- version = "0.23.3"
155
+ version = "0.23.4"
156
156
  source = "registry+https://github.com/rust-lang/crates.io-index"
157
- checksum = "e484fd2c8b4cb67ab05a318f1fd6fa8f199fcc30819f08f07d200809dba26c15"
157
+ checksum = "57fe09249128b3173d092de9523eaa75136bf7ba85e0d69eca241c7939c933cc"
158
158
  dependencies = [
159
159
  "anyhow",
160
160
  "cfg-if",
@@ -171,9 +171,9 @@ dependencies = [
171
171
 
172
172
  [[package]]
173
173
  name = "pyo3-build-config"
174
- version = "0.23.3"
174
+ version = "0.23.4"
175
175
  source = "registry+https://github.com/rust-lang/crates.io-index"
176
- checksum = "dc0e0469a84f208e20044b98965e1561028180219e35352a2afaf2b942beff3b"
176
+ checksum = "1cd3927b5a78757a0d71aa9dff669f903b1eb64b54142a9bd9f757f8fde65fd7"
177
177
  dependencies = [
178
178
  "once_cell",
179
179
  "python3-dll-a",
@@ -182,9 +182,9 @@ dependencies = [
182
182
 
183
183
  [[package]]
184
184
  name = "pyo3-ffi"
185
- version = "0.23.3"
185
+ version = "0.23.4"
186
186
  source = "registry+https://github.com/rust-lang/crates.io-index"
187
- checksum = "eb1547a7f9966f6f1a0f0227564a9945fe36b90da5a93b3933fc3dc03fae372d"
187
+ checksum = "dab6bb2102bd8f991e7749f130a70d05dd557613e39ed2deeee8e9ca0c4d548d"
188
188
  dependencies = [
189
189
  "libc",
190
190
  "pyo3-build-config",
@@ -192,9 +192,9 @@ dependencies = [
192
192
 
193
193
  [[package]]
194
194
  name = "pyo3-macros"
195
- version = "0.23.3"
195
+ version = "0.23.4"
196
196
  source = "registry+https://github.com/rust-lang/crates.io-index"
197
- checksum = "fdb6da8ec6fa5cedd1626c886fc8749bdcbb09424a86461eb8cdf096b7c33257"
197
+ checksum = "91871864b353fd5ffcb3f91f2f703a22a9797c91b9ab497b1acac7b07ae509c7"
198
198
  dependencies = [
199
199
  "proc-macro2",
200
200
  "pyo3-macros-backend",
@@ -204,9 +204,9 @@ dependencies = [
204
204
 
205
205
  [[package]]
206
206
  name = "pyo3-macros-backend"
207
- version = "0.23.3"
207
+ version = "0.23.4"
208
208
  source = "registry+https://github.com/rust-lang/crates.io-index"
209
- checksum = "38a385202ff5a92791168b1136afae5059d3ac118457bb7bc304c197c2d33e7d"
209
+ checksum = "43abc3b80bc20f3facd86cd3c60beed58c3e2aa26213f3cda368de39c60a27e4"
210
210
  dependencies = [
211
211
  "heck",
212
212
  "proc-macro2",
@@ -226,9 +226,9 @@ dependencies = [
226
226
 
227
227
  [[package]]
228
228
  name = "quote"
229
- version = "1.0.37"
229
+ version = "1.0.38"
230
230
  source = "registry+https://github.com/rust-lang/crates.io-index"
231
- checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af"
231
+ checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc"
232
232
  dependencies = [
233
233
  "proc-macro2",
234
234
  ]
@@ -244,12 +244,14 @@ dependencies = [
244
244
 
245
245
  [[package]]
246
246
  name = "rloop"
247
- version = "0.1.0-alpha3"
247
+ version = "0.1.0-alpha4"
248
248
  dependencies = [
249
249
  "anyhow",
250
250
  "dashmap",
251
+ "libc",
251
252
  "mio",
252
253
  "pyo3",
254
+ "pyo3-build-config",
253
255
  "socket2",
254
256
  ]
255
257
 
@@ -283,9 +285,9 @@ dependencies = [
283
285
 
284
286
  [[package]]
285
287
  name = "syn"
286
- version = "2.0.90"
288
+ version = "2.0.96"
287
289
  source = "registry+https://github.com/rust-lang/crates.io-index"
288
- checksum = "919d3b74a5dd0ccd15aeb8f93e7006bd9e14c295087c9896a110f490752bcf31"
290
+ checksum = "d5d0adab1ae378d7f53bdebc67a39f1f151407ef230f0ce2883572f5d8985c80"
289
291
  dependencies = [
290
292
  "proc-macro2",
291
293
  "quote",
@@ -300,9 +302,9 @@ checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1"
300
302
 
301
303
  [[package]]
302
304
  name = "unicode-ident"
303
- version = "1.0.14"
305
+ version = "1.0.15"
304
306
  source = "registry+https://github.com/rust-lang/crates.io-index"
305
- checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83"
307
+ checksum = "11cd88e12b17c6494200a9c1b683a04fcac9573ed74cd1b62aeb2727c5592243"
306
308
 
307
309
  [[package]]
308
310
  name = "unindent"
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "rloop"
3
- version = "0.1.0-alpha3"
3
+ version = "0.1.0-alpha4"
4
4
  description = "An asyncio event loop implemented in Rust"
5
5
  authors = ["Giovanni Barillari <g@baro.dev>"]
6
6
  license = "BSD-3-Clause"
@@ -36,6 +36,12 @@ mio = { version = "=1.0", features = ["net", "os-ext", "os-poll"] }
36
36
  pyo3 = { version = "=0.23", features = ["anyhow", "extension-module", "generate-import-lib"] }
37
37
  socket2 = "=0.5"
38
38
 
39
+ [target.'cfg(unix)'.dependencies]
40
+ libc = "0.2.159"
41
+
42
+ [build-dependencies]
43
+ pyo3-build-config = "=0.23"
44
+
39
45
  [profile.release]
40
46
  codegen-units = 1
41
47
  debug = false
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rloop
3
- Version: 0.1.0a3
3
+ Version: 0.1.0a4
4
4
  Classifier: Development Status :: 3 - Alpha
5
5
  Classifier: Intended Audience :: Developers
6
6
  Classifier: License :: OSI Approved :: BSD License
@@ -79,7 +79,7 @@ extend-ignore = [
79
79
  'S101', # assert is fine
80
80
  ]
81
81
  flake8-quotes = { inline-quotes = 'single', multiline-quotes = 'double' }
82
- mccabe = { max-complexity = 16 }
82
+ mccabe = { max-complexity = 25 }
83
83
 
84
84
  [tool.ruff.format]
85
85
  quote-style = 'single'
@@ -1,8 +1,10 @@
1
- from typing import Any
1
+ from typing import Any, Callable, Tuple, TypeVar
2
2
  from weakref import WeakSet
3
3
 
4
4
  __version__: str
5
5
 
6
+ T = TypeVar('T')
7
+
6
8
  class CBHandle:
7
9
  def cancel(self): ...
8
10
  def cancelled(self) -> bool: ...
@@ -36,14 +38,28 @@ class EventLoop:
36
38
 
37
39
  def _run(self): ...
38
40
  def _call_later(self, delay, callback, args, context) -> TimerHandle: ...
39
- def _reader_add(self, fd, callback, args, context) -> CBHandle: ...
40
- def _reader_rem(self, fd) -> bool: ...
41
- def _writer_add(self, fd, callback, args, context) -> CBHandle: ...
42
- def _writer_rem(self, fd) -> bool: ...
43
41
  def _sig_add(self, sig, callback, context): ...
44
42
  def _sig_rem(self, sig) -> bool: ...
45
43
  def _sig_clear(self): ...
46
44
  def _ssock_set(self, fd): ...
47
45
  def _ssock_del(self, fd): ...
46
+ def _tcp_conn(self, sock, protocol_factory: Callable[[], T]) -> Tuple[Any, T]: ...
47
+ def _tcp_server(self, socks, rsocks, protocol_factory, backlog) -> Server: ...
48
+ def add_reader(self, fd, callback, *args) -> CBHandle: ...
49
+ def add_writer(self, fd, callback, *args) -> CBHandle: ...
48
50
  def call_soon(self, callback, *args, context=None) -> CBHandle: ...
49
51
  def call_soon_threadsafe(self, callback, *args, context=None) -> CBHandle: ...
52
+ def remove_reader(self, fd) -> bool: ...
53
+ def remove_writer(self, fd) -> bool: ...
54
+
55
+ class Server:
56
+ _loop: Any
57
+ _sff: Any
58
+ _sockets: list[int]
59
+
60
+ # def _add_waiter(self, waiter): ...
61
+ def _close(self): ...
62
+ def _start_serving(self): ...
63
+ def abort_clients(self): ...
64
+ def close_clients(self): ...
65
+ def is_serving(self) -> bool: ...
@@ -8,7 +8,7 @@ class _SyncSockReaderFuture(_Future):
8
8
 
9
9
  def cancel(self, msg=None) -> bool:
10
10
  if self.__sock is not None and self.__sock.fileno() != -1:
11
- self._loop._reader_rem(self.__sock)
11
+ self._loop.remove_reader(self.__sock)
12
12
  self.__sock = None
13
13
  return super().cancel(msg)
14
14
 
@@ -20,6 +20,6 @@ class _SyncSockWriterFuture(_Future):
20
20
 
21
21
  def cancel(self, msg=None) -> bool:
22
22
  if self.__sock is not None and self.__sock.fileno() != -1:
23
- self._loop._writer_rem(self.__sock)
23
+ self._loop.remove_writer(self.__sock)
24
24
  self.__sock = None
25
25
  return super().cancel(msg)