{
"info": {
"author": "Carson Lam",
"author_email": "carsonyylam@gmail.com",
"bugtrack_url": null,
"classifiers": [
"Development Status :: 3 - Alpha",
"Environment :: Web Environment",
"Intended Audience :: Developers",
"License :: OSI Approved :: Apache Software License",
"Natural Language :: English",
"Operating System :: OS Independent",
"Programming Language :: Python :: 2",
"Programming Language :: Python :: 2.7",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.4",
"Programming Language :: Python :: 3.5",
"Programming Language :: Python :: 3.6",
"Programming Language :: Python :: 3.7",
"Topic :: Internet"
],
"description": "PyPAC: Proxy auto-config for Python\n===================================\n\n.. image:: https://img.shields.io/pypi/v/pypac.svg?maxAge=2592000\n :target: https://pypi.python.org/pypi/pypac\n.. image:: https://readthedocs.org/projects/pypac/badge/?version=latest\n :target: https://pypac.readthedocs.io/en/latest/?badge=latest\n.. image:: https://img.shields.io/travis/carsonyl/pypac.svg?maxAge=2592000\n :target: https://travis-ci.org/carsonyl/pypac\n.. image:: https://ci.appveyor.com/api/projects/status/y7nxvu2feu87i39t/branch/master?svg=true\n :target: https://ci.appveyor.com/project/rbcarson/pypac/branch/master\n.. image:: https://img.shields.io/coveralls/carsonyl/pypac/HEAD.svg?maxAge=2592000\n :target: https://coveralls.io/github/carsonyl/pypac\n.. image:: https://img.shields.io/codacy/grade/71ac103b491d44efb94976ca5ea5d89c.svg?maxAge=2592000\n :target: https://www.codacy.com/app/carsonyl/pypac\n\nPyPAC is a Python library for finding `proxy auto-config (PAC)`_ files and making HTTP requests\nthat respect them. PAC files are often used in organizations that need fine-grained and centralized control\nof proxy settings.\n\n.. _proxy auto-config (PAC): https://en.wikipedia.org/wiki/Proxy_auto-config\n\nPyPAC provides a subclass of a `Requests `_ ``Session``,\nso you can start using it immediately, with any PAC file transparently discovered and honoured:\n\n.. code-block:: python\n\n >>> from pypac import PACSession\n >>> session = PACSession()\n >>> session.get('http://example.org')\n ...\n\nIf a PAC file isn't found, then ``PACSession`` acts exactly like a regular ``Session``.\n\nPyPAC can find PAC files according to the DNS portion of the `Web Proxy Auto-Discovery (WPAD)`_ protocol.\nOn Windows, PyPAC can also obtain the PAC file URL from the Internet Options dialog, via the registry.\nOn macOS, PyPAC can obtain the PAC file URL from System Preferences.\n\n.. _Web Proxy Auto-Discovery (WPAD): https://en.wikipedia.org/wiki/Web_Proxy_Autodiscovery_Protocol\n\nIf you're looking to add *basic* PAC functionality to a library that you're using,\ntry the ``pac_context_for_url()`` context manager:\n\n.. code-block:: python\n\n from pypac import pac_context_for_url\n import boto3\n\n with pac_context_for_url('https://example.amazonaws.com'):\n client = boto3.client('sqs')\n client.list_queues()\n\nThis sets up proxy environment variables at the start of the scope, based on any auto-discovered PAC and the given URL.\n``pac_context_for_url()`` should work for any library\nthat honours proxy environment variables.\n\n\nFeatures\n--------\n\n* The same Requests API that you already know and love\n* Honour PAC setting from Windows Internet Options and macOS System Preferences\n* Follow DNS Web Proxy Auto-Discovery protocol\n* Proxy authentication pass-through\n* Proxy failover and load balancing\n* Generic components for adding PAC support to other code\n\nPyPAC supports Python 2.7 and 3.4+.\n\n\nInstallation\n------------\n\nInstall PyPAC using `pip `_::\n\n $ pip install pypac\n\n\nDocumentation\n-------------\n\nPyPAC's documentation is available at http://pypac.readthedocs.io/.\n\n\n0.13.0 (2019-09-16)\n-------------------\n\n- Make it possible to configure the request for the PAC file. (#44) Thanks @SeyfSV.\n- urlencode proxy username and password. (#46) Thanks @aslafy-z.\n\n\n0.12.0 (2018-09-11)\n-------------------\n\n- Fix possible error when ``dnsResolve()`` fails. (#34) Thanks @maximinus.\n\n\n0.11.0 (2018-09-08)\n-------------------\n\n- Require dukpy 0.2.2, to fix memory leak. (#32) Thanks @maximinus.\n- Change Mac environment marker. (#30)\n- Support Python 3.7.\n\n\n0.10.1 (2018-08-26)\n-------------------\n\n- Require tld 0.9.x. (#29)\n\n\n0.10.0 (2018-08-26)\n-------------------\n\n- Switch JavaScript interpreter to dukpy. (#24)\n- Fix ``pac_context_for_url()`` erroring with ``DIRECT`` PAC setting. (#27)\n- Fix warning about invalid escape sequence (#26). Thanks @BoboTiG.\n\n\n0.9.0 (2018-06-02)\n------------------\n\n- Add macOS support for PAC in System Preferences (#23). Thanks @LKleinNux.\n- The `from_registry` argument on `pypac.get_pac()` and `pypac.collect_pac_urls()`\n is now deprecated and will be removed in 1.0.0. Use `from_os_settings` instead.\n\n\n0.8.1 (2018-03-01)\n------------------\n\n- Defer Js2Py import until it's needed. It uses a lot of memory.\n See #20 for details.\n\n\n0.8.0 (2018-02-28)\n------------------\n\n- Add support for ``file://`` PAC URLs on Windows.\n\n\n0.7.0 (2018-02-21)\n------------------\n\n- Drop support for Python 3.3.\n- Add doc explaining how to use ``pac_context_for_url()``.\n- Internal changes to dev and test processes.\n\n\n0.6.0 (2018-01-28)\n------------------\n\n- Add ``pac_context_for_url()``, a context manager that adds basic PAC functionality\n through proxy environment variables.\n\n\n0.5.0 (2018-01-18)\n------------------\n\n- Accept PAC files served with no ``Content-Type`` header.\n\n\n0.4.0 (2017-11-07)\n------------------\n\n- Add ``recursion_limit`` keyword argument to ``PACSession`` and ``PACFile``.\n The default is an arbitrarily high value (10000), which should cover most applications.\n- Exclude port numbers from ``host`` passed to ``FindProxyForURL(url, host)``.\n\n\n0.3.1 (2017-06-23)\n------------------\n\n- Update GitHub username.\n\n\n0.3.0 (2017-04-12)\n------------------\n- Windows: Get system auto-proxy config setting using ``winreg`` module.\n- Windows: Accept local filesystem paths from system proxy auto-config setting.\n- Raise ``PacComplexityError`` when recursion limit is hit while parsing PAC file.\n- Support setting ``PACSession.proxy_auth`` and ``ProxyResolver.proxy_auth`` after constructing an instance.\n- Narrative docs.\n\n\n0.2.1 (2017-01-19)\n------------------\n\n- Require Js2Py >= 0.43 for Python 3.6 support, and to avoid needing to monkeypatch out ``pyimport``.\n\n\n0.1.0 (2016-06-12)\n------------------\n\n- First release.\n\n\n",
"description_content_type": "",
"docs_url": null,
"download_url": "",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "https://github.com/carsonyl/pypac",
"keywords": "pypac pac proxy autoconfig requests",
"license": "Apache 2.0",
"maintainer": "",
"maintainer_email": "",
"name": "pypac",
"package_url": "https://pypi.org/project/pypac/",
"platform": "",
"project_url": "https://pypi.org/project/pypac/",
"project_urls": {
"Homepage": "https://github.com/carsonyl/pypac"
},
"release_url": "https://pypi.org/project/pypac/0.13.0/",
"requires_dist": [
"requests (<3.0.0,>=2.0.0)",
"tld (~=0.9)",
"dukpy (~=0.2.2)",
"pyobjc-framework-SystemConfiguration (>=3.2.1) ; sys_platform == \"darwin\"",
"requests[socks] (>=2.10.0) ; extra == 'socks'"
],
"requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*",
"summary": "Proxy auto-config and auto-discovery for Python.",
"version": "0.13.0"
},
"last_serial": 5839132,
"releases": {
"0.1.0": [
{
"comment_text": "",
"digests": {
"md5": "67ccad79d2e83a78c0b9efbf1f384f54",
"sha256": "be2da2ff167d9be2af68d4b68cc0a22bd6f6aae06193d272d84c705784d9004a"
},
"downloads": -1,
"filename": "pypac-0.1.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "67ccad79d2e83a78c0b9efbf1f384f54",
"packagetype": "bdist_wheel",
"python_version": "any",
"requires_python": null,
"size": 17916,
"upload_time": "2016-06-14T06:48:21",
"url": "https://files.pythonhosted.org/packages/92/7b/0b61f4a013bcdfa477e2b7fcc7333e2f0b256237d7f7abef5978843f9095/pypac-0.1.0-py2.py3-none-any.whl"
}
],
"0.10.0": [
{
"comment_text": "",
"digests": {
"md5": "35465cd7b251ab7730a03f78fe5bdea8",
"sha256": "0b61e8344925f03a083a99461dbf9da96e53a45cb7cb58a76af6d565e257592a"
},
"downloads": -1,
"filename": "pypac-0.10.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "35465cd7b251ab7730a03f78fe5bdea8",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*",
"size": 26603,
"upload_time": "2018-08-27T01:15:51",
"url": "https://files.pythonhosted.org/packages/30/67/65b85b143e14831ce6ef1a29e943fef0a79f8967ad0cdfafd237e1415792/pypac-0.10.0-py2.py3-none-any.whl"
}
],
"0.10.1": [
{
"comment_text": "",
"digests": {
"md5": "c7727058da2839b96c616c2184694386",
"sha256": "0f152cb4c82f31663297460c5198d6e898e8bb9134f72825e6de41eb9469f4f6"
},
"downloads": -1,
"filename": "pypac-0.10.1-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "c7727058da2839b96c616c2184694386",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*",
"size": 26672,
"upload_time": "2018-08-27T06:14:24",
"url": "https://files.pythonhosted.org/packages/be/c3/9a31b227ee2179b1782475c39feee4478368f6e2dadae39f10e8d1aece9c/pypac-0.10.1-py2.py3-none-any.whl"
}
],
"0.11.0": [
{
"comment_text": "",
"digests": {
"md5": "0a157792ff59aa2819441b9ba8bb9209",
"sha256": "9d78e0c5c4c6124db61edfca49d208de34a7729dd7082b683c692d2e5d76eee4"
},
"downloads": -1,
"filename": "pypac-0.11.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "0a157792ff59aa2819441b9ba8bb9209",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*",
"size": 26821,
"upload_time": "2018-09-08T08:47:07",
"url": "https://files.pythonhosted.org/packages/ec/fa/b5e44ff072219f747f89d90da835913df7f64558b24f867ea343f0bf7a0f/pypac-0.11.0-py2.py3-none-any.whl"
}
],
"0.12.0": [
{
"comment_text": "",
"digests": {
"md5": "ee6dd8d523cc09a6286df293b327e56d",
"sha256": "ccba48d38f611002005ef1e92b23aeaeebe98241c03533960027e8a39c5920aa"
},
"downloads": -1,
"filename": "pypac-0.12.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "ee6dd8d523cc09a6286df293b327e56d",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*",
"size": 26872,
"upload_time": "2018-09-12T04:09:10",
"url": "https://files.pythonhosted.org/packages/b2/93/132c79c707989bb65d188e744430041147fb2f868744bafe446521663049/pypac-0.12.0-py2.py3-none-any.whl"
}
],
"0.13.0": [
{
"comment_text": "",
"digests": {
"md5": "27a4241186ce6b621ad36a35d4ecd0ad",
"sha256": "a1eac0e3224939fcc691c8ad815f9cd24d737c8e0cf9c9905a01821bbe8f1414"
},
"downloads": -1,
"filename": "pypac-0.13.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "27a4241186ce6b621ad36a35d4ecd0ad",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*",
"size": 22470,
"upload_time": "2019-09-17T02:31:04",
"url": "https://files.pythonhosted.org/packages/ad/fc/b72b4e4a42b49904ce8ac61063ef106407d81b6df01d6361f01b11b90c93/pypac-0.13.0-py2.py3-none-any.whl"
}
],
"0.2.1": [
{
"comment_text": "",
"digests": {
"md5": "452160a4d4fb7e36f87906692416881f",
"sha256": "a882b52103beb00b879cf70b272221b123e79af6f92388010a64065411a3cb59"
},
"downloads": -1,
"filename": "pypac-0.2.1-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "452160a4d4fb7e36f87906692416881f",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 17938,
"upload_time": "2017-01-20T07:41:45",
"url": "https://files.pythonhosted.org/packages/25/ad/565928e1451a83ae7ed0587b0f077e56ea74e6033d50eda446519cb14142/pypac-0.2.1-py2.py3-none-any.whl"
}
],
"0.3.0": [
{
"comment_text": "",
"digests": {
"md5": "a2518ba299dcf500ba5f183bb98d932d",
"sha256": "036bf5402dfdae4f2222b5ace02a4a1dd7df2da4339f08a2b264dd240322c773"
},
"downloads": -1,
"filename": "pypac-0.3.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "a2518ba299dcf500ba5f183bb98d932d",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 17895,
"upload_time": "2017-04-13T01:15:15",
"url": "https://files.pythonhosted.org/packages/09/f0/eb87ed998aa434f0efd2ef91c3ee7eeeadad511c0a348ae9fd6db12d064a/pypac-0.3.0-py2.py3-none-any.whl"
}
],
"0.3.1": [
{
"comment_text": "",
"digests": {
"md5": "95c2af3cb82301cbd32d4a8ef4ef4301",
"sha256": "3d1bc1f8da8947e38edf5453f9d90aad7d940b07934f020c4bf822b984b9e977"
},
"downloads": -1,
"filename": "pypac-0.3.1-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "95c2af3cb82301cbd32d4a8ef4ef4301",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 18547,
"upload_time": "2017-06-24T04:32:54",
"url": "https://files.pythonhosted.org/packages/51/74/150d8d7e04a4aef327e6f91ece5b66363fc50945902f3743cd4eec52de8b/pypac-0.3.1-py2.py3-none-any.whl"
}
],
"0.4.0": [
{
"comment_text": "",
"digests": {
"md5": "0a234e90a44ed2a6607cef4c9ecfd4d2",
"sha256": "c4f90182010d7e306f26ff8dee70ae09a0f7ce4e60fa2b2a1d9e940231917812"
},
"downloads": -1,
"filename": "pypac-0.4.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "0a234e90a44ed2a6607cef4c9ecfd4d2",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 19304,
"upload_time": "2017-11-08T06:41:15",
"url": "https://files.pythonhosted.org/packages/39/41/77e92fb2592bb7a1ec29da66f16cb9e48fec05ca1a473868689519af98fe/pypac-0.4.0-py2.py3-none-any.whl"
}
],
"0.5.0": [
{
"comment_text": "",
"digests": {
"md5": "102359e3137c2632c72ee56967f705f4",
"sha256": "062bc9a06d3d4b2f3ab29c3baae3348e34df1e186ab6135915178d2c47fc5ea0"
},
"downloads": -1,
"filename": "pypac-0.5.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "102359e3137c2632c72ee56967f705f4",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 19407,
"upload_time": "2018-01-19T06:32:47",
"url": "https://files.pythonhosted.org/packages/4f/32/104005fc798c6b86c3f952ba420927f8dde730597f973e35b4e18ce94c77/pypac-0.5.0-py2.py3-none-any.whl"
}
],
"0.6.0": [
{
"comment_text": "",
"digests": {
"md5": "7abaebbc6c8ecdaff274eca73889b56d",
"sha256": "47c534fcd59bb4736aa1312c1097bb60c0cc72a90615c927c46d5cb60869b3e9"
},
"downloads": -1,
"filename": "pypac-0.6.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "7abaebbc6c8ecdaff274eca73889b56d",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 19961,
"upload_time": "2018-01-29T06:13:42",
"url": "https://files.pythonhosted.org/packages/60/5a/db84d01b8554819bb034d7171de456cecb5c687198fe3827198b4c2a610d/pypac-0.6.0-py2.py3-none-any.whl"
}
],
"0.7.0": [
{
"comment_text": "",
"digests": {
"md5": "b45207915b9b57bb9d4c439bd6513c3b",
"sha256": "a5429871df4df76d907ca5fa20fd2c813e6cc4a6f68639f56fbfccb5e6301a4f"
},
"downloads": -1,
"filename": "pypac-0.7.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "b45207915b9b57bb9d4c439bd6513c3b",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*",
"size": 24131,
"upload_time": "2018-02-22T04:18:09",
"url": "https://files.pythonhosted.org/packages/c0/fc/4af66a67e38a1d6a12b7b4d20dbe3ec878994c06184703b9251284ef21d2/pypac-0.7.0-py2.py3-none-any.whl"
}
],
"0.8.0": [
{
"comment_text": "",
"digests": {
"md5": "e436b570b5b7006d8b4cc65559225fdb",
"sha256": "83503c31c292c0974cfacdfb51a2c96f6dbd6741ab2dcb1f23864720b062ba8d"
},
"downloads": -1,
"filename": "pypac-0.8.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "e436b570b5b7006d8b4cc65559225fdb",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*",
"size": 24556,
"upload_time": "2018-02-28T07:53:31",
"url": "https://files.pythonhosted.org/packages/1a/d7/9094acb6fccdefe1f49b0f75c7997f5149e0b69e1fb3fb2c028326cd5c24/pypac-0.8.0-py2.py3-none-any.whl"
}
],
"0.8.1": [
{
"comment_text": "",
"digests": {
"md5": "a806accfda8047550235421dc057a585",
"sha256": "ad057a3440a018a48b65caf4a3b592f42ed9cde10a511ac1309a61b4d60a99b1"
},
"downloads": -1,
"filename": "pypac-0.8.1-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "a806accfda8047550235421dc057a585",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*",
"size": 24800,
"upload_time": "2018-03-02T04:06:18",
"url": "https://files.pythonhosted.org/packages/3a/38/53bde6972fc2c2c7ed65e881cde2e1030da7f03529157377136f20dffe4b/pypac-0.8.1-py2.py3-none-any.whl"
}
],
"0.9.0": [
{
"comment_text": "",
"digests": {
"md5": "c7e1fc4e99710766aec4559e27efd8b8",
"sha256": "d029508f57c2393695d0e6d96515c1d00f564fcf988e67f7c5a45af7e8ce3caa"
},
"downloads": -1,
"filename": "pypac-0.9.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "c7e1fc4e99710766aec4559e27efd8b8",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*",
"size": 26792,
"upload_time": "2018-06-03T02:35:48",
"url": "https://files.pythonhosted.org/packages/8a/0a/6dcdf2e8877b1cbddf2ddb23831e92715a30b4f1ad4debb1d877a74aff0e/pypac-0.9.0-py2.py3-none-any.whl"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "27a4241186ce6b621ad36a35d4ecd0ad",
"sha256": "a1eac0e3224939fcc691c8ad815f9cd24d737c8e0cf9c9905a01821bbe8f1414"
},
"downloads": -1,
"filename": "pypac-0.13.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "27a4241186ce6b621ad36a35d4ecd0ad",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*",
"size": 22470,
"upload_time": "2019-09-17T02:31:04",
"url": "https://files.pythonhosted.org/packages/ad/fc/b72b4e4a42b49904ce8ac61063ef106407d81b6df01d6361f01b11b90c93/pypac-0.13.0-py2.py3-none-any.whl"
}
]
}