config.manager

manager

Unified Configuration Management for Keecas.

Manages all configuration options with TOML file support, hierarchical priority, and dynamic propagation to affected subsystems (Pint locale, localization).

The main configuration object is exposed as config from the keecas package:

from keecas import config

# Access nested configuration
config.language.language = 'it'                 # Italian localization
config.latex.eq_prefix = 'eq-'                  # LaTeX label prefix
config.display.default_float_format = '.3f'    # Default float formatting
config.display.katex = True                     # KaTeX compatibility mode

# Environment configuration
config.latex.environments.align.separator       # Built-in environment separator
config.latex.environments.set('custom', {...})  # Custom environment
# Save configuration
from keecas.config import get_config_manager
manager = get_config_manager()
manager.save_config()  # Save to .keecas/config.toml

Configuration Hierarchy

Priority order: Local config > Global config > Defaults

  • Local: <project>/.keecas/config.toml (project-specific)
  • Global: ~/.keecas/config.toml (user-wide)
  • Defaults: Built-in defaults in dataclass definitions

Configuration Sections

  • config.latex: LaTeX equation formatting (eq_prefix, environments, etc.)
  • config.display: Display behavior (katex, debug, float_format, etc.)
  • config.language: Language and localization (language, disable_pint_locale)
  • config.translations: Custom term translations
  • config.check_templates: Verification function templates

Dynamic Propagation

Changes to certain settings automatically propagate:

  • config.language: Updates Pint locale and localization manager
  • Configuration changes trigger affected subsystem updates

See Also

  • LatexConfig: LaTeX equation formatting configuration
  • DisplayConfig: Display and debugging configuration
  • LanguageConfig: Language and localization configuration
  • ConfigManager: Main configuration manager class

Classes

Name Description
LatexConfig LaTeX equation output configuration.
DisplayConfig Display and debugging behavior configuration.
LanguageConfig Language and localization configuration.
UnitsConfig Units formatting configuration.
TranslationsConfig Custom term translations configuration.
CheckTemplateConfig Check function template configuration.
EnvironmentDefinition Single LaTeX environment definition.
EnvironmentConfig LaTeX environment configurations accessible via dot notation.
ConfigOptions Unified configuration for Keecas with proper TOML sections.
ConfigManager Manages configuration files, priority loading, and option propagation.

LatexConfig

LatexConfig(
    eq_prefix='eq-',
    eq_suffix='',
    vertical_skip='8pt',
    default_environment='align',
    default_label_command='\\label',
    default_mul_symbol='\\,',
    label=None,
    environments=(lambda: None)(),
)

LaTeX equation output configuration.

DisplayConfig

DisplayConfig(
    print_label=False,
    debug=False,
    katex=False,
    default_float_format=None,
    pint_default_format='.2f~P',
    cell_formatter=None,
    row_formatter=None,
    col_wrap=None,
)

Display and debugging behavior configuration.

LanguageConfig

LanguageConfig(disable_pint_locale=True, pint_language_mode='auto')

Language and localization configuration.

Attributes

Name Description
language Document-level language override (None = use global/config).

UnitsConfig

UnitsConfig()

Units formatting configuration.

TranslationsConfig

TranslationsConfig(translations=dict())

Custom term translations configuration.

CheckTemplateConfig

CheckTemplateConfig(
    success_template='$\\textcolor{{green}}{{\\left[{symbol}{rhs}\\quad \\textbf{{{verified_text}}}\\right]}}$',
    failure_template='$\\textcolor{{red}}{{\\left[{symbol}{rhs}\\quad \\textbf{{{not_verified_text}}}\\right]}}$',
    template_sets=(lambda: {'default': {'success': '$\\textcolor{{green}}{{\\left[{symbol}{rhs}\\quad \\textbf{{{verified_text}}}\\right]}}$', 'failure': '$\\textcolor{{red}}{{\\left[{symbol}{rhs}\\quad \\textbf{{{not_verified_text}}}\\right]}}$'}, 'boxed': {'success': '\\colorbox{{green}}{{${symbol}{rhs} \\; \\checkmark \\; \\textbf{{{verified_text}}}$}}', 'failure': '\\colorbox{{red}}{{${symbol}{rhs} \\; \\times \\; \\textbf{{{not_verified_text}}}$}}'}, 'minimal': {'success': '${symbol}{rhs} \\,\\textcolor{{green}}{{\\checkmark}}$', 'failure': '${symbol}{rhs} \\,\\textcolor{{red}}{{\\times}}$'}})(),
)

