skillfed

PyPAC

Proxy auto-config and auto-discovery for Python.

pypac v0.19.0 469.0K downloads/30d#6,490 on PyPI74
Permissive license Apache-2.0 Active released

What it is and what it does

PyPAC is a Python library that integrates proxy auto-config (PAC) file discovery and enforcement into HTTP requests. It extends the Requests library with a PACSession class that automatically discovers PAC files via the WPAD protocol, Windows Internet Options, or macOS System Preferences, then routes requests through the proxies specified in those files. If no PAC file is found, it behaves like a regular Requests session.

The library handles proxy authentication, failover, and load balancing as defined in PAC files. It also provides a context manager (pac_context_for_url) for adding basic PAC support to libraries that honor proxy environment variables. The package depends on requests for HTTP, publicsuffixlist for domain matching, dukpy for JavaScript execution, and pyobjc-framework-SystemConfiguration for macOS integration.

Use it for:

  • Make HTTP requests in corporate environments where PAC files centrally control proxy routing without manual configuration.
  • Automatically discover and use organization-specific proxy settings on Windows or macOS without hardcoding proxy URLs.
  • Add PAC support to AWS SDK calls (boto3) or other libraries via the pac_context_for_url context manager.
  • Handle proxy failover and load balancing defined in PAC files for resilient HTTP clients.
  • Respect DNS-based proxy discovery (WPAD) in networks that use it for automatic proxy configuration.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

PyPAC discovers proxy auto-config (PAC) files and makes HTTP requests that respect them, with automatic PAC discovery on Windows and macOS and support for the WPAD protocol.

Yes. PyPAC is actively maintained, has no known vulnerabilities, low install friction, and solves a real problem for developers in corporate environments. Install it if your application needs to respect PAC files or auto-discover proxies; skip it if you're in an environment with static proxy configuration or no proxy requirements.

Install

pypac on PyPI

pip

pip install pypac

uv

uv add pypac

poetry

poetry add pypac

Installing PyPAC

Before you install

Low install friction with a pure-Python wheel. Actively maintained with a release 7 days ago and recent fixes for dukpy 0.6.0 compatibility and dependency consolidation.

License in practice

Apache-2.0 is permissive; you can use, modify, and distribute PyPAC freely in commercial and private projects with minimal restrictions.

Quickstart

pip install pypac

from pypac import PACSession
session = PACSession()
response = session.get('http://example.org')

Verify before relying

  • Whether dukpy 0.6.0 support is complete or if there are known edge cases with PAC execution.
  • Performance characteristics when PAC files are large or contain complex JavaScript logic.
  • Whether pyobjc-framework-SystemConfiguration is required on all macOS versions or only specific ones.

Package facts

License Apache-2.0 (permissive)
Python support supports the current Python release (!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7)
Install friction low — pure-Python wheel
Runtime dependencies 4 — requests, publicsuffixlist, dukpy, pyobjc-framework-SystemConfiguration
Maintenance actively maintained — 7 days since the last release
Last repo commit
First released
Downloads 469,001/month — #6,490 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: pypac-0.19.0-py2.py3-none-any.whl

Keywords: pypac, pac, proxy, autoconfig, requests

Environment :: Web EnvironmentIntended Audience :: DevelopersLicense :: OSI Approved :: Apache Software LicenseOperating System :: OS IndependentProgramming Language :: Python :: 2Programming Language :: Python :: 2.7Programming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: 3.5Programming Language :: Python :: 3.6Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Topic :: Internet

Tags

proxy auto-config pacwpad web proxy auto-discoveryautomatic proxy configurationpac file discoveryproxy settings requestswindows macos proxy settingspac session http
proxy-configurationwpad-discoveryrequests-integration

More Internet packages