color_tools.importers.base

Base contract and shared color construction for palette importers.

class color_tools.importers.base.ImporterDependency(package, import_name, extra=None)[source]

Bases: object

Optional third-party dependency required by an importer.

Parameters:
  • package (str)

  • import_name (str)

  • extra (str | None)

package: str
import_name: str
extra: str | None
class color_tools.importers.base.ImporterMetadata(name, description, file_extensions, is_binary=False, dependencies=())[source]

Bases: object

Metadata describing an importer’s format and requirements.

Parameters:
name: str
description: str
file_extensions: tuple[str, ...]
is_binary: bool
dependencies: tuple[ImporterDependency, ...]
__post_init__()[source]

Validate importer metadata.

Return type:

None

exception color_tools.importers.base.MissingImporterDependencyError(importer_name, dependencies)[source]

Bases: RuntimeError

Raised when an importer requires unavailable optional dependencies.

Parameters:
Return type:

None

class color_tools.importers.base.PaletteImporter[source]

Bases: ImporterBase

Base class for importers that produce palette transfer data.

Concrete importers provide format metadata and implement _import_palette_impl(). Shared infrastructure validates paths, checks optional dependencies, and performs extension/content detection.

import_palette(input_path)[source]

Import a validated palette file.

Parameters:

input_path (Path | str) – Palette file to read.

Return type:

PaletteExportData

Returns:

Imported colors and palette metadata.

Raises: