/netconf_client

A NETCONF client for Python 3.8+

Primary LanguagePythonOtherNOASSERTION

Build Status PyPI version Coverage Status

netconf_client

A NETCONF client for Python 3.8+.

Basic Usage

from netconf_client.connect import connect_ssh
from netconf_client.ncclient import Manager

session = connect_ssh(host="localhost", port=830, username="admin", password="password")
mgr = Manager(session, timeout=120)

mgr.edit_config(config="""<config> ... </config>""")
print(mgr.get(filter="""<filter> ... </filter>""").data_xml)

More complete documentation can be found in the User Guide

Comparison with ncclient

Compared to ncclient, netconf_client has several advantages:

  • It's simpler (at the time of writing: 789 LoC vs 2889 LoC)
  • lxml can be bypassed, which can work around issues where lxml breaks namespaces of e.g. identityrefs
  • Support for TLS sessions

And a few disadvantages:

  • Support for non-RFC-compliant devices isn't really included in netconf_client
  • netconf_client does a lot less error checking and assumes you're sending valid messages to the server (however this can be useful for testing edge-case behavior of a server)