<commit_before>import re

from utils import TimeDict

OBJECTTYPE_CODES = {}
ABILITIES = {}

def _uncamel_case(name):
    """Turn 'CamelCase' into 'Camel Case'"""
    return re.sub(r'(?<=.)([A-Z])', r' \1', name)

def _make_underscored(name):
    return '_'.join(name.lower().split(' '))

class MetaGameObject(type):
    
    def __new__(cls, name, bases, dct):
        code = dct.pop('code', None)
        if code and code not in OBJECTTYPE_CODES:

            def _get_abilities(cls_data, cls_bases, ability_type='abilities'):
                abilities = cls_data.get(ability_type, {})
                for base in cls_bases:
                    abilities.update(_get_abilities(base.__dict__, base.__bases__, ability_type=ability_type))
                return abilities
<commit_msg>Use proper . notation for relative imports<commit_after>import re

from .utils import TimeDict

OBJECTTYPE_CODES = {}
ABILITIES = {}

def _uncamel_case(name):
    """Turn 'CamelCase' into 'Camel Case'"""
    return re.sub(r'(?<=.)([A-Z])', r' \1', name)

def _make_underscored(name):
    return '_'.join(name.lower().split(' '))

class MetaGameObject(type):
    
    def __new__(cls, name, bases, dct):
        code = dct.pop('code', None)
        if code and code not in OBJECTTYPE_CODES:

            def _get_abilities(cls_data, cls_bases, ability_type='abilities'):
                abilities = cls_data.get(ability_type, {})
                for base in cls_bases:
                    abilities.update(_get_abilities(base.__dict__, base.__bases__, ability_type=ability_type))
                return abilities

{'fraction_non_alphanumeric': 0.12923462986198245, 'fraction_numerical': 0.0012547051442910915, 'mean_word_length': 2.918918918918919, 'pattern_counts': {'":': 0, '<': 5, '<?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': '2530228', 'n_tokens_mistral': 514, 'n_tokens_neox': 512, 'n_words': 117}