Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

Do you hate having to write lots of if-then logic to test what type something is? Wouldn’t it be nice if you could just declare “I want this object to have this behavior” and magically convert whatever value you have, to the type you need? PyProtocols lets you do just that, cleanly, quickly, and robustly – even with built-in types or other people’s classes.

PyProtocols extends the PEP 246 adapt() function with a new “declaration API” that lets you easily define your own protocols and adapters, and declare what adapters should be used to adapt what types, objects, or protocols. In addition to its own Interface type, PyProtocols can also use Twisted and Zope’s Interface types too. (Of course, since Twisted and Zope interfaces aren’t as flexible, only a subset of the PyProtocols API works with them. Specific limitations are listed in the documentation.)

Release history Release notifications | RSS feed

0.9.3rc2

0.9.3rc1

This release

0.9.3 final This release

0.9.1

0.9

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page