Check function template configuration.

EnvironmentDefinition

EnvironmentDefinition(
    separator,
    line_separator,
    supports_multiple_labels,
    outer_environment,
    inner_environment=None,
    inner_prefix='',
    inner_suffix='',
    outer_prefix='',
    outer_suffix='',
    label_position='outer',
)

Single LaTeX environment definition.

Methods

Name Description
from_dict Create from dictionary, filtering unknown keys.
to_dict Convert to dictionary.
from_dict
from_dict(data)

Create from dictionary, filtering unknown keys.

to_dict
to_dict()

Convert to dictionary.

EnvironmentConfig

EnvironmentConfig()

LaTeX environment configurations accessible via dot notation.

Access environments as attributes: config.environments.align.separator

Methods

Name Description
get Get environment by name, returns None if not found.
set Set environment by name. Accepts EnvironmentDefinition or dict.
keys Return environment names (attributes that are EnvironmentDefinition).
items Return (name, definition) pairs.
get
get(name)

Get environment by name, returns None if not found.

set
set(name, definition)

Set environment by name. Accepts EnvironmentDefinition or dict.

keys
keys()

Return environment names (attributes that are EnvironmentDefinition).

items
items()

Return (name, definition) pairs.

ConfigOptions

ConfigOptions(
    latex=LatexConfig(),
    display=DisplayConfig(),
    language=LanguageConfig(),
    units=UnitsConfig(),
    translations=TranslationsConfig(),
    check_templates=CheckTemplateConfig(),
)

Unified configuration for Keecas with proper TOML sections.

Methods

Name Description
to_toml_dict Convert to dictionary suitable for TOML serialization.
update_from_dict Update configuration from dictionary (loaded from TOML).
to_toml_dict
to_toml_dict()

Convert to dictionary suitable for TOML serialization.

Note: latex.label is intentionally excluded (runtime-only, not serializable).

update_from_dict
update_from_dict(data)

Update configuration from dictionary (loaded from TOML).

ConfigManager

ConfigManager()

Manages configuration files, priority loading, and option propagation.

Priority order: API overrides > Local config > Global config > Defaults

Attributes

Name Description
options Get current configuration options.

Methods

Name Description
load_configs Load configurations from files in priority order with automatic migration.
save_config Save current configuration to file with version metadata.
init_config Initialize a new configuration file with parametrizable template.
get_config_path Get path to configuration file.
show_config Show current configuration.
reset_config Reset configuration file to defaults with proper template and version header.
get_option Get configuration option value.
set_option Set configuration option and optionally propagate changes.
get_loaded_files Get list of successfully loaded configuration files.
load_configs
load_configs()

Load configurations from files in priority order with automatic migration.

save_config
save_config(global_config=False, force=False)

Save current configuration to file with version metadata.

Parameters

global_config : bool, optional If True, save to global config file force : bool, optional If True, overwrite existing file

Returns

bool True if saved successfully, False otherwise

init_config
init_config(global_config=False, force=False, comment_style='##')

Initialize a new configuration file with parametrizable template.

get_config_path
get_config_path(global_config=False)

Get path to configuration file.

show_config
show_config(global_config=None)

Show current configuration.

Parameters

global_config : bool | None, optional If True, show only global config. If False, only local. If None, show merged configuration.

Returns

dict[str, Any] Configuration dictionary

reset_config
reset_config(global_config=False)

Reset configuration file to defaults with proper template and version header.

get_option
get_option(key, default=None)

Get configuration option value.

set_option
set_option(key, value, propagate=True)

Set configuration option and optionally propagate changes.

Parameters

key : str Option name value : Any Option value propagate : bool, optional Whether to propagate changes to affected subsystems

get_loaded_files
get_loaded_files()

Get list of successfully loaded configuration files.

Functions

Name Description
get_config_manager Get the global configuration manager instance.
get_options Get current configuration options (backward compatibility).

get_config_manager

get_config_manager()

Get the global configuration manager instance.

get_options

get_options()

Get current configuration options (backward compatibility).