python-socks 2.4.3__tar.gz → 2.5.0__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 (274) hide show
  1. {python-socks-2.4.3 → python_socks-2.5.0}/MANIFEST.in +1 -0
  2. {python-socks-2.4.3/python_socks.egg-info → python_socks-2.5.0}/PKG-INFO +9 -8
  3. {python-socks-2.4.3 → python_socks-2.5.0}/README.md +3 -3
  4. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks/_connectors/socks4_async.py +1 -1
  5. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks/_connectors/socks4_sync.py +1 -1
  6. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks/_connectors/socks5_async.py +12 -2
  7. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks/_connectors/socks5_sync.py +12 -2
  8. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks/_protocols/socks5.py +3 -3
  9. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks/_version.py +1 -1
  10. {python-socks-2.4.3 → python_socks-2.5.0/python_socks.egg-info}/PKG-INFO +9 -8
  11. python_socks-2.5.0/python_socks.egg-info/SOURCES.txt +271 -0
  12. python_socks-2.5.0/tests/__init__.py +1 -0
  13. python_socks-2.5.0/tests/__pycache__/__init__.cpython-310.pyc +0 -0
  14. python_socks-2.5.0/tests/__pycache__/__init__.cpython-311.pyc +0 -0
  15. python_socks-2.5.0/tests/__pycache__/__init__.cpython-312.pyc +0 -0
  16. python_socks-2.5.0/tests/__pycache__/__init__.cpython-36.pyc +0 -0
  17. python_socks-2.5.0/tests/__pycache__/__init__.cpython-37.pyc +0 -0
  18. python_socks-2.5.0/tests/__pycache__/__init__.cpython-38.pyc +0 -0
  19. python_socks-2.5.0/tests/__pycache__/__init__.cpython-39.pyc +0 -0
  20. python_socks-2.5.0/tests/__pycache__/config.cpython-310.pyc +0 -0
  21. python_socks-2.5.0/tests/__pycache__/config.cpython-311.pyc +0 -0
  22. python_socks-2.5.0/tests/__pycache__/config.cpython-312.pyc +0 -0
  23. python_socks-2.5.0/tests/__pycache__/config.cpython-36.pyc +0 -0
  24. python_socks-2.5.0/tests/__pycache__/config.cpython-37.pyc +0 -0
  25. python_socks-2.5.0/tests/__pycache__/config.cpython-38.pyc +0 -0
  26. python_socks-2.5.0/tests/__pycache__/config.cpython-39.pyc +0 -0
  27. python_socks-2.5.0/tests/__pycache__/conftest.cpython-310-pytest-7.0.1.pyc +0 -0
  28. python_socks-2.5.0/tests/__pycache__/conftest.cpython-311-pytest-7.0.1.pyc +0 -0
  29. python_socks-2.5.0/tests/__pycache__/conftest.cpython-312-pytest-8.0.2.pyc +0 -0
  30. python_socks-2.5.0/tests/__pycache__/conftest.cpython-36-pytest-6.2.5.pyc +0 -0
  31. python_socks-2.5.0/tests/__pycache__/conftest.cpython-36-pytest-7.0.1.pyc +0 -0
  32. python_socks-2.5.0/tests/__pycache__/conftest.cpython-37-pytest-7.0.1.pyc +0 -0
  33. python_socks-2.5.0/tests/__pycache__/conftest.cpython-38-pytest-8.0.2.pyc +0 -0
  34. python_socks-2.5.0/tests/__pycache__/conftest.cpython-39-pytest-6.2.2.pyc +0 -0
  35. python_socks-2.5.0/tests/__pycache__/conftest.cpython-39-pytest-6.2.5.pyc +0 -0
  36. python_socks-2.5.0/tests/__pycache__/conftest.cpython-39-pytest-7.0.1.pyc +0 -0
  37. python_socks-2.5.0/tests/__pycache__/http_app.cpython-310.pyc +0 -0
  38. python_socks-2.5.0/tests/__pycache__/http_app.cpython-311.pyc +0 -0
  39. python_socks-2.5.0/tests/__pycache__/http_app.cpython-312.pyc +0 -0
  40. python_socks-2.5.0/tests/__pycache__/http_app.cpython-36.pyc +0 -0
  41. python_socks-2.5.0/tests/__pycache__/http_app.cpython-37.pyc +0 -0
  42. python_socks-2.5.0/tests/__pycache__/http_app.cpython-38.pyc +0 -0
  43. python_socks-2.5.0/tests/__pycache__/http_app.cpython-39.pyc +0 -0
  44. python_socks-2.5.0/tests/__pycache__/http_server.cpython-310.pyc +0 -0
  45. python_socks-2.5.0/tests/__pycache__/http_server.cpython-311.pyc +0 -0
  46. python_socks-2.5.0/tests/__pycache__/http_server.cpython-312.pyc +0 -0
  47. python_socks-2.5.0/tests/__pycache__/http_server.cpython-36.pyc +0 -0
  48. python_socks-2.5.0/tests/__pycache__/http_server.cpython-37.pyc +0 -0
  49. python_socks-2.5.0/tests/__pycache__/http_server.cpython-38.pyc +0 -0
  50. python_socks-2.5.0/tests/__pycache__/http_server.cpython-39.pyc +0 -0
  51. python_socks-2.5.0/tests/__pycache__/mocks.cpython-310.pyc +0 -0
  52. python_socks-2.5.0/tests/__pycache__/mocks.cpython-311.pyc +0 -0
  53. python_socks-2.5.0/tests/__pycache__/mocks.cpython-312.pyc +0 -0
  54. python_socks-2.5.0/tests/__pycache__/mocks.cpython-36.pyc +0 -0
  55. python_socks-2.5.0/tests/__pycache__/mocks.cpython-37.pyc +0 -0
  56. python_socks-2.5.0/tests/__pycache__/mocks.cpython-38.pyc +0 -0
  57. python_socks-2.5.0/tests/__pycache__/mocks.cpython-39.pyc +0 -0
  58. python_socks-2.5.0/tests/__pycache__/proxy_server.cpython-310.pyc +0 -0
  59. python_socks-2.5.0/tests/__pycache__/proxy_server.cpython-311.pyc +0 -0
  60. python_socks-2.5.0/tests/__pycache__/proxy_server.cpython-312.pyc +0 -0
  61. python_socks-2.5.0/tests/__pycache__/proxy_server.cpython-37.pyc +0 -0
  62. python_socks-2.5.0/tests/__pycache__/proxy_server.cpython-38.pyc +0 -0
  63. python_socks-2.5.0/tests/__pycache__/proxy_server.cpython-39.pyc +0 -0
  64. python_socks-2.5.0/tests/__pycache__/test_core_socks_async_aio.cpython-36-pytest-6.2.5.pyc +0 -0
  65. python_socks-2.5.0/tests/__pycache__/test_core_socks_async_aio.cpython-39-pytest-6.2.2.pyc +0 -0
  66. python_socks-2.5.0/tests/__pycache__/test_core_socks_async_aio.cpython-39-pytest-6.2.5.pyc +0 -0
  67. python_socks-2.5.0/tests/__pycache__/test_core_socks_async_aio_ext.cpython-36-pytest-6.2.5.pyc +0 -0
  68. python_socks-2.5.0/tests/__pycache__/test_core_socks_async_aio_ext.cpython-39-pytest-6.2.2.pyc +0 -0
  69. python_socks-2.5.0/tests/__pycache__/test_core_socks_async_aio_ext.cpython-39-pytest-6.2.5.pyc +0 -0
  70. python_socks-2.5.0/tests/__pycache__/test_core_socks_async_curio.cpython-36-pytest-6.2.5.pyc +0 -0
  71. python_socks-2.5.0/tests/__pycache__/test_core_socks_async_curio.cpython-39-pytest-6.2.2.pyc +0 -0
  72. python_socks-2.5.0/tests/__pycache__/test_core_socks_async_curio.cpython-39-pytest-6.2.5.pyc +0 -0
  73. python_socks-2.5.0/tests/__pycache__/test_core_socks_async_trio.cpython-36-pytest-6.2.5.pyc +0 -0
  74. python_socks-2.5.0/tests/__pycache__/test_core_socks_async_trio.cpython-39-pytest-6.2.2.pyc +0 -0
  75. python_socks-2.5.0/tests/__pycache__/test_core_socks_async_trio.cpython-39-pytest-6.2.5.pyc +0 -0
  76. python_socks-2.5.0/tests/__pycache__/test_core_socks_sync.cpython-36-pytest-6.2.5.pyc +0 -0
  77. python_socks-2.5.0/tests/__pycache__/test_core_socks_sync.cpython-39-pytest-6.2.2.pyc +0 -0
  78. python_socks-2.5.0/tests/__pycache__/test_core_socks_sync.cpython-39-pytest-6.2.5.pyc +0 -0
  79. python_socks-2.5.0/tests/__pycache__/test_misc.cpython-310-pytest-7.0.1.pyc +0 -0
  80. python_socks-2.5.0/tests/__pycache__/test_misc.cpython-311-pytest-7.0.1.pyc +0 -0
  81. python_socks-2.5.0/tests/__pycache__/test_misc.cpython-312-pytest-8.0.2.pyc +0 -0
  82. python_socks-2.5.0/tests/__pycache__/test_misc.cpython-36-pytest-6.2.5.pyc +0 -0
  83. python_socks-2.5.0/tests/__pycache__/test_misc.cpython-36-pytest-7.0.1.pyc +0 -0
  84. python_socks-2.5.0/tests/__pycache__/test_misc.cpython-37-pytest-7.0.1.pyc +0 -0
  85. python_socks-2.5.0/tests/__pycache__/test_misc.cpython-38-pytest-8.0.2.pyc +0 -0
  86. python_socks-2.5.0/tests/__pycache__/test_misc.cpython-39-pytest-6.2.2.pyc +0 -0
  87. python_socks-2.5.0/tests/__pycache__/test_misc.cpython-39-pytest-6.2.5.pyc +0 -0
  88. python_socks-2.5.0/tests/__pycache__/test_misc.cpython-39-pytest-7.0.1.pyc +0 -0
  89. python_socks-2.5.0/tests/__pycache__/test_proxy_async_aio.cpython-310-pytest-7.0.1.pyc +0 -0
  90. python_socks-2.5.0/tests/__pycache__/test_proxy_async_aio.cpython-311-pytest-7.0.1.pyc +0 -0
  91. python_socks-2.5.0/tests/__pycache__/test_proxy_async_aio.cpython-312-pytest-8.0.2.pyc +0 -0
  92. python_socks-2.5.0/tests/__pycache__/test_proxy_async_aio.cpython-36-pytest-6.2.5.pyc +0 -0
  93. python_socks-2.5.0/tests/__pycache__/test_proxy_async_aio.cpython-36-pytest-7.0.1.pyc +0 -0
  94. python_socks-2.5.0/tests/__pycache__/test_proxy_async_aio.cpython-37-pytest-7.0.1.pyc +0 -0
  95. python_socks-2.5.0/tests/__pycache__/test_proxy_async_aio.cpython-38-pytest-8.0.2.pyc +0 -0
  96. python_socks-2.5.0/tests/__pycache__/test_proxy_async_aio.cpython-39-pytest-6.2.5.pyc +0 -0
  97. python_socks-2.5.0/tests/__pycache__/test_proxy_async_aio.cpython-39-pytest-7.0.1.pyc +0 -0
  98. python_socks-2.5.0/tests/__pycache__/test_proxy_async_aio_ext.cpython-39-pytest-6.2.5.pyc +0 -0
  99. python_socks-2.5.0/tests/__pycache__/test_proxy_async_aio_v2.cpython-310-pytest-7.0.1.pyc +0 -0
  100. python_socks-2.5.0/tests/__pycache__/test_proxy_async_aio_v2.cpython-311-pytest-7.0.1.pyc +0 -0
  101. python_socks-2.5.0/tests/__pycache__/test_proxy_async_aio_v2.cpython-312-pytest-8.0.2.pyc +0 -0
  102. python_socks-2.5.0/tests/__pycache__/test_proxy_async_aio_v2.cpython-36-pytest-6.2.5.pyc +0 -0
  103. python_socks-2.5.0/tests/__pycache__/test_proxy_async_aio_v2.cpython-36-pytest-7.0.1.pyc +0 -0
  104. python_socks-2.5.0/tests/__pycache__/test_proxy_async_aio_v2.cpython-37-pytest-7.0.1.pyc +0 -0
  105. python_socks-2.5.0/tests/__pycache__/test_proxy_async_aio_v2.cpython-38-pytest-8.0.2.pyc +0 -0
  106. python_socks-2.5.0/tests/__pycache__/test_proxy_async_aio_v2.cpython-39-pytest-6.2.5.pyc +0 -0
  107. python_socks-2.5.0/tests/__pycache__/test_proxy_async_aio_v2.cpython-39-pytest-7.0.1.pyc +0 -0
  108. python_socks-2.5.0/tests/__pycache__/test_proxy_async_anyio.cpython-310-pytest-7.0.1.pyc +0 -0
  109. python_socks-2.5.0/tests/__pycache__/test_proxy_async_anyio.cpython-311-pytest-7.0.1.pyc +0 -0
  110. python_socks-2.5.0/tests/__pycache__/test_proxy_async_anyio.cpython-312-pytest-8.0.2.pyc +0 -0
  111. python_socks-2.5.0/tests/__pycache__/test_proxy_async_anyio.cpython-36-pytest-6.2.5.pyc +0 -0
  112. python_socks-2.5.0/tests/__pycache__/test_proxy_async_anyio.cpython-36-pytest-7.0.1.pyc +0 -0
  113. python_socks-2.5.0/tests/__pycache__/test_proxy_async_anyio.cpython-37-pytest-7.0.1.pyc +0 -0
  114. python_socks-2.5.0/tests/__pycache__/test_proxy_async_anyio.cpython-38-pytest-8.0.2.pyc +0 -0
  115. python_socks-2.5.0/tests/__pycache__/test_proxy_async_anyio.cpython-39-pytest-6.2.5.pyc +0 -0
  116. python_socks-2.5.0/tests/__pycache__/test_proxy_async_anyio.cpython-39-pytest-7.0.1.pyc +0 -0
  117. python_socks-2.5.0/tests/__pycache__/test_proxy_async_anyio_v2.cpython-310-pytest-7.0.1.pyc +0 -0
  118. python_socks-2.5.0/tests/__pycache__/test_proxy_async_anyio_v2.cpython-311-pytest-7.0.1.pyc +0 -0
  119. python_socks-2.5.0/tests/__pycache__/test_proxy_async_anyio_v2.cpython-312-pytest-8.0.2.pyc +0 -0
  120. python_socks-2.5.0/tests/__pycache__/test_proxy_async_anyio_v2.cpython-37-pytest-7.0.1.pyc +0 -0
  121. python_socks-2.5.0/tests/__pycache__/test_proxy_async_anyio_v2.cpython-38-pytest-8.0.2.pyc +0 -0
  122. python_socks-2.5.0/tests/__pycache__/test_proxy_async_curio.cpython-310-pytest-7.0.1.pyc +0 -0
  123. python_socks-2.5.0/tests/__pycache__/test_proxy_async_curio.cpython-311-pytest-7.0.1.pyc +0 -0
  124. python_socks-2.5.0/tests/__pycache__/test_proxy_async_curio.cpython-312-pytest-8.0.2.pyc +0 -0
  125. python_socks-2.5.0/tests/__pycache__/test_proxy_async_curio.cpython-36-pytest-6.2.5.pyc +0 -0
  126. python_socks-2.5.0/tests/__pycache__/test_proxy_async_curio.cpython-36-pytest-7.0.1.pyc +0 -0
  127. python_socks-2.5.0/tests/__pycache__/test_proxy_async_curio.cpython-37-pytest-7.0.1.pyc +0 -0
  128. python_socks-2.5.0/tests/__pycache__/test_proxy_async_curio.cpython-38-pytest-8.0.2.pyc +0 -0
  129. python_socks-2.5.0/tests/__pycache__/test_proxy_async_curio.cpython-39-pytest-6.2.5.pyc +0 -0
  130. python_socks-2.5.0/tests/__pycache__/test_proxy_async_curio.cpython-39-pytest-7.0.1.pyc +0 -0
  131. python_socks-2.5.0/tests/__pycache__/test_proxy_async_trio.cpython-310-pytest-7.0.1.pyc +0 -0
  132. python_socks-2.5.0/tests/__pycache__/test_proxy_async_trio.cpython-311-pytest-7.0.1.pyc +0 -0
  133. python_socks-2.5.0/tests/__pycache__/test_proxy_async_trio.cpython-312-pytest-8.0.2.pyc +0 -0
  134. python_socks-2.5.0/tests/__pycache__/test_proxy_async_trio.cpython-36-pytest-6.2.5.pyc +0 -0
  135. python_socks-2.5.0/tests/__pycache__/test_proxy_async_trio.cpython-36-pytest-7.0.1.pyc +0 -0
  136. python_socks-2.5.0/tests/__pycache__/test_proxy_async_trio.cpython-37-pytest-7.0.1.pyc +0 -0
  137. python_socks-2.5.0/tests/__pycache__/test_proxy_async_trio.cpython-38-pytest-8.0.2.pyc +0 -0
  138. python_socks-2.5.0/tests/__pycache__/test_proxy_async_trio.cpython-39-pytest-6.2.5.pyc +0 -0
  139. python_socks-2.5.0/tests/__pycache__/test_proxy_async_trio.cpython-39-pytest-7.0.1.pyc +0 -0
  140. python_socks-2.5.0/tests/__pycache__/test_proxy_async_trio_v2.cpython-310-pytest-7.0.1.pyc +0 -0
  141. python_socks-2.5.0/tests/__pycache__/test_proxy_async_trio_v2.cpython-311-pytest-7.0.1.pyc +0 -0
  142. python_socks-2.5.0/tests/__pycache__/test_proxy_async_trio_v2.cpython-312-pytest-8.0.2.pyc +0 -0
  143. python_socks-2.5.0/tests/__pycache__/test_proxy_async_trio_v2.cpython-36-pytest-6.2.5.pyc +0 -0
  144. python_socks-2.5.0/tests/__pycache__/test_proxy_async_trio_v2.cpython-36-pytest-7.0.1.pyc +0 -0
  145. python_socks-2.5.0/tests/__pycache__/test_proxy_async_trio_v2.cpython-37-pytest-7.0.1.pyc +0 -0
  146. python_socks-2.5.0/tests/__pycache__/test_proxy_async_trio_v2.cpython-38-pytest-8.0.2.pyc +0 -0
  147. python_socks-2.5.0/tests/__pycache__/test_proxy_async_trio_v2.cpython-39-pytest-6.2.5.pyc +0 -0
  148. python_socks-2.5.0/tests/__pycache__/test_proxy_async_trio_v2.cpython-39-pytest-7.0.1.pyc +0 -0
  149. python_socks-2.5.0/tests/__pycache__/test_proxy_sync.cpython-310-pytest-7.0.1.pyc +0 -0
  150. python_socks-2.5.0/tests/__pycache__/test_proxy_sync.cpython-311-pytest-7.0.1.pyc +0 -0
  151. python_socks-2.5.0/tests/__pycache__/test_proxy_sync.cpython-312-pytest-8.0.2.pyc +0 -0
  152. python_socks-2.5.0/tests/__pycache__/test_proxy_sync.cpython-36-pytest-6.2.5.pyc +0 -0
  153. python_socks-2.5.0/tests/__pycache__/test_proxy_sync.cpython-36-pytest-7.0.1.pyc +0 -0
  154. python_socks-2.5.0/tests/__pycache__/test_proxy_sync.cpython-37-pytest-7.0.1.pyc +0 -0
  155. python_socks-2.5.0/tests/__pycache__/test_proxy_sync.cpython-38-pytest-8.0.2.pyc +0 -0
  156. python_socks-2.5.0/tests/__pycache__/test_proxy_sync.cpython-39-pytest-6.2.5.pyc +0 -0
  157. python_socks-2.5.0/tests/__pycache__/test_proxy_sync.cpython-39-pytest-7.0.1.pyc +0 -0
  158. python_socks-2.5.0/tests/__pycache__/test_proxy_sync_v2.cpython-310-pytest-7.0.1.pyc +0 -0
  159. python_socks-2.5.0/tests/__pycache__/test_proxy_sync_v2.cpython-311-pytest-7.0.1.pyc +0 -0
  160. python_socks-2.5.0/tests/__pycache__/test_proxy_sync_v2.cpython-312-pytest-8.0.2.pyc +0 -0
  161. python_socks-2.5.0/tests/__pycache__/test_proxy_sync_v2.cpython-36-pytest-6.2.5.pyc +0 -0
  162. python_socks-2.5.0/tests/__pycache__/test_proxy_sync_v2.cpython-36-pytest-7.0.1.pyc +0 -0
  163. python_socks-2.5.0/tests/__pycache__/test_proxy_sync_v2.cpython-37-pytest-7.0.1.pyc +0 -0
  164. python_socks-2.5.0/tests/__pycache__/test_proxy_sync_v2.cpython-38-pytest-8.0.2.pyc +0 -0
  165. python_socks-2.5.0/tests/__pycache__/test_proxy_sync_v2.cpython-39-pytest-6.2.5.pyc +0 -0
  166. python_socks-2.5.0/tests/__pycache__/test_proxy_sync_v2.cpython-39-pytest-7.0.1.pyc +0 -0
  167. python_socks-2.5.0/tests/__pycache__/test_resolvers.cpython-310-pytest-7.0.1.pyc +0 -0
  168. python_socks-2.5.0/tests/__pycache__/test_resolvers.cpython-311-pytest-7.0.1.pyc +0 -0
  169. python_socks-2.5.0/tests/__pycache__/test_resolvers.cpython-312-pytest-8.0.2.pyc +0 -0
  170. python_socks-2.5.0/tests/__pycache__/test_resolvers.cpython-36-pytest-6.2.5.pyc +0 -0
  171. python_socks-2.5.0/tests/__pycache__/test_resolvers.cpython-36-pytest-7.0.1.pyc +0 -0
  172. python_socks-2.5.0/tests/__pycache__/test_resolvers.cpython-37-pytest-7.0.1.pyc +0 -0
  173. python_socks-2.5.0/tests/__pycache__/test_resolvers.cpython-38-pytest-8.0.2.pyc +0 -0
  174. python_socks-2.5.0/tests/__pycache__/test_resolvers.cpython-39-pytest-6.2.2.pyc +0 -0
  175. python_socks-2.5.0/tests/__pycache__/test_resolvers.cpython-39-pytest-6.2.5.pyc +0 -0
  176. python_socks-2.5.0/tests/__pycache__/test_resolvers.cpython-39-pytest-7.0.1.pyc +0 -0
  177. python_socks-2.5.0/tests/__pycache__/utils.cpython-310.pyc +0 -0
  178. python_socks-2.5.0/tests/__pycache__/utils.cpython-311.pyc +0 -0
  179. python_socks-2.5.0/tests/__pycache__/utils.cpython-312.pyc +0 -0
  180. python_socks-2.5.0/tests/__pycache__/utils.cpython-36.pyc +0 -0
  181. python_socks-2.5.0/tests/__pycache__/utils.cpython-37.pyc +0 -0
  182. python_socks-2.5.0/tests/__pycache__/utils.cpython-38.pyc +0 -0
  183. python_socks-2.5.0/tests/__pycache__/utils.cpython-39.pyc +0 -0
  184. python_socks-2.5.0/tests/config.py +90 -0
  185. python_socks-2.5.0/tests/conftest.py +268 -0
  186. python_socks-2.5.0/tests/http_app.py +22 -0
  187. python_socks-2.5.0/tests/http_server.py +51 -0
  188. python_socks-2.5.0/tests/mocks.py +81 -0
  189. python_socks-2.5.0/tests/proxy_server.py +135 -0
  190. python_socks-2.5.0/tests/test_misc.py +21 -0
  191. python_socks-2.5.0/tests/test_proxy_async_aio.py +212 -0
  192. python_socks-2.5.0/tests/test_proxy_async_aio_v2.py +226 -0
  193. python_socks-2.5.0/tests/test_proxy_async_anyio.py +232 -0
  194. python_socks-2.5.0/tests/test_proxy_async_anyio_v2.py +232 -0
  195. python_socks-2.5.0/tests/test_proxy_async_curio.py +249 -0
  196. python_socks-2.5.0/tests/test_proxy_async_trio.py +214 -0
  197. python_socks-2.5.0/tests/test_proxy_async_trio_v2.py +232 -0
  198. python_socks-2.5.0/tests/test_proxy_sync.py +205 -0
  199. python_socks-2.5.0/tests/test_proxy_sync_v2.py +235 -0
  200. python_socks-2.5.0/tests/test_resolvers.py +99 -0
  201. python_socks-2.5.0/tests/utils.py +24 -0
  202. python-socks-2.4.3/python_socks.egg-info/SOURCES.txt +0 -81
  203. {python-socks-2.4.3 → python_socks-2.5.0}/LICENSE.txt +0 -0
  204. {python-socks-2.4.3 → python_socks-2.5.0}/pyproject.toml +0 -0
  205. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks/__init__.py +0 -0
  206. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks/_abc.py +0 -0
  207. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks/_connectors/__init__.py +0 -0
  208. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks/_connectors/abc.py +0 -0
  209. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks/_connectors/factory_async.py +0 -0
  210. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks/_connectors/factory_sync.py +0 -0
  211. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks/_connectors/http_async.py +0 -0
  212. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks/_connectors/http_sync.py +0 -0
  213. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks/_errors.py +0 -0
  214. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks/_helpers.py +0 -0
  215. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks/_protocols/__init__.py +0 -0
  216. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks/_protocols/errors.py +0 -0
  217. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks/_protocols/http.py +0 -0
  218. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks/_protocols/socks4.py +0 -0
  219. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks/_types.py +0 -0
  220. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks/async_/__init__.py +0 -0
  221. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks/async_/_proxy_chain.py +0 -0
  222. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks/async_/anyio/__init__.py +0 -0
  223. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks/async_/anyio/_chain.py +0 -0
  224. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks/async_/anyio/_connect.py +0 -0
  225. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks/async_/anyio/_proxy.py +0 -0
  226. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks/async_/anyio/_resolver.py +0 -0
  227. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks/async_/anyio/_stream.py +0 -0
  228. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks/async_/anyio/v2/__init__.py +0 -0
  229. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks/async_/anyio/v2/_chain.py +0 -0
  230. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks/async_/anyio/v2/_connect.py +0 -0
  231. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks/async_/anyio/v2/_proxy.py +0 -0
  232. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks/async_/anyio/v2/_stream.py +0 -0
  233. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks/async_/asyncio/__init__.py +0 -0
  234. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks/async_/asyncio/_connect.py +0 -0
  235. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks/async_/asyncio/_proxy.py +0 -0
  236. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks/async_/asyncio/_resolver.py +0 -0
  237. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks/async_/asyncio/_stream.py +0 -0
  238. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks/async_/asyncio/v2/__init__.py +0 -0
  239. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks/async_/asyncio/v2/_chain.py +0 -0
  240. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks/async_/asyncio/v2/_connect.py +0 -0
  241. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks/async_/asyncio/v2/_proxy.py +0 -0
  242. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks/async_/asyncio/v2/_stream.py +0 -0
  243. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks/async_/curio/__init__.py +0 -0
  244. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks/async_/curio/_connect.py +0 -0
  245. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks/async_/curio/_proxy.py +0 -0
  246. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks/async_/curio/_resolver.py +0 -0
  247. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks/async_/curio/_stream.py +0 -0
  248. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks/async_/trio/__init__.py +0 -0
  249. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks/async_/trio/_connect.py +0 -0
  250. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks/async_/trio/_proxy.py +0 -0
  251. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks/async_/trio/_resolver.py +0 -0
  252. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks/async_/trio/_stream.py +0 -0
  253. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks/async_/trio/v2/__init__.py +0 -0
  254. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks/async_/trio/v2/_chain.py +0 -0
  255. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks/async_/trio/v2/_connect.py +0 -0
  256. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks/async_/trio/v2/_proxy.py +0 -0
  257. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks/async_/trio/v2/_stream.py +0 -0
  258. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks/sync/__init__.py +0 -0
  259. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks/sync/_chain.py +0 -0
  260. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks/sync/_connect.py +0 -0
  261. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks/sync/_proxy.py +0 -0
  262. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks/sync/_resolver.py +0 -0
  263. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks/sync/_stream.py +0 -0
  264. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks/sync/v2/__init__.py +0 -0
  265. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks/sync/v2/_chain.py +0 -0
  266. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks/sync/v2/_connect.py +0 -0
  267. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks/sync/v2/_proxy.py +0 -0
  268. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks/sync/v2/_ssl_transport.py +0 -0
  269. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks/sync/v2/_stream.py +0 -0
  270. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks.egg-info/dependency_links.txt +0 -0
  271. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks.egg-info/requires.txt +0 -0
  272. {python-socks-2.4.3 → python_socks-2.5.0}/python_socks.egg-info/top_level.txt +0 -0
  273. {python-socks-2.4.3 → python_socks-2.5.0}/setup.cfg +0 -0
  274. {python-socks-2.4.3 → python_socks-2.5.0}/setup.py +0 -0
