rloop 0.1.0a2__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.0a2 → rloop-0.1.0a4}/Cargo.lock +44 -90
  2. {rloop-0.1.0a2 → rloop-0.1.0a4}/Cargo.toml +5 -5
  3. {rloop-0.1.0a2 → rloop-0.1.0a4}/PKG-INFO +2 -2
  4. {rloop-0.1.0a2 → rloop-0.1.0a4}/pyproject.toml +4 -1
  5. {rloop-0.1.0a2 → rloop-0.1.0a4}/rloop/_rloop.pyi +23 -9
  6. {rloop-0.1.0a2 → rloop-0.1.0a4}/rloop/futures.py +2 -2
  7. {rloop-0.1.0a2 → rloop-0.1.0a4}/rloop/loop.py +315 -91
  8. rloop-0.1.0a4/rloop/server.py +71 -0
  9. {rloop-0.1.0a2 → rloop-0.1.0a4}/rloop/subprocess.py +9 -9
  10. {rloop-0.1.0a2 → 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.0a2 → rloop-0.1.0a4}/src/io.rs +9 -11
  14. {rloop-0.1.0a2 → rloop-0.1.0a4}/src/lib.rs +10 -10
  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.0a2/src/event_loop.rs +0 -662
  23. rloop-0.1.0a2/src/handles.rs +0 -95
  24. rloop-0.1.0a2/src/py.rs +0 -25
  25. {rloop-0.1.0a2 → rloop-0.1.0a4}/LICENSE +0 -0
  26. {rloop-0.1.0a2 → rloop-0.1.0a4}/README.md +0 -0
  27. {rloop-0.1.0a2 → rloop-0.1.0a4}/rloop/__init__.py +0 -0
  28. {rloop-0.1.0a2 → rloop-0.1.0a4}/rloop/_compat.py +0 -0
  29. {rloop-0.1.0a2 → rloop-0.1.0a4}/rloop/exc.py +0 -0
  30. {rloop-0.1.0a2 → rloop-0.1.0a4}/rloop/transports.py +0 -0
  31. {rloop-0.1.0a2 → rloop-0.1.0a4}/tests/conftest.py +0 -0
  32. {rloop-0.1.0a2 → rloop-0.1.0a4}/tests/test_sockets.py +0 -0
@@ -1,12 +1,12 @@
1
1
  # This file is automatically @generated by Cargo.
2
2
  # It is not intended for manual editing.
3
- version = 3
3
+ version = 4
4
4
 
5
5
  [[package]]
6
6
  name = "anyhow"
7
- version = "1.0.93"
7
+ version = "1.0.95"
8
8
  source = "registry+https://github.com/rust-lang/crates.io-index"
9
- checksum = "4c95c10ba0b00a02636238b814946408b1322d5ac4760326e6fb8ec956d85775"
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.1.37"
25
+ version = "1.2.10"
26
26
  source = "registry+https://github.com/rust-lang/crates.io-index"
27
- checksum = "40545c26d092346d8a8dab71ee48e7685a7a9cba76e634790c215b41a4a7b4cf"
27
+ checksum = "13208fcbb66eaeffe09b99fffbe1af420f00a7b35aa99ad683dfc1aa76145229"
28
28
  dependencies = [
29
29
  "shlex",
30
30
  ]
@@ -37,9 +37,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
37
37
 
38
38
  [[package]]
39
39
  name = "crossbeam-utils"
40
- version = "0.8.20"
40
+ version = "0.8.21"
41
41
  source = "registry+https://github.com/rust-lang/crates.io-index"
42
- checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80"
42
+ checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28"
43
43
 
44
44
  [[package]]
45
45
  name = "dashmap"
@@ -67,12 +67,6 @@ version = "0.5.0"
67
67
  source = "registry+https://github.com/rust-lang/crates.io-index"
68
68
  checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
69
69
 
70
- [[package]]
71
- name = "hermit-abi"
72
- version = "0.3.9"
73
- source = "registry+https://github.com/rust-lang/crates.io-index"
74
- checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
75
-
76
70
  [[package]]
77
71
  name = "indoc"
78
72
  version = "2.0.5"
@@ -81,19 +75,9 @@ checksum = "b248f5224d1d606005e02c97f5aa4e88eeb230488bcc03bc9ca4d7991399f2b5"
81
75
 
82
76
  [[package]]
83
77
  name = "libc"
