content: [project]
  name="PyOpenGL"
  dynamic=["version"]
  description = "Standard OpenGL bindings for Python"
  authors = [
      {name="Mike C. Fletcher",email="mcfletch@vrplumber.com"},
  ]
  readme = {file="readme.rst", content-type = "text/x-rst"}
  keywords = [
      "Graphics",
      "3D",
      "OpenGL",
      "GLU",
      "GLUT",
      "GLE",
      "GLX",
      "EXT",
      "ARB",
      "Mesa",
      "ctypes",
  ]
  classifiers = [
      "License :: OSI Approved :: BSD License",
      "Programming Language :: Python",
      "Programming Language :: Python :: 2",
      "Programming Language :: Python :: 3",
      "Topic :: Multimedia :: Graphics :: 3D Rendering",
      "Topic :: Software Development :: Libraries :: Python Modules",
      "Intended Audience :: Developers",
  ]
  
  [project.urls]
  Homepage = "https://mcfletch.github.io/pyopengl/"
  Download = "https://pypi.org/project/PyOpenGL/"
  Source = "https://github.com/mcfletch/pyopengl"
  Documentation = "https://mcfletch.github.io/pyopengl/documentation/index.html"
  
  [build-system]
  requires = [ "setuptools >= 42.0" ]
  build-backend = "setuptools.build_meta"
  
  [tool.setuptools.dynamic]
  version = {attr = "OpenGL.version.__version__"}
  
  [tool.setuptools.packages.find]
  namespaces=false
  include=["OpenGL*"]
  exclude=["tests","accelerate","directdocs","documentation"]
  
  [tool.black]
  skip-string-normalization=true
  
  [tool.ruff.lint]
  dummy-variable-rgx="^(_|err)$"
  ignore = [
      'D200', # Allow multiline docstring even when it could fit on one line
  
      'C408', # Allow instantiating dictionary as dict(key=value)
      'E501', # Line too long
      'ANN101', # Don't require self to be annotated.
      'PTH', # allow os.path
      'PLR0913', # allow too many arguments
  
      # 'F841', # we often have `err` as unused argument in this codebase
      'E401', # I prefer multiple imports/line generally
      'E402', # Common pattern with autogenerated boilerplate in the wrappers
      'F401', # Unused imports from autogeneration are everywhere
      'F403', # Standard usage is to use star imports
      'F405', # Standard usage is to use star imports
      'F811', # Redefinition of function from autogen in the higher-level wrappers is common
  
      # 'F821', # Undefined variables due to start imports, again
      'E741', # Variables from the underlying api are often e.g. `l`
  
  ]
  [tool.ruff.lint.per-file-ignores]
  "OpenGL/_bytes.py" = [
      "F821",
  ]
  "OpenGL/GL/shaders.py" = [
      "F821",
  ]
  "OpenGL/wrapper.py" = [
      'F841', # we often have `err` as unused argument in this codebase
  
  ]
  "OpenGL/GL/images.py" = [
      "F822",
  ]
  "OpenGL/GL/pointers.py"= [
      "F822",
  ]
  "OpenGL/Tk/__init__.py"=[
      "E701",
  ]
  
  [tool.ruff.format]
  quote-style = "preserve"
  