winloop 0.1.6__tar.gz → 0.1.7__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 (476) hide show
  1. {winloop-0.1.6 → winloop-0.1.7}/Makefile +1 -1
  2. {winloop-0.1.6 → winloop-0.1.7}/PKG-INFO +9 -7
  3. {winloop-0.1.6 → winloop-0.1.7}/README.md +3 -3
  4. {winloop-0.1.6 → winloop-0.1.7}/pyproject.toml +7 -4
  5. {winloop-0.1.6 → winloop-0.1.7}/setup.py +12 -3
  6. {winloop-0.1.6 → winloop-0.1.7}/tests/test_aiodns.py +8 -3
  7. {winloop-0.1.6 → winloop-0.1.7}/tests/test_aiohttp.py +5 -1
  8. {winloop-0.1.6 → winloop-0.1.7}/tests/test_aiomultiprocess.py +7 -7
  9. {winloop-0.1.6 → winloop-0.1.7}/tests/test_base.py +8 -1
  10. {winloop-0.1.6 → winloop-0.1.7}/tests/test_dns.py +14 -2
  11. winloop-0.1.7/tests/test_playwright.py +38 -0
  12. {winloop-0.1.6 → winloop-0.1.7}/tests/test_process.py +2 -0
  13. {winloop-0.1.6 → winloop-0.1.7}/tests/test_tcp.py +19 -13
  14. {winloop-0.1.6 → winloop-0.1.7}/tests/test_unix.py +24 -16
  15. winloop-0.1.7/vendor/libuv/.github/dependabot.yml +7 -0
  16. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/.github/workflows/CI-unix.yml +9 -4
  17. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/.github/workflows/sanitizer.yml +2 -2
  18. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/CMakeLists.txt +1 -0
  19. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/README.md +12 -0
  20. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/include/uv.h +11 -11
  21. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/random.c +1 -1
  22. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/threadpool.c +1 -1
  23. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/unix/core.c +7 -4
  24. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/unix/fs.c +7 -4
  25. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/unix/getaddrinfo.c +1 -1
  26. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/unix/getnameinfo.c +1 -1
  27. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/unix/internal.h +12 -0
  28. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/unix/linux.c +2 -2
  29. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/unix/process.c +2 -1
  30. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/unix/stream.c +4 -4
  31. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/unix/tcp.c +18 -4
  32. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/unix/udp.c +2 -2
  33. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/uv-common.h +3 -3
  34. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/win/error.c +1 -0
  35. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/win/fs.c +2 -2
  36. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/win/getaddrinfo.c +2 -2
  37. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/win/getnameinfo.c +2 -2
  38. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/win/pipe.c +13 -17
  39. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/win/req-inl.h +4 -4
  40. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/win/stream.c +1 -1
  41. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/win/tcp.c +9 -9
  42. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/win/tty.c +3 -3
  43. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/win/udp.c +3 -3
  44. {winloop-0.1.6 → winloop-0.1.7}/winloop/_testbase.py +4 -2
  45. {winloop-0.1.6 → winloop-0.1.7}/winloop/_version.py +1 -1
  46. {winloop-0.1.6 → winloop-0.1.7}/winloop/dns.pyx +25 -17
  47. {winloop-0.1.6 → winloop-0.1.7}/winloop/handles/handle.pyx +1 -1
  48. {winloop-0.1.6 → winloop-0.1.7}/winloop/handles/pipe.pyx +22 -1
  49. {winloop-0.1.6 → winloop-0.1.7}/winloop/handles/poll.pxd +1 -1
  50. {winloop-0.1.6 → winloop-0.1.7}/winloop/handles/poll.pyx +1 -1
  51. {winloop-0.1.6 → winloop-0.1.7}/winloop/handles/stream.pyx +11 -3
  52. {winloop-0.1.6 → winloop-0.1.7}/winloop/handles/udp.pyx +5 -6
  53. {winloop-0.1.6 → winloop-0.1.7}/winloop/includes/compat.h +20 -0
  54. winloop-0.1.7/winloop/includes/consts.pxi +32 -0
  55. {winloop-0.1.6 → winloop-0.1.7}/winloop/includes/fork_handler.h +6 -1
  56. {winloop-0.1.6 → winloop-0.1.7}/winloop/includes/python.pxd +2 -2
  57. {winloop-0.1.6 → winloop-0.1.7}/winloop/includes/stdlib.pxi +1 -0
  58. {winloop-0.1.6 → winloop-0.1.7}/winloop/includes/uv.pxd +3 -2
  59. {winloop-0.1.6 → winloop-0.1.7}/winloop/loop.c +17892 -16291
  60. {winloop-0.1.6 → winloop-0.1.7}/winloop/loop.pxd +1 -0
  61. {winloop-0.1.6 → winloop-0.1.7}/winloop/loop.pyx +31 -10
  62. {winloop-0.1.6 → winloop-0.1.7}/winloop.egg-info/PKG-INFO +9 -7
  63. {winloop-0.1.6 → winloop-0.1.7}/winloop.egg-info/SOURCES.txt +2 -0
  64. {winloop-0.1.6 → winloop-0.1.7}/winloop.egg-info/requires.txt +5 -7
  65. winloop-0.1.6/winloop/includes/consts.pxi +0 -25
  66. {winloop-0.1.6 → winloop-0.1.7}/.flake8 +0 -0
  67. {winloop-0.1.6 → winloop-0.1.7}/LICENSE-APACHE +0 -0
  68. {winloop-0.1.6 → winloop-0.1.7}/LICENSE-MIT +0 -0
  69. {winloop-0.1.6 → winloop-0.1.7}/MANIFEST.in +0 -0
  70. {winloop-0.1.6 → winloop-0.1.7}/examples/bench/echoclient.py +0 -0
  71. {winloop-0.1.6 → winloop-0.1.7}/examples/bench/echoserver.py +0 -0
  72. {winloop-0.1.6 → winloop-0.1.7}/examples/bench/rlserver.py +0 -0
  73. {winloop-0.1.6 → winloop-0.1.7}/mypy.ini +0 -0
  74. {winloop-0.1.6 → winloop-0.1.7}/setup.cfg +0 -0
  75. {winloop-0.1.6 → winloop-0.1.7}/tests/__init__.py +0 -0
  76. {winloop-0.1.6 → winloop-0.1.7}/tests/__main__.py +0 -0
  77. {winloop-0.1.6 → winloop-0.1.7}/tests/certs/ssl_cert.pem +0 -0
  78. {winloop-0.1.6 → winloop-0.1.7}/tests/certs/ssl_key.pem +0 -0
  79. {winloop-0.1.6 → winloop-0.1.7}/tests/test_context.py +0 -0
  80. {winloop-0.1.6 → winloop-0.1.7}/tests/test_cython.py +0 -0
  81. {winloop-0.1.6 → winloop-0.1.7}/tests/test_dealloc.py +0 -0
  82. {winloop-0.1.6 → winloop-0.1.7}/tests/test_executors.py +0 -0
  83. {winloop-0.1.6 → winloop-0.1.7}/tests/test_fs_event.py +0 -0
  84. {winloop-0.1.6 → winloop-0.1.7}/tests/test_libuv_api.py +0 -0
  85. {winloop-0.1.6 → winloop-0.1.7}/tests/test_pipes.py +0 -0
  86. {winloop-0.1.6 → winloop-0.1.7}/tests/test_process_spawning.py +0 -0
  87. {winloop-0.1.6 → winloop-0.1.7}/tests/test_regr1.py +0 -0
  88. {winloop-0.1.6 → winloop-0.1.7}/tests/test_runner.py +0 -0
  89. {winloop-0.1.6 → winloop-0.1.7}/tests/test_signals.py +0 -0
  90. {winloop-0.1.6 → winloop-0.1.7}/tests/test_sockets.py +0 -0
  91. {winloop-0.1.6 → winloop-0.1.7}/tests/test_sourcecode.py +0 -0
  92. {winloop-0.1.6 → winloop-0.1.7}/tests/test_testbase.py +0 -0
  93. {winloop-0.1.6 → winloop-0.1.7}/tests/test_udp.py +0 -0
  94. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/.git +0 -0
  95. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/.gitattributes +0 -0
  96. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/.github/ISSUE_TEMPLATE.md +0 -0
  97. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/.github/workflows/CI-docs.yml +0 -0
  98. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/.github/workflows/CI-sample.yml +0 -0
  99. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/.github/workflows/CI-win.yml +0 -0
  100. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/.gitignore +0 -0
  101. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/.mailmap +0 -0
  102. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/.readthedocs.yaml +0 -0
  103. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/AUTHORS +0 -0
  104. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/CONTRIBUTING.md +0 -0
  105. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/ChangeLog +0 -0
  106. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/LICENSE +0 -0
  107. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/LICENSE-docs +0 -0
  108. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/LICENSE-extra +0 -0
  109. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/LINKS.md +0 -0
  110. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/MAINTAINERS.md +0 -0
  111. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/Makefile.am +0 -0
  112. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/SECURITY.md +0 -0
  113. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/SUPPORTED_PLATFORMS.md +0 -0
  114. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/autogen.sh +0 -0
  115. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/cmake-toolchains/cross-mingw32.cmake +0 -0
  116. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/configure.ac +0 -0
  117. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/include/uv/aix.h +0 -0
  118. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/include/uv/bsd.h +0 -0
  119. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/include/uv/darwin.h +0 -0
  120. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/include/uv/errno.h +0 -0
  121. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/include/uv/linux.h +0 -0
  122. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/include/uv/os390.h +0 -0
  123. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/include/uv/posix.h +0 -0
  124. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/include/uv/sunos.h +0 -0
  125. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/include/uv/threadpool.h +0 -0
  126. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/include/uv/tree.h +0 -0
  127. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/include/uv/unix.h +0 -0
  128. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/include/uv/version.h +0 -0
  129. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/include/uv/win.h +0 -0
  130. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/libuv-static.pc.in +0 -0
  131. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/libuv.pc.in +0 -0
  132. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/m4/.gitignore +0 -0
  133. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/m4/as_case.m4 +0 -0
  134. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/m4/ax_pthread.m4 +0 -0
  135. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/m4/libuv-check-flags.m4 +0 -0
  136. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/m4/libuv-check-versions.m4 +0 -0
  137. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/fs-poll.c +0 -0
  138. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/heap-inl.h +0 -0
  139. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/idna.c +0 -0
  140. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/idna.h +0 -0
  141. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/inet.c +0 -0
  142. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/queue.h +0 -0
  143. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/strscpy.c +0 -0
  144. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/strscpy.h +0 -0
  145. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/strtok.c +0 -0
  146. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/strtok.h +0 -0
  147. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/thread-common.c +0 -0
  148. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/timer.c +0 -0
  149. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/unix/aix-common.c +0 -0
  150. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/unix/aix.c +0 -0
  151. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/unix/async.c +0 -0
  152. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/unix/bsd-ifaddrs.c +0 -0
  153. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/unix/bsd-proctitle.c +0 -0
  154. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/unix/cygwin.c +0 -0
  155. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/unix/darwin-proctitle.c +0 -0
  156. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/unix/darwin-stub.h +0 -0
  157. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/unix/darwin.c +0 -0
  158. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/unix/dl.c +0 -0
  159. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/unix/freebsd.c +0 -0
  160. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/unix/fsevents.c +0 -0
  161. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/unix/haiku.c +0 -0
  162. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/unix/hurd.c +0 -0
  163. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/unix/ibmi.c +0 -0
  164. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/unix/kqueue.c +0 -0
  165. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/unix/loop-watcher.c +0 -0
  166. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/unix/loop.c +0 -0
  167. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/unix/netbsd.c +0 -0
  168. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/unix/no-fsevents.c +0 -0
  169. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/unix/no-proctitle.c +0 -0
  170. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/unix/openbsd.c +0 -0
  171. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/unix/os390-proctitle.c +0 -0
  172. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/unix/os390-syscalls.c +0 -0
  173. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/unix/os390-syscalls.h +0 -0
  174. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/unix/os390.c +0 -0
  175. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/unix/pipe.c +0 -0
  176. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/unix/poll.c +0 -0
  177. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/unix/posix-hrtime.c +0 -0
  178. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/unix/posix-poll.c +0 -0
  179. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/unix/procfs-exepath.c +0 -0
  180. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/unix/proctitle.c +0 -0
  181. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/unix/qnx.c +0 -0
  182. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/unix/random-devurandom.c +0 -0
  183. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/unix/random-getentropy.c +0 -0
  184. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/unix/random-getrandom.c +0 -0
  185. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/unix/random-sysctl-linux.c +0 -0
  186. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/unix/signal.c +0 -0
  187. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/unix/sunos.c +0 -0
  188. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/unix/sysinfo-loadavg.c +0 -0
  189. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/unix/sysinfo-memory.c +0 -0
  190. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/unix/thread.c +0 -0
  191. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/unix/tty.c +0 -0
  192. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/uv-common.c +0 -0
  193. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/uv-data-getter-setters.c +0 -0
  194. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/version.c +0 -0
  195. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/win/async.c +0 -0
  196. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/win/atomicops-inl.h +0 -0
  197. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/win/core.c +0 -0
  198. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/win/detect-wakeup.c +0 -0
  199. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/win/dl.c +0 -0
  200. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/win/fs-event.c +0 -0
  201. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/win/fs-fd-hash-inl.h +0 -0
  202. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/win/handle-inl.h +0 -0
  203. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/win/handle.c +0 -0
  204. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/win/internal.h +0 -0
  205. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/win/loop-watcher.c +0 -0
  206. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/win/poll.c +0 -0
  207. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/win/process-stdio.c +0 -0
  208. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/win/process.c +0 -0
  209. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/win/signal.c +0 -0
  210. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/win/snprintf.c +0 -0
  211. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/win/stream-inl.h +0 -0
  212. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/win/thread.c +0 -0
  213. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/win/util.c +0 -0
  214. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/win/winapi.c +0 -0
  215. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/win/winapi.h +0 -0
  216. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/win/winsock.c +0 -0
  217. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/src/win/winsock.h +0 -0
  218. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/benchmark-async-pummel.c +0 -0
  219. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/benchmark-async.c +0 -0
  220. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/benchmark-fs-stat.c +0 -0
  221. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/benchmark-getaddrinfo.c +0 -0
  222. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/benchmark-list.h +0 -0
  223. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/benchmark-loop-count.c +0 -0
  224. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/benchmark-million-async.c +0 -0
  225. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/benchmark-million-timers.c +0 -0
  226. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/benchmark-multi-accept.c +0 -0
  227. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/benchmark-ping-pongs.c +0 -0
  228. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/benchmark-ping-udp.c +0 -0
  229. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/benchmark-pound.c +0 -0
  230. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/benchmark-pump.c +0 -0
  231. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/benchmark-queue-work.c +0 -0
  232. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/benchmark-sizes.c +0 -0
  233. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/benchmark-spawn.c +0 -0
  234. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/benchmark-tcp-write-batch.c +0 -0
  235. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/benchmark-thread.c +0 -0
  236. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/benchmark-udp-pummel.c +0 -0
  237. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/blackhole-server.c +0 -0
  238. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/echo-server.c +0 -0
  239. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/fixtures/empty_file +0 -0
  240. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/fixtures/load_error.node +0 -0
  241. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/fixtures/lorem_ipsum.txt +0 -0
  242. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/fixtures/one_file/one_file +0 -0
  243. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/run-benchmarks.c +0 -0
  244. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/run-tests.c +0 -0
  245. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/runner-unix.c +0 -0
  246. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/runner-unix.h +0 -0
  247. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/runner-win.c +0 -0
  248. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/runner-win.h +0 -0
  249. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/runner.c +0 -0
  250. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/runner.h +0 -0
  251. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/task.h +0 -0
  252. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-active.c +0 -0
  253. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-async-null-cb.c +0 -0
  254. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-async.c +0 -0
  255. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-barrier.c +0 -0
  256. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-callback-stack.c +0 -0
  257. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-close-fd.c +0 -0
  258. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-close-order.c +0 -0
  259. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-condvar.c +0 -0
  260. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-connect-unspecified.c +0 -0
  261. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-connection-fail.c +0 -0
  262. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-cwd-and-chdir.c +0 -0
  263. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-default-loop-close.c +0 -0
  264. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-delayed-accept.c +0 -0
  265. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-dlerror.c +0 -0
  266. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-eintr-handling.c +0 -0
  267. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-embed.c +0 -0
  268. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-emfile.c +0 -0
  269. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-env-vars.c +0 -0
  270. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-error.c +0 -0
  271. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-fail-always.c +0 -0
  272. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-fork.c +0 -0
  273. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-fs-copyfile.c +0 -0
  274. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-fs-event.c +0 -0
  275. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-fs-fd-hash.c +0 -0
  276. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-fs-open-flags.c +0 -0
  277. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-fs-poll.c +0 -0
  278. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-fs-readdir.c +0 -0
  279. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-fs.c +0 -0
  280. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-get-currentexe.c +0 -0
  281. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-get-loadavg.c +0 -0
  282. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-get-memory.c +0 -0
  283. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-get-passwd.c +0 -0
  284. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-getaddrinfo.c +0 -0
  285. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-gethostname.c +0 -0
  286. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-getnameinfo.c +0 -0
  287. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-getsockname.c +0 -0
  288. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-getters-setters.c +0 -0
  289. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-gettimeofday.c +0 -0
  290. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-handle-fileno.c +0 -0
  291. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-homedir.c +0 -0
  292. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-hrtime.c +0 -0
  293. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-idle.c +0 -0
  294. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-idna.c +0 -0
  295. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-iouring-pollhup.c +0 -0
  296. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-ip-name.c +0 -0
  297. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-ip4-addr.c +0 -0
  298. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-ip6-addr.c +0 -0
  299. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-ipc-heavy-traffic-deadlock-bug.c +0 -0
  300. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-ipc-send-recv.c +0 -0
  301. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-ipc.c +0 -0
  302. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-list.h +0 -0
  303. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-loop-alive.c +0 -0
  304. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-loop-close.c +0 -0
  305. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-loop-configure.c +0 -0
  306. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-loop-handles.c +0 -0
  307. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-loop-stop.c +0 -0
  308. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-loop-time.c +0 -0
  309. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-metrics.c +0 -0
  310. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-multiple-listen.c +0 -0
  311. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-mutexes.c +0 -0
  312. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-not-readable-nor-writable-on-read-error.c +0 -0
  313. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-not-writable-after-shutdown.c +0 -0
  314. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-osx-select.c +0 -0
  315. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-pass-always.c +0 -0
  316. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-ping-pong.c +0 -0
  317. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-pipe-bind-error.c +0 -0
  318. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-pipe-close-stdout-read-stdin.c +0 -0
  319. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-pipe-connect-error.c +0 -0
  320. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-pipe-connect-multiple.c +0 -0
  321. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-pipe-connect-prepare.c +0 -0
  322. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-pipe-getsockname.c +0 -0
  323. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-pipe-pending-instances.c +0 -0
  324. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-pipe-sendmsg.c +0 -0
  325. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-pipe-server-close.c +0 -0
  326. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-pipe-set-fchmod.c +0 -0
  327. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-pipe-set-non-blocking.c +0 -0
  328. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-platform-output.c +0 -0
  329. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-poll-close-doesnt-corrupt-stack.c +0 -0
  330. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-poll-close.c +0 -0
  331. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-poll-closesocket.c +0 -0
  332. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-poll-multiple-handles.c +0 -0
  333. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-poll-oob.c +0 -0
  334. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-poll.c +0 -0
  335. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-process-priority.c +0 -0
  336. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-process-title-threadsafe.c +0 -0
  337. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-process-title.c +0 -0
  338. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-queue-foreach-delete.c +0 -0
  339. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-random.c +0 -0
  340. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-readable-on-eof.c +0 -0
  341. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-ref.c +0 -0
  342. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-run-nowait.c +0 -0
  343. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-run-once.c +0 -0
  344. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-semaphore.c +0 -0
  345. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-shutdown-close.c +0 -0
  346. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-shutdown-eof.c +0 -0
  347. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-shutdown-simultaneous.c +0 -0
  348. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-shutdown-twice.c +0 -0
  349. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-signal-multiple-loops.c +0 -0
  350. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-signal-pending-on-close.c +0 -0
  351. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-signal.c +0 -0
  352. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-socket-buffer-size.c +0 -0
  353. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-spawn.c +0 -0
  354. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-stdio-over-pipes.c +0 -0
  355. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-strscpy.c +0 -0
  356. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-strtok.c +0 -0
  357. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-tcp-alloc-cb-fail.c +0 -0
  358. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-tcp-bind-error.c +0 -0
  359. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-tcp-bind6-error.c +0 -0
  360. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-tcp-close-accept.c +0 -0
  361. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-tcp-close-after-read-timeout.c +0 -0
  362. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-tcp-close-reset.c +0 -0
  363. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-tcp-close-while-connecting.c +0 -0
  364. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-tcp-close.c +0 -0
  365. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-tcp-connect-error-after-write.c +0 -0
  366. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-tcp-connect-error.c +0 -0
  367. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-tcp-connect-timeout.c +0 -0
  368. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-tcp-connect6-error.c +0 -0
  369. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-tcp-create-socket-early.c +0 -0
  370. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-tcp-flags.c +0 -0
  371. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-tcp-oob.c +0 -0
  372. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-tcp-open.c +0 -0
  373. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-tcp-read-stop-start.c +0 -0
  374. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-tcp-read-stop.c +0 -0
  375. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-tcp-reuseport.c +0 -0
  376. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-tcp-rst.c +0 -0
  377. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-tcp-shutdown-after-write.c +0 -0
  378. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-tcp-try-write-error.c +0 -0
  379. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-tcp-try-write.c +0 -0
  380. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-tcp-unexpected-read.c +0 -0
  381. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-tcp-write-after-connect.c +0 -0
  382. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-tcp-write-fail.c +0 -0
  383. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-tcp-write-in-a-row.c +0 -0
  384. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-tcp-write-queue-order.c +0 -0
  385. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-tcp-write-to-half-open-connection.c +0 -0
  386. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-tcp-writealot.c +0 -0
  387. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-test-macros.c +0 -0
  388. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-thread-affinity.c +0 -0
  389. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-thread-equal.c +0 -0
  390. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-thread-priority.c +0 -0
  391. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-thread.c +0 -0
  392. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-threadpool-cancel.c +0 -0
  393. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-threadpool.c +0 -0
  394. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-timer-again.c +0 -0
  395. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-timer-from-check.c +0 -0
  396. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-timer.c +0 -0
  397. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-tmpdir.c +0 -0
  398. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-tty-duplicate-key.c +0 -0
  399. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-tty-escape-sequence-processing.c +0 -0
  400. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-tty.c +0 -0
  401. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-udp-alloc-cb-fail.c +0 -0
  402. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-udp-bind.c +0 -0
  403. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-udp-connect.c +0 -0
  404. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-udp-connect6.c +0 -0
  405. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-udp-create-socket-early.c +0 -0
  406. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-udp-dgram-too-big.c +0 -0
  407. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-udp-ipv6.c +0 -0
  408. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-udp-mmsg.c +0 -0
  409. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-udp-multicast-interface.c +0 -0
  410. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-udp-multicast-interface6.c +0 -0
  411. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-udp-multicast-join.c +0 -0
  412. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-udp-multicast-join6.c +0 -0
  413. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-udp-multicast-ttl.c +0 -0
  414. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-udp-open.c +0 -0
  415. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-udp-options.c +0 -0
  416. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-udp-recv-in-a-row.c +0 -0
  417. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-udp-reuseport.c +0 -0
  418. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-udp-send-and-recv.c +0 -0
  419. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-udp-send-hang-loop.c +0 -0
  420. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-udp-send-immediate.c +0 -0
  421. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-udp-send-unreachable.c +0 -0
  422. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-udp-sendmmsg-error.c +0 -0
  423. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-udp-try-send.c +0 -0
  424. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-uname.c +0 -0
  425. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-walk-handles.c +0 -0
  426. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/test/test-watcher-cross-stop.c +0 -0
  427. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/tools/make_dist_html.py +0 -0
  428. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/tools/vswhere_usability_wrapper.cmd +0 -0
  429. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/tsansupp.txt +0 -0
  430. {winloop-0.1.6 → winloop-0.1.7}/vendor/libuv/uv_win_longpath.manifest +0 -0
  431. {winloop-0.1.6 → winloop-0.1.7}/winloop/__init__.py +0 -0
  432. {winloop-0.1.6 → winloop-0.1.7}/winloop/_noop.py +0 -0
  433. {winloop-0.1.6 → winloop-0.1.7}/winloop/cbhandles.pxd +0 -0
  434. {winloop-0.1.6 → winloop-0.1.7}/winloop/cbhandles.pyx +0 -0
  435. {winloop-0.1.6 → winloop-0.1.7}/winloop/errors.pyx +0 -0
  436. {winloop-0.1.6 → winloop-0.1.7}/winloop/handles/async_.pxd +0 -0
  437. {winloop-0.1.6 → winloop-0.1.7}/winloop/handles/async_.pyx +0 -0
  438. {winloop-0.1.6 → winloop-0.1.7}/winloop/handles/basetransport.pxd +0 -0
  439. {winloop-0.1.6 → winloop-0.1.7}/winloop/handles/basetransport.pyx +0 -0
  440. {winloop-0.1.6 → winloop-0.1.7}/winloop/handles/check.pxd +0 -0
  441. {winloop-0.1.6 → winloop-0.1.7}/winloop/handles/check.pyx +0 -0
  442. {winloop-0.1.6 → winloop-0.1.7}/winloop/handles/fsevent.pxd +0 -0
  443. {winloop-0.1.6 → winloop-0.1.7}/winloop/handles/fsevent.pyx +0 -0
  444. {winloop-0.1.6 → winloop-0.1.7}/winloop/handles/handle.pxd +0 -0
  445. {winloop-0.1.6 → winloop-0.1.7}/winloop/handles/idle.pxd +0 -0
  446. {winloop-0.1.6 → winloop-0.1.7}/winloop/handles/idle.pyx +0 -0
  447. {winloop-0.1.6 → winloop-0.1.7}/winloop/handles/pipe.pxd +0 -0
  448. {winloop-0.1.6 → winloop-0.1.7}/winloop/handles/process.pxd +0 -0
  449. {winloop-0.1.6 → winloop-0.1.7}/winloop/handles/process.pyx +0 -0
  450. {winloop-0.1.6 → winloop-0.1.7}/winloop/handles/stream.pxd +0 -0
  451. {winloop-0.1.6 → winloop-0.1.7}/winloop/handles/streamserver.pxd +0 -0
  452. {winloop-0.1.6 → winloop-0.1.7}/winloop/handles/streamserver.pyx +0 -0
  453. {winloop-0.1.6 → winloop-0.1.7}/winloop/handles/tcp.pxd +0 -0
  454. {winloop-0.1.6 → winloop-0.1.7}/winloop/handles/tcp.pyx +0 -0
  455. {winloop-0.1.6 → winloop-0.1.7}/winloop/handles/timer.pxd +0 -0
  456. {winloop-0.1.6 → winloop-0.1.7}/winloop/handles/timer.pyx +0 -0
  457. {winloop-0.1.6 → winloop-0.1.7}/winloop/handles/udp.pxd +0 -0
  458. {winloop-0.1.6 → winloop-0.1.7}/winloop/includes/__init__.py +0 -0
  459. {winloop-0.1.6 → winloop-0.1.7}/winloop/includes/debug.h +0 -0
  460. {winloop-0.1.6 → winloop-0.1.7}/winloop/includes/debug.pxd +0 -0
  461. {winloop-0.1.6 → winloop-0.1.7}/winloop/includes/flowcontrol.pxd +0 -0
  462. {winloop-0.1.6 → winloop-0.1.7}/winloop/includes/system.pxd +0 -0
  463. {winloop-0.1.6 → winloop-0.1.7}/winloop/loop.pyi +0 -0
  464. {winloop-0.1.6 → winloop-0.1.7}/winloop/lru.pyx +0 -0
  465. {winloop-0.1.6 → winloop-0.1.7}/winloop/pseudosock.pyx +0 -0
  466. {winloop-0.1.6 → winloop-0.1.7}/winloop/py.typed +0 -0
  467. {winloop-0.1.6 → winloop-0.1.7}/winloop/request.pxd +0 -0
  468. {winloop-0.1.6 → winloop-0.1.7}/winloop/request.pyx +0 -0
  469. {winloop-0.1.6 → winloop-0.1.7}/winloop/server.pxd +0 -0
  470. {winloop-0.1.6 → winloop-0.1.7}/winloop/server.pyx +0 -0
  471. {winloop-0.1.6 → winloop-0.1.7}/winloop/sslproto.pxd +0 -0
  472. {winloop-0.1.6 → winloop-0.1.7}/winloop/sslproto.pyx +0 -0
  473. {winloop-0.1.6 → winloop-0.1.7}/winloop.egg-info/dependency_links.txt +0 -0
  474. {winloop-0.1.6 → winloop-0.1.7}/winloop.egg-info/not-zip-safe +0 -0
  475. {winloop-0.1.6 → winloop-0.1.7}/winloop.egg-info/top_level.txt +0 -0
  476. {winloop-0.1.6 → winloop-0.1.7}/winloop.png +0 -0
