<commit_before>public class Runner implements Runnable {
    public interface OutputListener {
        void print(String message);
    }
    
    private boolean draw = false;
    private boolean error = false;
    private boolean silent = false;
    private String errorLog = "";
    private Thread thread;
    private OutputListener listener;
    
    private long start;
    
    public Runner(OutputListener listener) {
        this.listener = listener;
    }
    
    public void run() {
        String loadString = "";
                
        while (draw) {
            if (loadString == "") loadString = "   ";
            else if (loadString == "   ") loadString = ".  ";
            else if (loadString == ".  ") loadString = ".. ";
            else if (loadString == ".. ") loadString = "...";
            else if (loadString == "...") loadString = "   ";
            
            listener.print(loadString + "\b\b\b");
                    
            try { thread.sleep(250); } catch (Exception e) { }
        }
    }
    
    public void start(boolean silent) {
        start = System.currentTimeMillis();
        draw = true;
        thread = new Thread(this);
        thread.start();
        this.silent = silent;
    }
    
    public void stop() {
        thread.interrupt();
        
        if (silent) return;
        
        if (error) {
            listener.print("\n" + errorLog);
            listener.print("\nBUILD FAILED\n");
        } else {
            listener.print("\nBUILD SUCCESFULL\n");
        }
        
        long end = (System.currentTimeMillis() - start) / 1000;
        
        if (end > 59) {
            end = end / 60;
            if (end > 59) listener.print("Total time: " + end / 60 + " hours\n");
            else listener.print("Total time: " + end + " minutes\n");
        } else {
            listener.print("Total time: " + end + " seconds\n");
        }
        
        System.exit(error ? -1 : 0);
    }
    
    public void warn(String msg) {
        listener.print("\n" + msg + "\n");
    }

    public void error(Exception e) {
        error = true;
        errorLog += e.getMessage() + "\n";
    }

    public void finish() {
        draw = false;
        thread.interrupt();
        if (error) stop();
    }
}<commit_msg>Had to remove loading animation beacuse of Sublime Text<commit_after>public class Runner {
    public interface OutputListener {
        void print(String message);
    }
    
    private boolean draw = false;
    private boolean error = false;
    private boolean silent = false;
    private String errorLog = "";
    private OutputListener listener;
    
    private long start;
    
    public Runner(OutputListener listener) {
        this.listener = listener;
    }
    
    public void start(boolean silent) {
        start = System.currentTimeMillis();
        this.silent = silent;
    }
    
    public void stop() {
        if (silent) return;
        
        if (error) {
            listener.print("\n" + errorLog);
            listener.print("\nBUILD FAILED\n");
        } else {
            listener.print("\nBUILD SUCCESFULL\n");
        }
        
        long end = (System.currentTimeMillis() - start) / 1000;
        
        if (end > 59) {
            end = end / 60;
            if (end > 59) listener.print("Total time: " + end / 60 + " hours\n");
            else listener.print("Total time: " + end + " minutes\n");
        } else {
            listener.print("Total time: " + end + " seconds\n");
        }
        
        System.exit(error ? -1 : 0);
    }
    
    public void warn(String msg) {
        listener.print("\n" + msg + "\n");
    }

    public void error(Exception e) {
        error = true;
        errorLog += e.getMessage() + "\n";
    }

    public void finish() {
        draw = false;
        if (error) stop();
    }
}
{'fraction_non_alphanumeric': 0.12639501686997145, 'fraction_numerical': 0.008045678691928368, 'mean_word_length': 1.5590969455511288, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 7, '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': '7625085', 'n_tokens_mistral': 1099, 'n_tokens_neox': 1068, 'n_words': 282}