content: # pyproject.toml format -> See PEP 621
  
  [project]
  name = "ciscoconfparse2"
  description = "Parse, Audit, Query, Build, and Modify Cisco IOS-style and JunOS-style configs"
  readme = "README.md"
  license = "GPL-3.0-only"
  requires-python = ">= 3.9"
  dynamic = ["version"]
  dependencies = [
    # NOTE changing attrs versions may require code / test changes
    "attrs>24.3.0,<26.0.0",
    "dnspython==2.7.0",
    "macaddress==2.0.2",
    "traitlets==5.14.3",
    "loguru>=0.7.2",
    "hier_config==2.3.1",
    "pyparsing==3.2.5",
    # NOTE changing typeguard versions may require code / test changes
    "typeguard==4.4.4",
    "PyYAML>=6.0.2",
    "rich>=13.6.0",
    # "passlib==1.7.4",   <-- deprecating passlib (now unmaintained) in favor of libpass
    #     https://github.com/notypecheck/passlib
    "libpass==1.9.3",
    # Hypothesis for hard-core ip_address tests
    "hypothesis==6.140.3",
  ]
  authors = [
    { name = "Mike Pennington", email = "mike@pennington.net" },
  ]
  keywords = [
    "Parse",
    "audit",
    "query",
    "modify",
    "Cisco IOS",
    "Cisco",
    "NXOS",
    "ASA",
    "Juniper",
  ]
  classifiers=[
    "Development Status :: 5 - Production/Stable",
    "Environment :: Plugins",
    "Intended Audience :: Developers",
    "Intended Audience :: System Administrators",
    "Intended Audience :: Information Technology",
    "Intended Audience :: Telecommunications Industry",
    "License :: OSI Approved :: GNU General Public License (GPL)",
    "License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
    "Natural Language :: English",
    "Operating System :: OS Independent",
    "Programming Language :: Python",
    "Topic :: Communications",
    "Topic :: Internet",
    "Topic :: System :: Networking",
    "Topic :: System :: Networking :: Monitoring",
  ]
  
  [project.optional-dependencies]
  # Ensure wheel is upgraded... ref Github Issue #257
  dev = [
    "wheel>=0.38.4",
    "twine>=4.0.2",
    "hatch>=1.14.2",
    "hatchling>=1.27.0",
    "pytest>=8.3.5",
    "pre-commit==4.3.0",
    "black==25.9.0",
    "pyupgrade==3.21.0",
    "yamlfix==1.18.0",
    "pylama==8.4.1",
    "pylint==3.3.9",
    "coverage>=7.3.2",
    "pytest-cov>=4.1.0",
    "pyroma==5.0",
    "invoke==2.2.0",
    "fabric==3.2.2",
    "commitizen>=2.40.0",
    "python-lsp-server>=1.12.2",
    "tox==4.30.3",
  ]
  doc = [
    "Sphinx==8.2.3",
    "sphinx-rtd-theme>=2.0.0",
    "numpydoc==1.9.0",
    "pydocstyle==6.3.0",
  ]
  
  [project.scripts]
  ccp = "ciscoconfparse2.cli_script:ccp_script_entry"
  
  [build-system]
  requires = ["hatchling>=1.27.0"]
  build-backend = "hatchling.build"
  
  [project.urls]
  homepage = "http://github.com/mpenning/ciscoconfparse2"
  changelog = "https://github.com/mpenning/ciscoconfparse2/blob/main/CHANGES.md"
  repository = "https://github.com/mpenning/ciscoconfparse2"
  documentation = "http://www.pennington.net/py/ciscoconfparse2/"
  
  [tool.hatch.version]
  path = "ciscoconfparse2/__about__.py"
  scheme = "standard"
  
  [tool.hatch.build.targets.sdist]
  exclude = [
    "/.github",
    "/.git",
    "/dev_tools",
    "/dist",
  ]
  
  [tool.hatch.build.targets.wheel]
  packages = [
      "ciscoconfparse2/",
      "tests/",
  ]
  
  [tool.hatch.envs.default.scripts]
  pytest = "cd tests && pytest ."
  
  [tool.yamlfix]
  preserve_quotes = true
  line_length = 1000
  sequence_style = "block_style"
  whitelines = 1
  quote_basic_values = true
  quote_representation='"'
  