<commit_before>;;; ansi.lisp --- my functions for outputting colors

(defpackage :net.raydeejay.ansi
  (:use :common-lisp)
  (:export :princ-attr
           :princa)
  (:nicknames :ansi))

(in-package :net.raydeejay.ansi)

(defun flatten (structure)
  (cond ((null structure) nil)
        ((atom structure) (list structure))
        (t (mapcan #'flatten structure))))

;; an association list holding pairs of keyword:string
(defvar *attributes*
  (pairlis '(:reset
             :bold :underlined :blink :inverted :concealed
             :black :red :green :yellow
             :blue :magenta :cyan :white<commit_msg>Exporting ansi-demo<commit_after>;;; ansi.lisp --- my functions for outputting colors

(defpackage :net.raydeejay.ansi
  (:use :common-lisp)
  (:export :princ-attr
           :princa
           :ansi-demo)
  (:nicknames :ansi))

(in-package :net.raydeejay.ansi)

(defun flatten (structure)
  (cond ((null structure) nil)
        ((atom structure) (list structure))
        (t (mapcan #'flatten structure))))

;; an association list holding pairs of keyword:string
(defvar *attributes*
  (pairlis '(:reset
             :bold :underlined :blink :inverted :concealed
             :black :red :green :yellow
             :blue :magenta :cyan :white
{'fraction_non_alphanumeric': 0.13095238095238096, 'fraction_numerical': 0.0, 'mean_word_length': 3.015923566878981, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, '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': '586699', 'n_tokens_mistral': 417, 'n_tokens_neox': 406, 'n_words': 115}