Files
MajoorWaldi-ComfyUI-Majoor-…/pyproject.toml
T
Ewald a2053d0cba refactor(v2): plan V2 complet — splits JS, tests frontend, durcissement securite
Chantier F - Typage Python
- ruff S101 déplacé en per-file-ignores (pyproject.toml)
- pyrightconfig.json : mode standard confirmé

Chantier G - Assertions & bare-except
- 16 blocs except documentés dans config.py
- --cov-branch activé, seuil coverage 60→68%

Chantier H - Cache settings
- Stratégie documentée dans settings.py
- _resolve_index_dir() logguée dans config.py

Chantier I - Split gros fichiers JS
- client.js 1509L → client.js 406L + clientAuth.js + clientOps.js + fetchUtils.js
- toolbar.js 927L → toolbar.js 458L + toolbarActions.js + toolbarControls.js
- FloatingViewer.js → FloatingViewer.impl.js + floatingViewer*(8 modules)
- Viewer_impl.js → ViewerRuntime.js + viewerShell.js + viewerThemeStyles.js + viewerOverlayDismiss.js
- model3dRenderer.js → model3dRenderer.impl.js + model3dCore.js + model3dLoaders.js + model3dSupport.js
- dialogs.js → dialogs.js + DialogTemplates.js

Chantier J - Tests frontend (Phases 1-2)
- use_drag_drop.vitest.mjs : 5 tests
- use_grid_state.vitest.mjs : 18 tests
- security_client_headers, security_deep_merge, security_runtime_state, runtime_store, dialog_templates
- Total: 80 fichiers test / 350 tests vitest

Chantier K - Pinia migration
- runtimeState.js entièrement migré vers Pinia
- getOptionalRuntimeStore.js + runtimeEnrichmentState.js ajoutés

Chantier L - Durcissement sécurité
- tests/security/test_rate_limit.py : 8 tests rate-limit (state machine complète)
- clientAuth.js : docstring sessionStorage security boundary
- three.js 0.183.2 audité : 0 CVE (Snyk)

Chantier M - Simplification config
- deps.py, tool_detect.py, utils.py nettoyés

docs: PLAN_REFACTO_V2_LONG_TERME.md ajouté et clôturé
.gitignore: coverage/ ajouté
2026-04-11 09:38:41 +02:00

115 lines
3.8 KiB
TOML

[project]
name = "majoor-assetsmanager"
description = "Majoor Assets Manager is an advanced asset browser for ComfyUI that provides a comprehensive solution for managing, organizing, and viewing your generated assets. It integrates directly into ComfyUI, offering features like full-text search, metadata extraction, rating and tagging systems, and advanced viewing capabilities."
version = "2.4.4"
requires-python = ">=3.10, <3.14"
license = {file = "LICENSE"}
authors = [
{ name = "MajoorWaldi" },
]
# classifiers = [
# # For OS-independent nodes (works on all operating systems)
# "Operating System :: OS Independent",
#
# # OR for OS-specific nodes, specify the supported systems:
# "Operating System :: Microsoft :: Windows", # Windows specific
# "Operating System :: POSIX :: Linux", # Linux specific
# "Operating System :: MacOS", # macOS specific
#
# # GPU Accelerator support. Pick the ones that are supported by your extension.
# "Environment :: GPU :: NVIDIA CUDA", # NVIDIA CUDA support
# "Environment :: GPU :: AMD ROCm", # AMD ROCm support
# "Environment :: GPU :: Intel Arc", # Intel Arc support
# "Environment :: NPU :: Huawei Ascend", # Huawei Ascend support
# "Environment :: GPU :: Apple Metal", # Apple Metal support
# ]
dependencies = [
"aiohttp>=3.8.0,<4.0.0",
"aiosqlite>=0.20.0,<1.0.0",
"pillow>=10.0.0,<13.0.0",
"hachoir>=3.3.0,<4.0.0",
"send2trash>=1.8.0,<3.0.0",
"watchdog>=3.0.0,<7.0.0",
"pywin32>=300,<312; sys_platform == 'win32'",
# Note: tkinter is required for native folder browser functionality
# tkinter is included in standard Python distribution but may be missing in minimal installs
]
[project.optional-dependencies]
vector = [
"sentence-transformers>=2.2.0,<6.0.0",
"transformers>=4.44.0,<6.0.0",
"huggingface-hub>=0.24.0,<2.0.0",
"safetensors>=0.4.0,<1.0.0",
"protobuf>=3.20.0,<8.0.0",
"timm>=0.9.0,<2.0.0",
"einops>=0.7.0,<1.0.0",
"sentencepiece>=0.1.99,<1.0.0",
"opencv-python-headless>=4.8.0,<5.0.0",
"faiss-cpu>=1.7.0,<2.0.0",
"scikit-learn>=1.3.0,<2.0.0",
]
dev = [
"pytest>=8.0.0,<10.0.0",
"pytest-asyncio>=0.22.0,<2.0.0",
"pytest-cov>=6.0.0,<8.0.0",
"pytest-timeout>=2.3.0,<3.0.0",
"pre-commit>=4.3.0,<5.0.0",
"radon>=6.0.1,<7.0.0",
"xenon>=0.9.3,<1.0.0",
"ruff>=0.12.0,<1.0.0",
"mypy>=1.11.0,<2.0.0",
"pip-audit>=2.9.0,<3.0.0",
"bandit>=1.8.0,<2.0.0",
]
[project.urls]
Homepage = "https://github.com/MajoorWaldi/ComfyUI-Majoor-AssetsManager"
Repository = "https://github.com/MajoorWaldi/ComfyUI-Majoor-AssetsManager"
# Used by Comfy Registry https://registry.comfy.org
Documentation = "https://github.com/MajoorWaldi/ComfyUI-Majoor-AssetsManager/blob/main/user_guide.html"
"Bug Tracker" = "https://github.com/MajoorWaldi/ComfyUI-Majoor-AssetsManager/issues"
[tool.setuptools.packages.find]
where = ["."]
include = ["mjr_am_shared*", "mjr_am_backend*"]
exclude = ["js*", "vendor*", "plugins*", "ressources*"]
[tool.comfy]
PublisherId = "majoor-waldi"
DisplayName = "ComfyUI-Majoor-AssetsManager"
Icon = "https://raw.githubusercontent.com/MajoorWaldi/ComfyUI-Majoor-AssetsManager/main/ressources/icon.png"
includes = []
"requires-comfyui" = ">=0.13.0"
[tool.black]
line-length = 100
target-version = ["py310", "py311", "py312", "py313"]
include = '\.pyi?$'
[tool.ruff]
line-length = 100
target-version = "py310"
src = ["mjr_am_backend", "mjr_am_shared", "tests"]
respect-gitignore = false
exclude = [
".git",
".mypy_cache",
".mypy_cache_tmp",
".ruff_cache",
"build",
"majoor_assetsmanager.egg-info",
"node_modules",
"plugins",
]
[tool.ruff.lint]
select = ["E", "F", "I", "UP", "B", "S"]
ignore = ["E501", "S105", "S110", "S112", "S311", "S603", "S607", "S608"]
[tool.ruff.lint.per-file-ignores]
"scripts/junit_to_html.py" = ["S314"]
"tests/**/*.py" = ["S101", "S108", "S605"]