Files

185 lines
4.5 KiB
TOML

[project]
name = "ci"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.11"
dependencies = [
"platformio==6.1.18",
"python-dateutil",
"ruff",
"pyright>=1.1.373",
"types-python-dateutil",
"clang-format",
"pip",
"pytest",
"pytest-xdist",
"fpvgcc",
"uv",
"ziglang",
"ninja",
"cmake",
"download",
"playwright",
"download",
"httpx",
"pytest-xdist",
"sccache>=0.10.0",
"psutil",
"toml>=0.10.2",
"typeguard>=4.4.4",
"mcp>=1.12.2",
"compiledb>=0.10.7",
"pathspec>=0.12.1",
"rich>=14.1.0",
"emoji>=2.14.1",
"pydantic[email]>=2.0.0",
"dirsync>=2.2.6",
"llvm-installer>=1.4.10",
"sys-detection>=1.3.4",
"fastled>=1.4.38",
"fasteners>=0.20",
"esptool>=5.0.2",
"docker",
]
[build-system]
requires = ["hatchling", "hatch-requirements-txt"]
build-backend = "hatchling.build"
[tool.hatch.build.targets.wheel]
[tool.hatch.build]
packages = ["ci"]
[tool.ruff]
exclude = ["ci/tmp", "ci/wasm", "scripts", "native"]
[tool.ruff.lint]
# Enable import sorting (replaces isort)
select = ["I"]
[tool.ruff.lint.isort]
# Configure import sorting to match isort's black profile
force-single-line = false
force-sort-within-sections = false
lines-after-imports = 2
[tool.ruff.format]
# Enable formatting (replaces black)
# Use black-compatible settings
quote-style = "double"
indent-style = "space"
skip-magic-trailing-comma = false
line-ending = "auto"
[tool.pyright]
include = ["ci", "ci/compiler"]
exclude = [
"ci/tmp/",
"ci/wasm/",
"ci/native/",
"native/",
"**/__pycache__",
"**/.pytest_cache",
"**/.ruff_cache",
"**/node_modules",
"**/.git",
"**/.venv",
"**/.build",
"**/.pio",
"**/.pio_cache",
"**/build",
"**/dist",
"**/*.egg-info",
"tmp.py"
]
# Type checking configuration
typeCheckingMode = "strict"
pythonVersion = "3.11"
pythonPlatform = "All"
useLibraryCodeForTypes = true
analyzeUnannotatedFunctions = true
strictParameterNoneValue = true
strictListInference = true
strictDictionaryInference = true
strictSetInference = true
# Report settings
reportMissingImports = true
reportMissingTypeStubs = false
reportUnusedImport = false
reportUnusedClass = false
reportUnusedFunction = false
reportUnusedVariable = false
reportDuplicateImport = true
reportWildcardImportFromLibrary = true
reportOptionalSubscript = false
reportOptionalMemberAccess = false
reportOptionalCall = false
reportOptionalIterable = false
reportOptionalContextManager = false
reportOptionalOperand = false
reportGeneralTypeIssues = true
reportPropertyTypeMismatch = true
reportFunctionMemberAccess = true
reportPrivateUsage = false
reportConstantRedefinition = false
reportIncompatibleMethodOverride = true
reportIncompatibleVariableOverride = true
reportInconsistentConstructor = true
reportOverlappingOverload = true
reportMissingSuperCall = false
reportUninitializedInstanceVariable = false
reportInvalidStringEscapeSequence = true
reportUnknownParameterType = "error"
reportUnknownArgumentType = "error"
reportUnknownLambdaType = "error"
reportUnknownVariableType = "error"
reportUnknownMemberType = "error"
reportMissingParameterType = "error"
reportMissingTypeArgument = "error"
reportMissingReturnType = "error"
reportUntypedFunctionDecorator = "error"
reportUntypedClassDecorator = "error"
reportUntypedBaseClass = "error"
reportUntypedNamedTuple = "error"
reportInvalidTypeVarUse = true
reportCallInDefaultInitializer = false
reportUnnecessaryIsInstance = false
reportUnnecessaryCast = false
reportUnnecessaryComparison = false
reportUnnecessaryContains = false
reportAssertAlwaysTrue = false
reportSelfClsParameterName = true
reportImplicitStringConcatenation = false
reportUndefinedVariable = true
reportUnboundVariable = true
reportInvalidStubStatement = true
reportIncompleteStub = true
reportUnsupportedDunderAll = true
reportUnusedCallResult = false
reportUnusedCoroutine = true
reportUnusedExpression = false
reportUnnecessaryTypeIgnoreComment = false
reportMatchNotExhaustive = true
# Display settings
verboseOutput = false
autoImportCompletions = false
indexing = false
functionSignatureDisplay = "compact"
# Task list tokens
taskListTokens = ["TODO", "FIXME", "BUG", "HACK", "NOTE"]
[tool.pytest.ini_options]
markers = [
"full: marks tests as requiring the full test suite (deselected during quick Python-only runs)",
]
[[tool.pyright.executionEnvironments]]
root = "."
pythonVersion = "3.11"
pythonPlatform = "All"