{"library":"ntc-templates","title":"NTC Templates","description":"NTC Templates is a Python library providing a comprehensive collection of TextFSM templates for parsing command-line interface (CLI) output from various network devices. It converts unstructured CLI text into structured, machine-readable data (lists of dictionaries), acting as a crucial tool for network automation workflows. The library is actively maintained with frequent updates and bug fixes, currently at version 9.1.0, and often releases minor and major versions to incorporate new templates or data model changes.","language":"python","status":"active","last_verified":"Fri May 15","install":{"commands":["pip install ntc-templates"],"cli":null},"imports":["from ntc_templates.parse import parse_output"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import os\nfrom ntc_templates.parse import parse_output\n\n# Example raw CLI output from a Cisco IOS device\nraw_output = \"\"\"\nCisco IOS Software, C800 Series Software (C800-UNIVERSALK9-M), Version 15.6(3)M5, RELEASE SOFTWARE (fc1)\nTechnical Support: http://www.cisco.com/techsupport\nCopyright (c) 1986-2017 by Cisco Systems, Inc.\nCompiled Wed 27-Sep-17 12:00 by prod_rel_team\n\nROM: System Bootstrap, Version 15.5(3)M, RELEASE SOFTWARE (fc1)\n\nCisco C891F (1RU) processor (revision 1.0) with 1007616K/54272K bytes of memory.\nProcessor board ID FHK2126210F\n10 Gigabit Ethernet interfaces\n8 FastEthernet interfaces\n2 Gigabit Ethernet interfaces\n1 Virtual Private Network (VPN) Module\n256K bytes of non-volatile configuration memory.\n1024000K bytes of ATA System CompactFlash (Read/Write)\n\nLicense Level: ipservices\nLicense Type: Permanent\nNext reload will be a ipservices license\n\nConfiguration register is 0x2102\n\"\"\"\n\n# Define the platform and command corresponding to an NTC template\nplatform = \"cisco_ios\"\ncommand = \"show version\"\n\ntry:\n    parsed_data = parse_output(platform=platform, command=command, data=raw_output)\n    print(parsed_data)\nexcept Exception as e:\n    print(f\"Error parsing output: {e}\")\n\n# Expected output is a list of dictionaries with parsed data\n# Example of accessing some data (output structure depends on template):\n# if parsed_data:\n#     print(f\"Software Version: {parsed_data[0].get('VERSION')}\")\n#     print(f\"Platform: {parsed_data[0].get('HARDWARE')}\")\n","lang":"python","description":"This quickstart demonstrates how to parse raw CLI output using `ntc-templates`. It defines a sample `show version` output from a Cisco IOS device and uses `parse_output` with the corresponding platform and command to transform it into structured Python data (a list of dictionaries). Error handling is included as a best practice.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-15","installed_version":"8.1.0","pypi_latest":"9.1.0","is_stale":true,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":1.8,"avg_import_s":0.13,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"ntc-templates","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.13,"mem_mb":4.5,"disk_size":"22.4M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"ntc-templates","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.7,"import_time_s":0.09,"mem_mb":4.5,"disk_size":"23M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"ntc-templates","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.17,"mem_mb":5.6,"disk_size":"24.2M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"ntc-templates","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.8,"import_time_s":0.16,"mem_mb":5.6,"disk_size":"25M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"ntc-templates","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.15,"mem_mb":5.3,"disk_size":"16.1M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"ntc-templates","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.7,"import_time_s":0.16,"mem_mb":5.3,"disk_size":"17M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"ntc-templates","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.14,"mem_mb":5.3,"disk_size":"15.9M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"ntc-templates","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.6,"import_time_s":0.14,"mem_mb":5.3,"disk_size":"16M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"ntc-templates","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.1,"mem_mb":4.4,"disk_size":"21.7M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"ntc-templates","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2,"import_time_s":0.09,"mem_mb":4.4,"disk_size":"22M"}]}}