<commit_before>from libcpp cimport bool
#from cpython.ref cimport PyObject

#cdef extern from "<utility>" namespace "std":
#    cdef cppclass pair[K,V]:
#        pair(const K& a, const V& b) except +
#        K first
#        V second

cdef extern from "pyredblack.h":
    cdef cppclass pyobjpairw:
        pyobjpair "pair"(object a, object b) except +
        object getFirst() const
        object getSecond() const

    cdef cppclass PairNode:
        pyobjpairw value

    cdef cppclass PairRBTreeIterator:
        PairRBTreeIterator() except +
        PairRBTreeIterator(PairNode *s) except +
        PairRBTreeIterator& equals "operator="(const PairRBTreeIterator&)
        PairRBTreeIterator& operator++()
        PairNode& operator*() const
        bool operator==(const PairRBTreeIterator&)
        bool operator!=(const PairRBTreeIterator&)

    cdef cppclass PairRBTree:
        PairRBTree() except +
        void find(pyobjpairw in_Value, PairNode* &out_pNode, int &dir)
        #bool insert(pyobjpairw value)
        #bool remove(pyobjpairw value)<commit_msg>redblack.pyx: fix pyobjpairw ctor<commit_after>from libcpp cimport bool
#from cpython.ref cimport PyObject

#cdef extern from "<utility>" namespace "std":
#    cdef cppclass pair[K,V]:
#        pair(const K& a, const V& b) except +
#        K first
#        V second

cdef extern from "pyredblack.h":
    cdef cppclass pyobjpairw:
        pyobjpairw(object a, object b) except +
        object getFirst() const
        object getSecond() const

    cdef cppclass PairNode:
        pyobjpairw value

    cdef cppclass PairRBTreeIterator:
        PairRBTreeIterator() except +
        PairRBTreeIterator(PairNode *s) except +
        PairRBTreeIterator& equals "operator="(const PairRBTreeIterator&)
        PairRBTreeIterator& operator++()
        PairNode& operator*() const
        bool operator==(const PairRBTreeIterator&)
        bool operator!=(const PairRBTreeIterator&)

    cdef cppclass PairRBTree:
        PairRBTree() except +
        void find(pyobjpairw in_Value, PairNode* &out_pNode, int &dir)
        #bool insert(pyobjpairw value)
        #bool remove(pyobjpairw value)
{'fraction_non_alphanumeric': 0.0871177015755329, 'fraction_numerical': 0.0, 'mean_word_length': 2.998148148148148, 'pattern_counts': {'":': 4, '<': 5, '<?xml version=': 0, '>': 5, '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': '76711', 'n_tokens_mistral': 684, 'n_tokens_neox': 672, 'n_words': 187}