Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

Hierarchical Configuration

Hierarchical Configuration, also known as hier_config, is a Python library designed to query and compare network devices configurations. Among other capabilities, it can compare the running config to an intended configuration to determine the commands necessary to bring a device into compliance with its intended configuration.

Hierarchical Configuration has been used extensively on:

  • Cisco IOS
  • Cisco IOSXR
  • Cisco NXOS
  • Arista EOS
  • Fortinet FortiOS
  • HP Procurve (Aruba AOSS)
  • HP Comware5 / H3C
  • Huawei VRP

In addition to the Cisco-style syntax, hier_config offers experimental support for Juniper-style configurations using set and delete commands. This allows users to remediate Junos configurations in native syntax. However, please note that Juniper syntax support is still in an experimental phase and has not been tested extensively. Use with caution in production environments.

  • Juniper JunOS
  • Nokia SRL (Service Router Linux)
  • Ruckus/Brocade FastIron (ICX)
  • VyOS

Newer drivers start life as experimental until they have seen wider production use — currently Aruba AOS-CX joins the list above in that status. See Supported Platforms for the authoritative per-platform status.

Hier Config is compatible with any NOS that utilizes a structured CLI syntax similar to Cisco IOS or Junos OS.

The code documentation can be found at: Hier Config documentation.

Why hier_config?

Network devices continuously drift from their intended state — VLANs appear, ACL entries change, BGP timers shift. hier_config solves this by parsing configuration text into a hierarchical tree and performing deterministic, line-level diffs that respect the vendor's own syntax rules. Rather than string-matching raw text, it understands the structure of commands so that remediation output is minimal, ordered, and safe to apply.

Highlights

See the Architecture Overview for how the tree, driver, and workflow layers fit together.

Installation

PIP

Version 4 is currently published as a prerelease; pip skips prereleases by default, so pass --pre:

pip install --pre hier-config

(The Quick Start below uses the v4 API. pip install hier-config without --pre installs the latest stable v3 release — see the v3 documentation for that API.)

Quick Start

Step 1: Import Required Classes

from hier_config import WorkflowRemediation, HConfig, Platform
from hier_config.utils import read_text_from_file

Step 2: Load Configurations

Load the running and intended configurations as strings:

running_config_text = read_text_from_file("./tests/fixtures/running_config.conf")
generated_config_text = read_text_from_file("./tests/fixtures/generated_config.conf")

Step 3: Create HConfig Objects

Specify the device platform (e.g., Platform.CISCO_IOS):

running_config = HConfig.from_text(Platform.CISCO_IOS, running_config_text)
generated_config = HConfig.from_text(Platform.CISCO_IOS, generated_config_text)

Step 4: Initialize WorkflowRemediation

Compare configurations and generate remediation steps:

workflow = WorkflowRemediation(running_config, generated_config)

print("Remediation Configuration:")
print(workflow.remediation_config)

This guide gets you started with Hier Config in minutes! For more details, visit Hier Config Documentation Site.

Metadata

Release files for hier-config 4.0.0b4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for hier-config 4.0.0b4
File Size Uploaded
hier_config-4.0.0b4.tar.gz 281.4 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for hier-config 4.0.0b4
File
hier_config-4.0.0b4-cp311-abi3-win_arm64.whl CPython 3.11 abi3 Windows ARM64 Details
hier_config-4.0.0b4-cp311-abi3-win_amd64.whl CPython 3.11 abi3 Windows x86-64 Details
hier_config-4.0.0b4-cp311-abi3-musllinux_1_2_x86_64.whl CPython 3.11 abi3 Linux musl 1.2+ x86-64 Details
hier_config-4.0.0b4-cp311-abi3-musllinux_1_2_aarch64.whl CPython 3.11 abi3 Linux musl 1.2+ ARM64 Details
hier_config-4.0.0b4-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.11 abi3 Linux glibc 2.17+ x86-64 Details
hier_config-4.0.0b4-cp311-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.11 abi3 Linux glibc 2.17+ ARM64 Details
hier_config-4.0.0b4-cp311-abi3-macosx_11_0_arm64.whl CPython 3.11 abi3 macOS 11.0+ ARM64 Details
hier_config-4.0.0b4-cp311-abi3-macosx_10_12_x86_64.whl CPython 3.11 abi3 macOS 10.12+ x86-64 Details

Total release size: 15.2 MB

Release files / hier_config-4.0.0b4.tar.gz

Download URL hier_config-4.0.0b4.tar.gz
Size 281.4 kB
Tags Source
SHA-256 checksum
How to use checksums
7c54a9fb991102ae68a1921171a29a494e4019c39fd8afd617235b0e06e375f5
BLAKE2b-256 checksum
How to use checksums
10b02e87d35ee2bc99bda1c9eb09cf29c94f40173e2d543e6ee76460cedf9724
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / hier_config-4.0.0b4-cp311-abi3-win_arm64.whl

