winloop 0.1.5__tar.gz → 0.1.6__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 (474) hide show
  1. winloop-0.1.6/.flake8 +8 -0
  2. winloop-0.1.6/MANIFEST.in +9 -0
  3. winloop-0.1.6/Makefile +55 -0
  4. {winloop-0.1.5/winloop.egg-info → winloop-0.1.6}/PKG-INFO +1 -1
  5. winloop-0.1.6/examples/bench/echoclient.py +100 -0
  6. winloop-0.1.6/examples/bench/echoserver.py +212 -0
  7. winloop-0.1.6/examples/bench/rlserver.py +93 -0
  8. winloop-0.1.6/mypy.ini +6 -0
  9. {winloop-0.1.5 → winloop-0.1.6}/pyproject.toml +0 -1
  10. winloop-0.1.6/tests/__main__.py +16 -0
  11. winloop-0.1.6/tests/certs/ssl_cert.pem +34 -0
  12. winloop-0.1.6/tests/certs/ssl_key.pem +40 -0
  13. winloop-0.1.6/vendor/libuv/.git +1 -0
  14. winloop-0.1.6/vendor/libuv/.gitattributes +1 -0
  15. winloop-0.1.6/vendor/libuv/.github/ISSUE_TEMPLATE.md +13 -0
  16. winloop-0.1.6/vendor/libuv/.github/workflows/CI-docs.yml +25 -0
  17. winloop-0.1.6/vendor/libuv/.github/workflows/CI-sample.yml +33 -0
  18. winloop-0.1.6/vendor/libuv/.github/workflows/CI-unix.yml +148 -0
  19. winloop-0.1.6/vendor/libuv/.github/workflows/CI-win.yml +130 -0
  20. winloop-0.1.6/vendor/libuv/.github/workflows/sanitizer.yml +128 -0
  21. winloop-0.1.6/vendor/libuv/.gitignore +80 -0
  22. winloop-0.1.6/vendor/libuv/.mailmap +67 -0
  23. winloop-0.1.6/vendor/libuv/.readthedocs.yaml +15 -0
  24. winloop-0.1.6/vendor/libuv/AUTHORS +569 -0
  25. winloop-0.1.6/vendor/libuv/CMakeLists.txt +807 -0
  26. winloop-0.1.6/vendor/libuv/CONTRIBUTING.md +171 -0
  27. winloop-0.1.6/vendor/libuv/ChangeLog +6100 -0
  28. winloop-0.1.6/vendor/libuv/LICENSE +19 -0
  29. winloop-0.1.6/vendor/libuv/LICENSE-docs +396 -0
  30. winloop-0.1.6/vendor/libuv/LICENSE-extra +36 -0
  31. winloop-0.1.6/vendor/libuv/LINKS.md +109 -0
  32. winloop-0.1.6/vendor/libuv/MAINTAINERS.md +56 -0
  33. winloop-0.1.6/vendor/libuv/Makefile.am +560 -0
  34. winloop-0.1.6/vendor/libuv/README.md +345 -0
  35. winloop-0.1.6/vendor/libuv/SECURITY.md +27 -0
  36. winloop-0.1.6/vendor/libuv/SUPPORTED_PLATFORMS.md +68 -0
  37. winloop-0.1.6/vendor/libuv/autogen.sh +75 -0
  38. winloop-0.1.6/vendor/libuv/cmake-toolchains/cross-mingw32.cmake +17 -0
  39. winloop-0.1.6/vendor/libuv/configure.ac +92 -0
  40. winloop-0.1.6/vendor/libuv/include/uv/aix.h +32 -0
  41. winloop-0.1.6/vendor/libuv/include/uv/bsd.h +34 -0
  42. winloop-0.1.6/vendor/libuv/include/uv/darwin.h +61 -0
  43. winloop-0.1.6/vendor/libuv/include/uv/errno.h +477 -0
  44. winloop-0.1.6/vendor/libuv/include/uv/linux.h +34 -0
  45. winloop-0.1.6/vendor/libuv/include/uv/os390.h +33 -0
  46. winloop-0.1.6/vendor/libuv/include/uv/posix.h +31 -0
  47. winloop-0.1.6/vendor/libuv/include/uv/sunos.h +44 -0
  48. winloop-0.1.6/vendor/libuv/include/uv/threadpool.h +37 -0
  49. winloop-0.1.6/vendor/libuv/include/uv/tree.h +768 -0
  50. winloop-0.1.6/vendor/libuv/include/uv/unix.h +509 -0
  51. winloop-0.1.6/vendor/libuv/include/uv/version.h +43 -0
  52. winloop-0.1.6/vendor/libuv/include/uv/win.h +703 -0
  53. winloop-0.1.6/vendor/libuv/include/uv.h +1968 -0
  54. winloop-0.1.6/vendor/libuv/libuv-static.pc.in +12 -0
  55. winloop-0.1.6/vendor/libuv/libuv.pc.in +13 -0
  56. winloop-0.1.6/vendor/libuv/m4/.gitignore +5 -0
  57. winloop-0.1.6/vendor/libuv/m4/as_case.m4 +21 -0
  58. winloop-0.1.6/vendor/libuv/m4/ax_pthread.m4 +485 -0
  59. winloop-0.1.6/vendor/libuv/m4/libuv-check-flags.m4 +336 -0
  60. winloop-0.1.6/vendor/libuv/m4/libuv-check-versions.m4 +7 -0
  61. winloop-0.1.6/vendor/libuv/src/fs-poll.c +287 -0
  62. winloop-0.1.6/vendor/libuv/src/heap-inl.h +245 -0
  63. winloop-0.1.6/vendor/libuv/src/idna.c +560 -0
  64. winloop-0.1.6/vendor/libuv/src/idna.h +31 -0
  65. winloop-0.1.6/vendor/libuv/src/inet.c +298 -0
  66. winloop-0.1.6/vendor/libuv/src/queue.h +90 -0
  67. winloop-0.1.6/vendor/libuv/src/random.c +123 -0
  68. winloop-0.1.6/vendor/libuv/src/strscpy.c +38 -0
  69. winloop-0.1.6/vendor/libuv/src/strscpy.h +39 -0
  70. winloop-0.1.6/vendor/libuv/src/strtok.c +52 -0
  71. winloop-0.1.6/vendor/libuv/src/strtok.h +27 -0
  72. winloop-0.1.6/vendor/libuv/src/thread-common.c +175 -0
  73. winloop-0.1.6/vendor/libuv/src/threadpool.c +418 -0
  74. winloop-0.1.6/vendor/libuv/src/timer.c +200 -0
  75. winloop-0.1.6/vendor/libuv/src/unix/aix-common.c +89 -0
  76. winloop-0.1.6/vendor/libuv/src/unix/aix.c +1320 -0
  77. winloop-0.1.6/vendor/libuv/src/unix/async.c +329 -0
  78. winloop-0.1.6/vendor/libuv/src/unix/bsd-ifaddrs.c +163 -0
  79. winloop-0.1.6/vendor/libuv/src/unix/bsd-proctitle.c +99 -0
  80. winloop-0.1.6/vendor/libuv/src/unix/core.c +1957 -0
  81. winloop-0.1.6/vendor/libuv/src/unix/cygwin.c +93 -0
  82. winloop-0.1.6/vendor/libuv/src/unix/darwin-proctitle.c +192 -0
  83. winloop-0.1.6/vendor/libuv/src/unix/darwin-stub.h +97 -0
  84. winloop-0.1.6/vendor/libuv/src/unix/darwin.c +237 -0
  85. winloop-0.1.6/vendor/libuv/src/unix/dl.c +80 -0
  86. winloop-0.1.6/vendor/libuv/src/unix/freebsd.c +285 -0
  87. winloop-0.1.6/vendor/libuv/src/unix/fs.c +2304 -0
  88. winloop-0.1.6/vendor/libuv/src/unix/fsevents.c +910 -0
  89. winloop-0.1.6/vendor/libuv/src/unix/getaddrinfo.c +252 -0
  90. winloop-0.1.6/vendor/libuv/src/unix/getnameinfo.c +121 -0
  91. winloop-0.1.6/vendor/libuv/src/unix/haiku.c +172 -0
  92. winloop-0.1.6/vendor/libuv/src/unix/hurd.c +172 -0
  93. winloop-0.1.6/vendor/libuv/src/unix/ibmi.c +542 -0
  94. winloop-0.1.6/vendor/libuv/src/unix/internal.h +486 -0
  95. winloop-0.1.6/vendor/libuv/src/unix/kqueue.c +624 -0
  96. winloop-0.1.6/vendor/libuv/src/unix/linux.c +2679 -0
  97. winloop-0.1.6/vendor/libuv/src/unix/loop-watcher.c +68 -0
  98. winloop-0.1.6/vendor/libuv/src/unix/loop.c +228 -0
  99. winloop-0.1.6/vendor/libuv/src/unix/netbsd.c +264 -0
  100. winloop-0.1.6/vendor/libuv/src/unix/no-fsevents.c +42 -0
  101. winloop-0.1.6/vendor/libuv/src/unix/no-proctitle.c +45 -0
  102. winloop-0.1.6/vendor/libuv/src/unix/openbsd.c +245 -0
  103. winloop-0.1.6/vendor/libuv/src/unix/os390-proctitle.c +136 -0
  104. winloop-0.1.6/vendor/libuv/src/unix/os390-syscalls.c +536 -0
  105. winloop-0.1.6/vendor/libuv/src/unix/os390-syscalls.h +75 -0
  106. winloop-0.1.6/vendor/libuv/src/unix/os390.c +1070 -0
  107. winloop-0.1.6/vendor/libuv/src/unix/pipe.c +542 -0
  108. winloop-0.1.6/vendor/libuv/src/unix/poll.c +160 -0
  109. winloop-0.1.6/vendor/libuv/src/unix/posix-hrtime.c +36 -0
  110. winloop-0.1.6/vendor/libuv/src/unix/posix-poll.c +385 -0
  111. winloop-0.1.6/vendor/libuv/src/unix/process.c +1109 -0
  112. winloop-0.1.6/vendor/libuv/src/unix/procfs-exepath.c +45 -0
  113. winloop-0.1.6/vendor/libuv/src/unix/proctitle.c +157 -0
  114. winloop-0.1.6/vendor/libuv/src/unix/qnx.c +142 -0
  115. winloop-0.1.6/vendor/libuv/src/unix/random-devurandom.c +93 -0
  116. winloop-0.1.6/vendor/libuv/src/unix/random-getentropy.c +57 -0
  117. winloop-0.1.6/vendor/libuv/src/unix/random-getrandom.c +86 -0
  118. winloop-0.1.6/vendor/libuv/src/unix/random-sysctl-linux.c +99 -0
  119. winloop-0.1.6/vendor/libuv/src/unix/signal.c +575 -0
  120. winloop-0.1.6/vendor/libuv/src/unix/stream.c +1566 -0
  121. winloop-0.1.6/vendor/libuv/src/unix/sunos.c +907 -0
  122. winloop-0.1.6/vendor/libuv/src/unix/sysinfo-loadavg.c +36 -0
  123. winloop-0.1.6/vendor/libuv/src/unix/sysinfo-memory.c +42 -0
  124. winloop-0.1.6/vendor/libuv/src/unix/tcp.c +659 -0
  125. winloop-0.1.6/vendor/libuv/src/unix/thread.c +877 -0
  126. winloop-0.1.6/vendor/libuv/src/unix/tty.c +472 -0
  127. winloop-0.1.6/vendor/libuv/src/unix/udp.c +1390 -0
  128. winloop-0.1.6/vendor/libuv/src/uv-common.c +1029 -0
  129. winloop-0.1.6/vendor/libuv/src/uv-common.h +433 -0
  130. winloop-0.1.6/vendor/libuv/src/uv-data-getter-setters.c +119 -0
  131. winloop-0.1.6/vendor/libuv/src/version.c +45 -0
  132. winloop-0.1.6/vendor/libuv/src/win/async.c +98 -0
  133. winloop-0.1.6/vendor/libuv/src/win/atomicops-inl.h +61 -0
  134. winloop-0.1.6/vendor/libuv/src/win/core.c +777 -0
  135. winloop-0.1.6/vendor/libuv/src/win/detect-wakeup.c +56 -0
  136. winloop-0.1.6/vendor/libuv/src/win/dl.c +135 -0
  137. winloop-0.1.6/vendor/libuv/src/win/error.c +173 -0
  138. winloop-0.1.6/vendor/libuv/src/win/fs-event.c +598 -0
  139. winloop-0.1.6/vendor/libuv/src/win/fs-fd-hash-inl.h +200 -0
  140. winloop-0.1.6/vendor/libuv/src/win/fs.c +3426 -0
  141. winloop-0.1.6/vendor/libuv/src/win/getaddrinfo.c +383 -0
  142. winloop-0.1.6/vendor/libuv/src/win/getnameinfo.c +146 -0
  143. winloop-0.1.6/vendor/libuv/src/win/handle-inl.h +180 -0
  144. winloop-0.1.6/vendor/libuv/src/win/handle.c +162 -0
  145. winloop-0.1.6/vendor/libuv/src/win/internal.h +333 -0
  146. winloop-0.1.6/vendor/libuv/src/win/loop-watcher.c +122 -0
  147. winloop-0.1.6/vendor/libuv/src/win/pipe.c +2677 -0
  148. winloop-0.1.6/vendor/libuv/src/win/poll.c +586 -0
  149. winloop-0.1.6/vendor/libuv/src/win/process-stdio.c +416 -0
  150. winloop-0.1.6/vendor/libuv/src/win/process.c +1397 -0
  151. winloop-0.1.6/vendor/libuv/src/win/req-inl.h +214 -0
  152. winloop-0.1.6/vendor/libuv/src/win/signal.c +282 -0
  153. winloop-0.1.6/vendor/libuv/src/win/snprintf.c +42 -0
  154. winloop-0.1.6/vendor/libuv/src/win/stream-inl.h +54 -0
  155. winloop-0.1.6/vendor/libuv/src/win/stream.c +252 -0
  156. winloop-0.1.6/vendor/libuv/src/win/tcp.c +1674 -0
  157. winloop-0.1.6/vendor/libuv/src/win/thread.c +470 -0
  158. winloop-0.1.6/vendor/libuv/src/win/tty.c +2422 -0
  159. winloop-0.1.6/vendor/libuv/src/win/udp.c +1143 -0
  160. winloop-0.1.6/vendor/libuv/src/win/util.c +1707 -0
  161. winloop-0.1.6/vendor/libuv/src/win/winapi.c +147 -0
  162. winloop-0.1.6/vendor/libuv/src/win/winapi.h +4769 -0
  163. winloop-0.1.6/vendor/libuv/src/win/winsock.c +575 -0
  164. winloop-0.1.6/vendor/libuv/src/win/winsock.h +201 -0
  165. winloop-0.1.6/vendor/libuv/test/benchmark-async-pummel.c +120 -0
  166. winloop-0.1.6/vendor/libuv/test/benchmark-async.c +142 -0
  167. winloop-0.1.6/vendor/libuv/test/benchmark-fs-stat.c +138 -0
  168. winloop-0.1.6/vendor/libuv/test/benchmark-getaddrinfo.c +92 -0
  169. winloop-0.1.6/vendor/libuv/test/benchmark-list.h +173 -0
  170. winloop-0.1.6/vendor/libuv/test/benchmark-loop-count.c +134 -0
  171. winloop-0.1.6/vendor/libuv/test/benchmark-million-async.c +113 -0
  172. winloop-0.1.6/vendor/libuv/test/benchmark-million-timers.c +86 -0
  173. winloop-0.1.6/vendor/libuv/test/benchmark-multi-accept.c +451 -0
  174. winloop-0.1.6/vendor/libuv/test/benchmark-ping-pongs.c +221 -0
  175. winloop-0.1.6/vendor/libuv/test/benchmark-ping-udp.c +169 -0
  176. winloop-0.1.6/vendor/libuv/test/benchmark-pound.c +351 -0
  177. winloop-0.1.6/vendor/libuv/test/benchmark-pump.c +478 -0
  178. winloop-0.1.6/vendor/libuv/test/benchmark-queue-work.c +71 -0
  179. winloop-0.1.6/vendor/libuv/test/benchmark-sizes.c +46 -0
  180. winloop-0.1.6/vendor/libuv/test/benchmark-spawn.c +164 -0
  181. winloop-0.1.6/vendor/libuv/test/benchmark-tcp-write-batch.c +144 -0
  182. winloop-0.1.6/vendor/libuv/test/benchmark-thread.c +64 -0
  183. winloop-0.1.6/vendor/libuv/test/benchmark-udp-pummel.c +243 -0
  184. winloop-0.1.6/vendor/libuv/test/blackhole-server.c +122 -0
  185. winloop-0.1.6/vendor/libuv/test/echo-server.c +431 -0
  186. winloop-0.1.6/vendor/libuv/test/fixtures/empty_file +0 -0
  187. winloop-0.1.6/vendor/libuv/test/fixtures/load_error.node +1 -0
  188. winloop-0.1.6/vendor/libuv/test/fixtures/lorem_ipsum.txt +1 -0
  189. winloop-0.1.6/vendor/libuv/test/fixtures/one_file/one_file +0 -0
  190. winloop-0.1.6/vendor/libuv/test/run-benchmarks.c +72 -0
  191. winloop-0.1.6/vendor/libuv/test/run-tests.c +269 -0
  192. winloop-0.1.6/vendor/libuv/test/runner-unix.c +456 -0
  193. winloop-0.1.6/vendor/libuv/test/runner-unix.h +36 -0
  194. winloop-0.1.6/vendor/libuv/test/runner-win.c +346 -0
  195. winloop-0.1.6/vendor/libuv/test/runner-win.h +41 -0
  196. winloop-0.1.6/vendor/libuv/test/runner.c +435 -0
  197. winloop-0.1.6/vendor/libuv/test/runner.h +172 -0
  198. winloop-0.1.6/vendor/libuv/test/task.h +384 -0
  199. winloop-0.1.6/vendor/libuv/test/test-active.c +84 -0
  200. winloop-0.1.6/vendor/libuv/test/test-async-null-cb.c +64 -0
  201. winloop-0.1.6/vendor/libuv/test/test-async.c +134 -0
  202. winloop-0.1.6/vendor/libuv/test/test-barrier.c +160 -0
  203. winloop-0.1.6/vendor/libuv/test/test-callback-stack.c +209 -0
  204. winloop-0.1.6/vendor/libuv/test/test-close-fd.c +84 -0
  205. winloop-0.1.6/vendor/libuv/test/test-close-order.c +80 -0
  206. winloop-0.1.6/vendor/libuv/test/test-condvar.c +248 -0
  207. winloop-0.1.6/vendor/libuv/test/test-connect-unspecified.c +64 -0
  208. winloop-0.1.6/vendor/libuv/test/test-connection-fail.c +161 -0
  209. winloop-0.1.6/vendor/libuv/test/test-cwd-and-chdir.c +57 -0
  210. winloop-0.1.6/vendor/libuv/test/test-default-loop-close.c +58 -0
  211. winloop-0.1.6/vendor/libuv/test/test-delayed-accept.c +189 -0
  212. winloop-0.1.6/vendor/libuv/test/test-dlerror.c +65 -0
  213. winloop-0.1.6/vendor/libuv/test/test-eintr-handling.c +96 -0
  214. winloop-0.1.6/vendor/libuv/test/test-embed.c +79 -0
  215. winloop-0.1.6/vendor/libuv/test/test-emfile.c +121 -0
  216. winloop-0.1.6/vendor/libuv/test/test-env-vars.c +178 -0
  217. winloop-0.1.6/vendor/libuv/test/test-error.c +82 -0
  218. winloop-0.1.6/vendor/libuv/test/test-fail-always.c +29 -0
  219. winloop-0.1.6/vendor/libuv/test/test-fork.c +769 -0
  220. winloop-0.1.6/vendor/libuv/test/test-fs-copyfile.c +232 -0
  221. winloop-0.1.6/vendor/libuv/test/test-fs-event.c +1237 -0
  222. winloop-0.1.6/vendor/libuv/test/test-fs-fd-hash.c +133 -0
  223. winloop-0.1.6/vendor/libuv/test/test-fs-open-flags.c +435 -0
  224. winloop-0.1.6/vendor/libuv/test/test-fs-poll.c +292 -0
  225. winloop-0.1.6/vendor/libuv/test/test-fs-readdir.c +462 -0
  226. winloop-0.1.6/vendor/libuv/test/test-fs.c +4642 -0
  227. winloop-0.1.6/vendor/libuv/test/test-get-currentexe.c +109 -0
  228. winloop-0.1.6/vendor/libuv/test/test-get-loadavg.c +35 -0
  229. winloop-0.1.6/vendor/libuv/test/test-get-memory.c +53 -0
  230. winloop-0.1.6/vendor/libuv/test/test-get-passwd.c +211 -0
  231. winloop-0.1.6/vendor/libuv/test/test-getaddrinfo.c +215 -0
  232. winloop-0.1.6/vendor/libuv/test/test-gethostname.c +58 -0
  233. winloop-0.1.6/vendor/libuv/test/test-getnameinfo.c +116 -0
  234. winloop-0.1.6/vendor/libuv/test/test-getsockname.c +362 -0
  235. winloop-0.1.6/vendor/libuv/test/test-getters-setters.c +114 -0
  236. winloop-0.1.6/vendor/libuv/test/test-gettimeofday.c +39 -0
  237. winloop-0.1.6/vendor/libuv/test/test-handle-fileno.c +125 -0
  238. winloop-0.1.6/vendor/libuv/test/test-homedir.c +72 -0
  239. winloop-0.1.6/vendor/libuv/test/test-hrtime.c +65 -0
  240. winloop-0.1.6/vendor/libuv/test/test-idle.c +125 -0
  241. winloop-0.1.6/vendor/libuv/test/test-idna.c +220 -0
  242. winloop-0.1.6/vendor/libuv/test/test-iouring-pollhup.c +111 -0
  243. winloop-0.1.6/vendor/libuv/test/test-ip-name.c +65 -0
  244. winloop-0.1.6/vendor/libuv/test/test-ip4-addr.c +55 -0
  245. winloop-0.1.6/vendor/libuv/test/test-ip6-addr.c +175 -0
  246. winloop-0.1.6/vendor/libuv/test/test-ipc-heavy-traffic-deadlock-bug.c +159 -0
  247. winloop-0.1.6/vendor/libuv/test/test-ipc-send-recv.c +435 -0
  248. winloop-0.1.6/vendor/libuv/test/test-ipc.c +857 -0
  249. winloop-0.1.6/vendor/libuv/test/test-list.h +1243 -0
  250. winloop-0.1.6/vendor/libuv/test/test-loop-alive.c +68 -0
  251. winloop-0.1.6/vendor/libuv/test/test-loop-close.c +77 -0
  252. winloop-0.1.6/vendor/libuv/test/test-loop-configure.c +38 -0
  253. winloop-0.1.6/vendor/libuv/test/test-loop-handles.c +337 -0
  254. winloop-0.1.6/vendor/libuv/test/test-loop-stop.c +83 -0
  255. winloop-0.1.6/vendor/libuv/test/test-loop-time.c +69 -0
  256. winloop-0.1.6/vendor/libuv/test/test-metrics.c +390 -0
  257. winloop-0.1.6/vendor/libuv/test/test-multiple-listen.c +109 -0
  258. winloop-0.1.6/vendor/libuv/test/test-mutexes.c +182 -0
  259. winloop-0.1.6/vendor/libuv/test/test-not-readable-nor-writable-on-read-error.c +104 -0
  260. winloop-0.1.6/vendor/libuv/test/test-not-writable-after-shutdown.c +69 -0
  261. winloop-0.1.6/vendor/libuv/test/test-osx-select.c +140 -0
  262. winloop-0.1.6/vendor/libuv/test/test-pass-always.c +28 -0
  263. winloop-0.1.6/vendor/libuv/test/test-ping-pong.c +439 -0
  264. winloop-0.1.6/vendor/libuv/test/test-pipe-bind-error.c +199 -0
  265. winloop-0.1.6/vendor/libuv/test/test-pipe-close-stdout-read-stdin.c +122 -0
  266. winloop-0.1.6/vendor/libuv/test/test-pipe-connect-error.c +97 -0
  267. winloop-0.1.6/vendor/libuv/test/test-pipe-connect-multiple.c +178 -0
  268. winloop-0.1.6/vendor/libuv/test/test-pipe-connect-prepare.c +83 -0
  269. winloop-0.1.6/vendor/libuv/test/test-pipe-getsockname.c +290 -0
  270. winloop-0.1.6/vendor/libuv/test/test-pipe-pending-instances.c +59 -0
  271. winloop-0.1.6/vendor/libuv/test/test-pipe-sendmsg.c +172 -0
  272. winloop-0.1.6/vendor/libuv/test/test-pipe-server-close.c +94 -0
  273. winloop-0.1.6/vendor/libuv/test/test-pipe-set-fchmod.c +92 -0
  274. winloop-0.1.6/vendor/libuv/test/test-pipe-set-non-blocking.c +131 -0
  275. winloop-0.1.6/vendor/libuv/test/test-platform-output.c +240 -0
  276. winloop-0.1.6/vendor/libuv/test/test-poll-close-doesnt-corrupt-stack.c +114 -0
  277. winloop-0.1.6/vendor/libuv/test/test-poll-close.c +73 -0
  278. winloop-0.1.6/vendor/libuv/test/test-poll-closesocket.c +92 -0
  279. winloop-0.1.6/vendor/libuv/test/test-poll-multiple-handles.c +104 -0
  280. winloop-0.1.6/vendor/libuv/test/test-poll-oob.c +214 -0
  281. winloop-0.1.6/vendor/libuv/test/test-poll.c +697 -0
  282. winloop-0.1.6/vendor/libuv/test/test-process-priority.c +83 -0
  283. winloop-0.1.6/vendor/libuv/test/test-process-title-threadsafe.c +108 -0
  284. winloop-0.1.6/vendor/libuv/test/test-process-title.c +135 -0
  285. winloop-0.1.6/vendor/libuv/test/test-queue-foreach-delete.c +205 -0
  286. winloop-0.1.6/vendor/libuv/test/test-random.c +94 -0
  287. winloop-0.1.6/vendor/libuv/test/test-readable-on-eof.c +110 -0
  288. winloop-0.1.6/vendor/libuv/test/test-ref.c +445 -0
  289. winloop-0.1.6/vendor/libuv/test/test-run-nowait.c +46 -0
  290. winloop-0.1.6/vendor/libuv/test/test-run-once.c +48 -0
  291. winloop-0.1.6/vendor/libuv/test/test-semaphore.c +111 -0
  292. winloop-0.1.6/vendor/libuv/test/test-shutdown-close.c +108 -0
  293. winloop-0.1.6/vendor/libuv/test/test-shutdown-eof.c +188 -0
  294. winloop-0.1.6/vendor/libuv/test/test-shutdown-simultaneous.c +135 -0
  295. winloop-0.1.6/vendor/libuv/test/test-shutdown-twice.c +85 -0
  296. winloop-0.1.6/vendor/libuv/test/test-signal-multiple-loops.c +325 -0
  297. winloop-0.1.6/vendor/libuv/test/test-signal-pending-on-close.c +116 -0
  298. winloop-0.1.6/vendor/libuv/test/test-signal.c +325 -0
  299. winloop-0.1.6/vendor/libuv/test/test-socket-buffer-size.c +77 -0
  300. winloop-0.1.6/vendor/libuv/test/test-spawn.c +2114 -0
  301. winloop-0.1.6/vendor/libuv/test/test-stdio-over-pipes.c +299 -0
  302. winloop-0.1.6/vendor/libuv/test/test-strscpy.c +53 -0
  303. winloop-0.1.6/vendor/libuv/test/test-strtok.c +90 -0
  304. winloop-0.1.6/vendor/libuv/test/test-tcp-alloc-cb-fail.c +123 -0
  305. winloop-0.1.6/vendor/libuv/test/test-tcp-bind-error.c +317 -0
  306. winloop-0.1.6/vendor/libuv/test/test-tcp-bind6-error.c +176 -0
  307. winloop-0.1.6/vendor/libuv/test/test-tcp-close-accept.c +198 -0
  308. winloop-0.1.6/vendor/libuv/test/test-tcp-close-after-read-timeout.c +183 -0
  309. winloop-0.1.6/vendor/libuv/test/test-tcp-close-reset.c +340 -0
  310. winloop-0.1.6/vendor/libuv/test/test-tcp-close-while-connecting.c +97 -0
  311. winloop-0.1.6/vendor/libuv/test/test-tcp-close.c +136 -0
  312. winloop-0.1.6/vendor/libuv/test/test-tcp-connect-error-after-write.c +98 -0
  313. winloop-0.1.6/vendor/libuv/test/test-tcp-connect-error.c +73 -0
  314. winloop-0.1.6/vendor/libuv/test/test-tcp-connect-timeout.c +196 -0
  315. winloop-0.1.6/vendor/libuv/test/test-tcp-connect6-error.c +129 -0
  316. winloop-0.1.6/vendor/libuv/test/test-tcp-create-socket-early.c +213 -0
  317. winloop-0.1.6/vendor/libuv/test/test-tcp-flags.c +59 -0
  318. winloop-0.1.6/vendor/libuv/test/test-tcp-oob.c +146 -0
  319. winloop-0.1.6/vendor/libuv/test/test-tcp-open.c +407 -0
  320. winloop-0.1.6/vendor/libuv/test/test-tcp-read-stop-start.c +136 -0
  321. winloop-0.1.6/vendor/libuv/test/test-tcp-read-stop.c +76 -0
  322. winloop-0.1.6/vendor/libuv/test/test-tcp-reuseport.c +248 -0
  323. winloop-0.1.6/vendor/libuv/test/test-tcp-rst.c +110 -0
  324. winloop-0.1.6/vendor/libuv/test/test-tcp-shutdown-after-write.c +138 -0
  325. winloop-0.1.6/vendor/libuv/test/test-tcp-try-write-error.c +109 -0
  326. winloop-0.1.6/vendor/libuv/test/test-tcp-try-write.c +135 -0
  327. winloop-0.1.6/vendor/libuv/test/test-tcp-unexpected-read.c +117 -0
  328. winloop-0.1.6/vendor/libuv/test/test-tcp-write-after-connect.c +77 -0
  329. winloop-0.1.6/vendor/libuv/test/test-tcp-write-fail.c +115 -0
  330. winloop-0.1.6/vendor/libuv/test/test-tcp-write-in-a-row.c +143 -0
  331. winloop-0.1.6/vendor/libuv/test/test-tcp-write-queue-order.c +139 -0
  332. winloop-0.1.6/vendor/libuv/test/test-tcp-write-to-half-open-connection.c +141 -0
  333. winloop-0.1.6/vendor/libuv/test/test-tcp-writealot.c +185 -0
  334. winloop-0.1.6/vendor/libuv/test/test-test-macros.c +42 -0
  335. winloop-0.1.6/vendor/libuv/test/test-thread-affinity.c +154 -0
  336. winloop-0.1.6/vendor/libuv/test/test-thread-equal.c +51 -0
  337. winloop-0.1.6/vendor/libuv/test/test-thread-priority.c +105 -0
  338. winloop-0.1.6/vendor/libuv/test/test-thread.c +296 -0
  339. winloop-0.1.6/vendor/libuv/test/test-threadpool-cancel.c +418 -0
  340. winloop-0.1.6/vendor/libuv/test/test-threadpool.c +76 -0
  341. winloop-0.1.6/vendor/libuv/test/test-timer-again.c +141 -0
  342. winloop-0.1.6/vendor/libuv/test/test-timer-from-check.c +80 -0
  343. winloop-0.1.6/vendor/libuv/test/test-timer.c +453 -0
  344. winloop-0.1.6/vendor/libuv/test/test-tmpdir.c +82 -0
  345. winloop-0.1.6/vendor/libuv/test/test-tty-duplicate-key.c +321 -0
  346. winloop-0.1.6/vendor/libuv/test/test-tty-escape-sequence-processing.c +1632 -0
  347. winloop-0.1.6/vendor/libuv/test/test-tty.c +468 -0
  348. winloop-0.1.6/vendor/libuv/test/test-udp-alloc-cb-fail.c +196 -0
  349. winloop-0.1.6/vendor/libuv/test/test-udp-bind.c +93 -0
  350. winloop-0.1.6/vendor/libuv/test/test-udp-connect.c +196 -0
  351. winloop-0.1.6/vendor/libuv/test/test-udp-connect6.c +199 -0
  352. winloop-0.1.6/vendor/libuv/test/test-udp-create-socket-early.c +139 -0
  353. winloop-0.1.6/vendor/libuv/test/test-udp-dgram-too-big.c +91 -0
  354. winloop-0.1.6/vendor/libuv/test/test-udp-ipv6.c +259 -0
  355. winloop-0.1.6/vendor/libuv/test/test-udp-mmsg.c +149 -0
  356. winloop-0.1.6/vendor/libuv/test/test-udp-multicast-interface.c +104 -0
  357. winloop-0.1.6/vendor/libuv/test/test-udp-multicast-interface6.c +108 -0
  358. winloop-0.1.6/vendor/libuv/test/test-udp-multicast-join.c +184 -0
  359. winloop-0.1.6/vendor/libuv/test/test-udp-multicast-join6.c +218 -0
  360. winloop-0.1.6/vendor/libuv/test/test-udp-multicast-ttl.c +94 -0
  361. winloop-0.1.6/vendor/libuv/test/test-udp-open.c +350 -0
  362. winloop-0.1.6/vendor/libuv/test/test-udp-options.c +160 -0
  363. winloop-0.1.6/vendor/libuv/test/test-udp-recv-in-a-row.c +121 -0
  364. winloop-0.1.6/vendor/libuv/test/test-udp-reuseport.c +287 -0
  365. winloop-0.1.6/vendor/libuv/test/test-udp-send-and-recv.c +212 -0
  366. winloop-0.1.6/vendor/libuv/test/test-udp-send-hang-loop.c +99 -0
  367. winloop-0.1.6/vendor/libuv/test/test-udp-send-immediate.c +148 -0
  368. winloop-0.1.6/vendor/libuv/test/test-udp-send-unreachable.c +201 -0
  369. winloop-0.1.6/vendor/libuv/test/test-udp-sendmmsg-error.c +75 -0
  370. winloop-0.1.6/vendor/libuv/test/test-udp-try-send.c +121 -0
  371. winloop-0.1.6/vendor/libuv/test/test-uname.c +69 -0
  372. winloop-0.1.6/vendor/libuv/test/test-walk-handles.c +77 -0
  373. winloop-0.1.6/vendor/libuv/test/test-watcher-cross-stop.c +112 -0
  374. winloop-0.1.6/vendor/libuv/tools/make_dist_html.py +122 -0
  375. winloop-0.1.6/vendor/libuv/tools/vswhere_usability_wrapper.cmd +33 -0
  376. winloop-0.1.6/vendor/libuv/tsansupp.txt +2 -0
  377. winloop-0.1.6/vendor/libuv/uv_win_longpath.manifest +8 -0
  378. {winloop-0.1.5 → winloop-0.1.6}/winloop/__init__.py +3 -1
  379. {winloop-0.1.5 → winloop-0.1.6}/winloop/_version.py +1 -1
  380. winloop-0.1.6/winloop/cbhandles.pxd +39 -0
  381. winloop-0.1.6/winloop/cbhandles.pyx +434 -0
  382. winloop-0.1.6/winloop/dns.pyx +483 -0
  383. winloop-0.1.6/winloop/errors.pyx +83 -0
  384. winloop-0.1.6/winloop/handles/async_.pxd +11 -0
  385. winloop-0.1.6/winloop/handles/async_.pyx +56 -0
  386. winloop-0.1.6/winloop/handles/basetransport.pxd +54 -0
  387. winloop-0.1.6/winloop/handles/basetransport.pyx +293 -0
  388. winloop-0.1.6/winloop/handles/check.pxd +14 -0
  389. winloop-0.1.6/winloop/handles/check.pyx +72 -0
  390. winloop-0.1.6/winloop/handles/fsevent.pxd +12 -0
  391. winloop-0.1.6/winloop/handles/fsevent.pyx +116 -0
  392. winloop-0.1.6/winloop/handles/handle.pxd +48 -0
  393. winloop-0.1.6/winloop/handles/handle.pyx +395 -0
  394. winloop-0.1.6/winloop/handles/idle.pxd +14 -0
  395. winloop-0.1.6/winloop/handles/idle.pyx +72 -0
  396. winloop-0.1.6/winloop/handles/pipe.pxd +33 -0
  397. winloop-0.1.6/winloop/handles/pipe.pyx +226 -0
  398. winloop-0.1.6/winloop/handles/poll.pxd +25 -0
  399. winloop-0.1.6/winloop/handles/poll.pyx +237 -0
  400. winloop-0.1.6/winloop/handles/process.pxd +80 -0
  401. winloop-0.1.6/winloop/handles/process.pyx +844 -0
  402. winloop-0.1.6/winloop/handles/stream.pxd +50 -0
  403. winloop-0.1.6/winloop/handles/stream.pyx +1030 -0
  404. winloop-0.1.6/winloop/handles/streamserver.pxd +26 -0
  405. winloop-0.1.6/winloop/handles/streamserver.pyx +150 -0
  406. winloop-0.1.6/winloop/handles/tcp.pxd +26 -0
  407. winloop-0.1.6/winloop/handles/tcp.pyx +228 -0
  408. winloop-0.1.6/winloop/handles/timer.pxd +18 -0
  409. winloop-0.1.6/winloop/handles/timer.pyx +89 -0
  410. winloop-0.1.6/winloop/handles/udp.pxd +22 -0
  411. winloop-0.1.6/winloop/handles/udp.pyx +409 -0
  412. winloop-0.1.6/winloop/includes/__init__.py +23 -0
  413. winloop-0.1.6/winloop/includes/compat.h +158 -0
  414. winloop-0.1.6/winloop/includes/consts.pxi +25 -0
  415. winloop-0.1.6/winloop/includes/debug.h +3 -0
  416. winloop-0.1.6/winloop/includes/debug.pxd +3 -0
  417. winloop-0.1.6/winloop/includes/flowcontrol.pxd +23 -0
  418. winloop-0.1.6/winloop/includes/fork_handler.h +51 -0
  419. winloop-0.1.6/winloop/includes/python.pxd +31 -0
  420. winloop-0.1.6/winloop/includes/stdlib.pxi +178 -0
  421. winloop-0.1.6/winloop/includes/system.pxd +82 -0
  422. winloop-0.1.6/winloop/includes/uv.pxd +516 -0
  423. winloop-0.1.6/winloop/loop.pxd +229 -0
  424. winloop-0.1.6/winloop/loop.pyx +3420 -0
  425. winloop-0.1.6/winloop/lru.pyx +79 -0
  426. winloop-0.1.6/winloop/pseudosock.pyx +209 -0
  427. winloop-0.1.6/winloop/py.typed +0 -0
  428. winloop-0.1.6/winloop/request.pxd +8 -0
  429. winloop-0.1.6/winloop/request.pyx +65 -0
  430. winloop-0.1.6/winloop/server.pxd +19 -0
  431. winloop-0.1.6/winloop/server.pyx +136 -0
  432. winloop-0.1.6/winloop/sslproto.pxd +138 -0
  433. winloop-0.1.6/winloop/sslproto.pyx +950 -0
  434. {winloop-0.1.5 → winloop-0.1.6/winloop.egg-info}/PKG-INFO +1 -1
  435. winloop-0.1.6/winloop.egg-info/SOURCES.txt +471 -0
  436. winloop-0.1.6/winloop.png +0 -0
  437. winloop-0.1.5/winloop.egg-info/SOURCES.txt +0 -41
  438. {winloop-0.1.5 → winloop-0.1.6}/LICENSE-APACHE +0 -0
  439. {winloop-0.1.5 → winloop-0.1.6}/LICENSE-MIT +0 -0
  440. {winloop-0.1.5 → winloop-0.1.6}/README.md +0 -0
  441. {winloop-0.1.5 → winloop-0.1.6}/setup.cfg +0 -0
  442. {winloop-0.1.5 → winloop-0.1.6}/setup.py +0 -0
  443. /winloop-0.1.5/winloop/py.typed → /winloop-0.1.6/tests/__init__.py +0 -0
  444. {winloop-0.1.5 → winloop-0.1.6}/tests/test_aiodns.py +0 -0
  445. {winloop-0.1.5 → winloop-0.1.6}/tests/test_aiohttp.py +0 -0
  446. {winloop-0.1.5 → winloop-0.1.6}/tests/test_aiomultiprocess.py +0 -0
  447. {winloop-0.1.5 → winloop-0.1.6}/tests/test_base.py +0 -0
  448. {winloop-0.1.5 → winloop-0.1.6}/tests/test_context.py +0 -0
  449. {winloop-0.1.5 → winloop-0.1.6}/tests/test_cython.py +0 -0
  450. {winloop-0.1.5 → winloop-0.1.6}/tests/test_dealloc.py +0 -0
  451. {winloop-0.1.5 → winloop-0.1.6}/tests/test_dns.py +0 -0
  452. {winloop-0.1.5 → winloop-0.1.6}/tests/test_executors.py +0 -0
  453. {winloop-0.1.5 → winloop-0.1.6}/tests/test_fs_event.py +0 -0
  454. {winloop-0.1.5 → winloop-0.1.6}/tests/test_libuv_api.py +0 -0
  455. {winloop-0.1.5 → winloop-0.1.6}/tests/test_pipes.py +0 -0
  456. {winloop-0.1.5 → winloop-0.1.6}/tests/test_process.py +0 -0
  457. {winloop-0.1.5 → winloop-0.1.6}/tests/test_process_spawning.py +0 -0
  458. {winloop-0.1.5 → winloop-0.1.6}/tests/test_regr1.py +0 -0
  459. {winloop-0.1.5 → winloop-0.1.6}/tests/test_runner.py +0 -0
  460. {winloop-0.1.5 → winloop-0.1.6}/tests/test_signals.py +0 -0
  461. {winloop-0.1.5 → winloop-0.1.6}/tests/test_sockets.py +0 -0
  462. {winloop-0.1.5 → winloop-0.1.6}/tests/test_sourcecode.py +0 -0
  463. {winloop-0.1.5 → winloop-0.1.6}/tests/test_tcp.py +0 -0
  464. {winloop-0.1.5 → winloop-0.1.6}/tests/test_testbase.py +0 -0
  465. {winloop-0.1.5 → winloop-0.1.6}/tests/test_udp.py +0 -0
  466. {winloop-0.1.5 → winloop-0.1.6}/tests/test_unix.py +0 -0
  467. {winloop-0.1.5 → winloop-0.1.6}/winloop/_noop.py +0 -0
  468. {winloop-0.1.5 → winloop-0.1.6}/winloop/_testbase.py +0 -0
  469. {winloop-0.1.5 → winloop-0.1.6}/winloop/loop.c +0 -0
  470. {winloop-0.1.5 → winloop-0.1.6}/winloop/loop.pyi +0 -0
  471. {winloop-0.1.5 → winloop-0.1.6}/winloop.egg-info/dependency_links.txt +0 -0
  472. {winloop-0.1.5 → winloop-0.1.6}/winloop.egg-info/not-zip-safe +0 -0
  473. {winloop-0.1.5 → winloop-0.1.6}/winloop.egg-info/requires.txt +0 -0
  474. {winloop-0.1.5 → winloop-0.1.6}/winloop.egg-info/top_level.txt +0 -0
