content: [project]
  name = "openc3"
  version = "6.9.2-beta0"
  description = "Python support for OpenC3 COSMOS"
  authors = [
    {name = "Support", email = "support@openc3.com"}
  ]
  readme = "README.md"
  requires-python = ">=3.10,<4.0"
  dependencies = [
      "boto3 (>=1.36.13,<2.0.0)",
      "cbor2 (>=5.6.5,<6.0.0)",
      "jsonpath-ng (>=1.7.0,<2.0.0)",
      "lxml (>=6.0.0,<7.0.0)",
      "numpy (>= 2.0, < 3.0)",
      "paho-mqtt (>=2.1.0,<3.0.0)",
      "psycopg[binary,pool] (>=3.2.9,<4.0.0)",
      "questdb (>= 3.0.0, < 4.0.0)",
      "redis[hiredis] (>=5.0.0,<6.0.0)",
      "requests (>=2.32.3,<3.0.0)",
      "schedule (>=1.2.2,<2.0.0)",
      "watchdog (>=6.0.0,<7.0.0)",
      "websockets (>=14.2,<16.0)",
      "pyserial>=3.5",
  ]
  
  [project.scripts]
  openc3pycli = "openc3.cli:main"
  
  [tool.poetry.requires-plugins]
  poetry-plugin-export = ">=1.9"
  
  [tool.poetry.group.dev.dependencies]
  black = "^25.9"
  coverage = "^7.10"
  fakeredis = "^2.31"
  pytest = "^8.3"
  ruff = "^0.13"
  pytest-profiling = "^1.8"
  
  [build-system]
  requires = ["poetry-core"]
  build-backend = "poetry.core.masonry.api"
  
  [tool.black]
  line-length = 120
  target-version = ['py310']
  include = '\.pyi?$'
  exclude = '''
  (
    /(
        \.eggs         # exclude a few common directories in the
      | \.git          # root of the project
      | \.hg
      | \.mypy_cache
      | \.tox
      | \.venv
      | _build
      | buck-out
      | build
      | dist
    )/
    | foo.py           # also separately exclude a file named foo.py in
                       # the root of the project
  )
  '''
  
  [tool.ruff]
  # Enable pycodestyle (`E`) and Pyflakes (`F`) codes by default.
  lint.select = ["E", "F"]
  lint.ignore = ["E402","E501","F402","F403","F405"]
  
  # Allow autofix for all enabled rules (when `--fix`) is provided.
  lint.fixable = ["A", "B", "C", "D", "E", "F", "G", "I", "N", "Q", "S", "T", "W", "ANN", "ARG", "BLE", "COM", "DJ", "DTZ", "EM", "ERA", "EXE", "FBT", "ICN", "INP", "ISC", "NPY", "PD", "PGH", "PIE", "PL", "PT", "PTH", "PYI", "RET", "RSE", "RUF", "SIM", "SLF", "TCH", "TID", "TRY", "UP", "YTT"]
  lint.unfixable = []
  
  # Exclude a variety of commonly ignored directories.
  exclude = [
      ".bzr",
      ".direnv",
      ".eggs",
      ".git",
      ".git-rewrite",
      ".hg",
      ".mypy_cache",
      ".nox",
      ".pants.d",
      ".pytype",
      ".ruff_cache",
      ".svn",
      ".tox",
      ".venv",
      "__pypackages__",
      "_build",
      "buck-out",
      "build",
      "dist",
      "node_modules",
      "venv",
  ]
  
  # Same as Black.
  line-length = 120
  
  # Allow unused variables when underscore-prefixed.
  lint.dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$"
  
  # Assume Python 3.12
  target-version = "py312"
  