Lightweight synchronous SNMPv1 Client implemented as a PySNMP wrapper optimized for sequential queries
Project description
py_snmp_sync
Lightweight synchronous SNMPv1 Client implemented as a PySNMP wrapper optimized for sequential queries
Features
- Synchronous API for straightforward SNMPv1 GET operations
- Lightweight wrapper around PySNMP's core components
- Can be used to interface Epson printers
Installation
pip install py_snmp_sync
Quick Start
from py_snmp_sync import (
SyncUdpTransportTarget, sync_get_cmd, ObjectIdentity, CommunityData
)
target = SyncUdpTransportTarget(('demo.pysnmp.com', 161))
oid = ObjectIdentity('1.3.6.1.2.1.1.1.0')
# Perform SNMP GET request
error, status, index, binds = sync_get_cmd(
CommunityData("public", mpModel=0),
target,
oid
)
if not error and not status:
for name, value in binds:
print(f"{name.prettyPrint()} = {value.prettyPrint()}")
Usage
Basic Configuration
transport = SyncUdpTransportTarget(
(host, 161),
timeout=2,
retries=3
)
community = CommunityData("public", mpModel=0) # SNMPv1
timeout: Response wait timeout (seconds)retries: Number of retry attempts
Alternatively, community can be a string (e.g., "public").
oid can be an ObjectIdentity() (e.g., ObjectIdentity("SNMPv2-MIB", "sysDescr", 0) or ObjectIdentity('1.3.6.1.2.1.1.1.0')), or a string (e.g., "1.3.6.1.2.1.1.1.0").
sync_get_cmd() returns a tuple similar to pysnmp get_cmd(): (error_indication, error_status, error_index, var_binds) and supports multiple OIDs per request.
Batch operations
oids = [
ObjectIdentity('1.3.6.1.2.1.1.1.0'),
ObjectIdentity('1.3.6.1.2.1.1.5.0')
]
with SyncUdpTransportTarget(('device-ip', 161)) as transport:
for oid in oids:
error, status, _, binds = sync_get_cmd(community, transport, oid)
# Handle response
Contributing
Contributions welcome! Please follow standard guidelines:
-
Fork the repository
-
Create a feature branch
-
Submit a Pull Request
License
EUPL-1.2 License - See LICENSE for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file py_snmp_sync-1.0.0.tar.gz.
File metadata
- Download URL: py_snmp_sync-1.0.0.tar.gz
- Upload date:
- Size: 9.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7464e5ff4e611cf2eeeeb29dcf8a0eddb4db213980129f541e011c81246b941b
|
|
| MD5 |
96891ca2edabf416c315f7c75ee1d0c6
|
|
| BLAKE2b-256 |
7c5148193e6207271397b1da3cdcfb8627d0465e25d713e1112369695ca8cb5a
|