content: [project]
  name = "mpf"
  description = "The Mission Pinball Framework (MPF)"
  readme = "README.md"
  requires-python = ">=3.8,<3.13"
  license = {text = "MIT"}
  authors = [{ name = "The Mission Pinball Framework Team", email = "brian@missionpinball.org"}]
  keywords = ["pinball"]
  classifiers=[
      "Development Status :: 4 - Beta",
      "Intended Audience :: Developers",
      "License :: OSI Approved :: MIT License",
      "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",
      "Natural Language :: English",
      "Operating System :: MacOS :: MacOS X",
      "Operating System :: Microsoft :: Windows",
      "Operating System :: POSIX :: Linux",
      "Topic :: Artistic Software",
      "Topic :: Games/Entertainment :: Arcade"
      ]
  dependencies = [
      "asciimatics == 1.15.0", # Oct 4 2023, only used for the Text UI
      "packaging == 23.2",  # Oct 4 2023, used for version comparisons
      "prompt_toolkit == 3.0.43",  # Oct 4 2023, used for command line interface
      "psutil == 5.9.8",  # Oct 4 2023, pulls system stats into TUI and BCP
      "pyserial == 3.5",  # Oct 4 2023, some older platforms use this
      "pyserial-asyncio == 0.6", # Oct 4 2023, handles all modern serial communication
      "ruamel.yaml == 0.18.6",  # Oct 4, 2023, main config file interface
      "setuptools ~= 72.2.0",  # Nov 16, 2024,
      "sortedcontainers == 2.4.0",  # Oct 4 2023, used by platform batch light system
      "terminaltables == 3.1.10",  # Oct 4 2023, used for the service CLI
      "Pillow == 9.5.0"  # Nov 4 2023. Asciimatics needs Pillow > 2.7, but latest 10.x breaks kivy for now (fix due in 2.3), so we pin to latest working Pillow for now.
      ]
  dynamic = ["version"]
  
  [project.optional-dependencies]
  crash_reporter = ['requests==2.28.2']
  irc = ['irc==19.0.1']
  linux_i2c = ['smbus2_asyncio==0.0.5']
  osc = ['python-osc==1.8.3']
  pin2dmd = ['pyusb==1.1.0']
  zedmd = ['numpy>=1.7.0']
  rpi = ['apigpio-mpf==0.0.4']
  # uvloop must be optional, because non-Cython derivatives don't support it.
  uvloop = ['uvloop==0.19.0']  # Oct 4 2023, msin asyncio loop
  vpe = ['grpcio_tools==1.34.0',
         'grpcio==1.34.0',
         'protobuf==3.14.0',]
  all = [  # currently no way to just use the names from above afaik?
      'prompt_toolkit==3.0.43', 'asciimatics==1.15.0', 'terminaltables==3.1.0',
      'requests==2.28.2', 'irc==19.0.1', 'smbus2_asyncio==0.0.5',
      'python-osc==1.8.3', 'pyusb==1.1.0', 'apigpio-mpf==0.0.4',
      'grpcio_tools==1.34.0', 'grpcio==1.34.0', 'protobuf==3.14.0',
      'uvloop==0.19.0','numpy>=1.7.0'
      ]
  
  [project.urls]
  homepage = "https://missionpinball.org"
  support-forum = "https://missionpinball.org/community/"
  
  [project.scripts]
  mpf = "mpf.commands:run_from_command_line"
  
  [tool.setuptools]
  include-package-data = true
  
  [tool.setuptools.dynamic]
  version = {attr = "mpf._version.__version__"}
  
  [tool.setuptools.packages.find]
  include = ["mpf*"]
  
  [build-system]
  requires = [
      "setuptools >= 63",
      "setuptools_scm[toml] >= 6.2",
      ]
  build-backend = "setuptools.build_meta"