trailpack.packing.export_service ================================ .. py:module:: trailpack.packing.export_service .. autoapi-nested-parse:: Export service for converting UI data to Frictionless Data Package in Parquet. Classes ------- .. autoapisummary:: trailpack.packing.export_service.DataPackageExporter Module Contents --------------- .. py:class:: DataPackageExporter(df: pandas.DataFrame, column_mappings: Dict[str, str], general_details: Dict[str, Any], sheet_name: str, file_name: str, suggestions_cache: Dict[str, List] = None, column_descriptions: Dict[str, str] = None, standard_version: str = '1.0.0') Service for exporting UI data to Frictionless Data Package in Parquet. Initialize with UI session state data. :param df: Pandas DataFrame with the actual data :param column_mappings: Mapping of column names to PyST concept IDs :param general_details: Metadata from the general details form :param sheet_name: Name of the Excel sheet :param file_name: Original file name :param suggestions_cache: Cache of PyST suggestions with id and label :param column_descriptions: User-provided descriptions/comments for columns :param standard_version: Trailpack standard version to validate against .. py:method:: _find_label_for_id(concept_id: str) -> Optional[str] Find label for a PyST concept ID from suggestions cache. .. py:method:: _format_validation_errors(validation_result) -> str Format validation errors for better readability. .. py:method:: _infer_field_type(series: pandas.Series) -> str Infer Frictionless field type from pandas Series. .. py:method:: _sanitize_resource_name(name: str) -> str Sanitize resource name to match the pattern ^[a-z0-9\-_\.]+$. The resource name must only contain: - Lowercase letters (a-z) - Numbers (0-9) - Hyphens (-) - Underscores (_) - Dots (.) :param name: Raw name string to sanitize :returns: Sanitized name matching the required pattern .. py:method:: _validate_dataframe_for_parquet(df: pandas.DataFrame) -> None Validate DataFrame is compatible with Arrow/Parquet format. :raises ValueError: If data quality issues are found (e.g., mixed types in columns) .. py:method:: build_fields() -> List[trailpack.packing.datapackage_schema.Field] Convert column mappings to Field definitions. .. py:method:: build_metadata(resource: trailpack.packing.datapackage_schema.Resource) -> Dict[str, Any] Build complete metadata using MetaDataBuilder. .. py:method:: build_resource(fields: List[trailpack.packing.datapackage_schema.Field]) -> trailpack.packing.datapackage_schema.Resource Create Resource definition with fields. .. py:method:: export(output_path: str, validate_standard: bool = True) -> Tuple[str, Optional[str], Optional[Any]] Execute full export workflow and write Parquet. :param output_path: Path where Parquet file will be written :param validate_standard: Whether to validate against Trailpack standard (default: True) :returns: Tuple of (output_path, quality_level, validation_result) - output_path: Path to exported Parquet file - quality_level: Validation level ("STRICT", "STANDARD", "BASIC", "INVALID") or None if validation skipped - validation_result: Full ValidationResult object for report generation, or None if validation skipped :raises ValueError: If validation fails or data quality issues found .. py:method:: generate_validation_report(validation_result) -> str Generate a complete validation report for download. Includes errors, warnings, and info (data quality metrics). :param validation_result: ValidationResult object from validation :returns: Formatted report as string .. py:method:: validate() -> Tuple[bool, List[str]] Validate all inputs before processing. .. py:attribute:: column_descriptions .. py:attribute:: column_mappings .. py:attribute:: df .. py:attribute:: file_name .. py:attribute:: general_details .. py:attribute:: schema .. py:attribute:: sheet_name .. py:attribute:: suggestions_cache .. py:attribute:: validator