@@ -1,2 +1,3 @@
1
1
  # Include the license file
2
2
  include LICENSE.txt
3
+ recursive-include tests *
@@ -1,25 +1,28 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: python-socks
3
- Version: 2.4.3
3
+ Version: 2.5.0
4
4
  Summary: Core proxy (SOCKS4, SOCKS5, HTTP tunneling) functionality for Python
5
5
  Home-page: https://github.com/romis2012/python-socks
6
6
  Author: Roman Snegirev
7
7
  Author-email: snegiryev@gmail.com
8
8
  License: Apache 2
9
9
  Keywords: socks socks5 socks4 http proxy asyncio trio curio anyio
10
- Platform: UNKNOWN
11
10
  Description-Content-Type: text/markdown
11
+ License-File: LICENSE.txt
12
12
  Provides-Extra: asyncio
13
+ Requires-Dist: async-timeout>=3.0.1; extra == "asyncio"
13
14
  Provides-Extra: trio
15
+ Requires-Dist: trio>=0.16.0; extra == "trio"
14
16
  Provides-Extra: curio
17
+ Requires-Dist: curio>=1.4; extra == "curio"
15
18
  Provides-Extra: anyio
16
- License-File: LICENSE.txt
19
+ Requires-Dist: anyio<5.0.0,>=3.3.4; extra == "anyio"
17
20
 
