content: [project]
    name = "bytecode"
    description = "Python module to generate and modify bytecode"
    readme = "README.rst"
    requires-python = ">=3.9"
    license = { file = "COPYING" }
    authors = [{ name = "Victor Stinner", email = "victor.stinner@gmail.com" }]
    maintainers = [{ name = "Matthieu C. Dartiailh", email = "m.dartiailh@gmail.com" }]
    classifiers = [
      "Development Status :: 4 - Beta",
      "Intended Audience :: Developers",
      "License :: OSI Approved :: MIT License",
      "Natural Language :: English",
      "Operating System :: OS Independent",
      "Programming Language :: Python :: 3",
      "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",
      "Programming Language :: Python :: 3.14",
      "Topic :: Software Development :: Libraries :: Python Modules",
    ]
    dependencies = ["typing_extensions;python_version<'3.10'"]
    dynamic = ["version"]
  
  
    [project.urls]
      homepage      = "https://github.com/MatthieuDartiailh/bytecode"
      documentation = "https://bytecode.readthedocs.io/en/latest/"
      repository    = "https://github.com/MatthieuDartiailh/bytecode"
      changelog     = "https://github.com/MatthieuDartiailh/bytecode/blob/main/doc/changelog.rst"
  
  
  [build-system]
    requires      = ["setuptools>=61.2", "wheel", "setuptools_scm[toml]>=3.4.3"]
    build-backend = "setuptools.build_meta"
  
  [dependency-groups]
    dev = [
      "mypy>=1.16.1",
      "pytest>=8",
      "pytest-cov>=6",
      "ruff>=0.12.0",
    ]
    test = [
      "pytest>=8",
      "pytest-cov",
    ]
  
  [tool.setuptools_scm]
    write_to = "src/bytecode/version.py"
    write_to_template = """
  # This file is auto-generated by setuptools-scm do NOT edit it.
  
  from collections import namedtuple
  
  #: A namedtuple of the version info for the current release.
  _version_info = namedtuple("_version_info", "major minor micro status")
  
  parts = "{version}".split(".", 3)
  version_info = _version_info(
      int(parts[0]),
      int(parts[1]),
      int(parts[2]),
      parts[3] if len(parts) == 4 else "",
  )
  
  # Remove everything but the 'version_info' from this module.
  del namedtuple, _version_info, parts
  
  __version__ = "{version}"
  """
  
  [tool.ruff]
    src            = ["src"]
    extend-exclude = ["tests/instruments/hardware/nifpga/scope_based"]
    line-length    = 88
  
    [tool.ruff.lint]
      select        = ["B", "C", "E", "F", "W", "B9", "I", "C90", "RUF"]
      extend-ignore = ["E203", "E266", "E501", "F403", "F401", "RUF012"]
  
      [tool.ruff.lint.isort]
        combine-as-imports     = true
        extra-standard-library = ["opcode"]
  
      [tool.ruff.lint.mccabe]
        max-complexity = 43
  
  [tool.mypy]
    follow_imports  = "normal"
    strict_optional = true
  
  [tool.pytest.ini_options]
    minversion = "6.0"
  