content: [build-system]
  build-backend = "hatchling.build"
  requires = ["hatchling", "hatch-vcs"]
  
  [project]
  name = "rtslib-fb"
  description = "API for Linux kernel SCSI target (aka LIO)"
  readme = "README.md"
  license = "Apache-2.0"
  requires-python = ">=3.9"
  authors = [
      {email = "agrover@redhat.com", name = "Andy Grover"},
      {email = "jxm@risingtidesystems.com", name = "Jerome Martin"}
  ]
  maintainers = [{email = "mlombard@redhat.com", name = "Maurizio Lombardi"}]
  classifiers = [
      "License :: OSI Approved :: Apache Software License",
      "Programming Language :: Python :: 3",
      "Programming Language :: Python :: 3.9",
      "Programming Language :: Python :: 3.12",
      "Operating System :: POSIX :: Linux",
  ]
  dependencies = [
      "pyudev ~= 0.18",
  ]
  dynamic = ["version"]
  
  [project.license-files]
  paths = ["COPYING"]
  
  [project.urls]
  Homepage = "http://github.com/open-iscsi/rtslib-fb"
  
  [project.scripts]
  targetctl = "rtslib.targetctl:main"
  
  [tool.hatch.version]
  source = "vcs"
  
  [tool.hatch.build.targets.wheel]
  packages = [
      "rtslib",
      "rtslib_fb"
  ]
  
  [tool.hatch.envs.default]
  dependencies = [
      "ruff",
      "pre-commit",
  ]
  
  [tool.ruff]
  line-length = 100
  
  [tool.ruff.lint]
  select = [
      "F",    # Pyflakes
      "E",    # pycodestyle error
      "W",    # pycodestyle warning
      "I",    # isort
      "N",    # pep8-naming
      "UP",   # pyupgrade
      "YTT",  # flake8-2020
      "S",    # flake8-bandit
      "B",    # flake8-bugbear
      "A",    # flake8-builtins
      "COM",  # flake8-commas
      "C4",   # flake8-comprehensions
      "EXE",  # flake8-executable
      "FA",   # flake8-future-annotations
      "ISC",  # flake8-implicit-str-concat
      "ICN",  # flake8-import-conventions
      "PIE",  # flake8-pie
      "Q003", # flake8-quotes avoidable-escaped-quote
      "Q004", # flake8-quotes unnecessary-escaped-quote
      "RSE",  # flake8-raise
      "SIM",  # flake8-simplify
      "TID",  # flake8-tidy-imports
      "INT",  # flake8-gettext
      "ARG",  # flake8-unused-argument
      "PTH",  # flake8-use-pathlib
      "PL",   # Pylint
      "FLY",  # flynt
      "PERF", # Perflint
      "FURB", # refurb
      "RUF",  # Ruff
  ]
  ignore = [
      "E722",    # TODO do not use bare 'except'
      "B904",    # TODO raise-without-from-inside-except
      "PERF203", # TODO `try`-`except` within a loop incurs performance overhead
      "PLR09",   # Too many branches/statements/arguments
      "UP031",   # Use format specifiers instead of percent format
  ]
  [tool.ruff.lint.per-file-ignores]
  # Magic value used in comparison
  "rtslib/targetctl.py" = ["PLR2004"]
  