content: [build-system]
  requires = ["setuptools >= 70", "setuptools_scm[toml] >= 6.2"]
  build-backend = "setuptools.build_meta"
  
  
  [project]
  name = "lisa"
  description = "Linux Integration Services Automation"
  classifiers = [
      "Programming Language :: Python :: 3",
      "Development Status :: 5 - Production/Stable",
      "Topic :: Software Development :: Testing",
  ]
  dependencies = [
      "assertpy ~= 1.1",
      "func-timeout ~= 4.3.5",
      "dataclasses-json ~= 0.5.2",
      "paramiko ~= 3.5.1",
      "pluggy ~= 0.13.1",
      "python-dateutil ~= 2.8.1",
      "pytest-html ~= 3.2.0",
      "PyYAML ~= 6.0.1",
      "randmac ~= 0.1",
      "retry ~= 0.9.2",
      "semver ~= 2.13.0",
      "simpleeval ~= 0.9.12",
      "spurplus ~= 2.3.5",
      "websockets ~= 13.1",
      "charset_normalizer ~= 2.1.1",
      "requests ~= 2.32.4",
  ]
  dynamic = ["version"]
  license = {text = "MIT"}
  readme = "README.rst"
  requires-python = ">=3.8"
  
  
  [project.optional-dependencies]
  aws = [
      "boto3 ~= 1.21.37",
  ]
  
  azure = [
      "azure-identity ~= 1.17.0b1",
      "azure-mgmt-compute ~= 30.5.0",
      "azure-mgmt-keyvault ~= 10.2.3",
      "azure-mgmt-marketplaceordering ~= 1.1.0",
      "azure-mgmt-msi ~= 7.0.0",
      "azure-mgmt-network ~= 19.3.0",
      "azure-mgmt-privatedns ~= 1.0.0",
      "azure-mgmt-resource ~= 21.0.0",
      "azure-mgmt-serialconsole ~= 1.0.0",
      "azure-mgmt-storage ~= 21.2.1",
      "azure-storage-blob ~= 12.23.0",
      "azure-storage-file-share ~= 12.18.0",
      "azure-keyvault-secrets ~= 4.7.0",
      "azure-keyvault-certificates ~= 4.7.0",
      "msrestazure ~= 0.6.4",
      "cachetools ~= 5.2.0",
      "Pillow <= 11.1.0",
      "PyGObject <= 3.50.0; platform_system == 'Linux'",
      "pycdlib ~= 1.12.0",
  ]
  
  ai = [
      "semantic-kernel ~= 1.35.3",
      "azure-ai-inference ~= 1.0.0b9",
      "dotenv ~= 0.9.9",
  ]
  
  ado = [
      "azure-devops ~= 7.1.0b3",
  ]
  
  black = [
      "black ~= 23.1.0",
  ]
  
  docs = [
      "Sphinx >= 4.1.0",
      "sphinx-argparse >= 0.2.5",
      "sphinx-rtd-theme >= 0.5.2",
      "sphinxemoji >= 0.1.8",
      "sphinx-copybutton >= 0.4.0",
  ]
  
  flake8 = [
      "flake8 ~= 7.3.0",
      "Flake8-pyproject",
      "flake8-black >= 0.3.2",
      "flake8-bugbear ~= 24.12.12",
      "flake8-isort >= 4.1.1",
      "pep8-naming >= 0.12.1",
  ]
  
  isort = [
      "isort ~= 5.12.0",
  ]
  
  legacy = [
      "pypiwin32; platform_system == 'Windows'",
  ]
  
  libvirt = [
      "libvirt-python ~= 9.3.0; platform_system != 'Windows'",
      "pycdlib ~= 1.12.0; platform_system != 'Windows'",
  ]
  
  baremetal = [
      "pysmb ~= 1.2.9.1",
      "redfish ~= 3.2.1",
      "azure-devops ~= 7.1.0b3",
  ]
  
  mypy = [
      "mypy == 0.942",
  ]
  
  pylint = [
      "pylint ~= 3.3.0"
  ]
  
  test = [
  ]
  
  typing = [
      "types-retry ~= 0.1.3",
      "types-paramiko ~= 0.1.7",
      "types-requests ~= 2.25.0",
      "types-python-dateutil ~= 0.1.4",
      "types-PyYAML ~= 5.4.3",
      "types-cachetools ~= 5.2.1",
      "types-Pillow ~= 8.3.3",
      "types-toml",
      "boto3-stubs ~= 1.21.37",
      "mypy-boto3-ec2",
  ]
  
  
  [project.scripts]
  lisa = "lisa.main:cli"
  
  
  [project.urls]
  homepage = "https://github.com/microsoft/lisa"
  documentation = "https://mslisa.readthedocs.io"
  
  
  [tool.black]
  line-length = 88
  target-version = ['py38']
  
  [tool.coverage.run]
  branch = true
  source = [
      "lisa",
      "examples",
      "microsoft/testsuites",
  ]
  omit = [
      "lisa/tests",
  ]
  
  [tool.coverage.report]
  include_namespace_packages = true
  precision = 2
  skip_empty = true
  
  [tool.flake8]
  max-line-length = 88
  select = ["B", "BLK", "C90", "E", "F", "I", "W", "N"]
  max-complexity = 15
  extend-ignore = ["E203", "W503", "N818", "E713", "E231", "E702"]
  exclude = [
      ".git",
      ".nox",
      "__pycache__",
      "*.pyi",
      "runtime",
      ".venv*",
      ".vscode",
      ".mypy_cache",
  ]
  
  
  [tool.isort]
  multi_line_output = 3
  include_trailing_comma = true
  force_grid_wrap = 0
  use_parentheses = true
  ensure_newline_before_comments = true
  line_length = 88
  
  
  [tool.mypy]
  exclude = ".venv/.*"
  implicit_reexport = true
  mypy_path = "./typings"
  strict = true
  namespace_packages = true
  show_column_numbers = true
  explicit_package_bases = true
  # Only check your code, ignore third-party packages
  no_site_packages = true
  ignore_missing_imports = true
  
  
  [tool.setuptools]
  packages = ["lisa"]
  
  
  [tool.setuptools_scm]
  version_scheme = "post-release"
  local_scheme = "no-local-version"
  