{
    "info": {
        "author": "Roman Snegirev",
        "author_email": "snegiryev@gmail.com",
        "bugtrack_url": null,
        "classifiers": [],
        "description": "## python-socks\n\n[![Build Status](https://api.travis-ci.com/romis2012/python-socks.svg?branch=master)](https://travis-ci.com/github/romis2012/python-socks)\n[![Coverage Status](https://coveralls.io/repos/github/romis2012/python-socks/badge.svg?branch=master&_=q)](https://coveralls.io/github/romis2012/python-socks?branch=master)\n[![PyPI version](https://badge.fury.io/py/python-socks.svg)](https://badge.fury.io/py/python-socks)\n<!--\n[![Downloads](https://pepy.tech/badge/python-socks/month)](https://pepy.tech/project/python-socks)\n-->\n\nThe `python-socks` package provides a core proxy client functionality for Python.\nSupports SOCKS4(a), SOCKS5, HTTP (tunneling) proxy and provides sync and async (asyncio, trio, curio, anyio) APIs.\nYou probably don't need to use `python-socks` directly. \nIt is used internally by \n[aiohttp-socks](https://github.com/romis2012/aiohttp-socks) and [httpx-socks](https://github.com/romis2012/httpx-socks) packages.  \n\n## Requirements\n- Python >= 3.6\n- async-timeout >= 3.0.1 (optional)\n- trio >= 0.16.0 (optional)\n- curio >= 1.4 (optional)\n- anyio >= 3.3.4 (optional)\n\n## Installation\n\nonly sync proxy support:\n```\npip install python-socks\n```\n\nto include optional asyncio support:\n```\npip install python-socks[asyncio]\n```\n\nto include optional trio support:\n```\npip install python-socks[trio]\n```\n\nto include optional curio support:\n```\npip install python-socks[curio]\n```\n\nto include optional anyio support:\n```\npip install python-socks[anyio]\n```\n\n## Simple usage\nWe are making secure HTTP GET request via SOCKS5 proxy\n \n#### Sync\n```python\nimport ssl\nfrom python_socks.sync import Proxy\n\nproxy = Proxy.from_url('socks5://user:password@127.0.0.1:1080')\n\n# `connect` returns standard Python socket in blocking mode\nsock = proxy.connect(dest_host='check-host.net', dest_port=443)\n\nsock = ssl.create_default_context().wrap_socket(\n    sock=sock,\n    server_hostname='check-host.net'\n)\n\nrequest = (\n    b'GET /ip HTTP/1.1\\r\\n'\n    b'Host: check-host.net\\r\\n'\n    b'Connection: close\\r\\n\\r\\n'\n)\nsock.sendall(request)\nresponse = sock.recv(4096)\nprint(response)\n```\n\n#### Async (asyncio)\n```python\nimport ssl\nimport asyncio\nfrom python_socks.async_.asyncio import Proxy\n\nproxy = Proxy.from_url('socks5://user:password@127.0.0.1:1080')\n\n# `connect` returns standard Python socket in non-blocking mode \n# so we can pass it to asyncio.open_connection(...)\nsock = await proxy.connect(dest_host='check-host.net', dest_port=443)\n\nreader, writer = await asyncio.open_connection(\n    host=None,\n    port=None,\n    sock=sock,\n    ssl=ssl.create_default_context(),\n    server_hostname='check-host.net',\n)\n\nrequest = (\n    b'GET /ip HTTP/1.1\\r\\n'\n    b'Host: check-host.net\\r\\n'\n    b'Connection: close\\r\\n\\r\\n'\n)\n\nwriter.write(request)\nresponse = await reader.read(-1)\nprint(response)\n```\n\n#### Async (trio)\n```python\nimport ssl\nimport trio\nfrom python_socks.async_.trio import Proxy\n\nproxy = Proxy.from_url('socks5://user:password@127.0.0.1:1080')\n\n# `connect` returns trio socket \n# so we can pass it to trio.SocketStream\nsock = await proxy.connect(dest_host='check-host.net', dest_port=443)\n\nstream = trio.SocketStream(sock)\n\nstream = trio.SSLStream(\n    stream, ssl.create_default_context(),\n    server_hostname='check-host.net'\n)\nawait stream.do_handshake()\n\nrequest = (\n    b'GET /ip HTTP/1.1\\r\\n'\n    b'Host: check-host.net\\r\\n'\n    b'Connection: close\\r\\n\\r\\n'\n)\n\nawait stream.send_all(request)\nresponse = await stream.receive_some(4096)\nprint(response)\n```\n\n#### Async (curio)\n```python\nimport curio.ssl as curiossl\nfrom python_socks.async_.curio import Proxy\n\nproxy = Proxy.from_url('socks5://user:password@127.0.0.1:1080')\n# `connect` returns curio.io.Socket\nsock = await proxy.connect(\n    dest_host='check-host.net',\n    dest_port=443\n)\n\nrequest = (\n    b'GET /ip HTTP/1.1\\r\\n'\n    b'Host: check-host.net\\r\\n'\n    b'Connection: close\\r\\n\\r\\n'\n)\n\nssl_context = curiossl.create_default_context()\nsock = await ssl_context.wrap_socket(\n    sock, do_handshake_on_connect=False, server_hostname='check-host.net'\n)\n\nawait sock.do_handshake()\n\nstream = sock.as_stream()\n\nawait stream.write(request)\nresponse = await stream.read(1024)\nprint(response)\n```\n\n#### Async (anyio)\n```python\nimport ssl\nfrom python_socks.async_.anyio import Proxy\n\nproxy = Proxy.from_url('socks5://user:password@127.0.0.1:1080')\n\n# `connect` returns AnyioSocketStream\nstream = await proxy.connect(\n    dest_host='check-host.net',\n    dest_port=443,\n    dest_ssl=ssl.create_default_context(),\n)\n\nrequest = (\n    b'GET /ip HTTP/1.1\\r\\n'\n    b'Host: check-host.net\\r\\n'\n    b'Connection: close\\r\\n\\r\\n'\n)\n\nawait stream.write_all(request)\nresponse = await stream.read()\nprint(response)\n```\n\n## More complex example\n\n#### A urllib3 PoolManager that routes connections via the proxy\n\n```python\nfrom urllib3 import PoolManager, HTTPConnectionPool, HTTPSConnectionPool\nfrom urllib3.connection import HTTPConnection, HTTPSConnection\nfrom python_socks.sync import Proxy\n\n\nclass ProxyHTTPConnection(HTTPConnection):\n    def __init__(self, *args, **kwargs):\n        socks_options = kwargs.pop('_socks_options')\n        self._proxy_url = socks_options['proxy_url']\n        super().__init__(*args, **kwargs)\n\n    def _new_conn(self):\n        proxy = Proxy.from_url(self._proxy_url)\n        return proxy.connect(\n            dest_host=self.host,\n            dest_port=self.port,\n            timeout=self.timeout\n        )\n\n\nclass ProxyHTTPSConnection(ProxyHTTPConnection, HTTPSConnection):\n    pass\n\n\nclass ProxyHTTPConnectionPool(HTTPConnectionPool):\n    ConnectionCls = ProxyHTTPConnection\n\n\nclass ProxyHTTPSConnectionPool(HTTPSConnectionPool):\n    ConnectionCls = ProxyHTTPSConnection\n\n\nclass ProxyPoolManager(PoolManager):\n    def __init__(self, proxy_url, timeout=5, num_pools=10, headers=None,\n                 **connection_pool_kw):\n\n        connection_pool_kw['_socks_options'] = {'proxy_url': proxy_url}\n        connection_pool_kw['timeout'] = timeout\n\n        super().__init__(num_pools, headers, **connection_pool_kw)\n\n        self.pool_classes_by_scheme = {\n            'http': ProxyHTTPConnectionPool,\n            'https': ProxyHTTPSConnectionPool,\n        }\n\n\n### and how to use it\nmanager = ProxyPoolManager('socks5://user:password@127.0.0.1:1080')\nresponse = manager.request('GET', 'https://check-host.net/ip')\nprint(response.data)\n```\n\n\n",
        "description_content_type": "text/markdown",
        "docs_url": null,
        "download_url": "",
        "downloads": {
            "last_day": -1,
            "last_month": -1,
            "last_week": -1
        },
        "home_page": "https://github.com/romis2012/python-socks",
        "keywords": "socks socks5 socks4 http proxy asyncio trio curio anyio",
        "license": "Apache 2",
        "maintainer": "",
        "maintainer_email": "",
        "name": "python-socks",
        "package_url": "https://pypi.org/project/python-socks/",
        "platform": "",
        "project_url": "https://pypi.org/project/python-socks/",
        "project_urls": {
            "Homepage": "https://github.com/romis2012/python-socks"
        },
        "release_url": "https://pypi.org/project/python-socks/2.0.3/",
        "requires_dist": [
            "anyio (>=3.3.4) ; extra == 'anyio'",
            "async-timeout (>=3.0.1) ; extra == 'asyncio'",
            "curio (>=1.4) ; extra == 'curio'",
            "trio (>=0.16.0) ; extra == 'trio'"
        ],
        "requires_python": "",
        "summary": "Core proxy (SOCKS4, SOCKS5, HTTP tunneling) functionality for Python",
        "version": "2.0.3",
        "yanked": false,
        "yanked_reason": null
    },
    "last_serial": 12651951,
    "releases": {
        "1.0.0": [
            {
                "comment_text": "",
                "digests": {
                    "md5": "3c72db7ab8e9c302dae7e027cb608b16",
                    "sha256": "4a5dffb772b338869b149983c063bb114b3013e9921131dad78c9ec43c3f553d"
                },
                "downloads": -1,
                "filename": "python_socks-1.0.0-py3-none-any.whl",
                "has_sig": false,
                "md5_digest": "3c72db7ab8e9c302dae7e027cb608b16",
                "packagetype": "bdist_wheel",
                "python_version": "py3",
                "requires_python": null,
                "size": 28381,
                "upload_time": "2020-09-20T10:57:47",
                "upload_time_iso_8601": "2020-09-20T10:57:47.088092Z",
                "url": "https://files.pythonhosted.org/packages/c1/11/5eefc3f343206c274cbdf9eeddf68da301a001b8f56edfeb784c7e61895c/python_socks-1.0.0-py3-none-any.whl",
                "yanked": false,
                "yanked_reason": null
            },
            {
                "comment_text": "",
                "digests": {
                    "md5": "999ed83a10a72f962a930e37c604a7ed",
                    "sha256": "4ebc87e00350b29e4742528669f5ff49afa0780676b15623ac2b08ac6999b283"
                },
                "downloads": -1,
                "filename": "python-socks-1.0.0.tar.gz",
                "has_sig": false,
                "md5_digest": "999ed83a10a72f962a930e37c604a7ed",
                "packagetype": "sdist",
                "python_version": "source",
                "requires_python": null,
                "size": 15357,
                "upload_time": "2020-09-20T10:57:49",
                "upload_time_iso_8601": "2020-09-20T10:57:49.606790Z",
                "url": "https://files.pythonhosted.org/packages/b4/cb/64398c0bff915fc53e66365c6f977acbf789b5854f5fb54dec81c38a5c61/python-socks-1.0.0.tar.gz",
                "yanked": false,
                "yanked_reason": null
            }
        ],
        "1.0.1": [
            {
                "comment_text": "",
                "digests": {
                    "md5": "d82f531c6fe1690e72a85bc9b422286d",
                    "sha256": "9974bce5e1d9df14707a68df0c83b07059057093f31a1f87d75a999ced193779"
                },
                "downloads": -1,
                "filename": "python_socks-1.0.1-py3-none-any.whl",
                "has_sig": false,
                "md5_digest": "d82f531c6fe1690e72a85bc9b422286d",
                "packagetype": "bdist_wheel",
                "python_version": "py3",
                "requires_python": null,
                "size": 28501,
                "upload_time": "2020-09-20T11:39:30",
                "upload_time_iso_8601": "2020-09-20T11:39:30.679342Z",
                "url": "https://files.pythonhosted.org/packages/d9/a9/f19c5e64cd74caca95ab1ea082817e448de9bab46ee3d83ceb24fdd7cdfc/python_socks-1.0.1-py3-none-any.whl",
                "yanked": false,
                "yanked_reason": null
            },
            {
                "comment_text": "",
                "digests": {
                    "md5": "0021e92404ef71d7fbd95ab3bfbca6fc",
                    "sha256": "38d63062c2ff945af459c03f9ded5ede453d4e2eb418f2f47ec0660df6ae20e6"
                },
                "downloads": -1,
                "filename": "python-socks-1.0.1.tar.gz",
                "has_sig": false,
                "md5_digest": "0021e92404ef71d7fbd95ab3bfbca6fc",
                "packagetype": "sdist",
                "python_version": "source",
                "requires_python": null,
                "size": 15621,
                "upload_time": "2020-09-20T11:39:32",
                "upload_time_iso_8601": "2020-09-20T11:39:32.418297Z",
                "url": "https://files.pythonhosted.org/packages/bf/c5/50bc4b38164a496baada0e392f0290e3f91bfd68ee91d135761da4734a3e/python-socks-1.0.1.tar.gz",
                "yanked": false,
                "yanked_reason": null
            }
        ],
        "1.1.0": [
            {
                "comment_text": "",
                "digests": {
                    "md5": "3d813da9404bab08c198bbae32ef8c17",
                    "sha256": "29cb93787447a239bc1e9c8621c1d8cff9cfebcfc1653685c4fb3a2da74592dc"
                },
                "downloads": -1,
                "filename": "python_socks-1.1.0-py3-none-any.whl",
                "has_sig": false,
                "md5_digest": "3d813da9404bab08c198bbae32ef8c17",
                "packagetype": "bdist_wheel",
                "python_version": "py3",
                "requires_python": null,
                "size": 32128,
                "upload_time": "2020-09-21T13:43:56",
                "upload_time_iso_8601": "2020-09-21T13:43:56.818977Z",
                "url": "https://files.pythonhosted.org/packages/ac/7e/d16155d2662ee91bf3b2d548ba72e41c50a2a5870e090abe99fbe77797a2/python_socks-1.1.0-py3-none-any.whl",
                "yanked": false,
                "yanked_reason": null
            },
            {
                "comment_text": "",
                "digests": {
                    "md5": "d073f4a991989e7e0fb79642da13fa27",
                    "sha256": "3b4e2aaa0d616b02e432470bdc1106eb734c6640da34e47efdd429693e6daff0"
                },
                "downloads": -1,
                "filename": "python-socks-1.1.0.tar.gz",
                "has_sig": false,
                "md5_digest": "d073f4a991989e7e0fb79642da13fa27",
                "packagetype": "sdist",
                "python_version": "source",
                "requires_python": null,
                "size": 17491,
                "upload_time": "2020-09-21T13:43:58",
                "upload_time_iso_8601": "2020-09-21T13:43:58.444667Z",
                "url": "https://files.pythonhosted.org/packages/03/ca/57fe5ce042a5606dfb74e8ed0db1970905026fe4e3731b55061795180aa4/python-socks-1.1.0.tar.gz",
                "yanked": false,
                "yanked_reason": null
            }
        ],
        "1.1.1": [
            {
                "comment_text": "",
                "digests": {
                    "md5": "ec4a5e4004889e5a45f3503a706f77cf",
                    "sha256": "263ed7c9c6571cbe234cf69671ffbde6710973bdd49c7e2ab1f22ea38ccbc6e1"
                },
                "downloads": -1,
                "filename": "python_socks-1.1.1-py3-none-any.whl",
                "has_sig": false,
                "md5_digest": "ec4a5e4004889e5a45f3503a706f77cf",
                "packagetype": "bdist_wheel",
                "python_version": "py3",
                "requires_python": null,
                "size": 31547,
                "upload_time": "2020-11-22T14:43:39",
                "upload_time_iso_8601": "2020-11-22T14:43:39.056455Z",
                "url": "https://files.pythonhosted.org/packages/36/c1/c24d2e31c15b191c40d2b869468c4bbedafb8ff92609b1c8b35202f86c53/python_socks-1.1.1-py3-none-any.whl",
                "yanked": false,
                "yanked_reason": null
            },
            {
                "comment_text": "",
                "digests": {
                    "md5": "81225fe15ee894b834034996c16f0045",
                    "sha256": "46e4760b17673a774eed29e4156406da5457a51ff83e7939ce927b1921b83af9"
                },
                "downloads": -1,
                "filename": "python-socks-1.1.1.tar.gz",
                "has_sig": false,
                "md5_digest": "81225fe15ee894b834034996c16f0045",
                "packagetype": "sdist",
                "python_version": "source",
                "requires_python": null,
                "size": 18557,
                "upload_time": "2020-11-22T14:43:40",
                "upload_time_iso_8601": "2020-11-22T14:43:40.687700Z",
                "url": "https://files.pythonhosted.org/packages/4c/49/b0190de72957e05de86b55fa7ca52f3a2f0d0114934c1f2919ec6852b998/python-socks-1.1.1.tar.gz",
                "yanked": false,
                "yanked_reason": null
            }
        ],
        "1.1.2": [
            {
                "comment_text": "",
                "digests": {
                    "md5": "4207916921dc57d669ca9a6cb2ac9cd8",
                    "sha256": "4390882760ae60b14615f951aac3ef2e9eab45eb33ed8e7ed02d9b4dfb3b5640"
                },
                "downloads": -1,
                "filename": "python_socks-1.1.2-py3-none-any.whl",
                "has_sig": false,
                "md5_digest": "4207916921dc57d669ca9a6cb2ac9cd8",
                "packagetype": "bdist_wheel",
                "python_version": "py3",
                "requires_python": null,
                "size": 31605,
                "upload_time": "2020-12-16T08:49:38",
                "upload_time_iso_8601": "2020-12-16T08:49:38.710956Z",
                "url": "https://files.pythonhosted.org/packages/b7/ce/82275ff2528b2ca3dfd397863005a79c35c832e11e0b85fce723c4ec0da7/python_socks-1.1.2-py3-none-any.whl",
                "yanked": false,
                "yanked_reason": null
            },
            {
                "comment_text": "",
                "digests": {
                    "md5": "2ec1ace965bfd0ccbf56281c8f649fe0",
                    "sha256": "fa7513c9293d95d90b1da9e10b84fa53afcb4c0f67e9c141d9f479cde2d8af1a"
                },
                "downloads": -1,
                "filename": "python-socks-1.1.2.tar.gz",
                "has_sig": false,
                "md5_digest": "2ec1ace965bfd0ccbf56281c8f649fe0",
                "packagetype": "sdist",
                "python_version": "source",
                "requires_python": null,
                "size": 18495,
                "upload_time": "2020-12-16T08:49:40",
                "upload_time_iso_8601": "2020-12-16T08:49:40.759518Z",
                "url": "https://files.pythonhosted.org/packages/c0/15/8acf4a45d009fbf750690f4f3093afa796625456ebc320c79e2caa643425/python-socks-1.1.2.tar.gz",
                "yanked": false,
                "yanked_reason": null
            }
        ],
        "1.1.3": [
            {
                "comment_text": "",
                "digests": {
                    "md5": "b4c034a6c3c57b02b241145848fee0c2",
                    "sha256": "c65b81f132684ba710fd9a04711087a88eb254687c3f0ec13be0b4d8aa7bc66d"
                },
                "downloads": -1,
                "filename": "python_socks-1.1.3-py3-none-any.whl",
                "has_sig": false,
                "md5_digest": "b4c034a6c3c57b02b241145848fee0c2",
                "packagetype": "bdist_wheel",
                "python_version": "py3",
                "requires_python": null,
                "size": 34351,
                "upload_time": "2021-01-16T13:07:59",
                "upload_time_iso_8601": "2021-01-16T13:07:59.330875Z",
                "url": "https://files.pythonhosted.org/packages/4c/f1/86a490ab64ce938d8e7e1b86636eb67f840324409875f104e1e0b6addb08/python_socks-1.1.3-py3-none-any.whl",
                "yanked": false,
                "yanked_reason": null
            },
            {
                "comment_text": "",
                "digests": {
                    "md5": "cd78da7dc5e36e8b232bbdf354cfaf86",
                    "sha256": "982d69c7766856b8233c44c92087ddf446af3bf73262542ab2d2417d9175cf2d"
                },
                "downloads": -1,
                "filename": "python-socks-1.1.3.tar.gz",
                "has_sig": false,
                "md5_digest": "cd78da7dc5e36e8b232bbdf354cfaf86",
                "packagetype": "sdist",
                "python_version": "source",
                "requires_python": null,
                "size": 19704,
                "upload_time": "2021-01-16T13:08:01",
                "upload_time_iso_8601": "2021-01-16T13:08:01.487773Z",
                "url": "https://files.pythonhosted.org/packages/8a/31/0d2b01bae14982358d345216393a922ba8c56176182b4e3edfe4efdf92a5/python-socks-1.1.3.tar.gz",
                "yanked": false,
                "yanked_reason": null
            }
        ],
        "1.2.0": [
            {
                "comment_text": "",
                "digests": {
                    "md5": "aa782f1781a9677a3ddfeb5ab60a7578",
                    "sha256": "26e45b29e18ab7a28ad646e82d3e47a32fe13942b0b1c75ae3f6fe9e5c03efcb"
                },
                "downloads": -1,
                "filename": "python_socks-1.2.0-py3-none-any.whl",
                "has_sig": false,
                "md5_digest": "aa782f1781a9677a3ddfeb5ab60a7578",
                "packagetype": "bdist_wheel",
                "python_version": "py3",
                "requires_python": null,
                "size": 35343,
                "upload_time": "2021-01-17T07:11:35",
                "upload_time_iso_8601": "2021-01-17T07:11:35.183522Z",
                "url": "https://files.pythonhosted.org/packages/99/f1/be24d47c81ad946ec382db87d72d8bd81e67e7ef1f84ce8c10a9863042bf/python_socks-1.2.0-py3-none-any.whl",
                "yanked": false,
                "yanked_reason": null
            },
            {
                "comment_text": "",
                "digests": {
                    "md5": "5407ef7bddd44cfee24269a049f44666",
                    "sha256": "3054a8afa984a35144198e00fed1144eeae3287cc231ac7db3908d32ab642cd4"
                },
                "downloads": -1,
                "filename": "python-socks-1.2.0.tar.gz",
                "has_sig": false,
                "md5_digest": "5407ef7bddd44cfee24269a049f44666",
                "packagetype": "sdist",
                "python_version": "source",
                "requires_python": null,
                "size": 20400,
                "upload_time": "2021-01-17T07:11:37",
                "upload_time_iso_8601": "2021-01-17T07:11:37.033035Z",
                "url": "https://files.pythonhosted.org/packages/94/f4/c3305a5912b782b041cb61ac330cf4eb59ff8f55c52ede54cfb8b3d587c1/python-socks-1.2.0.tar.gz",
                "yanked": false,
                "yanked_reason": null
            }
        ],
        "1.2.1": [
            {
                "comment_text": "",
                "digests": {
                    "md5": "9b5fee13857e46279c8eda01755a223e",
                    "sha256": "6ba69736083f060af25b2774b65135eb48646582c3438d0dba11b43218a5fc84"
                },
                "downloads": -1,
                "filename": "python_socks-1.2.1-py3-none-any.whl",
                "has_sig": false,
                "md5_digest": "9b5fee13857e46279c8eda01755a223e",
                "packagetype": "bdist_wheel",
                "python_version": "py3",
                "requires_python": null,
                "size": 35391,
                "upload_time": "2021-02-16T12:28:11",
                "upload_time_iso_8601": "2021-02-16T12:28:11.790195Z",
                "url": "https://files.pythonhosted.org/packages/a9/e8/1ce275164c00016c71f0d726c10ce8b13f72ecbba5aab1585b46300f2802/python_socks-1.2.1-py3-none-any.whl",
                "yanked": false,
                "yanked_reason": null
            },
            {
                "comment_text": "",
                "digests": {
                    "md5": "22329943af610e2779c5ec0247d10274",
                    "sha256": "9e6f4d397488edb29594c31a9e28810956728737b57cf88b2db7b79655dea7e9"
                },
                "downloads": -1,
                "filename": "python-socks-1.2.1.tar.gz",
                "has_sig": false,
                "md5_digest": "22329943af610e2779c5ec0247d10274",
                "packagetype": "sdist",
                "python_version": "source",
                "requires_python": null,
                "size": 20422,
                "upload_time": "2021-02-16T12:28:13",
                "upload_time_iso_8601": "2021-02-16T12:28:13.510948Z",
                "url": "https://files.pythonhosted.org/packages/20/54/50a6657b988bf5cefb15254281860f4541bfdbc93c2987254b3f7f7330d8/python-socks-1.2.1.tar.gz",
                "yanked": false,
                "yanked_reason": null
            }
        ],
        "1.2.2": [
            {
                "comment_text": "",
                "digests": {
                    "md5": "654af7f78b0c1b17b44016a3b3face93",
                    "sha256": "41100508d6a3723c2e9884d3330d8bd022a7ef0a953e826637833bf882550fc7"
                },
                "downloads": -1,
                "filename": "python_socks-1.2.2-py3-none-any.whl",
                "has_sig": false,
                "md5_digest": "654af7f78b0c1b17b44016a3b3face93",
                "packagetype": "bdist_wheel",
                "python_version": "py3",
                "requires_python": null,
                "size": 35433,
                "upload_time": "2021-03-01T10:06:45",
                "upload_time_iso_8601": "2021-03-01T10:06:45.072036Z",
                "url": "https://files.pythonhosted.org/packages/f7/39/ce05e2772d9ec266644484ced4f9f6207b488b7670adcc9ddacf8ca78f91/python_socks-1.2.2-py3-none-any.whl",
                "yanked": false,
                "yanked_reason": null
            },
            {
                "comment_text": "",
                "digests": {
                    "md5": "9565a0feb2fc10a9abe51e3e8bdc30f0",
                    "sha256": "d76065797250edc4b773c205cfa3c4834301fdb27a650478d1d7396cafc533fa"
                },
                "downloads": -1,
                "filename": "python-socks-1.2.2.tar.gz",
                "has_sig": false,
                "md5_digest": "9565a0feb2fc10a9abe51e3e8bdc30f0",
                "packagetype": "sdist",
                "python_version": "source",
                "requires_python": null,
                "size": 20502,
                "upload_time": "2021-03-01T10:06:47",
                "upload_time_iso_8601": "2021-03-01T10:06:47.019933Z",
                "url": "https://files.pythonhosted.org/packages/7e/32/86c580f89a2702014460a008ccf1c819db44a388a4de4ef4155b6a9b4b7b/python-socks-1.2.2.tar.gz",
                "yanked": false,
                "yanked_reason": null
            }
        ],
        "1.2.3": [
            {
                "comment_text": "",
                "digests": {
                    "md5": "438be32a2ed877a0f9bde686faae5db9",
                    "sha256": "f424c127e2168f6158275b6fe7d9f59a91c3807b3c43753661a6e9d43cdae10f"
                },
                "downloads": -1,
                "filename": "python_socks-1.2.3-py3-none-any.whl",
                "has_sig": false,
                "md5_digest": "438be32a2ed877a0f9bde686faae5db9",
                "packagetype": "bdist_wheel",
                "python_version": "py3",
                "requires_python": null,
                "size": 35458,
                "upload_time": "2021-03-23T11:53:15",
                "upload_time_iso_8601": "2021-03-23T11:53:15.329007Z",
                "url": "https://files.pythonhosted.org/packages/b8/4c/8376caa39edfb245b2dc6044f7238cf9bc1fe8225bdbb23ea142a24d1ec8/python_socks-1.2.3-py3-none-any.whl",
                "yanked": false,
                "yanked_reason": null
            },
            {
                "comment_text": "",
                "digests": {
                    "md5": "a00242a5716f33464d8f745f9d9e7e90",
                    "sha256": "7eb5b35b4c0987e32aa24899383951644a7a314c7b7b648a7231de4f1ca5e26d"
                },
                "downloads": -1,
                "filename": "python-socks-1.2.3.tar.gz",
                "has_sig": false,
                "md5_digest": "a00242a5716f33464d8f745f9d9e7e90",
                "packagetype": "sdist",
                "python_version": "source",
                "requires_python": null,
                "size": 20533,
                "upload_time": "2021-03-23T11:53:16",
                "upload_time_iso_8601": "2021-03-23T11:53:16.870596Z",
                "url": "https://files.pythonhosted.org/packages/d4/e1/7673479ebb7f1db020aeef170b578282d91d8397ff4a3ca25eb2b333aa2c/python-socks-1.2.3.tar.gz",
                "yanked": false,
                "yanked_reason": null
            }
        ],
        "1.2.4": [
            {
                "comment_text": "",
                "digests": {
                    "md5": "126c21b049e99df408665c3e50eb1351",
                    "sha256": "9f12e8fe78629b87543fad0e4ea0ccf103a4fad6a7872c5d0ecb36d9903fa548"
                },
                "downloads": -1,
                "filename": "python_socks-1.2.4-py3-none-any.whl",
                "has_sig": false,
                "md5_digest": "126c21b049e99df408665c3e50eb1351",
                "packagetype": "bdist_wheel",
                "python_version": "py3",
                "requires_python": null,
                "size": 35472,
                "upload_time": "2021-03-30T11:56:13",
                "upload_time_iso_8601": "2021-03-30T11:56:13.959950Z",
                "url": "https://files.pythonhosted.org/packages/e4/d0/6d56fcaca0f44cbcbc8ab3169a17cd90696382a812506fc7041323567d2b/python_socks-1.2.4-py3-none-any.whl",
                "yanked": false,
                "yanked_reason": null
            },
            {
                "comment_text": "",
                "digests": {
                    "md5": "eeda1d129509b242711f5ea804adc04e",
                    "sha256": "7d0ef2578cead9f762b71317d25a6c118fabaf79535555e75b3e102f5158ddd8"
                },
                "downloads": -1,
                "filename": "python-socks-1.2.4.tar.gz",
                "has_sig": false,
                "md5_digest": "eeda1d129509b242711f5ea804adc04e",
                "packagetype": "sdist",
                "python_version": "source",
                "requires_python": null,
                "size": 20547,
                "upload_time": "2021-03-30T11:56:15",
                "upload_time_iso_8601": "2021-03-30T11:56:15.864833Z",
                "url": "https://files.pythonhosted.org/packages/c2/86/7d61342b7dacf012426326e3c063f4ea5a89860d7325775863b8979cd5aa/python-socks-1.2.4.tar.gz",
                "yanked": false,
                "yanked_reason": null
            }
        ],
        "2.0.0": [
            {
                "comment_text": "",
                "digests": {
                    "md5": "e302a9babd83ce2d9682f23a5e76a8ea",
                    "sha256": "aac65671cbd3b0eb55b20f8558c8de3894a315536aaab3ec0a7b9d46ff89c1bf"
                },
                "downloads": -1,
                "filename": "python_socks-2.0.0-py3-none-any.whl",
                "has_sig": false,
                "md5_digest": "e302a9babd83ce2d9682f23a5e76a8ea",
                "packagetype": "bdist_wheel",
                "python_version": "py3",
                "requires_python": null,
                "size": 49143,
                "upload_time": "2021-11-23T12:56:50",
                "upload_time_iso_8601": "2021-11-23T12:56:50.833862Z",
                "url": "https://files.pythonhosted.org/packages/c9/77/ae7fbd73ea74c7ce7e15bc48e68ba9240d5b637419323c6c8008522ebf0f/python_socks-2.0.0-py3-none-any.whl",
                "yanked": false,
                "yanked_reason": null
            },
            {
                "comment_text": "",
                "digests": {
                    "md5": "12c9828be446e56afda4d47fc3e31d0b",
                    "sha256": "7944dad882846ac73e5f79e180c841e3895ee058e16855b7e8fff24f4cd0b90b"
                },
                "downloads": -1,
                "filename": "python-socks-2.0.0.tar.gz",
                "has_sig": false,
                "md5_digest": "12c9828be446e56afda4d47fc3e31d0b",
                "packagetype": "sdist",
                "python_version": "source",
                "requires_python": null,
                "size": 24735,
                "upload_time": "2021-11-23T12:56:53",
                "upload_time_iso_8601": "2021-11-23T12:56:53.095945Z",
                "url": "https://files.pythonhosted.org/packages/f6/5b/03166a11799e143293edd0db897f67f34021eb4a3106e1fd5aec383f102a/python-socks-2.0.0.tar.gz",
                "yanked": false,
                "yanked_reason": null
            }
        ],
        "2.0.1": [
            {
                "comment_text": "",
                "digests": {
                    "md5": "fd4f41daafd71c25519bbc3668c648f8",
                    "sha256": "6801e89cf057d57f00ab9c1f82a8c10a8e086de02faf500b6ed79aedcc1bfca0"
                },
                "downloads": -1,
                "filename": "python_socks-2.0.1-py3-none-any.whl",
                "has_sig": false,
                "md5_digest": "fd4f41daafd71c25519bbc3668c648f8",
                "packagetype": "bdist_wheel",
                "python_version": "py3",
                "requires_python": null,
                "size": 49228,
                "upload_time": "2021-12-17T06:55:52",
                "upload_time_iso_8601": "2021-12-17T06:55:52.612167Z",
                "url": "https://files.pythonhosted.org/packages/6b/d1/7f714ac1b4fbfa684290f82b94b4ed4b968073452c3ad9a8b818be7add0c/python_socks-2.0.1-py3-none-any.whl",
                "yanked": false,
                "yanked_reason": null
            },
            {
                "comment_text": "",
                "digests": {
                    "md5": "1f9ba3ec42be6d56cbe8b81752df0785",
                    "sha256": "533939935be35e16e6df3a3e11416f151bca7ca5d7c398c05e1a199091fba72c"
                },
                "downloads": -1,
                "filename": "python-socks-2.0.1.tar.gz",
                "has_sig": false,
                "md5_digest": "1f9ba3ec42be6d56cbe8b81752df0785",
                "packagetype": "sdist",
                "python_version": "source",
                "requires_python": null,
                "size": 24890,
                "upload_time": "2021-12-17T06:55:54",
                "upload_time_iso_8601": "2021-12-17T06:55:54.972669Z",
                "url": "https://files.pythonhosted.org/packages/2d/f3/7cf61b2431a2e8d3ffab0572bc8c8b020b6313b2b1502666c6545d4d2b2d/python-socks-2.0.1.tar.gz",
                "yanked": false,
                "yanked_reason": null
            }
        ],
        "2.0.2": [
            {
                "comment_text": "",
                "digests": {
                    "md5": "ee5f0ba494abeaa83daac385f9b893da",
                    "sha256": "faa46857c79a8bf7def2e904ac839fb56755d7ab76c4cad12a131a85fec07241"
                },
                "downloads": -1,
                "filename": "python_socks-2.0.2-py3-none-any.whl",
                "has_sig": false,
                "md5_digest": "ee5f0ba494abeaa83daac385f9b893da",
                "packagetype": "bdist_wheel",
                "python_version": "py3",
                "requires_python": null,
                "size": 49250,
                "upload_time": "2022-01-13T08:15:27",
                "upload_time_iso_8601": "2022-01-13T08:15:27.770190Z",
                "url": "https://files.pythonhosted.org/packages/41/af/ad3b3735e7ae97054fd56a7093efda942a692bf2508446351bef3a5c662c/python_socks-2.0.2-py3-none-any.whl",
                "yanked": false,
                "yanked_reason": null
            },
            {
                "comment_text": "",
                "digests": {
                    "md5": "500f61dd788db1a458988e61122a5e03",
                    "sha256": "aa9b7a53e81ae6b6e3ada602761012e470ea1c4cbcd5548f99b3fc102dce4fca"
                },
                "downloads": -1,
                "filename": "python-socks-2.0.2.tar.gz",
                "has_sig": false,
                "md5_digest": "500f61dd788db1a458988e61122a5e03",
                "packagetype": "sdist",
                "python_version": "source",
                "requires_python": null,
                "size": 24917,
                "upload_time": "2022-01-13T08:15:29",
                "upload_time_iso_8601": "2022-01-13T08:15:29.814030Z",
                "url": "https://files.pythonhosted.org/packages/8b/22/0457a3bd84006aa98ab1a36a17887cde1d436c8a7e2911d64ccde490f614/python-socks-2.0.2.tar.gz",
                "yanked": false,
                "yanked_reason": null
            }
        ],
        "2.0.3": [
            {
                "comment_text": "",
                "digests": {
                    "md5": "bcccb4dcbe4866349966473b1636e8c1",
                    "sha256": "950723f27d2cf401e193a9e0a0d45baab848341298f5b397d27fda0c4635e9a9"
                },
                "downloads": -1,
                "filename": "python_socks-2.0.3-py3-none-any.whl",
                "has_sig": false,
                "md5_digest": "bcccb4dcbe4866349966473b1636e8c1",
                "packagetype": "bdist_wheel",
                "python_version": "py3",
                "requires_python": null,
                "size": 49214,
                "upload_time": "2022-01-22T10:13:21",
                "upload_time_iso_8601": "2022-01-22T10:13:21.466781Z",
                "url": "https://files.pythonhosted.org/packages/75/b8/68a18d3e73c5abfae91f2b8ccf82fd584e1bf96eccebb4e0b9f6082fd509/python_socks-2.0.3-py3-none-any.whl",
                "yanked": false,
                "yanked_reason": null
            },
            {
                "comment_text": "",
                "digests": {
                    "md5": "aed67565388b8711a3513d16a0b88b11",
                    "sha256": "e3a9ca8e554733862ce4d8ce1d10efb480fd3a3acdafd03393943ec00c98ba8a"
                },
                "downloads": -1,
                "filename": "python-socks-2.0.3.tar.gz",
                "has_sig": false,
                "md5_digest": "aed67565388b8711a3513d16a0b88b11",
                "packagetype": "sdist",
                "python_version": "source",
                "requires_python": null,
                "size": 24877,
                "upload_time": "2022-01-22T10:13:23",
                "upload_time_iso_8601": "2022-01-22T10:13:23.717958Z",
                "url": "https://files.pythonhosted.org/packages/ec/aa/122f85d184dada94458323a17102825eee0be57c1da87e87a234c867f87c/python-socks-2.0.3.tar.gz",
                "yanked": false,
                "yanked_reason": null
            }
        ]
    },
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "md5": "bcccb4dcbe4866349966473b1636e8c1",
                "sha256": "950723f27d2cf401e193a9e0a0d45baab848341298f5b397d27fda0c4635e9a9"
            },
            "downloads": -1,
            "filename": "python_socks-2.0.3-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "bcccb4dcbe4866349966473b1636e8c1",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 49214,
            "upload_time": "2022-01-22T10:13:21",
            "upload_time_iso_8601": "2022-01-22T10:13:21.466781Z",
            "url": "https://files.pythonhosted.org/packages/75/b8/68a18d3e73c5abfae91f2b8ccf82fd584e1bf96eccebb4e0b9f6082fd509/python_socks-2.0.3-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "aed67565388b8711a3513d16a0b88b11",
                "sha256": "e3a9ca8e554733862ce4d8ce1d10efb480fd3a3acdafd03393943ec00c98ba8a"
            },
            "downloads": -1,
            "filename": "python-socks-2.0.3.tar.gz",
            "has_sig": false,
            "md5_digest": "aed67565388b8711a3513d16a0b88b11",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 24877,
            "upload_time": "2022-01-22T10:13:23",
            "upload_time_iso_8601": "2022-01-22T10:13:23.717958Z",
            "url": "https://files.pythonhosted.org/packages/ec/aa/122f85d184dada94458323a17102825eee0be57c1da87e87a234c867f87c/python-socks-2.0.3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "vulnerabilities": []
}