PySNMP is a cross-platform, pure-Python SNMP engine implementation. It features fully-functional SNMP engine capable to act in Agent/Manager/Proxy roles, talking SNMP v1/v2c/v3 protocol versions over IPv4/IPv6 and other network transports.
Despite its name, SNMP is not a really simple protocol. For instance its third version introduces complex and open-ended security framework, multilingual capabilities, remote configuration and other features. PySNMP implementation closely follows intricate system details and features bringing most possible power and flexibility to its users. As dealing with many features may overwhelm developers who aim at a quick and trivial task, PySNMP employs a layered architecture approach where the topmost programming API tries to be as simple as possible to allow immediate solutions for most common use cases. For instance it will let you perform SNMP GET/SET/WALK operations by pasting code snippets from this web-site right into your Python interactive session.
On the other end of the complexity spectrum, PySNMP defines a packet-level ASN.1 data structures that let you build, parse and analyze SNMP messages travelling over network. This extremely low-level programming interface is explained by the SNMPv1/v2c example scripts. If your goal is to conduct experiments on the protocol level or optimize for highest possible performance - this is a way to go.
Finally, PySNMP offers a complete set of Standard SNMP Applications to give you maximum flexibility with integration of SNMP facilities into other applications, building special purpose SNMP Agents, TRAP collectors, Proxy entities and all kinds of SNMP-related things.
SNMP suite of standards defines a data model for objects being managed (known as SMI), it takes shape of MIB files semi-formally listing and describing capabilities of a SNMP-managed system. In PySNMP, MIB files are converted into Python code objects which could be loaded and executed at run-time by both SNMP Manager (for purposes of data presentation to human beings) and SNMP Agents (as a gateway to backend systems like DBMS).
Besides the libraries, a set of pure-Python command-line tools are shipped along with the system. Those tools mimic the interface and behaviour of popular Net-SNMP snmpget/snmpset/snmpwalk utilities. They may be useful in a cross-platform situations as well as a testing and prototyping instrument for pysnmp users.
Current PySNMP stable version is 4.2.4. It runs with Python 2.4 through 3.3 and is recommended for new applications as well as for migration from older, now obsolete, PySNMP releases. All site documentation and examples are written for the 4.2.4 and later versions in mind. Older materials are still available under the obsolete section.