content: [build-system]
  requires = [
      "mako",
      "oldest-supported-numpy; python_version<='3.8'",
      "numpy>=2.0,<3; python_version>'3.8'",
      "scikit-build-core>=0.10",
  ]
  build-backend = "scikit_build_core.build"
  
  [project]
  name = "digital_rf"
  maintainers = [
    { name = "Ryan Volz", email = "rvolz@mit.edu" },
  ]
  authors = [
    { name = "Bill Rideout", email = "brideout@mit.edu" },
    { name = "Juha Vierinen", email = "jvi019@uit.no" },
    { name = "Frank Lind", email = "fdlind@mit.edu" },
    { name = "Ryan Volz", email = "rvolz@mit.edu" },
    { name = "John Swoboda", email = "swoboj@mit.edu" },
  ]
  description = "Library for reading and writing time-tagged RF data in the Digital RF format"
  readme = "python/README.rst"
  license.file = "LICENSE"
  requires-python = ">=3.8"
  classifiers = [
    "Development Status :: 5 - Production/Stable",
    "Environment :: Console",
    "Intended Audience :: Science/Research",
    "Intended Audience :: Developers",
    "License :: OSI Approved :: BSD License",
    "Operating System :: OS Independent",
    "Programming Language :: C",
    "Programming Language :: Python",
    "Programming Language :: Python :: 3",
    "Programming Language :: Python :: 3 :: Only",
    "Programming Language :: Python :: 3.8",
    "Programming Language :: Python :: 3.9",
    "Programming Language :: Python :: 3.10",
    "Programming Language :: Python :: 3.11",
    "Programming Language :: Python :: 3.12",
    "Programming Language :: Python :: 3.13",
    "Topic :: Scientific/Engineering",
  ]
  keywords = ["hdf5", "radio", "rf"]
  dynamic = ["version"]
  dependencies = [
    "h5py",
    "numpy",
    "packaging",
    "python-dateutil",
    "six",
    "watchdog",
  ]
  
  [project.optional-dependencies]
  test = [
    "pytest >=6",
    "pytest-cov >=3",
  ]
  dev = [
    "pytest >=6",
    "pytest-cov >=3",
  ]
  dataframe = [
    "pandas",
  ]
  plot = [
    "matplotlib",
    "scipy",
  ]
  sound = [
    "sounddevice"
  ]
  all = [
    "matplotlib",
    "pandas",
    "scipy",
    "sounddevice",
  ]
  
  [project.urls]
  Homepage = "https://github.com/MITHaystack/digital_rf"
  "Bug Tracker" = "https://github.com/MITHaystack/digital_rf/issues"
  Discussions = "https://github.com/MITHaystack/digital_rf/discussions"
  Changelog = "https://github.com/MITHaystack/digital_rf/releases"
  
  [project.scripts]
  drf = "digital_rf.drf_command:main"
  
  
  [tool.scikit-build]
  minimum-version = "build-system.requires"
  build-dir = "build/{wheel_tag}"
  metadata.version.provider = "scikit_build_core.metadata.setuptools_scm"
  sdist.include = ["python/digital_rf/_version.py"]
  sdist.exclude = []
  build.targets = ["digital_rf_python"]
  install.components = ["python"]
  wheel.packages = ["python/digital_rf", "python/gr_digital_rf"]
  experimental = true
  
  [tool.scikit-build.cmake.define]
  BUILD_SHARED_LIBS = false
  CMAKE_INSTALL_LIBDIR = "lib"
  HDF5_ENABLE_SZIP_SUPPORT = false
  
  
  [tool.setuptools_scm]
  write_to = "python/digital_rf/_version.py"
  
  
  [tool.cibuildwheel]
  build-frontend = "build"
  test-command = "pytest {project}/python/tests"
  test-extras = ["test"]
  
  
  [tool.pytest.ini_options]
  minversion = "6.0"
  addopts = ["-ra", "--showlocals", "--strict-markers", "--strict-config", "--maxfail=10"]
  markers = ["firstonly"]
  xfail_strict = true
  filterwarnings = [
    "error",
  ]
  log_cli_level = "INFO"
  testpaths = [
    "python/tests",
  ]
  
  
  [tool.coverage]
  run.source = ["digital_rf"]
  report.exclude_also = [
    '\.\.\.',
    'if typing.TYPE_CHECKING:',
  ]
  
  
  [tool.ruff]
  line-length = 88
  
  [tool.ruff.lint]
  extend-select = [
    "B",        # flake8-bugbear
    "I",        # isort
    "ARG",      # flake8-unused-arguments
    "C4",       # flake8-comprehensions
    "EM",       # flake8-errmsg
    "ICN",      # flake8-import-conventions
    "G",        # flake8-logging-format
    "PGH",      # pygrep-hooks
    "PIE",      # flake8-pie
    "PL",       # pylint
    "PT",       # flake8-pytest-style
    "PTH",      # flake8-use-pathlib
    "RET",      # flake8-return
    "RUF",      # Ruff-specific
    "SIM",      # flake8-simplify
    "T20",      # flake8-print
    "UP",       # pyupgrade
    "YTT",      # flake8-2020
    "EXE",      # flake8-executable
    "NPY",      # NumPy specific rules
    "PD",       # pandas-vet
  ]
  ignore = [
    "PLR09",    # Too many <...>
    "PLR2004",  # Magic value used in comparison
    "ISC001",   # Conflicts with formatter
  ]
  isort.required-imports = ["from __future__ import annotations"]
  # Uncomment if using a _compat.typing backport
  # typing-modules = ["digital_rf._compat.typing"]
  
  [tool.ruff.lint.per-file-ignores]
  "tests/**" = ["T20"]
  "noxfile.py" = ["T20"]
  
  
  [tool.pylint]
  py-version = "3.8"
  ignore-paths = [".*/_version.py"]
  extension-pkg-allow-list = ["digital_rf.digital_rf_hdf5"]
  reports.output-format = "colorized"
  similarities.ignore-imports = "yes"
  messages_control.disable = [
    "design",
    "fixme",
    "line-too-long",
    "missing-module-docstring",
    "missing-function-docstring",
    "wrong-import-position",
  ]
  