<commit_before>class OrderedOrderingPolicy:
    def getCurrentPossibleExpectations( self, expectations ):
        possible = []
        for expectation in expectations:
            possible += expectation.getCurrentPossibleExpectations()
            if expectation.nbRequiredCalls() > 0:
                break
        return possible

class UnorderedOrderingPolicy:
    def getCurrentPossibleExpectations( self, expectations ):
        possible = []
        for expectation in expectations:
            possible += expectation.getCurrentPossibleExpectations()
        return possible

class AllCompletionPolicy:
    def nbRequiredCalls( self, expectations ):
        required = 0
        for expectation in expectations:
            required += expectation.nbRequiredCalls()
        return required

AnyCompletionPolicy = AllCompletionPolicy
ExactlyOneCompletionPolicy = AllCompletionPolicy
RepeatedCompletionPolicy = AllCompletionPolicy

class UnstickyStickynessPolicy:
    pass

class StickyStickynessPolicy:
    pass

class ExpectationGroup:
    def __init__( self, ordering, completion, stickyness ):
        self.__ordering = ordering
        self.__completion = completion
        self.__stickyness = stickyness
        self.__parent = None
        self.__expectations = []

    def setParent( self, parent ):
        assert( self.__parent is None )
        self.__parent = parent

    @property<commit_msg>Implement "optional"<commit_after>class OrderedOrderingPolicy:
    def getCurrentPossibleExpectations( self, expectations ):
        possible = []
        for expectation in expectations:
            possible += expectation.getCurrentPossibleExpectations()
            if expectation.nbRequiredCalls() > 0:
                break
        return possible

class UnorderedOrderingPolicy:
    def getCurrentPossibleExpectations( self, expectations ):
        possible = []
        for expectation in expectations:
            possible += expectation.getCurrentPossibleExpectations()
        return possible

class AllCompletionPolicy:
    def nbRequiredCalls( self, expectations ):
        required = 0
        for expectation in expectations:
            required += expectation.nbRequiredCalls()
        return required

class AnyCompletionPolicy:
    def nbRequiredCalls( self, expectations ):
        return 0

ExactlyOneCompletionPolicy = AllCompletionPolicy
RepeatedCompletionPolicy = AllCompletionPolicy

class UnstickyStickynessPolicy:
    pass

class StickyStickynessPolicy:
    pass

class ExpectationGroup:
    def __init__( self, ordering, completion, stickyness ):
        self.__ordering = ordering
        self.__completion = completion
        self.__stickyness = stickyness
        self.__parent = None
        self.__expectations = []

    def setParent( self, parent ):
        assert( self.__parent is None )
        self.__parent = parent

    @property
{'fraction_non_alphanumeric': 0.05896635449184877, 'fraction_numerical': 0.001734304543877905, 'mean_word_length': 2.9238095238095236, 'pattern_counts': {'":': 0, '<': 3, '<?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': '6594420', 'n_tokens_mistral': 687, 'n_tokens_neox': 658, 'n_words': 186}