FABulous.FABulous_settings#
FABulous settings management and environment configuration.
This module handles configuration settings for the FABulous FPGA framework, including tool paths, project settings, and environment variable management.
Classes#
- class FABulousSettings[source]#
Bases:
FABulous settings.
Tool paths are resolved lazily during validation so that environment variable setup (including PATH updates for oss-cad-suite) can occur beforehand.
Methods:
- parse_model_pack(value, info)[source]#
Validate and normalise model_pack path based on project language.
Uses already-validated proj_lang from info.data when available. Accepts None / empty string to mean unset.
- Parameters:
value (Path | None)
info (ValidationInfo)
- Return type:
Path | None
- parse_version_str(value)[source]#
Parse version from string or Version object.
- Parameters:
value (str | packaging.version.Version)
- Return type:
packaging.version.Version
- resolve_tool_paths(value, info)[source]#
Resolve tool paths by checking if tools are available in PATH.
This method is used as a field validator to automatically resolve tool paths during settings initialization. If a tool path is not explicitly provided, it searches for the tool in the system PATH.
- Parameters:
value (Path | None) – The explicitly provided tool path, if any.
info (FieldValidationInfo) – Validation context containing field information.
- Returns:
The resolved path to the tool if found, None otherwise.
- Return type:
Path | None
Notes
This method logs a warning if a tool is not found in PATH, as some features may be unavailable without the tool.
Functions#
Add or update a key-value pair to the global .env file.
- param key:
The environment variable key to add or update.
- type key:
str
- param value:
The value to set for the environment variable.
- type value:
str
- raises RuntimeError:
If the user config directory is not set.
Get the global FABulous context.
- rtype:
The current FABulousSettings instance
- raises RuntimeError:
If context has not been initialized with init_context():
- init_context(project_dir=None, global_dot_env=None, project_dot_env=None)[source]#
- Parameters:
- Return type:
Initialize the global FABulous context with settings.
This function gathers .env files and lets the pydantic-settings system handle project directory resolution.
- Args:
global_dot_env: Global .env file path project_dot_env: Project .env file path explicit_project_dir: Explicitly provided project directory (highest priority)
- rtype:
The initialized FABulousSettings instance
Reset the global context (primarily for testing).
Module Attributes#
- FAB_USER_CONFIG_DIR[source]