Metadata-Version: 1.1
Name: easysnmp
Version: 0.2.2
Summary: A blazingly fast and Pythonic SNMP library based on the official Net-SNMP bindings
Home-page: https://github.com/fgimian/easysnmp
Author: Fotis Gimian
Author-email: fgimiansoftware@gmail.com
License: BSD
Description: .. image:: http://easysnmp.readthedocs.org/en/latest/_static/easysnmp.png
        
        Introduction
        ------------
        
        This is a fork of the official `Net-SNMP Python Bindings`_ but attempts to
        bring a more Pythonic interface to the library.   Check out the
        `Net-SNMP website`_ for more information about SNMP.
        
        This module provides a full featured SNMP client API supporting all dialects
        of the SNMP protocol.
        
        .. _Net-SNMP Python Bindings: http://net-snmp.sourceforge.net/wiki/index.php/Python_Bindings
        .. _Net-SNMP website: http://www.net-snmp.org/
        
        Why Another Library?
        --------------------
        
        * The `original Net-SNMP Python library`_ is a great starting point but is
          quite un-Pythonic and lacks proper unit tests and documentation.
        * `PySNMP`_ is written in pure Python and therefore has a huge performance hit.
          In some brief tests, I estimate that both the Net-SNMP Python bindings and
          Easy SNMP are more than 4 times faster. Further to this, PySNMP has an even
          less Pythonic interface than the official Net-SNMP bindings.
        * Many other libraries like `Snimpy`_ are sadly based on PySNMP and so they
          suffer the same performance penalty.
        
        .. _original Net-SNMP Python library: http://net-snmp.sourceforge.net/wiki/index.php/Python_Bindings
        .. _PySNMP: http://pysnmp.sourceforge.net/
        .. _Snimpy: https://snimpy.readthedocs.org/en/latest/
        
        Quick Start
        -----------
        There are primarily two ways you can use the Easy SNMP library.
        
        The first is with the use of a Session object which is most suitable when you
        are planning on requesting multiple pieces of SNMP data from a source.
        
        .. code-block:: python
        
            from easysnmp import Session
        
            # Create an SNMP session to be used for all our requests
            session = Session(hostname='localhost', community='public', version=2)
        
            # You may retrieve an individual OID using an SNMP GET
            location = session.get('sysLocation.0')
        
            # You may also specify the OID as a tuple (name, index)
            # Note: the index is specified as a string as it can be of other types than
            # just a regular integer
            contact = session.get(('sysContact', '0'))
        
            # And of course, you may use the numeric OID too
            description = session.get('.1.3.6.1.2.1.1.1.0')
        
            # Set a variable using an SNMP SET
            session.set('sysLocation.0', 'The SNMP Lab')
        
            # Perform an SNMP walk
            system_items = session.walk('system')
        
            # Each returned item can be used normally as its related type (str or int)
            # but also has several extended attributes with SNMP-specific information
            for item in system_items:
                print '{oid}.{oid_index} {snmp_type} = {value}'.format(
                    oid=item.oid,
                    oid_index=item.oid_index,
                    snmp_type=item.snmp_type,
                    value=item.value
                )
        
        You may also use Easy SNMP via its simple interface which is intended for
        one-off operations where you wish to specify all details in the request:
        
        .. code-block:: python
        
            from easysnmp import snmp_get, snmp_set, snmp_walk
        
            # Grab a single piece of information using an SNMP GET
            snmp_get('sysDescr.0', hostname='localhost', community='public', version=1)
        
            # Perform an SNMP SET to update data
            snmp_set(
                'sysLocation.0', 'My Cool Place',
                hostname='localhost', community='public', version=1
            )
        
            # Perform an SNMP walk
            snmp_walk('system', hostname='localhost', community='public', version=1)
        
        Documentation
        -------------
        
        Please check out the `Easy SNMP documentation at Read the Docs`_.
        This includes install instructions for various operating systems.
        
        .. _Easy SNMP documentation at Read the Docs: http://easysnmp.readthedocs.org/
        
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3.2
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Topic :: System :: Networking
Classifier: Topic :: System :: Networking :: Monitoring
