Proxy auto-config and auto-discovery for Python.
PyPAC is a pure-Python library for finding proxy auto-config (PAC) files and making HTTP requests that respect them. PAC files are often used in organizations that need fine-grained and centralized control of proxy settings.
PyPAC provides a subclass of a Requests Session, so you can start using it immediately, with any PAC file transparently discovered and honoured:
>>> from pypac import PACSession >>> session = PACSession() >>> session.get('http://example.org') ...
If a PAC file isn’t found, then PACSession acts exactly like a regular Session.
PyPAC can find PAC files according to the DNS portion of the Web Proxy Auto-Discovery (WPAD) protocol. On Windows, PyPAC can also obtain the PAC file URL from the Internet Options dialog, via the registry.
- The same Requests API that you already know and love
- Honour PAC setting from Windows Internet Options
- Follow DNS Web Proxy Auto-Discovery protocol
- Proxy authentication pass-through
- Proxy failover and load balancing
PyPAC supports Python 2.7 and 3.3+.
Install PyPAC using pip:
$ pip install pypac
PyPAC’s documentation is available at http://pypac.readthedocs.io/.
- Accept PAC files served with no Content-Type header.
- Add recursion_limit keyword argument to PACSession and PACFile. The default is an arbitrarily high value (10000), which should cover most applications.
- Exclude port numbers from host passed to FindProxyForURL(url, host).
- Update GitHub username.
- Windows: Get system auto-proxy config setting using winreg module.
- Windows: Accept local filesystem paths from system proxy auto-config setting.
- Raise PacComplexityError when recursion limit is hit while parsing PAC file.
- Support setting PACSession.proxy_auth and ProxyResolver.proxy_auth after constructing an instance.
- Narrative docs.
- Require Js2Py >= 0.43 for Python 3.6 support, and to avoid needing to monkeypatch out pyimport.
- First release.