science_live.core.config#

Configuration Management#

Configuration system for Science Live applications with support for YAML, JSON, and environment variables.

Module Contents#

Classes#

EndpointConfig

Configuration for nanopub endpoints

TemplateConfig

Configuration for template system

ProcessorConfig

Configuration for query processors

UIConfig

Configuration for user interfaces

ScienceLiveConfig

Main configuration for Science Live applications

ConfigLoader

Load configuration from various sources

Functions#

save_config

Save configuration to file

API#

class science_live.core.config.EndpointConfig[source]#

Configuration for nanopub endpoints

name: str = None#
type: str = None#
url: str = None#
is_default: bool = False#
timeout: int = 30#
retry_attempts: int = 3#
headers: Dict[str, str] = 'field(...)'#
class science_live.core.config.TemplateConfig[source]#

Configuration for template system

repository_type: str = 'network'#
cache_enabled: bool = True#
cache_dir: str = './template_cache'#
cache_ttl_hours: int = 24#
preload_templates: List[str] = 'field(...)'#
custom_templates_dir: Optional[str] = None#
class science_live.core.config.ProcessorConfig[source]#

Configuration for query processors

enabled_processors: List[str] = 'field(...)'#
text_search_limit: int = 20#
template_match_threshold: float = 0.3#
sparql_timeout: int = 30#
enable_caching: bool = True#
class science_live.core.config.UIConfig[source]#

Configuration for user interfaces

interface_type: str = 'web'#
theme: str = 'default'#
enable_suggestions: bool = True#
max_results_per_page: int = 20#
enable_export: bool = True#
export_formats: List[str] = 'field(...)'#
class science_live.core.config.ScienceLiveConfig[source]#

Main configuration for Science Live applications

app_name: str = None#
app_type: str = 'general'#
version: str = '1.0.0'#
endpoints: List[science_live.core.config.EndpointConfig] = 'field(...)'#
templates: science_live.core.config.TemplateConfig = 'field(...)'#
processors: science_live.core.config.ProcessorConfig = 'field(...)'#
ui: science_live.core.config.UIConfig = 'field(...)'#
plugins: List[str] = 'field(...)'#
custom_modules: Dict[str, str] = 'field(...)'#
log_level: str = 'INFO'#
enable_metrics: bool = True#
metrics_endpoint: Optional[str] = None#
class science_live.core.config.ConfigLoader[source]#

Load configuration from various sources

static from_yaml(config_path: Union[str, pathlib.Path]) science_live.core.config.ScienceLiveConfig[source]#

Load configuration from YAML file

static from_json(config_path: Union[str, pathlib.Path]) science_live.core.config.ScienceLiveConfig[source]#

Load configuration from JSON file

static from_dict(config_dict: Dict[str, Any]) science_live.core.config.ScienceLiveConfig[source]#

Load configuration from dictionary

static from_env(prefix: str = 'SCIENCE_LIVE_') science_live.core.config.ScienceLiveConfig[source]#

Load configuration from environment variables

static _dict_to_config(data: Dict[str, Any]) science_live.core.config.ScienceLiveConfig[source]#

Convert dictionary to configuration object

static create_default_config() science_live.core.config.ScienceLiveConfig[source]#

Create a default configuration

science_live.core.config.save_config(config: science_live.core.config.ScienceLiveConfig, path: Union[str, pathlib.Path], format: str = 'yaml')[source]#

Save configuration to file