mirror of
https://github.com/rookiestar28/ComfyUI-OpenClaw.git
synced 2026-08-14 00:48:07 +00:00
159 lines
3.9 KiB
TOML
159 lines
3.9 KiB
TOML
[project]
|
|
name = "comfyui-openclaw"
|
|
description = "Your own personal AIGC Factory. Any picture. Any reel. The Comfy way.©️"
|
|
version = "1.0.0"
|
|
license = {text = "MIT"}
|
|
readme = "README.md"
|
|
requires-python = ">=3.10"
|
|
|
|
# S57: cryptography is required for Fernet AEAD secrets-at-rest encryption.
|
|
# S85: defusedxml is required for scanner-recognized fail-closed WeChat XML parsing.
|
|
dependencies = ["cryptography>=41.0", "defusedxml>=0.7.1"]
|
|
|
|
[project.optional-dependencies]
|
|
# WeChat AES encrypted ingress mode (R82) — lazy-imported, only needed when encrypt_type=aes
|
|
wechat-aes = ["pycryptodomex>=3.20"]
|
|
|
|
[project.urls]
|
|
Repository = "https://github.com/rookiestar28/ComfyUI-OpenClaw"
|
|
Documentation = "https://github.com/rookiestar28/ComfyUI-OpenClaw#readme"
|
|
"Bug Tracker" = "https://github.com/rookiestar28/ComfyUI-OpenClaw/issues"
|
|
|
|
[tool.comfy]
|
|
PublisherId = "rookiestar"
|
|
DisplayName = "ComfyUI OpenClaw"
|
|
Icon = ""
|
|
|
|
# ========================================
|
|
# Development Tools Configuration
|
|
# ========================================
|
|
|
|
[tool.ruff]
|
|
# Ruff replaces flake8, isort, and other linters
|
|
target-version = "py310"
|
|
line-length = 88
|
|
indent-width = 4
|
|
|
|
[tool.ruff.lint]
|
|
# Enable pycodestyle (E, W), Pyflakes (F), isort (I), and more
|
|
select = [
|
|
"E", # pycodestyle errors
|
|
"W", # pycodestyle warnings
|
|
"F", # Pyflakes
|
|
"I", # isort
|
|
"N", # pep8-naming
|
|
"UP", # pyupgrade
|
|
"B", # flake8-bugbear
|
|
"C4", # flake8-comprehensions
|
|
"SIM", # flake8-simplify
|
|
"RUF", # Ruff-specific rules
|
|
]
|
|
ignore = [
|
|
"E501", # Line too long (handled by formatter)
|
|
"B008", # Do not perform function call in argument defaults
|
|
"B904", # Within an except clause, raise exceptions with from err
|
|
]
|
|
|
|
[tool.ruff.lint.per-file-ignores]
|
|
"__init__.py" = ["F401"] # Allow unused imports in __init__.py
|
|
"tests/*" = ["S101"] # Allow assert statements in tests
|
|
|
|
[tool.ruff.format]
|
|
quote-style = "double"
|
|
indent-style = "space"
|
|
skip-magic-trailing-comma = false
|
|
line-ending = "lf"
|
|
|
|
[tool.black]
|
|
line-length = 88
|
|
target-version = ["py310"]
|
|
|
|
[tool.mypy]
|
|
python_version = "3.10"
|
|
warn_return_any = true
|
|
warn_unused_configs = false
|
|
disallow_untyped_defs = false # Start lenient, can tighten later
|
|
disallow_any_unimported = false
|
|
explicit_package_bases = true
|
|
no_site_packages = true
|
|
ignore_missing_imports = true
|
|
no_implicit_optional = true
|
|
warn_redundant_casts = true
|
|
warn_unused_ignores = true
|
|
warn_no_return = true
|
|
check_untyped_defs = true
|
|
strict_equality = true
|
|
|
|
# Production paths governed by tests/static_analysis_policy.json.
|
|
files = [
|
|
"__init__.py",
|
|
"config.py",
|
|
"api",
|
|
"connector",
|
|
"models",
|
|
"nodes",
|
|
"services",
|
|
"scripts",
|
|
]
|
|
|
|
# Ignore missing imports for ComfyUI and external packages
|
|
[[tool.mypy.overrides]]
|
|
module = [
|
|
"aiohttp.*",
|
|
"server",
|
|
"folder_paths",
|
|
]
|
|
ignore_missing_imports = true
|
|
|
|
[tool.pytest.ini_options]
|
|
testpaths = ["tests"]
|
|
python_files = ["test_*.py"]
|
|
python_classes = ["Test*"]
|
|
python_functions = ["test_*"]
|
|
norecursedirs = [".git", ".tox", "dist", "build", "*.egg", "patterns"]
|
|
addopts = [
|
|
"-v",
|
|
"--strict-markers",
|
|
"--tb=short",
|
|
"--ignore=__init__.py",
|
|
# "--cov=.",
|
|
# "--cov-report=term-missing",
|
|
# "--cov-report=html",
|
|
# "--cov-report=xml",
|
|
]
|
|
markers = [
|
|
"slow: marks tests as slow (deselect with '-m \"not slow\"')",
|
|
"integration: marks tests as integration tests",
|
|
"unit: marks tests as unit tests",
|
|
"asyncio: marks tests as async (pytest-asyncio)",
|
|
]
|
|
|
|
[tool.coverage.run]
|
|
source = ["."]
|
|
omit = [
|
|
"tests/*",
|
|
"**/test_*.py",
|
|
"**/__pycache__/*",
|
|
".venv/*",
|
|
"venv/*",
|
|
]
|
|
|
|
[tool.coverage.report]
|
|
fail_under = 45.0
|
|
show_missing = true
|
|
skip_covered = true
|
|
precision = 2
|
|
exclude_lines = [
|
|
"pragma: no cover",
|
|
"def __repr__",
|
|
"raise AssertionError",
|
|
"raise NotImplementedError",
|
|
"if __name__ == .__main__.:",
|
|
"if TYPE_CHECKING:",
|
|
"@abstractmethod",
|
|
]
|
|
|
|
[tool.isort]
|
|
profile = "black"
|
|
line_length = 88
|