Download URL hier_config-4.0.0b4-cp311-abi3-win_arm64.whl
Size 1.6 MB
Tags CPython 3.11 Windows ARM64 abi3
SHA-256 checksum
How to use checksums
717b56869b3a025954983274a2771217da3ff04dd701c9eafac65da4f3b84f02
BLAKE2b-256 checksum
How to use checksums
cdc6b839139464fe6a9e674eedab675acf24f762477ccc47c0f77a4faf9a9cc0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / hier_config-4.0.0b4-cp311-abi3-win_amd64.whl

Download URL hier_config-4.0.0b4-cp311-abi3-win_amd64.whl
Size 1.7 MB
Tags CPython 3.11 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
3617a08506f38afa3a51e7d9c57bcc18b9da0981f5bf733f3a73ea9cd928b0c5
BLAKE2b-256 checksum
How to use checksums
7e136ac834187e8d55c3dec81372b80e9f0c181bb52c7070508b3a746e4e647b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / hier_config-4.0.0b4-cp311-abi3-musllinux_1_2_x86_64.whl

Download URL hier_config-4.0.0b4-cp311-abi3-musllinux_1_2_x86_64.whl
Size 2.1 MB
Tags CPython 3.11 Linux musl 1.2+ x86-64 abi3
SHA-256 checksum
How to use checksums
5cd892f98c610ee3afbb8e810090aa52d849a55b49720d77909c4a2d21c12519
BLAKE2b-256 checksum
How to use checksums
ffd4d8011a82617c8a824692444774b01f075cf8d95ce2bc97c5fa2fa8c6e610
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / hier_config-4.0.0b4-cp311-abi3-musllinux_1_2_aarch64.whl

Download URL hier_config-4.0.0b4-cp311-abi3-musllinux_1_2_aarch64.whl
Size 2.0 MB
Tags CPython 3.11 Linux musl 1.2+ ARM64 abi3
SHA-256 checksum
How to use checksums
66b7504ddd2b1927b9b9e339927b00acf9bace390f9b94d52dfe00a0b0a2f134
BLAKE2b-256 checksum
How to use checksums
e733f9379888924d1110fe287fe1e0d1475fcea089650f008887f11de0bb1b7b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / hier_config-4.0.0b4-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL hier_config-4.0.0b4-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.9 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
509e808c4974d2eb11c65b93501aa81033ee415dc2d9dfe35535e5dace7fa591
BLAKE2b-256 checksum
How to use checksums
d6515be026c807f9fe219c68ce6da0bf6e9363a69c9b2f5dc25a1a0aaecc1d58
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / hier_config-4.0.0b4-cp311-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL hier_config-4.0.0b4-cp311-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 1.8 MB
Tags CPython 3.11 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
d93f92eaa869b1b33d89d26a48402694002d106d7eb83213fa677d6ecaef2fc6
BLAKE2b-256 checksum
How to use checksums
05b4421bb1916a4e7965a98f798715a9dedb720bef79d460fe1624e3829aa9c6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / hier_config-4.0.0b4-cp311-abi3-macosx_11_0_arm64.whl

Download URL hier_config-4.0.0b4-cp311-abi3-macosx_11_0_arm64.whl
Size 1.7 MB
Tags CPython 3.11 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
3058a52d5a33f003b5b52750e15be2c88af92797869c03d4066fe8d7e00dfb20
BLAKE2b-256 checksum
How to use checksums
11fdfab9a9ed4fce61e11b140a31ef78d281fe45fe507a9d8bfd452df664c14f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / hier_config-4.0.0b4-cp311-abi3-macosx_10_12_x86_64.whl

Download URL hier_config-4.0.0b4-cp311-abi3-macosx_10_12_x86_64.whl
Size 1.8 MB
Tags CPython 3.11 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
967d19e89f493fbf2601f8da56b0e6b24f8a213a68fcb9469404e019c6827ddf
BLAKE2b-256 checksum
How to use checksums
211901f1d4d662172e25e8a7be873de4800e2e19f989df1122db24bc9a7accaf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release history Release notifications | RSS feed

This release

4.0.0b4 This release

9 release files

3.7.1

2 release files

3.7.0

2 release files

3.6.2

2 release files

3.6.1

2 release files

3.6.0

2 release files

3.5.1

2 release files

3.5.0

2 release files

3.4.3

2 release files

3.4.2

2 release files

3.4.1

2 release files

3.4.0

2 release files

3.3.0

2 release files

3.2.2

2 release files

3.2.1

2 release files

3.2.0

2 release files

3.1.1

2 release files

3.1.0

2 release files

3.0.0

2 release files

2.3.1

2 release files

2.3.0

2 release files

2.2.3

2 release files

2.2.2

2 release files

2.2.1

2 release files

2.2.0

2 release files

2.1.0

2 release files

2.0.3

2 release files

2.0.2

2 release files

2.0.1

2 release files

2.0.0

2 release files

1.6.1

1 release file

1.6.0

1 release file

1.5.1

1 release file

1.4.2

1 release file

1.4.1

1 release file

1.4.0

1 release file

1.3.1

1 release file

1.3.0

1 release file

1.2.2

1 release file

1.2.1

1 release file

1.2.0

1 release file

1.1.2

1 release file

1.1.0

1 release file

1.0.5

1 release file

1.0.3

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page