Skip to main content

An opinionated python SNMPv2 library built for rapid database ingestion.

Project description

Version badge PyPI - Python Version PyPI - Format Build badge Coverage badge

An opinionated python3.7 SNMPv2 library designed for rapid database ingestion.


Snmp-fetch is built for python 3.7 and c++17. Building is currently only tested on gcc 8. The following prerequisites must also be installed before adding snmp-fetch to your project.


A recent version of net-snmp is required; testing has only been performed against net-snmp 5.8.

# perl bindings may be needed on RPM based systems
sudo yum install perl-devel

# compile and install net-snmp
wget -O net-snmp.tar.gz
tar xzfv net-snmp.tar.gz
cd net-snmp-5.8
./configure --enable-ipv6 --with-defaults
sudo make install
cd .. && rm -rf net-snmp*
sudo ldconfig -v

boost (headers only)

Boost is a popular C++ library to reduce boilerplate. Snmp-fetch makes use of some of the header only libraries.

tar xzfv boost_1_70_0.tar.gz
sudo mv boost_1_70_0/boost /usr/local/include/
rm -rf boost_1_70_0*


Pybind11 is a C++ wrapper around the Python C API to reduce boilerplate. This is a header only library, but the test script will attempt to build a binary.

# install pytest in the user space for the test build
pip3.7 install --user pytest

# install cmake
sudo ./ \
  --prefix=/usr/local/ \
  --exclude-subdir \

# test and install pybind11
git clone --depth 1
cd pybind11
mkdir -p build && cd build
make check -j 4
sudo make install
cd ../../
rm -rf pybind11


# poetry
poetry add snmp-fetch --git
# pip
pip install git+


# poetry must be installed
git clone ...
cd snmp-fetch
virtualenv -p python3.7 ENV
source ENV/bin/activate
poetry install  # if never installed
deactivate && source ENV/bin/activate  # refresh PATH

# fast fail testing
pytest --hypothesis-show-statistics -x --ff

# testing
coverage erase
pytest --cov --hypothesis-show-statistics
coverage html

# linting
pylint *
mypy -p snmp_fetch -p tests
bandit -r snmp_fetch

# clean up imports
isort -rc --atomic .

Known Limitations

  • The library only supports SNMPv2 at this time.

  • GETBULK_REQUEST and NEXT_REQUEST will always perform a walk.

  • Walks will always end if the root of the oid runs past the requested oid.

  • Duplicate objects on the same host/request will be silently discarded.

    • This includes the initial request; walks must be performed on an oid prior to the first desired.

    • ENDOFMIBVIEW variable bindings are silently discarded for this same reason.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

snmp-fetch-0.1.2.tar.gz (34.5 kB view hashes)

Uploaded source

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page