winloop-0.1.6/.flake8 ADDED
@@ -0,0 +1,8 @@
1
+ [flake8]
2
+ filename = *.py,*.pyi
3
+ ignore = E402,E731,D100,D101,D102,D103,D104,D105,W503,W504,E252
4
+ exclude = .git,__pycache__,build,dist,.eggs,postgres,vendor
5
+
6
+ per-file-ignores =
7
+ *.pyx,*.pxd,*.pxi: E211, E222, E225, E226, E227, E999
8
+ *.pyi: F401, F403, F405, F811, E127, E128, E203, E266, E301, E302, E305, E501, E701, E704, E741, B303, W503, W504
@@ -0,0 +1,9 @@
1
+ recursive-include docs *.py *.rst
2
+ recursive-include examples *.py
3
+ recursive-include tests *.py *.pem
4
+ recursive-include winloop *.pyx *.pxd *.pxi *.py *.c *.h *.pyi py.typed
5
+ recursive-include vendor/libuv *
6
+ recursive-exclude vendor/libuv/.git *
7
+ recursive-exclude vendor/libuv/docs *
8
+ recursive-exclude vendor/libuv/img *
9
+ include LICENSE-MIT LICENSE-APACHE README.md Makefile winloop.png .flake8 mypy.ini
winloop-0.1.6/Makefile ADDED
@@ -0,0 +1,55 @@
1
+ .PHONY: _default clean clean-libuv distclean compile debug docs test testinstalled release setup-build ci-clean
2
+
3
+
4
+ PYTHON ?= python
5
+ ROOT = $(dir $(realpath $(firstword $(MAKEFILE_LIST))))
6
+
7
+
8
+ _default: compile
9
+
10
+
11
+ clean:
12
+ rm -fr dist/ doc/_build/ *.egg-info winloop/loop.*.pyd
13
+ rm -fr winloop/*.c winloop/*.html winloop/*.so
14
+ rm -fr winloop/handles/*.html winloop/includes/*.html
15
+ find . -name '__pycache__' | xargs rm -rf
16
+
17
+
18
+ ci-clean: clean
19
+ rm -fr build/lib.* build/temp.* build/libuv
20
+
21
+
22
+ clean-libuv:
23
+ (cd vendor/libuv; git clean -dfX)
24
+
25
+
26
+ distclean: clean clean-libuv
27
+ rm -fr build/
28
+
29
+
30
+ setup-build:
31
+ $(PYTHON) setup.py build_ext --inplace --cython-always
32
+
33
+
34
+ compile: clean setup-build
35
+
36
+
37
+ debug: clean
38
+ $(PYTHON) setup.py build_ext --inplace --debug \
39
+ --cython-always \
40
+ --cython-annotate \
41
+ --cython-directives="linetrace=True" \
42
+ --define UVLOOP_DEBUG,CYTHON_TRACE,CYTHON_TRACE_NOGIL
43
+
44
+
45
+ docs:
46
+ $(PYTHON) setup.py build_ext --inplace build_sphinx
47
+
48
+
49
+ test:
50
+ PYTHONASYNCIODEBUG=1 $(PYTHON) -m unittest discover -v tests
51
+ $(PYTHON) -m unittest discover -v tests
52
+
53
+
54
+ testinstalled:
55
+ cd "$${HOME}" && $(PYTHON) -m unittest discover -v $(ROOT)/tests
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: winloop
3
- Version: 0.1.5
3
+ Version: 0.1.6
4
4
  Summary: Windows version of uvloop
5
5
  Author: Vizonex
6
6
  License: MIT License
@@ -0,0 +1,100 @@
1
+ # Copied with minimal modifications from curio
2
+ # https://github.com/dabeaz/curio
3
+
4
+
5
+ import argparse
6
+ import concurrent.futures
7
+ import socket
8
+ import ssl
9
+ import time
10
+
11
+
12
+ if __name__ == '__main__':
13
+ parser = argparse.ArgumentParser()
14
+ parser.add_argument('--msize', default=1000, type=int,
15
+ help='message size in bytes')
16
+ parser.add_argument('--mpr', default=1, type=int,
17
+ help='messages per request')
18
+ parser.add_argument('--num', default=200000, type=int,
19
+ help='number of messages')
20
+ parser.add_argument('--times', default=1, type=int,
21
+ help='number of times to run the test')
22
+ parser.add_argument('--workers', default=3, type=int,
23
+ help='number of workers')
24
+ parser.add_argument('--addr', default='127.0.0.1:25000', type=str,
25
+ help='address:port of echoserver')
26
+ parser.add_argument('--ssl', default=False, action='store_true')
27
+ args = parser.parse_args()
28
+
29
+ client_context = None
30
+ if args.ssl:
31
+ print('with SSL')
32
+ if hasattr(ssl, 'PROTOCOL_TLS'):
33
+ client_context = ssl.SSLContext(ssl.PROTOCOL_TLS)
34
+ else:
35
+ client_context = ssl.SSLContext(ssl.PROTOCOL_SSLv23)
36
+ if hasattr(client_context, 'check_hostname'):
37
+ client_context.check_hostname = False
38
+ client_context.verify_mode = ssl.CERT_NONE
39
+
40
+ unix = False
41
+ if args.addr.startswith('file:'):
42
+ unix = True
43
+ addr = args.addr[5:]
44
+ else:
45
+ addr = args.addr.split(':')
46
+ addr[1] = int(addr[1])
47
+ addr = tuple(addr)
48
+ print('will connect to: {}'.format(addr))
49
+
50
+ MSGSIZE = args.msize
51
+ REQSIZE = MSGSIZE * args.mpr
52
+
53
+ msg = b'x' * (MSGSIZE - 1) + b'\n'
54
+ if args.mpr:
55
+ msg *= args.mpr
56
+
57
+ def run_test(n):
58
+ print('Sending', NMESSAGES, 'messages')
59
+ if args.mpr:
60
+ n //= args.mpr
61
+
62
+ if unix:
63
+ sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
64
+ else:
65
+ sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
66
+
67
+ try:
68
+ sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)
69
+ except (OSError, NameError):
70
+ pass
71
+
72
+ if client_context:
73
+ sock = client_context.wrap_socket(sock)
74
+
75
+ sock.connect(addr)
76
+
77
+ while n > 0:
78
+ sock.sendall(msg)
79
+ nrecv = 0
80
+ while nrecv < REQSIZE:
81
+ resp = sock.recv(REQSIZE)
82
+ if not resp:
83
+ raise SystemExit()
84
+ nrecv += len(resp)
85
+ n -= 1
86
+
87
+ TIMES = args.times
88
+ N = args.workers
89
+ NMESSAGES = args.num
90
+ start = time.time()
91
+ for _ in range(TIMES):
92
+ # Winloop comment: switch from ProcessPoolExecutor to ThreadPoolExecutor
93
+ # to avoid issues with __mp_main__ on Windows.
94
+ with concurrent.futures.ThreadPoolExecutor(max_workers=N) as e:
95
+ for _ in range(N):
96
+ e.submit(run_test, NMESSAGES)
97
+ end = time.time()
98
+ duration = end - start
99
+ print(NMESSAGES * N * TIMES, 'in', duration)
100
+ print(NMESSAGES * N * TIMES / duration, 'requests/sec')
@@ -0,0 +1,212 @@
1
+ import argparse
2
+ import asyncio
3
+ import gc
4
+ import os.path
5
+ import pathlib
6
+ import socket
7
+ import ssl
8
+
9
+
10
+ PRINT = 0
11
+
12
+
13
+ async def echo_server(loop, address, unix):
14
+ if unix:
15
+ sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
16
+ else:
17
+ sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
18
+ sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
19
+ sock.bind(address)
20
+ sock.listen(5)
21
+ sock.setblocking(False)
22
+ if PRINT:
23
+ print('Server listening at', address)
24
+ with sock:
25
+ while True:
26
+ client, addr = await loop.sock_accept(sock)
27
+ if PRINT:
28
+ print('Connection from', addr)
29
+ loop.create_task(echo_client(loop, client))
30
+
31
+
32
+ async def echo_client(loop, client):
33
+ try:
34
+ client.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)
35
+ except (OSError, NameError):
36
+ pass
37
+
38
+ with client:
39
+ while True:
40
+ data = await loop.sock_recv(client, 1000000)
41
+ if not data:
42
+ break
43
+ await loop.sock_sendall(client, data)
44
+ if PRINT:
45
+ print('Connection closed')
46
+
47
+
48
+ async def echo_client_streams(reader, writer):
49
+ sock = writer.get_extra_info('socket')
50
+ try:
51
+ sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)
52
+ except (OSError, NameError):
53
+ pass
54
+ if PRINT:
55
+ print('Connection from', sock.getpeername())
56
+ while True:
57
+ data = await reader.read(1000000)
58
+ if not data:
59
+ break
60
+ writer.write(data)
61
+ if PRINT:
62
+ print('Connection closed')
63
+ writer.close()
64
+
65
+
66
+ class EchoProtocol(asyncio.Protocol):
67
+ def connection_made(self, transport):
68
+ self.transport = transport
69
+
70
+ def connection_lost(self, exc):
71
+ self.transport = None
72
+
73
+ def data_received(self, data):
74
+ self.transport.write(data)
75
+
76
+
77
+ class EchoBufferedProtocol(asyncio.BufferedProtocol):
78
+ def connection_made(self, transport):
79
+ self.transport = transport
80
+ # Here the buffer is intended to be copied, so that the outgoing buffer
81
+ # won't be wrongly updated by next read
82
+ self.buffer = bytearray(256 * 1024)
83
+
84
+ def connection_lost(self, exc):
85
+ self.transport = None
86
+
87
+ def get_buffer(self, sizehint):
88
+ return self.buffer
89
+
90
+ def buffer_updated(self, nbytes):
91
+ self.transport.write(self.buffer[:nbytes])
92
+
93
+
94
+ async def print_debug(loop):
95
+ while True:
96
+ print(chr(27) + "[2J") # clear screen
97
+ loop.print_debug_info()
98
+ await asyncio.sleep(0.5)
99
+
100
+
101
+ if __name__ == '__main__':
102
+ parser = argparse.ArgumentParser()
103
+ parser.add_argument('--uvloop', default=False, action='store_true')
104
+ parser.add_argument('--streams', default=False, action='store_true')
105
+ parser.add_argument('--proto', default=False, action='store_true')
106
+ parser.add_argument('--addr', default='127.0.0.1:25000', type=str)
107
+ parser.add_argument('--print', default=False, action='store_true')
108
+ parser.add_argument('--ssl', default=False, action='store_true')
109
+ parser.add_argument('--buffered', default=False, action='store_true')
110
+ args = parser.parse_args()
111
+
112
+ if args.uvloop:
113
+ import winloop as uvloop
114
+ loop = uvloop.new_event_loop()
115
+ print('using UVLoop')
116
+ else:
117
+ loop = asyncio.new_event_loop()
118
+ print('using asyncio loop')
119
+
120
+ asyncio.set_event_loop(loop)
121
+ loop.set_debug(False)
122
+
123
+ if args.print:
124
+ PRINT = 1
125
+
126
+ if hasattr(loop, 'print_debug_info'):
127
+ loop.create_task(print_debug(loop))
128
+ PRINT = 0
129
+
130
+ unix = False
131
+ if args.addr.startswith('file:'):
132
+ unix = True
133
+ addr = args.addr[5:]
134
+ if os.path.exists(addr):
135
+ os.remove(addr)
136
+ else:
137
+ addr = args.addr.split(':')
138
+ addr[1] = int(addr[1])
139
+ addr = tuple(addr)
140
+
141
+ print('serving on: {}'.format(addr))
142
+
143
+ server_context = None
144
+ if args.ssl:
145
+ print('with SSL')
146
+ if hasattr(ssl, 'PROTOCOL_TLS'):
147
+ server_context = ssl.SSLContext(ssl.PROTOCOL_TLS)
148
+ else:
149
+ server_context = ssl.SSLContext(ssl.PROTOCOL_SSLv23)
150
+ server_context.load_cert_chain(
151
+ (pathlib.Path(__file__).parent.parent.parent /
152
+ 'tests' / 'certs' / 'ssl_cert.pem'),
153
+ (pathlib.Path(__file__).parent.parent.parent /
154
+ 'tests' / 'certs' / 'ssl_key.pem'))
155
+ if hasattr(server_context, 'check_hostname'):
156
+ server_context.check_hostname = False
157
+ server_context.verify_mode = ssl.CERT_NONE
158
+
159
+ if args.streams:
160
+ if args.proto:
161
+ print('cannot use --stream and --proto simultaneously')
162
+ exit(1)
163
+
164
+ if args.buffered:
165
+ print('cannot use --stream and --buffered simultaneously')
166
+ exit(1)
167
+
168
+ print('using asyncio/streams')
169
+ if unix:
170
+ coro = asyncio.start_unix_server(echo_client_streams,
171
+ addr,
172
+ ssl=server_context)
173
+ else:
174
+ coro = asyncio.start_server(echo_client_streams,
175
+ *addr,
176
+ ssl=server_context)
177
+ srv = loop.run_until_complete(coro)
178
+ elif args.proto:
179
+ if args.streams:
180
+ print('cannot use --stream and --proto simultaneously')
181
+ exit(1)
182
+
183
+ if args.buffered:
184
+ print('using buffered protocol')
185
+ protocol = EchoBufferedProtocol
186
+ else:
187
+ print('using simple protocol')
188
+ protocol = EchoProtocol
189
+
190
+ if unix:
191
+ coro = loop.create_unix_server(protocol, addr,
192
+ ssl=server_context)
193
+ else:
194
+ coro = loop.create_server(protocol, *addr,
195
+ ssl=server_context)
196
+ srv = loop.run_until_complete(coro)
197
+ else:
198
+ if args.ssl:
199
+ print('cannot use SSL for loop.sock_* methods')
200
+ exit(1)
201
+
202
+ print('using sock_recv/sock_sendall')
203
+ loop.create_task(echo_server(loop, addr, unix))
204
+ try:
205
+ loop.run_forever()
206
+ finally:
207
+ if hasattr(loop, 'print_debug_info'):
208
+ gc.collect()
209
+ print(chr(27) + "[2J")
210
+ loop.print_debug_info()
211
+
212
+ loop.close()
@@ -0,0 +1,93 @@
1
+ import argparse
2
+ import asyncio
3
+ import gc
4
+ import os.path
5
+ import socket as stdsock
6
+
7
+
8
+ PRINT = 0
9
+
10
+
11
+ async def echo_client_streams(reader, writer):
12
+ sock = writer.get_extra_info('socket')
13
+ try:
14
+ sock.setsockopt(
15
+ stdsock.IPPROTO_TCP, stdsock.TCP_NODELAY, 1)
16
+ except (OSError, NameError):
17
+ pass
18
+ if PRINT:
19
+ print('Connection from', sock.getpeername())
20
+ while True:
21
+ data = await reader.readline()
22
+ if not data:
23
+ break
24
+ writer.write(data)
25
+ if PRINT:
26
+ print('Connection closed')
27
+ writer.close()
28
+
29
+
30
+ async def print_debug(loop):
31
+ while True:
32
+ print(chr(27) + "[2J") # clear screen
33
+ loop.print_debug_info()
34
+ await asyncio.sleep(0.5)
35
+
36
+
37
+ if __name__ == '__main__':
38
+ parser = argparse.ArgumentParser()
39
+ parser.add_argument('--uvloop', default=False, action='store_true')
40
+ parser.add_argument('--addr', default='127.0.0.1:25000', type=str)
41
+ parser.add_argument('--print', default=False, action='store_true')
42
+ args = parser.parse_args()
43
+
44
+ if args.uvloop:
45
+ import winloop as uvloop
46
+ loop = uvloop.new_event_loop()
47
+ print('using UVLoop')
48
+ else:
49
+ loop = asyncio.new_event_loop()
50
+ print('using asyncio loop')
51
+
52
+ asyncio.set_event_loop(loop)
53
+ loop.set_debug(False)
54
+
55
+ if args.print:
56
+ PRINT = 1
57
+
58
+ if hasattr(loop, 'print_debug_info'):
59
+ loop.create_task(print_debug(loop))
60
+ PRINT = 0
61
+
62
+ unix = False
63
+ if args.addr.startswith('file:'):
64
+ unix = True
65
+ addr = args.addr[5:]
66
+ if os.path.exists(addr):
67
+ os.remove(addr)
68
+ else:
69
+ addr = args.addr.split(':')
70
+ addr[1] = int(addr[1])
71
+ addr = tuple(addr)
72
+
73
+ print('readline performance test')
74
+ print('serving on: {}'.format(addr))
75
+
76
+ print('using asyncio/streams')
77
+ if unix:
78
+ coro = asyncio.start_unix_server(echo_client_streams,
79
+ addr, limit=256000)
80
+ else:
81
+ coro = asyncio.start_server(echo_client_streams,
82
+ *addr, limit=256000)
83
+ srv = loop.run_until_complete(coro)
84
+
85
+ try:
86
+ loop.run_forever()
87
+ finally:
88
+ if hasattr(loop, 'print_debug_info'):
89
+ gc.collect()
90
+ print(chr(27) + "[2J")
91
+ loop.print_debug_info()
92
+
93
+ loop.close()
winloop-0.1.6/mypy.ini ADDED
@@ -0,0 +1,6 @@
1
+ [mypy]
2
+ incremental = True
3
+ strict = True
4
+
5
+ [mypy-winloop._testbase]
6
+ ignore_errors = True
@@ -69,7 +69,6 @@ packages = ["winloop"]
69
69
 
70
70
  [tool.cibuildwheel]
71
71
  build-frontend = "build"
72
- # Winloop comment: skip tests for now ("ImportError: cannot import name 'includes' from ... " in GitHub action)
73
72
  #test-extras = "test"
74
73
  #test-command = "python -m unittest discover -v {project}/tests"
75
74
 
@@ -0,0 +1,16 @@
1
+ import os.path
2
+ import sys
3
+ import unittest
4
+ import unittest.runner
5
+
6
+
7
+ def suite():
8
+ test_loader = unittest.TestLoader()
9
+ test_suite = test_loader.discover(os.path.dirname(__file__))
10
+ return test_suite
11
+
12
+
13
+ if __name__ == '__main__':
14
+ runner = unittest.runner.TextTestRunner()
15
+ result = runner.run(suite())
16
+ sys.exit(not result.wasSuccessful())
@@ -0,0 +1,34 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIF8TCCBFmgAwIBAgIJAMstgJlaaVJcMA0GCSqGSIb3DQEBCwUAME0xCzAJBgNV
3
+ BAYTAlhZMSYwJAYDVQQKDB1QeXRob24gU29mdHdhcmUgRm91bmRhdGlvbiBDQTEW
4
+ MBQGA1UEAwwNb3VyLWNhLXNlcnZlcjAeFw0xODA4MjkxNDIzMTZaFw0yODA3MDcx
5
+ NDIzMTZaMF8xCzAJBgNVBAYTAlhZMRcwFQYDVQQHDA5DYXN0bGUgQW50aHJheDEj
6
+ MCEGA1UECgwaUHl0aG9uIFNvZnR3YXJlIEZvdW5kYXRpb24xEjAQBgNVBAMMCWxv
7
+ Y2FsaG9zdDCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBAJ8oLzdB739k
8
+ YxZiFukBFGIpyjqYkj0I015p/sDz1MT7DljcZLBLy7OqnkLpB5tnM8256DwdihPA
9
+ 3zlnfEzTfr9DD0qFBW2H5cMCoz7X17koeRhzGDd3dkjUeBjXvR5qRosG8wM3lQug
10
+ U7AizY+3Azaj1yN3mZ9K5a20jr58Kqinz+Xxx6sb2JfYYff2neJbBahNm5id0AD2
11
+ pi/TthZqO5DURJYo+MdgZOcy+7jEjOJsLWZd3Yzq78iM07qDjbpIoVpENZCTHTWA
12
+ hX8LIqz0OBmh4weQpm4+plU7E4r4D82uauocWw8iyuznCTtABWO7n9fWySmf9QZC
13
+ WYxHAFpBQs6zUVqAD7nhFdTqpQ9bRiaEnjE4HiAccPW+MAoSxFnv/rNzEzI6b4zU
14
+ NspFMfg1aNVamdjxdpUZ1GG1Okf0yPJykqEX4PZl3La1Be2q7YZ1wydR523Xd+f3
15
+ EO4/g+imETSKn8gyCf6Rvib175L4r2WV1CXQH7gFwZYCod6WHYq5TQIDAQABo4IB
16
+ wDCCAbwwFAYDVR0RBA0wC4IJbG9jYWxob3N0MA4GA1UdDwEB/wQEAwIFoDAdBgNV
17
+ HSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDAYDVR0TAQH/BAIwADAdBgNVHQ4E
18
+ FgQUj+od4zNcABazi29rb9NMy7XLfFUwfQYDVR0jBHYwdIAU3b/K2ubRNLo3dSHK
19
+ b5oIKPI1tkihUaRPME0xCzAJBgNVBAYTAlhZMSYwJAYDVQQKDB1QeXRob24gU29m
20
+ dHdhcmUgRm91bmRhdGlvbiBDQTEWMBQGA1UEAwwNb3VyLWNhLXNlcnZlcoIJAMst
21
+ gJlaaVJbMIGDBggrBgEFBQcBAQR3MHUwPAYIKwYBBQUHMAKGMGh0dHA6Ly90ZXN0
22
+ Y2EucHl0aG9udGVzdC5uZXQvdGVzdGNhL3B5Y2FjZXJ0LmNlcjA1BggrBgEFBQcw
23
+ AYYpaHR0cDovL3Rlc3RjYS5weXRob250ZXN0Lm5ldC90ZXN0Y2Evb2NzcC8wQwYD
24
+ VR0fBDwwOjA4oDagNIYyaHR0cDovL3Rlc3RjYS5weXRob250ZXN0Lm5ldC90ZXN0
25
+ Y2EvcmV2b2NhdGlvbi5jcmwwDQYJKoZIhvcNAQELBQADggGBACf1jFkQ9MbnKAC/
26
+ uo17EwPxHKZfswZVpCK527LVRr33DN1DbrR5ZWchDCpV7kCOhZ+fR7sKKk22ZHSY
27
+ oH+u3PEu20J3GOB1iyY1aMNB7WvId3JvappdVWkC/VpUyFfLsGUDFuIPADmZZqCb
28
+ iJMX4loteTVfl1d4xK/1mV6Gq9MRrRqiDfpSELn+v53OM9mGspwW+NZ1CIrbCuW0
29
+ KxZ/tPkqn8PSd9fNZR70bB7rWbnwrl+kH8xKxLl6qdlrMmg74WWwhLeQxK7+9DdP
30
+ IaDenzqx5cwWBGY/C0HcQj0gPuy3lSs1V/q+f7Y6uspPWP51PgiJLIywXS75iRAr
31
+ +UFGTzwAtyfTZSQoFyMmMULqfk6T5HtoVMqfRvPvK+mFDLWEstU1NIB1K/CRI7gI
32
+ AY65ClTU+zRS/tlF8IA7tsFvgtEf8jsI9kamlidhS1gyeg4dWcVErV4aeTPB1AUv
33
+ StPYQkKNM+NjytWHl5tNuBoDNLsc0gI/WSPiI4CIY8LwomOoiw==
34
+ -----END CERTIFICATE-----
@@ -0,0 +1,40 @@
1
+ -----BEGIN PRIVATE KEY-----
2
+ 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
39
+ aH1M/zC4aVaS0DYB/Gxq7v8=
40
+ -----END PRIVATE KEY-----
@@ -0,0 +1 @@
1
+ gitdir: ../../.git/modules/vendor/libuv
@@ -0,0 +1 @@
1
+ test/fixtures/lorem_ipsum.txt text eol=lf
@@ -0,0 +1,13 @@
1
+ <!--
2
+ If you want to report a bug, you are in the right place!
3
+
4
+ If you need help or have a question, go here:
5
+ https://github.com/libuv/libuv/discussions
6
+
7
+ If you are reporting a libuv test failure, please ensure that you are not
8
+ running the test as root.
9
+
10
+ Please include code that demonstrates the bug and keep it short and simple.
11
+ -->
12
+ * **Version**: <!-- libuv version -->
13
+ * **Platform**: <!-- `uname -a` (UNIX), or Windows version and machine type -->
@@ -0,0 +1,25 @@
1
+ name: CI-docs
2
+
3
+ on:
4
+ pull_request:
5
+ paths:
6
+ - 'docs/**'
7
+ - '!docs/code/**'
8
+ - '.github/workflows/CI-docs.yml'
9
+
10
+ jobs:
11
+ docs-src:
12
+ runs-on: ubuntu-latest
13
+ steps:
14
+ - uses: actions/checkout@v3
15
+ - uses: actions/setup-python@v4
16
+ with:
17
+ python-version: '3.9'
18
+ cache: 'pip' # caching pip dependencies
19
+ - run: pip install -r docs/requirements.txt
20
+ - name: html
21
+ run: |
22
+ make -C docs html
23
+ - name: linkcheck
24
+ run: |
25
+ make -C docs linkcheck
@@ -0,0 +1,33 @@
1
+ name: ci-sample
2
+
3
+ on:
4
+ pull_request:
5
+ paths:
6
+ - '**'
7
+ - '!docs/**'
8
+ - '!.**'
9
+ - 'docs/code/**'
10
+ - '.github/workflows/CI-sample.yml'
11
+ push:
12
+ branches:
13
+ - v[0-9].*
14
+ - master
15
+
16
+ jobs:
17
+ build:
18
+ strategy:
19
+ fail-fast: false
20
+ matrix:
21
+ os: [macos-latest, ubuntu-latest, windows-latest]
22
+ runs-on: ${{matrix.os}}
23
+ steps:
24
+ - uses: actions/checkout@v2
25
+ - name: setup
26
+ run: cmake -E make_directory ${{runner.workspace}}/libuv/docs/code/build
27
+ - name: configure
28
+ # you may like use Ninja on unix-like OS, but for windows, the only easy way is to use Visual Studio if you want Ninja
29
+ run: cmake ..
30
+ working-directory: ${{runner.workspace}}/libuv/docs/code/build
31
+ - name: build
32
+ run: cmake --build .
33
+ working-directory: ${{runner.workspace}}/libuv/docs/code/build