{ "info": { "author": "Christopher Aubut", "author_email": "christopher@aubut.me", "bugtrack_url": null, "classifiers": [ "License :: Other/Proprietary License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.7" ], "description": "snmp-fetch\n==========\n\n|Version badge| |Python version badge| |PyPI format badge| |Build badge| |Coverage badge|\n\n.. |Version badge| image:: https://img.shields.io/pypi/v/snmp-fetch\n :target: https://pypi.org/project/snmp-fetch/\n\n.. |Python version badge| image:: https://img.shields.io/pypi/pyversions/snmp-fetch\n :alt: PyPI - Python Version\n :target: https://pypi.org/project/snmp-fetch/\n \n.. |PyPI format badge| image:: https://img.shields.io/pypi/format/snmp-fetch\n :alt: PyPI - Format\n :target: https://pypi.org/project/snmp-fetch/\n\n.. |Build badge| image:: https://travis-ci.org/higherorderfunctor/snmp-fetch.svg?branch=master\n :target: https://travis-ci.org/higherorderfunctor/snmp-fetch\n\n.. |Coverage badge| image:: https://coveralls.io/repos/github/higherorderfunctor/snmp-fetch/badge.svg\n :target: https://coveralls.io/github/higherorderfunctor/snmp-fetch\n\nAn opinionated python3.7 SNMPv2 package designed for rapid database ingestion. This package is a source distribution that includes a C module wrapping net-snmp. No MIB processing is done as part of this package. The C module copies raw results from net-snmp into numpy arrays for fast post-processing with either numpy or pandas. Other libraries that wrap net-snmp will typically return control to python between every PDU request-response. Snmp-fetch is designed to be thread-safe and efficient by walking multiple targets within the C module with the GIL released. Helper modules are provided to aid in the post-processing with MIB-like definitions for converting the raw data into usable DataFrames.\n\nPrerequisites\n\"\"\"\"\"\"\"\"\"\"\"\"\"\n\nSnmp-fetch requires python 3.7, a c++17 compiler (currently only supports gcc-8), and cmake 3.12.4+. No other user installed dependencies should be required for building this package.\n\n.. ATTENTION::\n\n Installation can take awhile as the install script will download boost and download and build a light-weight version of net-snmp 5.8 within the package.\n\n The boost download can take awhile as it clones each submodule as oppose to downloading the compressed distribution. There is an issue with downloading the compressed distribution via cmake with 302 redirects to a file failing in cURL.\n\n The cmake script will attempt to detect the number of cores on the host machine to speedup download and build times. Expect installation times to range from 5 minutes (4 cores with hyperthreading) to 30+ minutes (1 core).\n\nInstallation\n\"\"\"\"\"\"\"\"\"\"\"\"\n\n.. code:: console\n\n # poetry\n poetry add snmp-fetch --no-dev\n # pip\n pip install snmp-fetch\n\nExamples\n\"\"\"\"\"\"\"\"\n\nThe examples use jupyter and the dependencies can be installed using the following:\n\n.. code:: console\n\n git clone --recurse-submodules -j8 https://github.com/higherorderfunctor/snmp-fetch.git\n cd snmp_fetch\n virtualenv -p python3.7 ENV\n source ENV/bin/activate\n poetry install -E notebooks\n jupyter lab\n\nDevelopment\n\"\"\"\"\"\"\"\"\"\"\"\n\n`Poetry `_ is required for the development of snmp-fetch.\n\n.. code:: console\n\n # clone the respository\n git clone --recurse-submodules -j8 https://github.com/higherorderfunctor/snmp-fetch.git\n cd snmp-fetch\n\n # if working off an existing clone, update the current branch\n git pull # pull the latest code\n git submodule update --init --recursive # pull the latest submodule version\n\n # setup the virtual environment - mypy uses symbolic links in the 'stubs' directory to\n # expose packages that play nicely with the static type checker\n virtualenv -p python3.7 ENV\n source ENV/bin/activate\n poetry install\n\n.. code:: console\n\n # C++ headers are in the following folders for linters\n export CPLUS_INCLUDE_PATH=\"build/temp.linux-x86_64-3.7/include:lib/pybind11/include:lib/Catch2/single_include/catch2\"\n\n # python linting\n poetry run isort -rc --atomic .\n poetry run pylint snmp_fetch tests\n poetry run flake8 snmp_fetch tests\n poetry run mypy -p snmp_fetch -p tests\n poetry run bandit -r snmp_fetch\n\n # C++ linting\n # TODO\n\n # python testing\n poetry run pytest -v --hypothesis-show-statistics tests\n # fail fast testing\n poetry run pytest -x --ff tests\n\n # C++ testing\n pushd build/temp.linux-x86_64-3.7/\n cmake -DBUILD_TESTING=ON ../.. && make test_capi test\n popd\n\n\nKnown Limitations\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n- Changes between v0.1.x versions may introduce breaking changes.\n\n- The library only supports SNMPv2 at this time.\n\n- `BULKGET_REQUEST` and `NEXT_REQUEST` will always perform a walk.\n\n- Walks will always end if the root of the OID runs past the requested OID.\n\n- Duplicate objects on the same host/request will be silently discarded.\n\n - This includes the initial request; walks must be performed on an OID prior to the first desired.\n\n- NO_SUCH_INSTANCE, NO_SUCH_OBJECT, and END_OF_MIB_VIEW response variable bindings are exposed as errors for handling by the client.\n", "description_content_type": "text/x-rst", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/higherorderfunctor/snmp-fetch", "keywords": "", "license": "Unlicense", "maintainer": "Christopher Aubut", "maintainer_email": "christopher@aubut.me", "name": "snmp-fetch", "package_url": "https://pypi.org/project/snmp-fetch/", "platform": "", "project_url": "https://pypi.org/project/snmp-fetch/", "project_urls": { "Homepage": "https://github.com/higherorderfunctor/snmp-fetch", "Repository": "https://pypi.org/project/snmp-fetch/" }, "release_url": "https://pypi.org/project/snmp-fetch/0.1.7.1/", "requires_dist": [ "numpy (>=1.16,<2.0)", "pandas (>=0.25,<0.26)", "attrs (>=19.1,<20.0)", "toolz (>=0.10.0,<0.11.0)", "jupyterlab (>=1.1,<2.0); extra == \"notebooks\"", "distributed (>=2.6,<3.0); extra == \"notebooks\"" ], "requires_python": ">=3.7,<4.0", "summary": "An opinionated python SNMPv2 library built for rapid database ingestion.", "version": "0.1.7.1", "yanked": false, "yanked_reason": null }, "last_serial": 6077683, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "8ae61b53da0c0c711b55d050c154fe35", "sha256": "db9fa2cfb1214d82d2a7a6d99b85b4f100946651abf242d9ce6727c5164dc2d0" }, "downloads": -1, "filename": "snmp-fetch-0.1.0.tar.gz", "has_sig": false, "md5_digest": "8ae61b53da0c0c711b55d050c154fe35", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7,<4.0", "size": 20564, "upload_time": "2019-09-19T03:09:11", "upload_time_iso_8601": "2019-09-19T03:09:11.834783Z", "url": "https://files.pythonhosted.org/packages/e8/12/22926bd84b7160466279e1d3884b72c10ef1896c13f206e511b58439e494/snmp-fetch-0.1.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "9800b7d38951d652972b3f78e126b3e3", "sha256": "8a3e41f2545bab485574b0ea046cf217482c80a7508bfffa6bc0f73ffda239e7" }, "downloads": -1, "filename": "snmp-fetch-0.1.2.tar.gz", "has_sig": false, "md5_digest": "9800b7d38951d652972b3f78e126b3e3", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7,<4.0", "size": 34530, "upload_time": "2019-09-19T20:55:37", "upload_time_iso_8601": "2019-09-19T20:55:37.695548Z", "url": "https://files.pythonhosted.org/packages/07/b3/0995a5cf4f77eabef1575524874108aa2155a9b1e166bda038fb225fca2c/snmp-fetch-0.1.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "73bcf7397e7a1d7ae1d35fc64037314f", "sha256": "649fabd36bd6e817647d97a0641a35fc27413beb3394dba8946065ed8cdb84fb" }, "downloads": -1, "filename": "snmp-fetch-0.1.3.tar.gz", "has_sig": false, "md5_digest": "73bcf7397e7a1d7ae1d35fc64037314f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7,<4.0", "size": 33364, "upload_time": "2019-10-08T20:51:27", "upload_time_iso_8601": "2019-10-08T20:51:27.289091Z", "url": "https://files.pythonhosted.org/packages/e1/f7/3e6e8d78df7c4b40d32bed2600ffac85c179ac60ca57bcb1a35dcbabb58f/snmp-fetch-0.1.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "03270c894936fdfa9a7ad48a90749198", "sha256": "479c50ce204791b643da2e164d395e335e32001c3cbdf36618ec6909513ad7b5" }, "downloads": -1, "filename": "snmp-fetch-0.1.4.tar.gz", "has_sig": false, "md5_digest": "03270c894936fdfa9a7ad48a90749198", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7,<4.0", "size": 33322, "upload_time": "2019-10-08T21:56:32", "upload_time_iso_8601": "2019-10-08T21:56:32.199470Z", "url": "https://files.pythonhosted.org/packages/12/c1/8783034cee889d2318eac2f74a34349336640af22582a5cbd355d434e954/snmp-fetch-0.1.4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "6254ce5e2035cce69c63b38bb47649d0", "sha256": "d9739d90b0847babc0dd115697e7a72fe8fc6180006fd1c6ca1bd1129d9dbc8b" }, "downloads": -1, "filename": "snmp-fetch-0.1.5.tar.gz", "has_sig": false, "md5_digest": "6254ce5e2035cce69c63b38bb47649d0", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7,<4.0", "size": 33678, "upload_time": "2019-10-14T22:08:50", "upload_time_iso_8601": "2019-10-14T22:08:50.702762Z", "url": "https://files.pythonhosted.org/packages/8a/59/5fc21e46acfc46ef159b9487d9b03e6d5165f7652e0f92c9b7be7730f198/snmp-fetch-0.1.5.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "ade28617290cae9f034cf2dfdd27ed08", "sha256": "19331a2821e3d20ac5ff8bf5390d49abe945b667f62650c96206fa81fa895525" }, "downloads": -1, "filename": "snmp-fetch-0.1.6.tar.gz", "has_sig": false, "md5_digest": "ade28617290cae9f034cf2dfdd27ed08", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7,<4.0", "size": 29273, "upload_time": "2019-10-23T16:13:09", "upload_time_iso_8601": "2019-10-23T16:13:09.530854Z", "url": "https://files.pythonhosted.org/packages/6d/4f/ff8adf6f31a7e76a4bc12cdb8f0cf861c5fb1579b3d000a4bc2e272f1dfd/snmp-fetch-0.1.6.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.7.1": [ { "comment_text": "", "digests": { "md5": "65340bbba29eb912159d187d95b33846", "sha256": "a03a0ced7b4b74456aca772b1b3b33e4f31e3b23ddf5bf772b15212db495f568" }, "downloads": -1, "filename": "snmp-fetch-0.1.7.1.tar.gz", "has_sig": false, "md5_digest": "65340bbba29eb912159d187d95b33846", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7,<4.0", "size": 180202, "upload_time": "2019-11-04T21:31:10", "upload_time_iso_8601": "2019-11-04T21:31:10.138058Z", "url": "https://files.pythonhosted.org/packages/0e/b6/7d9f0f90db292ef01783b544858f38a7354bd8a13cf10f643ac046831fb6/snmp-fetch-0.1.7.1.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "65340bbba29eb912159d187d95b33846", "sha256": "a03a0ced7b4b74456aca772b1b3b33e4f31e3b23ddf5bf772b15212db495f568" }, "downloads": -1, "filename": "snmp-fetch-0.1.7.1.tar.gz", "has_sig": false, "md5_digest": "65340bbba29eb912159d187d95b33846", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7,<4.0", "size": 180202, "upload_time": "2019-11-04T21:31:10", "upload_time_iso_8601": "2019-11-04T21:31:10.138058Z", "url": "https://files.pythonhosted.org/packages/0e/b6/7d9f0f90db292ef01783b544858f38a7354bd8a13cf10f643ac046831fb6/snmp-fetch-0.1.7.1.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }