def _print_datasource_validation_results()

in src/databao_context_engine/cli/datasources.py [0:0]


def _print_datasource_validation_results(results: dict[str, ValidationResult]) -> None:
    if len(results) > 0:
        valid_datasources = {
            key: value for key, value in results.items() if value.validation_status == ValidationStatus.VALID
        }
        invalid_datasources = {
            key: value for key, value in results.items() if value.validation_status == ValidationStatus.INVALID
        }
        unknown_datasources = {
            key: value for key, value in results.items() if value.validation_status == ValidationStatus.UNKNOWN
        }

        # Print all errors
        for datasource_path, validation_result in invalid_datasources.items():
            click.echo(
                f"Error for datasource {datasource_path}:{os.linesep}{validation_result.full_message}{os.linesep}"
            )

        results_summary = (
            os.linesep.join(
                [
                    f"{datasource_path}: {validation_result.format(show_summary_only=True)}"
                    for datasource_path, validation_result in results.items()
                ]
            )
            if results
            else "No datasource found"
        )

        click.echo(
            f"Validation completed with {len(valid_datasources)} valid datasource(s) and {len(invalid_datasources) + len(unknown_datasources)} invalid (or unknown status) datasource(s)"
            f"{os.linesep}{results_summary}"
        )
    else:
        click.echo("No datasource found")