<commit_before>// Not public API.
#[doc(hidden)]
#[macro_export(local_inner_macros)]
macro_rules! punct_len {
    (+)      => ( 1usize );
    (+=)     => ( 2usize );
    (&)      => ( 1usize );
    (&&)     => ( 2usize );
    (&=)     => ( 2usize );
    (@)      => ( 1usize );
    (!)      => ( 1usize );
    (^)      => ( 1usize );
    (^=)     => ( 2usize );
    (:)      => ( 1usize );
    (::)     => ( 2usize );
    (,)      => ( 1usize );
    (/)      => ( 1usize );
    (/=)     => ( 2usize );
    (.)      => ( 1usize );
    (..)     => ( 2usize );
    (...)    => ( 3usize );
    (..=)    => ( 3usize );
    (=)      => ( 1usize );
    (==)     => ( 2usize );
    (>=)     => ( 2usize );
    (>)      => ( 1usize );
    (<=)     => ( 2usize );
    (<)      => ( 1usize );
    (*=)     => ( 2usize );
    (!=)     => ( 2usize );
    (|)      => ( 1usize );
    (|=)     => ( 2usize );
    (||)     => ( 2usize );
    (#)      => ( 1usize );
    (?)      => ( 1usize );
    (->)     => ( 2usize );
    (<-)     => ( 2usize );
    (%)      => ( 1usize );
    (%=)     => ( 2usize );
    (=>)     => ( 2usize );
    (;)      => ( 1usize );
    (<<)     => ( 2usize );
    (<<=)    => ( 3usize );
    (>>)     => ( 2usize );
    (>>=)    => ( 3usize );
    (*)      => ( 1usize );
    (-)      => ( 1usize );
    (-=)     => ( 2usize );
    (~)      => ( 1usize );
    ($tt:tt) => ( my_compile_error!("Punctuation `{}` is not supported", stringify!($tt)) );
    ($head:tt $($tail:tt)+) => ( punct_len!($head) $(+ punct_len!($tail))+ );
}

// Not public API.
#[doc(hidden)]
#[macro_export]
macro_rules! stringify_punct {
    ($($tt:tt)*) => ( concat!($(stringify!($tt)),*) );
}

// Not public API.
// Without this, local_inner_macros breaks when looking for concat!
#[doc(hidden)]
#[macro_export]
macro_rules! my_concat {
    ($($tt:tt)*) => ( concat!($($tt)*) );
}

// Not public API.<commit_msg>Make punct_len just give give up harder on bad input<commit_after>// Not public API.
#[doc(hidden)]
#[macro_export(local_inner_macros)]
macro_rules! punct_len {
    (+)      => ( 1usize );
    (+=)     => ( 2usize );
    (&)      => ( 1usize );
    (&&)     => ( 2usize );
    (&=)     => ( 2usize );
    (@)      => ( 1usize );
    (!)      => ( 1usize );
    (^)      => ( 1usize );
    (^=)     => ( 2usize );
    (:)      => ( 1usize );
    (::)     => ( 2usize );
    (,)      => ( 1usize );
    (/)      => ( 1usize );
    (/=)     => ( 2usize );
    (.)      => ( 1usize );
    (..)     => ( 2usize );
    (...)    => ( 3usize );
    (..=)    => ( 3usize );
    (=)      => ( 1usize );
    (==)     => ( 2usize );
    (>=)     => ( 2usize );
    (>)      => ( 1usize );
    (<=)     => ( 2usize );
    (<)      => ( 1usize );
    (*=)     => ( 2usize );
    (!=)     => ( 2usize );
    (|)      => ( 1usize );
    (|=)     => ( 2usize );
    (||)     => ( 2usize );
    (#)      => ( 1usize );
    (?)      => ( 1usize );
    (->)     => ( 2usize );
    (<-)     => ( 2usize );
    (%)      => ( 1usize );
    (%=)     => ( 2usize );
    (=>)     => ( 2usize );
    (;)      => ( 1usize );
    (<<)     => ( 2usize );
    (<<=)    => ( 3usize );
    (>>)     => ( 2usize );
    (>>=)    => ( 3usize );
    (*)      => ( 1usize );
    (-)      => ( 1usize );
    (-=)     => ( 2usize );
    (~)      => ( 1usize );
    ($tt:tt) => ( my_compile_error!("This punctuation is not supported") );
    ($head:tt $($tail:tt)+) => ( punct_len!($head) $(+ punct_len!($tail))+ );
}

// Not public API.
#[doc(hidden)]
#[macro_export]
macro_rules! stringify_punct {
    ($($tt:tt)*) => ( concat!($(stringify!($tt)),*) );
}

// Not public API.
// Without this, local_inner_macros breaks when looking for concat!
#[doc(hidden)]
#[macro_export]
macro_rules! my_concat {
    ($($tt:tt)*) => ( concat!($($tt)*) );
}

// Not public API.
{'fraction_non_alphanumeric': 0.2800732217573222, 'fraction_numerical': 0.023535564853556484, 'mean_word_length': 1.6470588235294117, 'pattern_counts': {'":': 0, '<': 17, '<?xml version=': 0, '>': 117, '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': '4583707', 'n_tokens_mistral': 1648, 'n_tokens_neox': 1537, 'n_words': 192}