PyPAC: Proxy auto-config for Python¶
Release v0.18.3.
PyPAC is a 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. Are you using one?
PyPAC provides PACSession,
a drop-in subclass of requests.Session,
so you can start transparently finding and obeying PAC files immediately.
Features¶
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
Generic components for adding PAC support to other code
PyPAC supports Python 2.7 and 3.5+.
Installation¶
Install PyPAC using pip:
$ python -m pip install pypac
The source is also available on GitHub.
Quickstart¶
The quickest way to get started is to use a PACSession:
>>> from pypac import PACSession
>>> session = PACSession()
>>> session.get('http://example.org')
<Response [200]>
Behind the scenes, the first request made with the session will trigger the PAC auto-discovery process. This process first looks for a PAC URL setting in Windows, and if not found, moves on to the DNS WPAD protocol.
Once a PAC file is found, it will be automatically consulted for every request.
If a PAC wasn’t found, then PACSession acts just like a requests.Session.
If you’re looking to add basic PAC functionality to a library that you’re using,
try the pac_context_for_url context manager:
from pypac import pac_context_for_url
import boto3
with pac_context_for_url('https://example.amazonaws.com'):
client = boto3.client('sqs')
client.list_queues()
This sets up proxy environment variables at the start of the scope, based on any auto-discovered PAC and the given URL.
pac_context_for_url should work for any library
that honours proxy environment variables.