System requirements for Genie
mainGenie and its Parser component have the following platform and language requirements:
- Python Version: 3.6 or higher.
- Operating Systems: Linux and macOS.
- Unsupported Platforms: Windows is not currently supported.
repository·main·Indexed 42 days ago
https://github.com/ciscotestautomation/genieparserA sub-component of the Genie library within the pyATS framework designed to parse network device command outputs into structured, object-oriented data. It provides extensive parsing support for Cisco IOS, IOSXE, IOSXR, and NXOS, covering protocols and features such as BGP, EIGRP, ISIS, MPLS, LISP, and CDP.
Genie and its Parser component have the following platform and language requirements:
In the January 2023 update, the ShowIsisDatabase parser underwent a non-backwards compatible change to support multiple interfaces under a single device.
Change Details:
is_dict changed to is_list).ShowIsisDatabaseVerbose, ShowIsisDatabaseDetail, and all related ShowIsisDatabase tests.Action Required:
If you rely on the ShowIsisDatabase parser output, you must update your code to iterate over a list of interfaces rather than accessing them via a dictionary key.
Some IOS-XE parsers were moved to specific sub-platform directories (e.g., iosxe/cat9k) or updated to handle new software releases:
iosxe/cat9kshow fabric ap summaryshow access tunnel summaryshow processes platform | c wncdshow processes platform | i wncdshow plat soft proc slot sw standby r0 monitor | c wncdshow plat soft proc slot sw standby r0 monitor | i wncdshow ap summary: Updated to handle 0 APs and output changes in IOS-XE 17.10.show bootvar / show boot: Modified in show_platform.py and show_issu.py.<state> argument in certain parsers was updated to validate both standalone and stack device commands (active or standby).When contributing to Genie Parser, you must provide exactly one changelog file per pull request. Use the following structured templates to categorize changes under New (for additions or modifications) and Fix (for bug fixes or schema updates).
Organize entries by Operating System (e.g., NXOS, IOSXE, IOS) and then by the specific Parser Class affected.
--------------------------------------------------------------------------------
New
--------------------------------------------------------------------------------
* <OS>
* <Added|Modified> <Class>:
* <New Show Command|Command>
--------------------------------------------------------------------------------
Fix
--------------------------------------------------------------------------------
* <OS>
* <Added|Modified|Removed> <Class>:
* Changes madeThe following command parsers were added for IOS-XR in the July 2025 release:
show controllers optics {port} appsel activeshow im database brief location {location} (and location all)Recent updates to IOSXE parsers include:
ShowBgpAllDetail now supports IPv6 next-hop lines with link-local addresses (RFC5549), preventing crashes.ShowLispSiteSuperParser, ShowLispSiteDetailSuperParser, ShowLispSubscriptionSuperParser, ShowLispSubscriptionPrefixSuperParser, ShowLispServerSubscriptionSuperParser, and ShowLispServerSubscriptionPrefixSuperParser have been updated to accept distinguished-name (DN) style EID prefixes (e.g., firewall, dual-stack).ShowSdmPrefer: vrf_count is now optional.ShowMacAddressTableCount / ShowMacAddressTableCountVlan: total_mac_address_space is now optional.ShowOspfv3RibRedistribution: Added optional source_vrf key and regex support.ShowModule: Relaxed schema to handle blank/empty module slots in stacked configurations.ShowPortSecurityAddress: Now handles multiple MACs per interface and allows spaces/parentheses in remaining_age.SnmpGetBulk: Updated status handling to ensure success only after matching SNMP response, MIB, or hex value output.ShowIpv6Interface: Optimized regex compilation and nested output creation.ShowIpv6InterfaceBrief: Added parsing for unnumbered interface references.ShowDeviceTrackingDatabaseMacDetails: Improved handling for MACs with no bound IP.ShowInventory (rv1): Fixed PID-keyed clobber for multi-chassis SVL pairs.Updates to existing IOS-XE parsers:
show inventory: Updated regex patterns to support new output formats.show platform resources: Updated schema to support new output formats.show platform hardware fed active fwd-asic resource tcam utilization: Now supports the extended command show platform hardware fed active fwd-asic resource tcam utilization {asic} slice-id {slice_id}.show platform hardware fed switch active fwd-asic insight vrf-ports: Split into two separate classes to handle different command formats.The Ci_Folder_Parsing.Py test utility has been updated with the following capabilities:
-F flag to display only failed tests.pyats run job Folder_Parsing_Job.py.-V flag to include the Show commands output in the test results.pyats run job Folder_Parsing_Job.py
# To show only failed tests:
pyats run job Folder_Parsing_Job.py -F
# To include command output:
pyats run job Folder_Parsing_Job.py -VYou can install the full Genie library or specifically target the Parser sub-component using pip.
To install the complete Genie framework:
pip install genieTo install or upgrade only the Parser package:
pip install --upgrade genie.libs.parserTo install alpha or beta versions of the parser, use the --pre flag:
pip install --pre genie.libs.parserThe following updates were made for IOS-XR:
ShowRplRoutePolicy: Fixed as-path in block in p19.match to correctly capture data.MonitorInterface: Added missing empty_output_arguments.json files.ShowBundle: wait_while_timer_ms in schema now supports both integer and string values.ShowL2vpnXconnect: Updated regex patterns p3 and p6 for various outputs.The Genie package is automatically installed as part of the pyats[full] installation. Use pip to install the full pyATS ecosystem which includes Genie.
$ pip install 'pyats[full]'