84
- version = "0.2.162"
78
+ version = "0.2.169"
85
79
  source = "registry+https://github.com/rust-lang/crates.io-index"
86
- checksum = "18d287de67fe55fd7e1581fe933d965a5a9477b38e949cfa9f8574ef01506398"
87
-
88
- [[package]]
89
- name = "libmimalloc-sys"
90
- version = "0.1.39"
91
- source = "registry+https://github.com/rust-lang/crates.io-index"
92
- checksum = "23aa6811d3bd4deb8a84dde645f943476d13b248d818edcf8ce0b2f37f036b44"
93
- dependencies = [
94
- "cc",
95
- "libc",
96
- ]
80
+ checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a"
97
81
 
98
82
  [[package]]
99
83
  name = "lock_api"
@@ -107,9 +91,9 @@ dependencies = [
107
91
 
108
92
  [[package]]
109
93
  name = "log"
110
- version = "0.4.22"
94
+ version = "0.4.25"
111
95
  source = "registry+https://github.com/rust-lang/crates.io-index"
112
- checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24"
96
+ checksum = "04cbf5b083de1c7e0222a7a51dbfdba1cbe1c6ab0b15e29fff3f6c077fd9cd9f"
113
97
 
114
98
  [[package]]
115
99
  name = "memoffset"
@@ -120,22 +104,12 @@ dependencies = [
120
104
  "autocfg",
121
105
  ]
122
106
 
123
- [[package]]
124
- name = "mimalloc"
125
- version = "0.1.43"
126
- source = "registry+https://github.com/rust-lang/crates.io-index"
127
- checksum = "68914350ae34959d83f732418d51e2427a794055d0b9529f48259ac07af65633"
128
- dependencies = [
129
- "libmimalloc-sys",
130
- ]
131
-
132
107
  [[package]]
133
108
  name = "mio"
134
- version = "1.0.2"
109
+ version = "1.0.3"
135
110
  source = "registry+https://github.com/rust-lang/crates.io-index"
136
- checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec"
111
+ checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd"
137
112
  dependencies = [
138
- "hermit-abi",
139
113
  "libc",
140
114
  "log",
141
115
  "wasi",
@@ -163,24 +137,24 @@ dependencies = [
163
137
 
164
138
  [[package]]
165
139
  name = "portable-atomic"
166
- version = "1.9.0"
140
+ version = "1.10.0"
167
141
  source = "registry+https://github.com/rust-lang/crates.io-index"
168
- checksum = "cc9c68a3f6da06753e9335d63e27f6b9754dd1920d941135b7ea8224f141adb2"
142
+ checksum = "280dc24453071f1b63954171985a0b0d30058d287960968b9b2aca264c8d4ee6"
169
143
 
170
144
  [[package]]
171
145
  name = "proc-macro2"
172
- version = "1.0.89"
146
+ version = "1.0.93"
173
147
  source = "registry+https://github.com/rust-lang/crates.io-index"
174
- checksum = "f139b0662de085916d1fb67d2b4169d1addddda1919e696f3252b740b629986e"
148
+ checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99"
175
149
  dependencies = [
176
150
  "unicode-ident",
177
151
  ]
178
152
 
179
153
  [[package]]
180
154
  name = "pyo3"
181
- version = "0.23.1"
155
+ version = "0.23.4"
182
156
  source = "registry+https://github.com/rust-lang/crates.io-index"
183
- checksum = "7ebb0c0cc0de9678e53be9ccf8a2ab53045e6e3a8be03393ceccc5e7396ccb40"
157
+ checksum = "57fe09249128b3173d092de9523eaa75136bf7ba85e0d69eca241c7939c933cc"
184
158
  dependencies = [
185
159
  "anyhow",
186
160
  "cfg-if",
@@ -197,9 +171,9 @@ dependencies = [
197
171
 
198
172
  [[package]]
199
173
  name = "pyo3-build-config"
200
- version = "0.23.1"
174
+ version = "0.23.4"
201
175
  source = "registry+https://github.com/rust-lang/crates.io-index"
202
- checksum = "80e3ce69c4ec34476534b490e412b871ba03a82e35604c3dfb95fcb6bfb60c09"
176
+ checksum = "1cd3927b5a78757a0d71aa9dff669f903b1eb64b54142a9bd9f757f8fde65fd7"
203
177
  dependencies = [
204
178
  "once_cell",
205
179
  "python3-dll-a",
@@ -208,9 +182,9 @@ dependencies = [
208
182
 
209
183
  [[package]]
210
184
  name = "pyo3-ffi"
211
- version = "0.23.1"
185
+ version = "0.23.4"
212
186
  source = "registry+https://github.com/rust-lang/crates.io-index"
213
- checksum = "3b09f311c76b36dfd6dd6f7fa6f9f18e7e46a1c937110d283e80b12ba2468a75"
187
+ checksum = "dab6bb2102bd8f991e7749f130a70d05dd557613e39ed2deeee8e9ca0c4d548d"
214
188
  dependencies = [
215
189
  "libc",
216
190
  "pyo3-build-config",
@@ -218,9 +192,9 @@ dependencies = [
218
192
 
219
193
  [[package]]
220
194
  name = "pyo3-macros"
221
- version = "0.23.1"
195
+ version = "0.23.4"
222
196
  source = "registry+https://github.com/rust-lang/crates.io-index"
223
- checksum = "fd4f74086536d1e1deaff99ec0387481fb3325c82e4e48be0e75ab3d3fcb487a"
197
+ checksum = "91871864b353fd5ffcb3f91f2f703a22a9797c91b9ab497b1acac7b07ae509c7"
224
198
  dependencies = [
225
199
  "proc-macro2",
226
200
  "pyo3-macros-backend",
@@ -230,9 +204,9 @@ dependencies = [
230
204
 
231
205
  [[package]]
232
206
  name = "pyo3-macros-backend"
233
- version = "0.23.1"
207
+ version = "0.23.4"
234
208
  source = "registry+https://github.com/rust-lang/crates.io-index"
235
- checksum = "9e77dfeb76b32bbf069144a5ea0a36176ab59c8db9ce28732d0f06f096bbfbc8"
209
+ checksum = "43abc3b80bc20f3facd86cd3c60beed58c3e2aa26213f3cda368de39c60a27e4"
236
210
  dependencies = [
237
211
  "heck",
238
212
  "proc-macro2",
@@ -243,42 +217,42 @@ dependencies = [
243
217
 
244
218
  [[package]]
245
219
  name = "python3-dll-a"
246
- version = "0.2.10"
220
+ version = "0.2.12"
247
221
  source = "registry+https://github.com/rust-lang/crates.io-index"
248
- checksum = "bd0b78171a90d808b319acfad166c4790d9e9759bbc14ac8273fe133673dd41b"
222
+ checksum = "9b66f9171950e674e64bad3456e11bb3cca108e5c34844383cfe277f45c8a7a8"
249
223
  dependencies = [
250
224
  "cc",
251
225
  ]
252
226
 
253
227
  [[package]]
254
228
  name = "quote"
255
- version = "1.0.37"
229
+ version = "1.0.38"
256
230
  source = "registry+https://github.com/rust-lang/crates.io-index"
257
- checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af"
231
+ checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc"
258
232
  dependencies = [
259
233
  "proc-macro2",
260
234
  ]
261
235
 
262
236
  [[package]]
263
237
  name = "redox_syscall"
264
- version = "0.5.7"
238
+ version = "0.5.8"
265
239
  source = "registry+https://github.com/rust-lang/crates.io-index"
266
- checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f"
240
+ checksum = "03a862b389f93e68874fbf580b9de08dd02facb9a788ebadaf4a3fd33cf58834"
267
241
  dependencies = [
268
242
  "bitflags",
269
243
  ]
270
244
 
271
245
  [[package]]
272
246
  name = "rloop"
273
- version = "0.1.0-alpha2"
247
+ version = "0.1.0-alpha4"
274
248
  dependencies = [
275
249
  "anyhow",
276
250
  "dashmap",
277
- "mimalloc",
251
+ "libc",
278
252
  "mio",
279
253
  "pyo3",
254
+ "pyo3-build-config",
280
255
  "socket2",
281
- "tikv-jemallocator",
282
256
  ]
283
257
 
284
258
  [[package]]
@@ -301,9 +275,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
301
275
 
302
276
  [[package]]
303
277
  name = "socket2"
304
- version = "0.5.7"
278
+ version = "0.5.8"
305
279
  source = "registry+https://github.com/rust-lang/crates.io-index"
306
- checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c"
280
+ checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8"
307
281
  dependencies = [
308
282
  "libc",
309
283
  "windows-sys",
@@ -311,9 +285,9 @@ dependencies = [
311
285
 
312
286
  [[package]]
313
287
  name = "syn"
314
- version = "2.0.87"
288
+ version = "2.0.96"
315
289
  source = "registry+https://github.com/rust-lang/crates.io-index"
316
- checksum = "25aa4ce346d03a6dcd68dd8b4010bcb74e54e62c90c573f394c46eae99aba32d"
290
+ checksum = "d5d0adab1ae378d7f53bdebc67a39f1f151407ef230f0ce2883572f5d8985c80"
317
291
  dependencies = [
318
292
  "proc-macro2",
319
293
  "quote",
@@ -326,31 +300,11 @@ version = "0.12.16"
326
300
  source = "registry+https://github.com/rust-lang/crates.io-index"
327
301
  checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1"
328
302
 
329
- [[package]]
330
- name = "tikv-jemalloc-sys"
331
- version = "0.6.0+5.3.0-1-ge13ca993e8ccb9ba9847cc330696e02839f328f7"
332
- source = "registry+https://github.com/rust-lang/crates.io-index"
333
- checksum = "cd3c60906412afa9c2b5b5a48ca6a5abe5736aec9eb48ad05037a677e52e4e2d"
334
- dependencies = [
335
- "cc",
336
- "libc",
337
- ]
338
-
339
- [[package]]
340
- name = "tikv-jemallocator"
341
- version = "0.6.0"
342
- source = "registry+https://github.com/rust-lang/crates.io-index"
343
- checksum = "4cec5ff18518d81584f477e9bfdf957f5bb0979b0bac3af4ca30b5b3ae2d2865"
344
- dependencies = [
345
- "libc",
346
- "tikv-jemalloc-sys",
347
- ]
348
-
349
303
  [[package]]
350
304
  name = "unicode-ident"
351
- version = "1.0.13"
305
+ version = "1.0.15"
352
306
  source = "registry+https://github.com/rust-lang/crates.io-index"
353
- checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe"
307
+ checksum = "11cd88e12b17c6494200a9c1b683a04fcac9573ed74cd1b62aeb2727c5592243"
354
308
 
355
309
  [[package]]
356
310
  name = "unindent"
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "rloop"
3
- version = "0.1.0-alpha2"
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,11 +36,11 @@ 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(any(target_os = "freebsd", target_os = "windows"))'.dependencies]
40
- mimalloc = { version = "0.1.43", default-features = false, features = ["local_dynamic_tls"] }
39
+ [target.'cfg(unix)'.dependencies]
40
+ libc = "0.2.159"
41
41
 
42
- [target.'cfg(not(any(target_os = "freebsd", target_os = "windows")))'.dependencies]
43
- tikv-jemallocator = { version = "0.6.0", default-features = false, features = ["disable_initial_exec_tls"] }
42
+ [build-dependencies]
43
+ pyo3-build-config = "=0.23"
44
44
 
45
45
  [profile.release]
46
46
  codegen-units = 1
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.3
1
+ Metadata-Version: 2.4
2
2
  Name: rloop
3
- Version: 0.1.0a2
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'
@@ -95,3 +95,6 @@ known-first-party = ['rloop', 'tests']
95
95
 
96
96
  [tool.pytest.ini_options]
97
97
  asyncio_mode = 'auto'
98
+
99
+ [tool.uv]
100
+ package = false
@@ -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: ...
@@ -35,17 +37,29 @@ class EventLoop:
35
37
  _watcher_child: Any
36
38
 
37
39
  def _run(self): ...
38
- def _wake(self): ...
39
- def _call_soon(self, callback, args, context) -> CBHandle: ...
40
40
  def _call_later(self, delay, callback, args, context) -> TimerHandle: ...
41
- def _reader_add(self, fd, callback, args, context) -> CBHandle: ...
42
- def _reader_rem(self, fd) -> bool: ...
43
- def _writer_add(self, fd, callback, args, context) -> CBHandle: ...
44
- def _writer_rem(self, fd) -> bool: ...
45
41
  def _sig_add(self, sig, callback, context): ...
46
42
  def _sig_rem(self, sig) -> bool: ...
47
43
  def _sig_clear(self): ...
48
- def _sig_handle(self, sig) -> bool: ...
49
- def _sig_ceval(self, noop: Any): ...
50
44
  def _ssock_set(self, fd): ...
51
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: ...
50
+ def call_soon(self, callback, *args, context=None) -> CBHandle: ...
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)