color_tools.reconcilers.filament_reconciler

Base contract for reusable external-filament reconciliation.

class color_tools.reconcilers.filament_reconciler.FilamentReconciler(catalog, *, policy=None)[source]

Bases: ABC

Plan and resolve imported filaments against an existing catalog.

Subclasses rank format-specific candidates. This base class owns source ordering, deterministic ID reservation, ambiguity enforcement, resolution validation, and remapping of imported ownership to final catalog IDs.

Parameters:
property fuzzy_matching_available: bool

Return whether the reconciler is using its optional fuzzy engine.

plan(source)[source]

Create an immutable reconciliation plan without modifying files.

Return type:

FilamentReconciliationPlan

Parameters:

source (FilamentExportData)

resolve(plan, resolutions=None)[source]

Apply caller choices and return only records that must be imported.

Ambiguous entries require an explicit choice. Matched entries default to UseExisting, new entries default to ImportNew, and skipped entries default to Skip.

Return type:

FilamentReconciliationResult

Parameters: