29 Commits
Author SHA1 Message Date
Ranska 5ebe41adb9 implementation parser ACO, coverage 94% -> 96%, doc exporters
- parser adobe_aco_parser : implementation reelle avec struct.unpack
  (RGB uniquement, gestion fichiers tronques)
- specs exporter_registry : reset, get unknown, available_formats
- specs exporter_context : context manager, export, export_list,
  export_tuples, appels hors context
- specs hsv_mixer : wrapping teinte quand ecart > 180 degres
- doc palette_formatter : ajout formats css et amiga
2026-02-16 10:03:32 +01:00
Ranska b7a8f5e115 ajout exporters CSS et Amiga OCS/ECS
- CSSExporter : export en custom properties CSS (:root, selecteur custom, sanitisation noms)
- AmigaExporter : export 12-bit Amiga en format txt (#RGB) et C (tableau UWORD)
- enregistrement des deux exporters dans le registry
- ajout des formats css et amiga dans le node PaletteFormatter
- specs completes pour les deux exporters
- section Export Formats dans le README
2026-02-16 09:20:26 +01:00
Ranska 5265cda9f4 ajout specs parsers et gimp exporter, coverage 90% -> 94%
specs pour GimpExporter, AdobeAcoParser et GenericParser.
mise a jour .coveragerc et CLAUDE.md.
2026-02-15 20:50:50 +01:00
Ranska 1aa58df99d ajout nodes manipulation de palettes (batch 2)
4 nouvelles methodes sur PixelPalette : copy_subset, append_palette,
insert_palette et mix_with_palette avec leurs specs mamba (31 tests).

4 nouveaux nodes ComfyUI : CopySubsetNode, AppendPaletteNode,
InsertPaletteNode et MixPaletteNode avec workflows de test 11-14.
2026-02-14 22:21:20 +01:00
Ranska 8ed2f13f12 Merge branch 'feature/palette-view' into feature/batch1-integration
# Conflicts:
#	nodes/palette/__init__.py
2026-02-13 13:47:20 +01:00
Ranska 2c3fee5fd1 Merge branch 'feature/create-gradient-palette' into feature/batch1-integration
# Conflicts:
#	lib/pixel_palette.py
#	nodes/palette/__init__.py
2026-02-13 13:47:09 +01:00
Ranska dc9de9f349 Merge branch 'feature/sort-palette' into feature/batch1-integration 2026-02-13 13:46:21 +01:00
Ranska 4c6c0711dc restore PixelPalette constructor and reactivate 26 pending specs
The custom __init__ was missing all attributes except colors, breaking
the dataclass constructor interface and the GimpPaletteLoader node.
Restored full constructor with all parameters (name, raw_content,
source_filename, metadata, format_type).

Reactivated 26 specs from spec_pending covering: initialization,
GIMP parsing, generic parsing, PixelColor validation, utility methods,
formatting, export, properties, and error handling.
5 specs remain pending (parser metadata, generic hex parser, raw format).
2026-02-13 13:23:19 +01:00
Ranska 6f7eb5c444 add palette view node with renderer
PaletteRenderer in lib/palette renders palettes as PIL images
with grid, horizontal and vertical layouts. Optional text overlay
for names, indices and hex values.
PaletteViewNode wraps it for ComfyUI, outputting IMAGE tensors.
13 specs covering all layouts, pixel accuracy, text areas, edge cases.
2026-02-13 13:19:51 +01:00
Ranska bb8475bf34 add create gradient palette node and lib method
New class method PixelPalette.create_gradient_palette() generates
a palette with N interpolated colors between two endpoints.
Supports RGB and HSV color spaces via the existing mixer system.
CreateGradientPaletteNode wraps it for ComfyUI.
Specs cover RGB/HSV interpolation, boundary preservation, validation.
2026-02-13 13:17:55 +01:00
Ranska bb820efc42 add sort palette node and specs
New SortPaletteNode wraps palette.sort_by_hue() and sort_by_brightness()
with deepcopy to avoid mutating the original palette.
Specs cover hue sorting, brightness sorting (perceptual luminosity),
edge cases (single color, achromatic colors).
2026-02-13 13:16:02 +01:00
levaleureux d31b8f4e26 fix raise error import 2025-08-31 14:35:11 +02:00
levaleureux aea719719e fix git conflict 2025-08-31 14:32:04 +02:00
levaleureux c1312fa6de fix git conflict 2025-08-31 14:26:59 +02:00
levaleureux 59b5c5f175 improve angent file 2025-08-31 14:23:18 +02:00
levaleureux 51668c8808 first gradient implementation 2025-08-29 15:20:44 +02:00
ranska 4e53c348a4 create monochrome palette 2025-08-28 19:35:38 +02:00
levaleureux c593593577 mixer hsv done and tested with spec 2025-08-22 15:42:43 +02:00
levaleureux c5321bd5b3 conftest (spec helper like) prepare hsv possible switch 2025-08-22 14:52:47 +02:00
levaleureux 82deb22a9a first mixer with a mixer color space 2025-08-19 13:08:59 +02:00
levaleureux a3b6bb5650 first mixer with a mixer color space 2025-08-19 13:05:29 +02:00
levaleureux ca3cfa9c07 move file and prepare registery pattern archi 2025-08-18 15:50:23 +02:00
levaleureux 81cf560748 add patterns context and register 2025-08-16 16:57:55 +02:00
levaleureux c3a0955a34 refactoring 2025-08-13 20:28:23 +02:00
levaleureux efe98c912d add exporter string and image 2025-08-13 11:29:42 +02:00
levaleureux e358302153 blank lines 2025-08-11 16:50:45 +02:00
levaleureux eb7fc9a209 fix import 2025-08-09 15:40:17 +02:00
levaleureux 901ab72d10 wip 2025-08-08 08:59:36 +02:00
ranska d55d656438 refactoring and first mamba spec 2025-08-07 11:31:48 +02:00