18
21
  ## python-socks
19
22
 
20
- [![Build Status](https://api.travis-ci.com/romis2012/python-socks.svg?branch=master)](https://travis-ci.com/github/romis2012/python-socks)
21
- [![Coverage Status](https://coveralls.io/repos/github/romis2012/python-socks/badge.svg?branch=master&_=q)](https://coveralls.io/github/romis2012/python-socks?branch=master)
22
- [![PyPI version](https://badge.fury.io/py/python-socks.svg)](https://badge.fury.io/py/python-socks)
23
+ [![CI](https://github.com/romis2012/python-socks/actions/workflows/ci.yml/badge.svg)](https://github.com/romis2012/python-socks/actions/workflows/ci.yml)
24
+ [![Coverage Status](https://codecov.io/gh/romis2012/python-socks/branch/master/graph/badge.svg)](https://codecov.io/gh/romis2012/python-socks)
25
+ [![PyPI version](https://badge.fury.io/py/python-socks.svg)](https://pypi.python.org/pypi/python-socks)
23
26
  <!--
24
27
  [![Downloads](https://pepy.tech/badge/python-socks/month)](https://pepy.tech/project/python-socks)
25
28
  -->
@@ -268,5 +271,3 @@ manager = ProxyPoolManager('socks5://user:password@127.0.0.1:1080')
268
271
  response = manager.request('GET', 'https://check-host.net/ip')
269
272
  print(response.data)
270
273
  ```
271
-
272
-
@@ -1,8 +1,8 @@
1
1
  ## python-socks
2
2
 
3
- [![Build Status](https://api.travis-ci.com/romis2012/python-socks.svg?branch=master)](https://travis-ci.com/github/romis2012/python-socks)
4
- [![Coverage Status](https://coveralls.io/repos/github/romis2012/python-socks/badge.svg?branch=master&_=q)](https://coveralls.io/github/romis2012/python-socks?branch=master)
5
- [![PyPI version](https://badge.fury.io/py/python-socks.svg)](https://badge.fury.io/py/python-socks)
3
+ [![CI](https://github.com/romis2012/python-socks/actions/workflows/ci.yml/badge.svg)](https://github.com/romis2012/python-socks/actions/workflows/ci.yml)
4
+ [![Coverage Status](https://codecov.io/gh/romis2012/python-socks/branch/master/graph/badge.svg)](https://codecov.io/gh/romis2012/python-socks)
5
+ [![PyPI version](https://badge.fury.io/py/python-socks.svg)](https://pypi.python.org/pypi/python-socks)
6
6
  <!--
7
7
  [![Downloads](https://pepy.tech/badge/python-socks/month)](https://pepy.tech/project/python-socks)
8
8
  -->
@@ -30,7 +30,7 @@ class Socks4AsyncConnector(AsyncConnector):
30
30
  conn = socks4.Connection()
31
31
 
32
32
  if not is_ip_address(host) and not self._rdns:
33
- _, dest_host = await self._resolver.resolve(
33
+ _, host = await self._resolver.resolve(
34
34
  host,
35
35
  family=socket.AF_INET,
36
36
  )
@@ -30,7 +30,7 @@ class Socks4SyncConnector(SyncConnector):
30
30
  conn = socks4.Connection()
31
31
 
32
32
  if not is_ip_address(host) and not self._rdns:
33
- _, dest_host = self._resolver.resolve(
33
+ _, host = self._resolver.resolve(
34
34
  host,
35
35
  family=socket.AF_INET,
36
36
  )
@@ -3,6 +3,7 @@ import socket
3
3
  from .._abc import AsyncSocketStream, AsyncResolver
4
4
  from .abc import AsyncConnector
5
5
 
6
+ from .._protocols.errors import ReplyError
6
7
  from .._protocols import socks5
7
8
  from .._helpers import is_ip_address
8
9
 
@@ -56,7 +57,7 @@ class Socks5AsyncConnector(AsyncConnector):
56
57
 
57
58
  # Connect
58
59
  if not is_ip_address(host) and not self._rdns:
59
- _, dest_host = await self._resolver.resolve(
60
+ _, host = await self._resolver.resolve(
60
61
  host,
61
62
  family=socket.AF_UNSPEC,
62
63
  )
@@ -65,6 +66,15 @@ class Socks5AsyncConnector(AsyncConnector):
65
66
  data = conn.send(request)
66
67
  await stream.write_all(data)
67
68
 
68
- data = await stream.read()
69
+ data = await stream.read_exact(4)
70
+ if data[3] == socks5.AddressType.IPV4:
71
+ data += await stream.read_exact(6)
72
+ elif data[3] == socks5.AddressType.IPV6:
73
+ data += await stream.read_exact(18)
74
+ elif data[3] == socks5.AddressType.DOMAIN:
75
+ data += await stream.read_exact(int.from_bytes(await stream.read_exact(1)) + 2)
76
+ else: # pragma: no cover
77
+ raise ReplyError(f'Invalid address type: {data[3]:#02X}')
78
+
69
79
  reply: socks5.ConnectReply = conn.receive(data)
70
80
  return reply
@@ -3,6 +3,7 @@ import socket
3
3
  from .._abc import SyncSocketStream, SyncResolver
4
4
  from .abc import SyncConnector
5
5
 
6
+ from .._protocols.errors import ReplyError
6
7
  from .._protocols import socks5
7
8
  from .._helpers import is_ip_address
8
9
 
@@ -50,12 +51,21 @@ class Socks5SyncConnector(SyncConnector):
50
51
 
51
52
  # Connect
52
53
  if not is_ip_address(host) and not self._rdns:
53
- _, dest_host = self._resolver.resolve(host, family=socket.AF_UNSPEC)
54
+ _, host = self._resolver.resolve(host, family=socket.AF_UNSPEC)
54
55
 
55
56
  request = socks5.ConnectRequest(host=host, port=port)
56
57
  data = conn.send(request)
57
58
  stream.write_all(data)
58
59
 
59
- data = stream.read()
60
+ data = stream.read_exact(4)
61
+ if data[3] == socks5.AddressType.IPV4:
62
+ data += stream.read_exact(6)
63
+ elif data[3] == socks5.AddressType.IPV6:
64
+ data += stream.read_exact(18)
65
+ elif data[3] == socks5.AddressType.DOMAIN:
66
+ data += stream.read_exact(int.from_bytes(stream.read_exact(1)) + 2)
67
+ else: # pragma: no cover
68
+ raise ReplyError(f'Invalid address type: {data[3]:#02X}')
69
+
60
70
  reply: socks5.ConnectReply = conn.receive(data)
61
71
  return reply
@@ -200,7 +200,7 @@ class ConnectReply:
200
200
  try:
201
201
  reply = ReplyCode(data[1])
202
202
  except IndexError:
203
- raise ReplyError(f'Malformed connect reply')
203
+ raise ReplyError('Malformed connect reply')
204
204
  except ValueError:
205
205
  raise ReplyError(f'Invalid reply code: {data[1]:#02X}')
206
206
 
@@ -211,7 +211,7 @@ class ConnectReply:
211
211
  try:
212
212
  rsv = data[2]
213
213
  except IndexError:
214
- raise ReplyError(f'Malformed connect reply')
214
+ raise ReplyError('Malformed connect reply')
215
215
 
216
216
  if rsv != RSV: # pragma: no cover
217
217
  raise ReplyError(f'The reserved byte must be {RSV:#02X}')
@@ -221,7 +221,7 @@ class ConnectReply:
221
221
  bnd_host_data = data[4:-2]
222
222
  bnd_port_data = data[-2:]
223
223
  except IndexError:
224
- raise ReplyError(f'Malformed connect reply')
224
+ raise ReplyError('Malformed connect reply')
225
225
 
226
226
  if addr_type == AddressType.IPV4:
227
227
  bnd_host = socket.inet_ntop(socket.AF_INET, bnd_host_data)
@@ -1,2 +1,2 @@
1
1
  __title__ = 'python-socks'
2
- __version__ = '2.4.3'
2
+ __version__ = '2.5.0'
@@ -1,25 +1,28 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: python-socks
3
- Version: 2.4.3
3
+ Version: 2.5.0
4
4
  Summary: Core proxy (SOCKS4, SOCKS5, HTTP tunneling) functionality for Python
5
5
  Home-page: https://github.com/romis2012/python-socks
6
6
  Author: Roman Snegirev
7
7
  Author-email: snegiryev@gmail.com
8
8
  License: Apache 2
9
9
  Keywords: socks socks5 socks4 http proxy asyncio trio curio anyio
10
- Platform: UNKNOWN
11
10
  Description-Content-Type: text/markdown
11
+ License-File: LICENSE.txt
12
12
  Provides-Extra: asyncio
13
+ Requires-Dist: async-timeout>=3.0.1; extra == "asyncio"
13
14
  Provides-Extra: trio
15
+ Requires-Dist: trio>=0.16.0; extra == "trio"
14
16
  Provides-Extra: curio
17
+ Requires-Dist: curio>=1.4; extra == "curio"
15
18
  Provides-Extra: anyio
16
- License-File: LICENSE.txt
19
+ Requires-Dist: anyio<5.0.0,>=3.3.4; extra == "anyio"
17
20
 
18
21
  ## python-socks
19
22
 
20
- [![Build Status](https://api.travis-ci.com/romis2012/python-socks.svg?branch=master)](https://travis-ci.com/github/romis2012/python-socks)
21
- [![Coverage Status](https://coveralls.io/repos/github/romis2012/python-socks/badge.svg?branch=master&_=q)](https://coveralls.io/github/romis2012/python-socks?branch=master)
22
- [![PyPI version](https://badge.fury.io/py/python-socks.svg)](https://badge.fury.io/py/python-socks)
23
+ [![CI](https://github.com/romis2012/python-socks/actions/workflows/ci.yml/badge.svg)](https://github.com/romis2012/python-socks/actions/workflows/ci.yml)
24
+ [![Coverage Status](https://codecov.io/gh/romis2012/python-socks/branch/master/graph/badge.svg)](https://codecov.io/gh/romis2012/python-socks)
25
+ [![PyPI version](https://badge.fury.io/py/python-socks.svg)](https://pypi.python.org/pypi/python-socks)
23
26
  <!--
24
27
  [![Downloads](https://pepy.tech/badge/python-socks/month)](https://pepy.tech/project/python-socks)
25
28
  -->
@@ -268,5 +271,3 @@ manager = ProxyPoolManager('socks5://user:password@127.0.0.1:1080')
268
271
  response = manager.request('GET', 'https://check-host.net/ip')
269
272
  print(response.data)
270
273
  ```
271
-
272
-
@@ -0,0 +1,271 @@
1
+ LICENSE.txt
2
+ MANIFEST.in
3
+ README.md
4
+ pyproject.toml
5
+ setup.py
6
+ python_socks/__init__.py
7
+ python_socks/_abc.py
8
+ python_socks/_errors.py
9
+ python_socks/_helpers.py
10
+ python_socks/_types.py
11
+ python_socks/_version.py
12
+ python_socks.egg-info/PKG-INFO
13
+ python_socks.egg-info/SOURCES.txt
14
+ python_socks.egg-info/dependency_links.txt
15
+ python_socks.egg-info/requires.txt
16
+ python_socks.egg-info/top_level.txt
17
+ python_socks/_connectors/__init__.py
18
+ python_socks/_connectors/abc.py
19
+ python_socks/_connectors/factory_async.py
20
+ python_socks/_connectors/factory_sync.py
21
+ python_socks/_connectors/http_async.py
22
+ python_socks/_connectors/http_sync.py
23
+ python_socks/_connectors/socks4_async.py
24
+ python_socks/_connectors/socks4_sync.py
25
+ python_socks/_connectors/socks5_async.py
26
+ python_socks/_connectors/socks5_sync.py
27
+ python_socks/_protocols/__init__.py
28
+ python_socks/_protocols/errors.py
29
+ python_socks/_protocols/http.py
30
+ python_socks/_protocols/socks4.py
31
+ python_socks/_protocols/socks5.py
32
+ python_socks/async_/__init__.py
33
+ python_socks/async_/_proxy_chain.py
34
+ python_socks/async_/anyio/__init__.py
35
+ python_socks/async_/anyio/_chain.py
36
+ python_socks/async_/anyio/_connect.py
37
+ python_socks/async_/anyio/_proxy.py
38
+ python_socks/async_/anyio/_resolver.py
39
+ python_socks/async_/anyio/_stream.py
40
+ python_socks/async_/anyio/v2/__init__.py
41
+ python_socks/async_/anyio/v2/_chain.py
42
+ python_socks/async_/anyio/v2/_connect.py
43
+ python_socks/async_/anyio/v2/_proxy.py
44
+ python_socks/async_/anyio/v2/_stream.py
45
+ python_socks/async_/asyncio/__init__.py
46
+ python_socks/async_/asyncio/_connect.py
47
+ python_socks/async_/asyncio/_proxy.py
48
+ python_socks/async_/asyncio/_resolver.py
49
+ python_socks/async_/asyncio/_stream.py
50
+ python_socks/async_/asyncio/v2/__init__.py
51
+ python_socks/async_/asyncio/v2/_chain.py
52
+ python_socks/async_/asyncio/v2/_connect.py
53
+ python_socks/async_/asyncio/v2/_proxy.py
54
+ python_socks/async_/asyncio/v2/_stream.py
55
+ python_socks/async_/curio/__init__.py
56
+ python_socks/async_/curio/_connect.py
57
+ python_socks/async_/curio/_proxy.py
58
+ python_socks/async_/curio/_resolver.py
59
+ python_socks/async_/curio/_stream.py
60
+ python_socks/async_/trio/__init__.py
61
+ python_socks/async_/trio/_connect.py
62
+ python_socks/async_/trio/_proxy.py
63
+ python_socks/async_/trio/_resolver.py
64
+ python_socks/async_/trio/_stream.py
65
+ python_socks/async_/trio/v2/__init__.py
66
+ python_socks/async_/trio/v2/_chain.py
67
+ python_socks/async_/trio/v2/_connect.py
68
+ python_socks/async_/trio/v2/_proxy.py
69
+ python_socks/async_/trio/v2/_stream.py
70
+ python_socks/sync/__init__.py
71
+ python_socks/sync/_chain.py
72
+ python_socks/sync/_connect.py
73
+ python_socks/sync/_proxy.py
74
+ python_socks/sync/_resolver.py
75
+ python_socks/sync/_stream.py
76
+ python_socks/sync/v2/__init__.py
77
+ python_socks/sync/v2/_chain.py
78
+ python_socks/sync/v2/_connect.py
79
+ python_socks/sync/v2/_proxy.py
80
+ python_socks/sync/v2/_ssl_transport.py
81
+ python_socks/sync/v2/_stream.py
82
+ tests/__init__.py
83
+ tests/config.py
84
+ tests/conftest.py
85
+ tests/http_app.py
86
+ tests/http_server.py
87
+ tests/mocks.py
88
+ tests/proxy_server.py
89
+ tests/test_misc.py
90
+ tests/test_proxy_async_aio.py
91
+ tests/test_proxy_async_aio_v2.py
92
+ tests/test_proxy_async_anyio.py
93
+ tests/test_proxy_async_anyio_v2.py
94
+ tests/test_proxy_async_curio.py
95
+ tests/test_proxy_async_trio.py
96
+ tests/test_proxy_async_trio_v2.py
97
+ tests/test_proxy_sync.py
98
+ tests/test_proxy_sync_v2.py
99
+ tests/test_resolvers.py
100
+ tests/utils.py
101
+ tests/__pycache__/__init__.cpython-310.pyc
102
+ tests/__pycache__/__init__.cpython-311.pyc
103
+ tests/__pycache__/__init__.cpython-312.pyc
104
+ tests/__pycache__/__init__.cpython-36.pyc
105
+ tests/__pycache__/__init__.cpython-37.pyc
106
+ tests/__pycache__/__init__.cpython-38.pyc
107
+ tests/__pycache__/__init__.cpython-39.pyc
108
+ tests/__pycache__/config.cpython-310.pyc
109
+ tests/__pycache__/config.cpython-311.pyc
110
+ tests/__pycache__/config.cpython-312.pyc
111
+ tests/__pycache__/config.cpython-36.pyc
112
+ tests/__pycache__/config.cpython-37.pyc
113
+ tests/__pycache__/config.cpython-38.pyc
114
+ tests/__pycache__/config.cpython-39.pyc
115
+ tests/__pycache__/conftest.cpython-310-pytest-7.0.1.pyc
116
+ tests/__pycache__/conftest.cpython-311-pytest-7.0.1.pyc
117
+ tests/__pycache__/conftest.cpython-312-pytest-8.0.2.pyc
118
+ tests/__pycache__/conftest.cpython-36-pytest-6.2.5.pyc
119
+ tests/__pycache__/conftest.cpython-36-pytest-7.0.1.pyc
120
+ tests/__pycache__/conftest.cpython-37-pytest-7.0.1.pyc
121
+ tests/__pycache__/conftest.cpython-38-pytest-8.0.2.pyc
122
+ tests/__pycache__/conftest.cpython-39-pytest-6.2.2.pyc
123
+ tests/__pycache__/conftest.cpython-39-pytest-6.2.5.pyc
124
+ tests/__pycache__/conftest.cpython-39-pytest-7.0.1.pyc
125
+ tests/__pycache__/http_app.cpython-310.pyc
126
+ tests/__pycache__/http_app.cpython-311.pyc
127
+ tests/__pycache__/http_app.cpython-312.pyc
128
+ tests/__pycache__/http_app.cpython-36.pyc
129
+ tests/__pycache__/http_app.cpython-37.pyc
130
+ tests/__pycache__/http_app.cpython-38.pyc
131
+ tests/__pycache__/http_app.cpython-39.pyc
132
+ tests/__pycache__/http_server.cpython-310.pyc
133
+ tests/__pycache__/http_server.cpython-311.pyc
134
+ tests/__pycache__/http_server.cpython-312.pyc
135
+ tests/__pycache__/http_server.cpython-36.pyc
136
+ tests/__pycache__/http_server.cpython-37.pyc
137
+ tests/__pycache__/http_server.cpython-38.pyc
138
+ tests/__pycache__/http_server.cpython-39.pyc
139
+ tests/__pycache__/mocks.cpython-310.pyc
140
+ tests/__pycache__/mocks.cpython-311.pyc
141
+ tests/__pycache__/mocks.cpython-312.pyc
142
+ tests/__pycache__/mocks.cpython-36.pyc
143
+ tests/__pycache__/mocks.cpython-37.pyc
144
+ tests/__pycache__/mocks.cpython-38.pyc
145
+ tests/__pycache__/mocks.cpython-39.pyc
146
+ tests/__pycache__/proxy_server.cpython-310.pyc
147
+ tests/__pycache__/proxy_server.cpython-311.pyc
148
+ tests/__pycache__/proxy_server.cpython-312.pyc
149
+ tests/__pycache__/proxy_server.cpython-37.pyc
150
+ tests/__pycache__/proxy_server.cpython-38.pyc
151
+ tests/__pycache__/proxy_server.cpython-39.pyc
152
+ tests/__pycache__/test_core_socks_async_aio.cpython-36-pytest-6.2.5.pyc
153
+ tests/__pycache__/test_core_socks_async_aio.cpython-39-pytest-6.2.2.pyc
154
+ tests/__pycache__/test_core_socks_async_aio.cpython-39-pytest-6.2.5.pyc
155
+ tests/__pycache__/test_core_socks_async_aio_ext.cpython-36-pytest-6.2.5.pyc
156
+ tests/__pycache__/test_core_socks_async_aio_ext.cpython-39-pytest-6.2.2.pyc
157
+ tests/__pycache__/test_core_socks_async_aio_ext.cpython-39-pytest-6.2.5.pyc
158
+ tests/__pycache__/test_core_socks_async_curio.cpython-36-pytest-6.2.5.pyc
159
+ tests/__pycache__/test_core_socks_async_curio.cpython-39-pytest-6.2.2.pyc
160
+ tests/__pycache__/test_core_socks_async_curio.cpython-39-pytest-6.2.5.pyc
161
+ tests/__pycache__/test_core_socks_async_trio.cpython-36-pytest-6.2.5.pyc
162
+ tests/__pycache__/test_core_socks_async_trio.cpython-39-pytest-6.2.2.pyc
163
+ tests/__pycache__/test_core_socks_async_trio.cpython-39-pytest-6.2.5.pyc
164
+ tests/__pycache__/test_core_socks_sync.cpython-36-pytest-6.2.5.pyc
165
+ tests/__pycache__/test_core_socks_sync.cpython-39-pytest-6.2.2.pyc
166
+ tests/__pycache__/test_core_socks_sync.cpython-39-pytest-6.2.5.pyc
167
+ tests/__pycache__/test_misc.cpython-310-pytest-7.0.1.pyc
168
+ tests/__pycache__/test_misc.cpython-311-pytest-7.0.1.pyc
169
+ tests/__pycache__/test_misc.cpython-312-pytest-8.0.2.pyc
170
+ tests/__pycache__/test_misc.cpython-36-pytest-6.2.5.pyc
171
+ tests/__pycache__/test_misc.cpython-36-pytest-7.0.1.pyc
172
+ tests/__pycache__/test_misc.cpython-37-pytest-7.0.1.pyc
173
+ tests/__pycache__/test_misc.cpython-38-pytest-8.0.2.pyc
174
+ tests/__pycache__/test_misc.cpython-39-pytest-6.2.2.pyc
175
+ tests/__pycache__/test_misc.cpython-39-pytest-6.2.5.pyc
176
+ tests/__pycache__/test_misc.cpython-39-pytest-7.0.1.pyc
177
+ tests/__pycache__/test_proxy_async_aio.cpython-310-pytest-7.0.1.pyc
178
+ tests/__pycache__/test_proxy_async_aio.cpython-311-pytest-7.0.1.pyc
179
+ tests/__pycache__/test_proxy_async_aio.cpython-312-pytest-8.0.2.pyc
180
+ tests/__pycache__/test_proxy_async_aio.cpython-36-pytest-6.2.5.pyc
181
+ tests/__pycache__/test_proxy_async_aio.cpython-36-pytest-7.0.1.pyc
182
+ tests/__pycache__/test_proxy_async_aio.cpython-37-pytest-7.0.1.pyc
183
+ tests/__pycache__/test_proxy_async_aio.cpython-38-pytest-8.0.2.pyc
184
+ tests/__pycache__/test_proxy_async_aio.cpython-39-pytest-6.2.5.pyc
185
+ tests/__pycache__/test_proxy_async_aio.cpython-39-pytest-7.0.1.pyc
186
+ tests/__pycache__/test_proxy_async_aio_ext.cpython-39-pytest-6.2.5.pyc
187
+ tests/__pycache__/test_proxy_async_aio_v2.cpython-310-pytest-7.0.1.pyc
188
+ tests/__pycache__/test_proxy_async_aio_v2.cpython-311-pytest-7.0.1.pyc
189
+ tests/__pycache__/test_proxy_async_aio_v2.cpython-312-pytest-8.0.2.pyc
190
+ tests/__pycache__/test_proxy_async_aio_v2.cpython-36-pytest-6.2.5.pyc
191
+ tests/__pycache__/test_proxy_async_aio_v2.cpython-36-pytest-7.0.1.pyc
192
+ tests/__pycache__/test_proxy_async_aio_v2.cpython-37-pytest-7.0.1.pyc
193
+ tests/__pycache__/test_proxy_async_aio_v2.cpython-38-pytest-8.0.2.pyc
194
+ tests/__pycache__/test_proxy_async_aio_v2.cpython-39-pytest-6.2.5.pyc
195
+ tests/__pycache__/test_proxy_async_aio_v2.cpython-39-pytest-7.0.1.pyc
196
+ tests/__pycache__/test_proxy_async_anyio.cpython-310-pytest-7.0.1.pyc
197
+ tests/__pycache__/test_proxy_async_anyio.cpython-311-pytest-7.0.1.pyc
198
+ tests/__pycache__/test_proxy_async_anyio.cpython-312-pytest-8.0.2.pyc
199
+ tests/__pycache__/test_proxy_async_anyio.cpython-36-pytest-6.2.5.pyc
200
+ tests/__pycache__/test_proxy_async_anyio.cpython-36-pytest-7.0.1.pyc
201
+ tests/__pycache__/test_proxy_async_anyio.cpython-37-pytest-7.0.1.pyc
202
+ tests/__pycache__/test_proxy_async_anyio.cpython-38-pytest-8.0.2.pyc
203
+ tests/__pycache__/test_proxy_async_anyio.cpython-39-pytest-6.2.5.pyc
204
+ tests/__pycache__/test_proxy_async_anyio.cpython-39-pytest-7.0.1.pyc
205
+ tests/__pycache__/test_proxy_async_anyio_v2.cpython-310-pytest-7.0.1.pyc
206
+ tests/__pycache__/test_proxy_async_anyio_v2.cpython-311-pytest-7.0.1.pyc
207
+ tests/__pycache__/test_proxy_async_anyio_v2.cpython-312-pytest-8.0.2.pyc
208
+ tests/__pycache__/test_proxy_async_anyio_v2.cpython-37-pytest-7.0.1.pyc
209
+ tests/__pycache__/test_proxy_async_anyio_v2.cpython-38-pytest-8.0.2.pyc
210
+ tests/__pycache__/test_proxy_async_curio.cpython-310-pytest-7.0.1.pyc
211
+ tests/__pycache__/test_proxy_async_curio.cpython-311-pytest-7.0.1.pyc
212
+ tests/__pycache__/test_proxy_async_curio.cpython-312-pytest-8.0.2.pyc
213
+ tests/__pycache__/test_proxy_async_curio.cpython-36-pytest-6.2.5.pyc
214
+ tests/__pycache__/test_proxy_async_curio.cpython-36-pytest-7.0.1.pyc
215
+ tests/__pycache__/test_proxy_async_curio.cpython-37-pytest-7.0.1.pyc
216
+ tests/__pycache__/test_proxy_async_curio.cpython-38-pytest-8.0.2.pyc
217
+ tests/__pycache__/test_proxy_async_curio.cpython-39-pytest-6.2.5.pyc
218
+ tests/__pycache__/test_proxy_async_curio.cpython-39-pytest-7.0.1.pyc
219
+ tests/__pycache__/test_proxy_async_trio.cpython-310-pytest-7.0.1.pyc
220
+ tests/__pycache__/test_proxy_async_trio.cpython-311-pytest-7.0.1.pyc
221
+ tests/__pycache__/test_proxy_async_trio.cpython-312-pytest-8.0.2.pyc
222
+ tests/__pycache__/test_proxy_async_trio.cpython-36-pytest-6.2.5.pyc
223
+ tests/__pycache__/test_proxy_async_trio.cpython-36-pytest-7.0.1.pyc
224
+ tests/__pycache__/test_proxy_async_trio.cpython-37-pytest-7.0.1.pyc
225
+ tests/__pycache__/test_proxy_async_trio.cpython-38-pytest-8.0.2.pyc
226
+ tests/__pycache__/test_proxy_async_trio.cpython-39-pytest-6.2.5.pyc
227
+ tests/__pycache__/test_proxy_async_trio.cpython-39-pytest-7.0.1.pyc
228
+ tests/__pycache__/test_proxy_async_trio_v2.cpython-310-pytest-7.0.1.pyc
229
+ tests/__pycache__/test_proxy_async_trio_v2.cpython-311-pytest-7.0.1.pyc
230
+ tests/__pycache__/test_proxy_async_trio_v2.cpython-312-pytest-8.0.2.pyc
231
+ tests/__pycache__/test_proxy_async_trio_v2.cpython-36-pytest-6.2.5.pyc
232
+ tests/__pycache__/test_proxy_async_trio_v2.cpython-36-pytest-7.0.1.pyc
233
+ tests/__pycache__/test_proxy_async_trio_v2.cpython-37-pytest-7.0.1.pyc
234
+ tests/__pycache__/test_proxy_async_trio_v2.cpython-38-pytest-8.0.2.pyc
235
+ tests/__pycache__/test_proxy_async_trio_v2.cpython-39-pytest-6.2.5.pyc
236
+ tests/__pycache__/test_proxy_async_trio_v2.cpython-39-pytest-7.0.1.pyc
237
+ tests/__pycache__/test_proxy_sync.cpython-310-pytest-7.0.1.pyc
238
+ tests/__pycache__/test_proxy_sync.cpython-311-pytest-7.0.1.pyc
239
+ tests/__pycache__/test_proxy_sync.cpython-312-pytest-8.0.2.pyc
240
+ tests/__pycache__/test_proxy_sync.cpython-36-pytest-6.2.5.pyc
241
+ tests/__pycache__/test_proxy_sync.cpython-36-pytest-7.0.1.pyc
242
+ tests/__pycache__/test_proxy_sync.cpython-37-pytest-7.0.1.pyc
243
+ tests/__pycache__/test_proxy_sync.cpython-38-pytest-8.0.2.pyc
244
+ tests/__pycache__/test_proxy_sync.cpython-39-pytest-6.2.5.pyc
245
+ tests/__pycache__/test_proxy_sync.cpython-39-pytest-7.0.1.pyc
246
+ tests/__pycache__/test_proxy_sync_v2.cpython-310-pytest-7.0.1.pyc
247
+ tests/__pycache__/test_proxy_sync_v2.cpython-311-pytest-7.0.1.pyc
248
+ tests/__pycache__/test_proxy_sync_v2.cpython-312-pytest-8.0.2.pyc
249
+ tests/__pycache__/test_proxy_sync_v2.cpython-36-pytest-6.2.5.pyc
250
+ tests/__pycache__/test_proxy_sync_v2.cpython-36-pytest-7.0.1.pyc
251
+ tests/__pycache__/test_proxy_sync_v2.cpython-37-pytest-7.0.1.pyc
252
+ tests/__pycache__/test_proxy_sync_v2.cpython-38-pytest-8.0.2.pyc
253
+ tests/__pycache__/test_proxy_sync_v2.cpython-39-pytest-6.2.5.pyc
254
+ tests/__pycache__/test_proxy_sync_v2.cpython-39-pytest-7.0.1.pyc
255
+ tests/__pycache__/test_resolvers.cpython-310-pytest-7.0.1.pyc
256
+ tests/__pycache__/test_resolvers.cpython-311-pytest-7.0.1.pyc
257
+ tests/__pycache__/test_resolvers.cpython-312-pytest-8.0.2.pyc
258
+ tests/__pycache__/test_resolvers.cpython-36-pytest-6.2.5.pyc
259
+ tests/__pycache__/test_resolvers.cpython-36-pytest-7.0.1.pyc
260
+ tests/__pycache__/test_resolvers.cpython-37-pytest-7.0.1.pyc
261
+ tests/__pycache__/test_resolvers.cpython-38-pytest-8.0.2.pyc
262
+ tests/__pycache__/test_resolvers.cpython-39-pytest-6.2.2.pyc
263
+ tests/__pycache__/test_resolvers.cpython-39-pytest-6.2.5.pyc
264
+ tests/__pycache__/test_resolvers.cpython-39-pytest-7.0.1.pyc
265
+ tests/__pycache__/utils.cpython-310.pyc
266
+ tests/__pycache__/utils.cpython-311.pyc
267
+ tests/__pycache__/utils.cpython-312.pyc
268
+ tests/__pycache__/utils.cpython-36.pyc
269
+ tests/__pycache__/utils.cpython-37.pyc
270
+ tests/__pycache__/utils.cpython-38.pyc
271
+ tests/__pycache__/utils.cpython-39.pyc
@@ -0,0 +1 @@
1
+ # -*- coding: utf-8 -*-