@@ -9,7 +9,7 @@ _default: compile
9
9
 
10
10
 
11
11
  clean:
12
- rm -fr dist/ doc/_build/ *.egg-info winloop/loop.*.pyd
12
+ rm -fr dist/ doc/_build/ *.egg-info winloop/loop.*.pyd uvloop/loop_d.*.pyd
13
13
  rm -fr winloop/*.c winloop/*.html winloop/*.so
14
14
  rm -fr winloop/handles/*.html winloop/includes/*.html
15
15
  find . -name '__pycache__' | xargs rm -rf
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: winloop
3
- Version: 0.1.6
3
+ Version: 0.1.7
4
4
  Summary: Windows version of uvloop
5
5
  Author: Vizonex
6
6
  License: MIT License
@@ -20,6 +20,7 @@ Classifier: Programming Language :: Python :: 3.9
20
20
  Classifier: Programming Language :: Python :: 3.10
21
21
  Classifier: Programming Language :: Python :: 3.11
22
22
  Classifier: Programming Language :: Python :: 3.12
23
+ Classifier: Programming Language :: Python :: 3.13
23
24
  Classifier: Programming Language :: Python :: Implementation :: CPython
24
25
  Classifier: Topic :: System :: Networking
25
26
  Requires-Python: >=3.8.0
@@ -27,14 +28,15 @@ Description-Content-Type: text/markdown
27
28
  License-File: LICENSE-APACHE
28
29
  License-File: LICENSE-MIT
29
30
  Provides-Extra: test
30
- Requires-Dist: aiohttp>=3.8.1; python_version < "3.12" and extra == "test"
31
- Requires-Dist: aiohttp==3.9.0b0; python_version >= "3.12" and extra == "test"
31
+ Requires-Dist: aiohttp>=3.10.5; extra == "test"
32
32
  Requires-Dist: flake8~=5.0; extra == "test"
33
33
  Requires-Dist: psutil; extra == "test"
34
34
  Requires-Dist: pycodestyle~=2.9.0; extra == "test"
35
35
  Requires-Dist: pyOpenSSL~=23.0.0; extra == "test"
36
36
  Requires-Dist: mypy>=0.800; extra == "test"
37
- Requires-Dist: Cython<0.30.0,>=0.29.36; extra == "test"
37
+ Provides-Extra: dev
38
+ Requires-Dist: setuptools>=60; extra == "dev"
39
+ Requires-Dist: Cython~=3.0; extra == "dev"
38
40
  Provides-Extra: docs
39
41
  Requires-Dist: Sphinx~=4.1.2; extra == "docs"
40
42
  Requires-Dist: sphinxcontrib-asyncio~=0.3.0; extra == "docs"
@@ -44,8 +46,8 @@ Requires-Dist: sphinx_rtd_theme~=0.5.2; extra == "docs"
44
46
  <a href="https://github.com/psf/black"><img alt="Code style: black" src="https://img.shields.io/badge/code%20style-black-000000.svg"></a>
45
47
 
46
48
  # Winloop
47
- An Alternative library for uvloop compatibility with windows because let's face it. Window's python asyncio standard libaray is garabage escpecially when Windows Defender decides to eat half your ram.
48
- I never really liked the fact that I couldn't make anything run faster escpecially when you have fiber internet connections in place and you've done all the optimizations you could possibly think of. It always felt disappointing when `libuv` is available for windows [but windows was never compatible with uvloop.](https://github.com/MagicStack/uvloop/issues/14#issuecomment-575826367])
49
+ An Alternative library for uvloop compatibility with windows because let's face it. Window's python asyncio standard libaray is garabage especially when Windows Defender decides to eat half your ram.
50
+ I never really liked the fact that I couldn't make anything run faster especially when you have fiber internet connections in place and you've done all the optimizations you could possibly think of. It always felt disappointing when `libuv` is available for windows [but windows was never compatible with uvloop.](https://github.com/MagicStack/uvloop/issues/14#issuecomment-575826367])
49
51
 
50
52
  Because nobody was willing to step in after so many years of waiting, I went ahead and downloaded the source code for uvloop and started modifying the source code to be windows compatible by carefully removing and changing parts that were not made for windows. Many hours of research went into making this library exist.
51
53
 
@@ -61,7 +63,7 @@ There is a performance increase of about 5 times vs using the `WindowsSelectorEv
61
63
  pip install winloop
62
64
  ```
63
65
 
64
- You can also clone the reposity and build the extension yourself by running the command below if you wish to use or build this library locally, Note that you will need Cython and The Visual C++ extensions
66
+ You can also clone the repository and build the extension yourself by running the command below if you wish to use or build this library locally, Note that you will need Cython and The Visual C++ extensions
65
67
  to compile this library on your own.
66
68
 
67
69
  ```
@@ -2,8 +2,8 @@
2
2
  <a href="https://github.com/psf/black"><img alt="Code style: black" src="https://img.shields.io/badge/code%20style-black-000000.svg"></a>
3
3
 
4
4
  # Winloop
5
- An Alternative library for uvloop compatibility with windows because let's face it. Window's python asyncio standard libaray is garabage escpecially when Windows Defender decides to eat half your ram.
6
- I never really liked the fact that I couldn't make anything run faster escpecially when you have fiber internet connections in place and you've done all the optimizations you could possibly think of. It always felt disappointing when `libuv` is available for windows [but windows was never compatible with uvloop.](https://github.com/MagicStack/uvloop/issues/14#issuecomment-575826367])
5
+ An Alternative library for uvloop compatibility with windows because let's face it. Window's python asyncio standard libaray is garabage especially when Windows Defender decides to eat half your ram.
6
+ I never really liked the fact that I couldn't make anything run faster especially when you have fiber internet connections in place and you've done all the optimizations you could possibly think of. It always felt disappointing when `libuv` is available for windows [but windows was never compatible with uvloop.](https://github.com/MagicStack/uvloop/issues/14#issuecomment-575826367])
7
7
 
8
8
  Because nobody was willing to step in after so many years of waiting, I went ahead and downloaded the source code for uvloop and started modifying the source code to be windows compatible by carefully removing and changing parts that were not made for windows. Many hours of research went into making this library exist.
9
9
 
@@ -19,7 +19,7 @@ There is a performance increase of about 5 times vs using the `WindowsSelectorEv
19
19
  pip install winloop
20
20
  ```
21
21
 
22
- You can also clone the reposity and build the extension yourself by running the command below if you wish to use or build this library locally, Note that you will need Cython and The Visual C++ extensions
22
+ You can also clone the repository and build the extension yourself by running the command below if you wish to use or build this library locally, Note that you will need Cython and The Visual C++ extensions
23
23
  to compile this library on your own.
24
24
 
25
25
  ```
@@ -25,6 +25,7 @@ classifiers = [
25
25
  "Programming Language :: Python :: 3.10",
26
26
  "Programming Language :: Python :: 3.11",
27
27
  "Programming Language :: Python :: 3.12",
28
+ "Programming Language :: Python :: 3.13",
28
29
  "Programming Language :: Python :: Implementation :: CPython",
29
30
  "Topic :: System :: Networking",
30
31
  ]
@@ -37,14 +38,16 @@ test = [
37
38
  # pycodestyle is a dependency of flake8, but it must be frozen because
38
39
  # their combination breaks too often
39
40
  # (example breakage: https://gitlab.com/pycqa/flake8/issues/427)
40
- 'aiohttp>=3.8.1; python_version < "3.12"',
41
- 'aiohttp==3.9.0b0; python_version >= "3.12"',
41
+ 'aiohttp>=3.10.5',
42
42
  'flake8~=5.0',
43
43
  'psutil',
44
44
  'pycodestyle~=2.9.0',
45
45
  'pyOpenSSL~=23.0.0',
46
46
  'mypy>=0.800',
47
- 'Cython(>=0.29.36,<0.30.0)',
47
+ ]
48
+ dev = [
49
+ 'setuptools>=60',
50
+ 'Cython~=3.0',
48
51
  ]
49
52
  docs = [
50
53
  'Sphinx~=4.1.2',
@@ -56,7 +59,7 @@ docs = [
56
59
  requires = [
57
60
  "setuptools>=60",
58
61
  "wheel",
59
- "Cython(>=0.29.36,<0.30.0)",
62
+ "Cython~=3.0",
60
63
  ]
61
64
  build-backend = "setuptools.build_meta"
62
65
 
@@ -20,7 +20,7 @@ from setuptools.command.build_ext import build_ext
20
20
  from setuptools.command.sdist import sdist
21
21
 
22
22
 
23
- CYTHON_DEPENDENCY = 'Cython(>=0.29.36,<0.30.0)'
23
+ CYTHON_DEPENDENCY = 'Cython~=3.0'
24
24
  MACHINE = platform.machine()
25
25
  MODULES_CFLAGS = [os.getenv('UVLOOP_OPT_CFLAGS', '-O2')]
26
26
  _ROOT = pathlib.Path(__file__).parent
@@ -140,11 +140,14 @@ class uvloop_build_ext(build_ext):
140
140
  v = True
141
141
 
142
142
  directives[k] = v
143
+ self.cython_directives = directives
143
144
 
144
145
  self.distribution.ext_modules[:] = cythonize(
145
146
  self.distribution.ext_modules,
146
147
  compiler_directives=directives,
147
- annotate=self.cython_annotate)
148
+ annotate=self.cython_annotate,
149
+ compile_time_env=dict(DEFAULT_FREELIST_SIZE=250),
150
+ emit_linenums=self.debug)
148
151
 
149
152
  super().finalize_options()
150
153
 
@@ -176,7 +179,11 @@ class uvloop_build_ext(build_ext):
176
179
  cmd,
177
180
  cwd=LIBUV_BUILD_DIR, env=env, check=True)
178
181
 
179
- j_flag = '-j{}'.format(os.cpu_count() or 1)
182
+ try:
183
+ njobs = len(os.sched_getaffinity(0))
184
+ except AttributeError:
185
+ njobs = os.cpu_count()
186
+ j_flag = '-j{}'.format(njobs or 1)
180
187
  c_flag = "CFLAGS={}".format(env['CFLAGS'])
181
188
  subprocess.run(
182
189
  ['make', j_flag, c_flag],
@@ -233,6 +240,8 @@ with open(str(_ROOT / 'winloop' / '_version.py')) as f:
233
240
 
234
241
  if sys.platform == 'win32':
235
242
  from Cython.Build import cythonize
243
+ from Cython.Compiler.Main import default_options
244
+ default_options['compile_time_env'] = dict(DEFAULT_FREELIST_SIZE=250)
236
245
  ext = cythonize([
237
246
  Extension(
238
247
  "winloop.loop",
@@ -9,6 +9,8 @@ except ImportError:
9
9
  else:
10
10
  skip_tests = False
11
11
 
12
+ import sys
13
+ import asyncio
12
14
  import unittest
13
15
 
14
16
  from winloop import _testbase as tb
@@ -34,7 +36,10 @@ class Test_UV_Aiodns(_TestAiodns, tb.UVTestCase):
34
36
  pass
35
37
 
36
38
 
37
- @unittest.skip("aiodns needs a SelectorEventLoop on Windows."
38
- " See more: https://github.com/saghul/aiodns/issues/86")
39
+ @unittest.skipIf(skip_tests, "no aiodns module")
39
40
  class Test_AIO_Aiodns(_TestAiodns, tb.AIOTestCase):
40
- pass
41
+ # Winloop comment: switching to selector loop (instead of proactor),
42
+ # see https://github.com/saghul/aiodns/issues/86
43
+ if sys.platform == 'win32':
44
+ def new_policy(self):
45
+ return asyncio.WindowsSelectorEventLoopPolicy()
@@ -126,7 +126,11 @@ class Test_UV_AioHTTP(_TestAioHTTP, tb.UVTestCase):
126
126
 
127
127
  @unittest.skipIf(skip_tests, "no aiohttp module")
128
128
  class Test_AIO_AioHTTP(_TestAioHTTP, tb.AIOTestCase):
129
- pass
129
+ # Winloop comment: switching to selector loop (instead of proactor),
130
+ # see https://github.com/saghul/aiodns/issues/86
131
+ if sys.platform == 'win32':
132
+ def new_policy(self):
133
+ return asyncio.WindowsSelectorEventLoopPolicy()
130
134
 
131
135
 
132
136
  if __name__ == "__main__":
@@ -23,36 +23,36 @@ def my_map():
23
23
  class _Test_Multiprocessing():
24
24
  """Used for Testing aiomultiprocessing"""
25
25
 
26
- def test_proccess_spawning(self):
26
+ def test_process_spawning(self):
27
27
 
28
28
  # See:
29
29
  # https://github.com/Vizonex/Winloop/issues/11#issuecomment-1922659521
30
30
  self.processes = set()
31
31
  # There must be at least 2 pids setup for this to be correctly ran...
32
- total_proccesses = 2
32
+ total_processes = 2
33
33
 
34
34
  async def test():
35
- async with aiomultiprocess.Pool(total_proccesses) as pool:
35
+ async with aiomultiprocess.Pool(total_processes) as pool:
36
36
  self.processes.update(p.pid for p in pool.processes)
37
37
  await pool.map(test_func, my_map())
38
38
  await asyncio.sleep(0.005)
39
- self.assertEqual(len(self.processes), total_proccesses)
39
+ self.assertEqual(len(self.processes), total_processes)
40
40
 
41
41
  self.loop.run_until_complete(test())
42
42
 
43
43
 
44
- @unittest.skipIf(skip_tests, "no aiomultiproccess module")
44
+ @unittest.skipIf(skip_tests, "no aiomultiprocess module")
45
45
  class Test_UV_AioMultiprocess(_Test_Multiprocessing, tb.UVTestCase):
46
46
  pass
47
47
 
48
48
 
49
- @unittest.skipIf(skip_tests, "no aiomultiproccess module")
49
+ @unittest.skipIf(skip_tests, "no aiomultiprocess module")
50
50
  class Test_AIO_AioMultiprocess(_Test_Multiprocessing, tb.AIOTestCase):
51
51
  pass
52
52
 
53
53
 
54
54
  if __name__ == "__main__":
55
- # I have confirmed that multiproccessing is supported so no need
55
+ # I have confirmed that multiprocessing is supported so no need
56
56
  # to continue with trying... - Vizonex...
57
57
  multiprocessing.freeze_support()
58
58
  # aiomultiprocess.set_start_method("spawn")
@@ -139,7 +139,7 @@ class _TestBase:
139
139
  self.assertTrue(delta > 0.049 and delta < 0.6)
140
140
  # General comment: the bound 0.6 is probably a typo, instead of 0.06.
141
141
  # WINLOOP comment: this test sometimes fails on Windows with delta
142
- # below 0.049. Also delta sometimes exceeeds 0.06. This happens
142
+ # below 0.049. Also delta sometimes exceeds 0.06. This happens
143
143
  # with the AIO loop and with the UV loop.
144
144
 
145
145
  def test_call_later_1(self):
@@ -275,6 +275,13 @@ class _TestBase:
275
275
  # https://github.com/cython/cython/pull/4988/files
276
276
  # but the code for this part in cython 3.0.10 has been changed at some
277
277
  # point, apparently causing the present problem.
278
+
279
+ # WINLOOP comment: see the above comment. Work-in-progress.
280
+ # Problem is caused by a spurious argument in this call in loop.pyx:
281
+ # self.call_soon_threadsafe(
282
+ # self._set_coroutine_debug, self, self._debug)
283
+ # ^^^^^^
284
+ # Removing it removes the problem.
278
285
  def check_thread(loop, debug):
279
286
  def cb():
280
287
  pass
@@ -32,13 +32,13 @@ class BaseTestDNS:
32
32
  a1 = patched_getaddrinfo(*args, **kwargs)
33
33
  else:
34
34
  a1 = socket.getaddrinfo(*args, **kwargs)
35
- except socket.gaierror as ex:
35
+ except (socket.gaierror, UnicodeError) as ex:
36
36
  err = ex
37
37
 
38
38
  try:
39
39
  a2 = self.loop.run_until_complete(
40
40
  self.loop.getaddrinfo(*args, **kwargs))
41
- except socket.gaierror as ex:
41
+ except (socket.gaierror, UnicodeError) as ex:
42
42
  if err is not None:
43
43
  self.assertEqual(ex.args, err.args)
44
44
  else:
@@ -198,6 +198,18 @@ class BaseTestDNS:
198
198
  proto=6 if sys.platform == 'win32' else 0,
199
199
  flags=socket.AI_CANONNAME, _patch=patch)
200
200
 
201
+ # https://github.com/libuv/libuv/security/advisories/GHSA-f74f-cvh7-c6q6
202
+ # See also: https://github.com/MagicStack/uvloop/pull/600
203
+ def test_getaddrinfo_21(self):
204
+ payload = f'0x{"0" * 246}7f000001.example.com'.encode('ascii')
205
+ self._test_getaddrinfo(payload, 80)
206
+ self._test_getaddrinfo(payload, 80, type=socket.SOCK_STREAM)
207
+
208
+ def test_getaddrinfo_22(self):
209
+ payload = f'0x{"0" * 246}7f000001.example.com'
210
+ self._test_getaddrinfo(payload, 80)
211
+ self._test_getaddrinfo(payload, 80, type=socket.SOCK_STREAM)
212
+
201
213
  ######
202
214
 
203
215
  def test_getnameinfo_1(self):
@@ -0,0 +1,38 @@
1
+ try:
2
+ from playwright.async_api import async_playwright
3
+ except ImportError:
4
+ skip_tests = True
5
+ else:
6
+ skip_tests = False
7
+
8
+ import unittest
9
+ from winloop import _testbase as tb
10
+
11
+ # SEE: https://github.com/Vizonex/Winloop/issues/34
12
+
13
+
14
+ class _TestPlaywright:
15
+ def test_example_code(self):
16
+ # Example code is from microsoft's own example,
17
+ # see https://github.com/microsoft/playwright-python
18
+ async def run():
19
+ async with async_playwright() as p:
20
+ for browser_type in [p.chromium, p.firefox, p.webkit]:
21
+ browser = await browser_type.launch()
22
+ page = await browser.new_page()
23
+ await page.goto('http://playwright.dev')
24
+ path = f'example-{browser_type.name}.png'
25
+ await page.screenshot(path=path)
26
+ await browser.close()
27
+
28
+ self.loop.run_until_complete(run())
29
+
30
+
31
+ @unittest.skipIf(skip_tests, "no playwright module")
32
+ class Test_UV_Playwright(_TestPlaywright, tb.UVTestCase):
33
+ pass
34
+
35
+
36
+ @unittest.skipIf(skip_tests, "no playwright module")
37
+ class Test_AIO_Playwright(_TestPlaywright, tb.AIOTestCase):
38
+ pass
@@ -479,6 +479,8 @@ print("OK")
479
479
 
480
480
  self.loop.run_until_complete(main())
481
481
 
482
+ @unittest.skipIf(sys.platform == 'win32' and sys.version_info < (3, 10, 0),
483
+ 'no fix for Python 3.9- on Windows')
482
484
  def test_process_streams_redirect(self):
483
485
  async def test():
484
486
  prog = bR'''
@@ -251,11 +251,14 @@ class _TestTCP:
251
251
  # "[Errno 10048] error while attempting to bind on address
252
252
  # ('127.0.0.1', 31098): only one usage of each socket address
253
253
  # (protocol/network address/port) is normally permitted"
254
+ # NB: Python 3.12.5+ adds "[winerror 10048] " before "only one ..."
254
255
  with self.assertRaisesRegex(OSError,
255
- r"error while attempting.*\('127.*: " +
256
- (r"only one usage of each"
257
- if sys.platform == 'win32'
258
- else r"address( already)? in use")):
256
+ r"error while attempting.*\('127.*:" +
257
+ (r"( \[errno \d+\])? address"
258
+ r"( already)? in use"
259
+ if sys.platform != 'win32' else
260
+ r"( \[winerror \d+\])? "
261
+ r"only one usage of each")):
259
262
  self.loop.run_until_complete(
260
263
  self.loop.create_server(object, *addr))
261
264
 
@@ -1644,17 +1647,22 @@ class _TestSSL(tb.SSLTestCase):
1644
1647
  self.fail("unexpected call to connection_made()")
1645
1648
 
1646
1649
  def test_ssl_connect_accepted_socket(self):
1647
- if hasattr(ssl, 'PROTOCOL_TLS'):
1648
- proto = ssl.PROTOCOL_TLS
1650
+ if hasattr(ssl, 'PROTOCOL_TLS_SERVER'):
1651
+ server_proto = ssl.PROTOCOL_TLS_SERVER
1652
+ client_proto = ssl.PROTOCOL_TLS_CLIENT
1649
1653
  else:
1650
- proto = ssl.PROTOCOL_SSLv23
1651
- server_context = ssl.SSLContext(proto)
1654
+ if hasattr(ssl, 'PROTOCOL_TLS'):
1655
+ client_proto = server_proto = ssl.PROTOCOL_TLS
1656
+ else:
1657
+ client_proto = server_proto = ssl.PROTOCOL_SSLv23
1658
+
1659
+ server_context = ssl.SSLContext(server_proto)
1652
1660
  server_context.load_cert_chain(self.ONLYCERT, self.ONLYKEY)
1653
1661
  if hasattr(server_context, 'check_hostname'):
1654
1662
  server_context.check_hostname = False
1655
1663
  server_context.verify_mode = ssl.CERT_NONE
1656
1664
 
1657
- client_context = ssl.SSLContext(proto)
1665
+ client_context = ssl.SSLContext(client_proto)
1658
1666
  if hasattr(server_context, 'check_hostname'):
1659
1667
  client_context.check_hostname = False
1660
1668
  client_context.verify_mode = ssl.CERT_NONE
@@ -2251,8 +2259,7 @@ class _TestSSL(tb.SSLTestCase):
2251
2259
  sslctx.use_privatekey_file(self.ONLYKEY)
2252
2260
  sslctx.use_certificate_chain_file(self.ONLYCERT)
2253
2261
  client_sslctx = self._create_client_ssl_context()
2254
- if hasattr(ssl, 'OP_NO_TLSv1_3'):
2255
- client_sslctx.options |= ssl.OP_NO_TLSv1_3
2262
+ client_sslctx.maximum_version = ssl.TLSVersion.TLSv1_2
2256
2263
 
2257
2264
  def server(sock):
2258
2265
  conn = openssl_ssl.Connection(sslctx, sock)
@@ -2614,8 +2621,7 @@ class _TestSSL(tb.SSLTestCase):
2614
2621
  sslctx_openssl.use_privatekey_file(self.ONLYKEY)
2615
2622
  sslctx_openssl.use_certificate_chain_file(self.ONLYCERT)
2616
2623
  client_sslctx = self._create_client_ssl_context()
2617
- if hasattr(ssl, 'OP_NO_TLSv1_3'):
2618
- client_sslctx.options |= ssl.OP_NO_TLSv1_3
2624
+ client_sslctx.maximum_version = ssl.TLSVersion.TLSv1_2
2619
2625
 
2620
2626
  future = None
2621
2627
 
@@ -97,10 +97,18 @@ class _TestUnix:
97
97
 
98
98
  self.assertFalse(srv.is_serving())
99
99
 
100
- # asyncio doesn't cleanup the sock file
101
- self.assertTrue(os.path.exists(sock_name))
100
+ if sys.version_info < (3, 13):
101
+ # asyncio doesn't cleanup the sock file under Python 3.13
102
+ self.assertTrue(os.path.exists(sock_name))
103
+ else:
104
+ self.assertFalse(os.path.exists(sock_name))
105
+
106
+ async def start_server_sock(start_server, is_unix_api=True):
107
+ # is_unix_api indicates whether `start_server` is calling
108
+ # `loop.create_unix_server()` or `loop.create_server()`,
109
+ # because asyncio `loop.create_server()` doesn't cleanup
110
+ # the socket file even if it's a UNIX socket.
102
111
 
103
- async def start_server_sock(start_server):
104
112
  nonlocal CNT
105
113
  CNT = 0
106
114
 
@@ -141,8 +149,11 @@ class _TestUnix:
141
149
 
142
150
  self.assertFalse(srv.is_serving())
143
151
 
144
- # asyncio doesn't cleanup the sock file
145
- self.assertTrue(os.path.exists(sock_name))
152
+ if sys.version_info < (3, 13) or not is_unix_api:
153
+ # asyncio doesn't cleanup the sock file under Python 3.13
154
+ self.assertTrue(os.path.exists(sock_name))
155
+ else:
156
+ self.assertFalse(os.path.exists(sock_name))
146
157
 
147
158
  with self.subTest(func='start_unix_server(host, port)'):
148
159
  self.loop.run_until_complete(start_server())
@@ -161,7 +172,7 @@ class _TestUnix:
161
172
  lambda sock: asyncio.start_server(
162
173
  handle_client,
163
174
  None, None,
164
- sock=sock)))
175
+ sock=sock), is_unix_api=False))
165
176
  self.assertEqual(CNT, TOTAL_CNT)
166
177
 
167
178
  def test_create_unix_server_2(self):
@@ -456,16 +467,13 @@ class Test_UV_Unix(_TestUnix, tb.UVTestCase):
456
467
  socket.AF_UNIX, socket.SOCK_STREAM | socket.SOCK_NONBLOCK)
457
468
  with tempfile.NamedTemporaryFile() as file:
458
469
  fn = file.name
459
- try:
460
- with sock:
461
- sock.bind(fn)
462
- coro = self.loop.create_unix_server(lambda: None, path=None,
463
- sock=sock)
464
- srv = self.loop.run_until_complete(coro)
465
- srv.close()
466
- self.loop.run_until_complete(srv.wait_closed())
467
- finally:
468
- os.unlink(fn)
470
+ with sock:
471
+ sock.bind(fn)
472
+ coro = self.loop.create_unix_server(lambda: None, path=None,
473
+ sock=sock, cleanup_socket=True)
474
+ srv = self.loop.run_until_complete(coro)
475
+ srv.close()
476
+ self.loop.run_until_complete(srv.wait_closed())
469
477
 
470
478
  @unittest.skipUnless(sys.platform.startswith('linux'), 'requires epoll')
471
479
  def test_epollhup(self):
@@ -0,0 +1,7 @@
1
+ # https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
2
+ version: 2
3
+ updates:
4
+ - package-ecosystem: "github-actions"
5
+ directory: "/" # Location of package manifests
6
+ schedule:
7
+ interval: "weekly"
@@ -30,6 +30,11 @@ jobs:
30
30
  build-android:
31
31
  runs-on: ubuntu-latest
32
32
  container: reactnativecommunity/react-native-android:2020-5-20
33
+ # Work around an issue where the node from actions/checkout is too new
34
+ # to run inside the long-in-the-tooth react-nactive-android container
35
+ # image.
36
+ env:
37
+ ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true
33
38
  steps:
34
39
  - uses: actions/checkout@v2
35
40
  - name: Envinfo
@@ -46,9 +51,9 @@ jobs:
46
51
  ls -lh build
47
52
 
48
53
  build-macos:
49
- runs-on: macos-11
54
+ runs-on: macos-12
50
55
  steps:
51
- - uses: actions/checkout@v2
56
+ - uses: actions/checkout@v4
52
57
  - name: Envinfo
53
58
  run: npx envinfo
54
59
  - name: Setup
@@ -81,9 +86,9 @@ jobs:
81
86
  make -C build-auto -j4
82
87
 
83
88
  build-ios:
84
- runs-on: macos-11
89
+ runs-on: macos-12
85
90
  steps:
86
- - uses: actions/checkout@v2
91
+ - uses: actions/checkout@v4
87
92
  - name: Configure
88
93
  run: |
89
94
  mkdir build-ios
@@ -67,9 +67,9 @@ jobs:
67
67
  ./build-ubsan/uv_run_tests_a
68
68
 
69
69
  sanitizers-macos:
70
- runs-on: macos-11
70
+ runs-on: macos-12
71
71
  steps:
72
- - uses: actions/checkout@v2
72
+ - uses: actions/checkout@v4
73
73
 
74
74
  - name: Envinfo
75
75
  run: npx envinfo
@@ -307,6 +307,7 @@ if(APPLE)
307
307
  endif()
308
308
 
309
309
  if(CMAKE_SYSTEM_NAME STREQUAL "GNU")
310
+ list(APPEND uv_defines _GNU_SOURCE _POSIX_C_SOURCE=200112 _XOPEN_SOURCE=500)
310
311
  list(APPEND uv_libraries dl)
311
312
  list(APPEND uv_sources
312
313
  src/unix/bsd-ifaddrs.c
@@ -232,6 +232,18 @@ $ ./bootstrap-vcpkg.sh # for bash
232
232
  $ ./vcpkg install libuv
233
233
  ```
234
234
 
235
+ ### Install with Conan
236
+
237
+ You can install pre-built binaries for libuv or build it from source using [Conan](https://conan.io/). Use the following command:
238
+
239
+ ```bash
240
+ conan install --requires="libuv/[*]" --build=missing
241
+ ```
242
+
243
+ The libuv Conan recipe is kept up to date by Conan maintainers and community contributors.
244
+ If the version is out of date, please [create an issue or pull request](https://github.com/conan-io/conan-center-index) on the ConanCenterIndex repository.
245
+
246
+
235
247
  ### Running tests
236
248
 
237
249
  Some tests are timing sensitive. Relaxing test timeouts may be necessary
@@ -1929,17 +1929,17 @@ struct uv_loop_s {
1929
1929
  UV_EXTERN void* uv_loop_get_data(const uv_loop_t*);
1930
1930
  UV_EXTERN void uv_loop_set_data(uv_loop_t*, void* data);
1931
1931
 
1932
- /* String utilities needed internally for dealing with Windows. */
1933
- size_t uv_utf16_length_as_wtf8(const uint16_t* utf16,
1934
- ssize_t utf16_len);
1935
- int uv_utf16_to_wtf8(const uint16_t* utf16,
1936
- ssize_t utf16_len,
1937
- char** wtf8_ptr,
1938
- size_t* wtf8_len_ptr);
1939
- ssize_t uv_wtf8_length_as_utf16(const char* wtf8);
1940
- void uv_wtf8_to_utf16(const char* wtf8,
1941
- uint16_t* utf16,
1942
- size_t utf16_len);
1932
+ /* Unicode utilities needed for dealing with Windows. */
1933
+ UV_EXTERN size_t uv_utf16_length_as_wtf8(const uint16_t* utf16,
1934
+ ssize_t utf16_len);
1935
+ UV_EXTERN int uv_utf16_to_wtf8(const uint16_t* utf16,
1936
+ ssize_t utf16_len,
1937
+ char** wtf8_ptr,
1938
+ size_t* wtf8_len_ptr);
1939
+ UV_EXTERN ssize_t uv_wtf8_length_as_utf16(const char* wtf8);
1940
+ UV_EXTERN void uv_wtf8_to_utf16(const char* wtf8,
1941
+ uint16_t* utf16,
1942
+ size_t utf16_len);
1943
1943
 
1944
1944
  /* Don't export the private CPP symbols. */
1945
1945
  #undef UV_HANDLE_TYPE_PRIVATE
@@ -82,7 +82,7 @@ static void uv__random_done(struct uv__work* w, int status) {
82
82
  uv_random_t* req;
83
83
 
84
84
  req = container_of(w, uv_random_t, work_req);
85
- uv__req_unregister(req->loop, req);
85
+ uv__req_unregister(req->loop);
86
86
 
87
87
  if (status == 0)
88
88
  status = req->status;
@@ -356,7 +356,7 @@ static void uv__queue_done(struct uv__work* w, int err) {
356
356
  uv_work_t* req;
357
357
 
358
358
  req = container_of(w, uv_work_t, work_req);
359
- uv__req_unregister(req->loop, req);
359
+ uv__req_unregister(req->loop);
360
360
 
361
361
  if (req->after_work_cb == NULL)
362
362
  return;