trailpack.config.config_builder =============================== .. py:module:: trailpack.config.config_builder .. autoapi-nested-parse:: Configuration builder for exporting UI session state to reusable JSON configs. Functions --------- .. autoapisummary:: trailpack.config.config_builder.build_mapping_config trailpack.config.config_builder.build_metadata_config trailpack.config.config_builder.export_mapping_json trailpack.config.config_builder.export_metadata_json trailpack.config.config_builder.generate_config_filename Module Contents --------------- .. py:function:: build_mapping_config(column_mappings: Dict[str, str], file_name: str, sheet_name: str, language: str = 'en') -> Dict[str, Any] Build mapping configuration from column mappings. :param column_mappings: Dictionary mapping column names to ontology/unit IDs :param file_name: Original file name :param sheet_name: Sheet name :param language: Language code for ontology mappings (default: "en") :returns: Dictionary with mapping configuration .. rubric:: Example >>> mappings = { ... "Product": "https://vocab.sentier.dev/products/product/Product", ... "CO2_unit": "https://vocab.sentier.dev/units/unit/KiloGM" ... } >>> config = build_mapping_config(mappings, "data.xlsx", "Sheet1") .. py:function:: build_metadata_config(general_details: Dict[str, Any]) -> Dict[str, Any] Build metadata configuration from general details. :param general_details: Dictionary with package metadata from UI :returns: Dictionary with metadata configuration .. rubric:: Example >>> details = { ... "name": "my-dataset", ... "title": "My Dataset", ... "description": "Description here", ... "licenses": [{"name": "MIT", "path": "..."}], ... "contributors": [{"name": "John", "role": "author"}], ... } >>> config = build_metadata_config(details) .. py:function:: export_mapping_json(config: Dict[str, Any], indent: int = 2) -> str Serialize mapping config to JSON string. :param config: Mapping configuration dictionary :param indent: JSON indentation (default: 2) :returns: JSON string .. rubric:: Example >>> config = build_mapping_config({}, "data.xlsx", "Sheet1") >>> json_str = export_mapping_json(config) .. py:function:: export_metadata_json(config: Dict[str, Any], indent: int = 2) -> str Serialize metadata config to JSON string. :param config: Metadata configuration dictionary :param indent: JSON indentation (default: 2) :returns: JSON string .. rubric:: Example >>> config = build_metadata_config({"name": "my-dataset"}) >>> json_str = export_metadata_json(config) .. py:function:: generate_config_filename(config_type: str, package_name: Optional[str] = None, file_name: Optional[str] = None, sheet_name: Optional[str] = None) -> str Generate a standardized filename for config export. :param config_type: Type of config ("mapping" or "metadata") :param package_name: Package name if available :param file_name: Original file name (fallback) :param sheet_name: Sheet name (for mapping configs) :returns: Filename string .. rubric:: Example >>> generate_config_filename("mapping", "my-dataset") 'my-dataset_mapping_config.json' >>> generate_config_filename("mapping", None, "data.xlsx", "Sheet1") 'data_Sheet1_mapping_config.json'