185 lines
4.5 KiB
TOML
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"
|