<commit_before><?php

/**
 * Fonction utilisée pour le débuggage.
 * Formate le résultat différemment en fonction de ce qui est passé en argument (array, object, string, int, boolean, ...)
 * Attention, ne fonctionne pas si la fonction est appelée plusieurs fois sur la même ligne.
 * Voir la doc dans README.md pour plus d'infos
 *
 * @version 1
 */
function pr($o = '', $val = '!this_is_a_placeholder!') {

    $isCli = isCli();
    $isAjax = isAjax();
    $addHtml = !$isCli && !$isAjax;

    $label = '';

    // Récupération du nom de la variable (via la backtrace : un peu crade mais c'est pour du débuggage)
    if($val === '!this_is_a_placeholder!' && !empty($o)) {

        $bt = debug_backtrace();
        $src = file($bt[0]['file']);
        $line = $src[$bt[0]['line'] - 1];

        preg_match('#pr\((.+)\)#', $line, $match);

        $max = strlen($match[1]);
        $label = '';
        $c = 0;

        // On s'assure que le label a été bien parsé
        for ($i = 0; $i < $max; $i++) {
            if ($match[1][$i] === '(') {
                $c++;
            }
            else if ($match[1][$i] === ')') {
                $c--;
            }
            if ($c < 0) {
                break;
            }
            $label .=  $match[1][$i];
        }
    }

    // Si on a juste passé une chaîne à la fonction, on l'affiche simplement
    $firstChar = substr($label, 0, 1);
    if ($firstChar === false || ($firstChar === '\'' ||  $firstChar === '"')) {
        echo $o . "\n";
        return;
    }

    // Si on affiche le log dans une page web, on le wrappe dans un <pre>
    if ($addHtml) {
        echo '<pre class="debug-pr" style="color:black;font-family:monospace;" >';
        echo "<strong>$label: </strong>";
    }
    else {
        echo "$label: ";
    }
<commit_msg>Supprime le placeholder inutile et ajoute la coloration du terminal<commit_after><?php

/**
 * Fonction utilisée pour le débuggage.
 * Formate le résultat différemment en fonction de ce qui est passé en argument (array, object, string, int, boolean, ...)
 * Attention, ne fonctionne pas si la fonction est appelée plusieurs fois sur la même ligne.
 * Voir la doc dans README.md pour plus d'infos
 *
 * @version 1
 */
function pr($o = '') {

    $enableTerminalColor = true;

    $isCli = isCli();
    $isAjax = isAjax();
    $addHtml = !$isCli && !$isAjax;
    $terminalColor = $enableTerminalColor && $isCli;

    $label = '';

    // Récupération du nom de la variable (via la backtrace : un peu crade mais c'est pour du débuggage)
    if(!empty($o)) {

        $bt = debug_backtrace();
        $src = file($bt[0]['file']);
        $line = $src[$bt[0]['line'] - 1];

        preg_match('#pr\((.+)\)#', $line, $match);

        $max = strlen($match[1]);
        $label = '';
        $c = 0;

        // On s'assure que le label a été bien parsé
        for ($i = 0; $i < $max; $i++) {
            if ($match[1][$i] === '(') {
                $c++;
            }
            else if ($match[1][$i] === ')') {
                $c--;
            }
            if ($c < 0) {
                break;
            }
            $label .=  $match[1][$i];
        }
    }

    // Si on a juste passé une chaîne à la fonction, on l'affiche simplement
    $firstChar = substr($label, 0, 1);
    if ($firstChar === false || ($firstChar === '\'' ||  $firstChar === '"')) {
        echo $o . "\n";
        return;
    }

    // Si on affiche le log dans une page web, on le wrappe dans un <pre>
    if ($addHtml) {
        echo '<pre class="debug-pr" style="color:black;font-family:monospace;" >';
        echo "<strong>$label: </strong>";
    }
    else {
        if ($terminalColor) {
            echo "\033[1;34m$label:\033[0m ";
        }
        else {
            echo "$label: ";
        }
    }

{'fraction_non_alphanumeric': 0.17457805907172996, 'fraction_numerical': 0.00949367088607595, 'mean_word_length': 1.9176923076923076, 'pattern_counts': {'":': 0, '<': 17, '<?xml version=': 0, '>': 11, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '697906', 'n_tokens_mistral': 1297, 'n_tokens_neox': 1251, 'n_words': 369}