content: [tool.poetry]
  name = "ntc_templates"
  version = "8.1.0"
  description = "TextFSM Templates for Network Devices, and Python wrapper for TextFSM's CliTable."
  authors = ["Network to Code <info@networktocode.com>"]
  license = "Apache-2.0"
  homepage = "https://ntc-templates.readthedocs.io"
  repository = "https://github.com/networktocode/ntc-templates"
  documentation = "https://ntc-templates.readthedocs.io"
  readme = "README.md"
  keywords = ["textfsm", "network parsers"]
  classifiers = [
      "Intended Audience :: Developers",
      "Development Status :: 4 - Beta",
      "Programming Language :: Python :: 3",
      "Programming Language :: Python :: 3.9",
      "Programming Language :: Python :: 3.10",
      "Programming Language :: Python :: 3.11",
      "Programming Language :: Python :: 3.12",
  ]
  include = [
      "LICENSE",
      "README.md",
      "ntc_templates/templates/*.textfsm",
      "ntc_templates/templates/index",
  ]
  
  [tool.poetry.dependencies]
  python = "^3.9"
  textfsm = ">=1.1.0"
  
  [tool.poetry.dev-dependencies]
  bandit = "*"
  black = "*"
  coverage = "*"
  invoke = "*"
  flake8 = "*"
  importlib-metadata = "<5.0"
  pylint = "*"
  pytest = "*"
  pyyaml = "*"
  pydocstyle = "*"
  sphinx-rtd-theme = "*"
  toml = "*"
  yamllint = "*"
  "ruamel.yaml" = "*"
  mkdocs = "1.6.0"
  mkdocs-material = "9.5.32"
  mkdocs-version-annotations = "1.0.0"
  mkdocstrings = "0.25.2"
  mkdocstrings-python =  "1.10.8"
  mkdocs-python-classy = "0.1.3"
  griffe = "1.1.1"
  
  [tool.poetry.extras]
  test = ["pytest"]
  
  [tool.black]
  line-length = 120
  target-version = ['py39']
  include = '\.pyi?$'
  exclude = '''
  (
    /(
        \.eggs         # exclude a few common directories in the
      | \.git          # root of the project
      | \.hg
      | \.mypy_cache
      | \.tox
      | \.venv
      | _build
      | buck-out
      | build
      | dist
    )/
    | settings.py     # This is where you define files that should not be stylized by black
                       # the root of the project
  )
  '''
  
  [tool.pylint.master]
  ignore = ".venv"
  
  [tool.pylint.basic]
  # No docstrings required for private methods (Pylint default), or for test_ functions, or for inner Meta classes.
  no-docstring-rgx = "^(_|test_|Meta$)"
  
  [tool.pylint.messages_control]
  # Line length is enforced by Black, so pylint doesn't need to check it.
  # Pylint and Black disagree about how to format multi-line arrays; Black wins.
  disable = """,
      line-too-long,
      redefined-outer-name
      """
  
  [tool.pylint.miscellaneous]
  # Don't flag TODO as a failure, let us commit with things that still need to be done in the code
  notes = """,
      FIXME,
      XXX,
      """
  
  [tool.pydocstyle]
  convention = "google"
  inherit = false
  match = "(?!__init__).*\\.py"
  match-dir = "(?!tests|migrations|development)[^\\.].*"
  # D212 is enabled by default in google convention, and complains if we have a docstring like:
  # """
  # My docstring is on the line after the opening quotes instead of on the same line as them.
  # """
  # We've discussed and concluded that we consider this to be a valid style choice.
  add_ignore = "D212"
  
  [build-system]
  requires = ["poetry_core>=1.0.0"]
  build-backend = "poetry.core.masonry.api"
  
  [tool.pytest.ini_options]
  testpaths = ["tests"]
  addopts = "-vv --doctest-modules"
  