<commit_before># coding=utf-8
# cython: profile=True
# Filename: dataclasses.py
# cython: embedsignature=True
# pylint: disable=W0232,C0103,C0111
"""
...

"""
from __future__ import division, absolute_import, print_function

import ctypes
from libcpp cimport bool as c_bool  # noqa
from six import with_metaclass

import numpy as np
cimport numpy as np
cimport cython

np.import_array()

from km3pipe.tools import angle_between, geant2pdg, pdg2name

__author__ = "<NAME> and <NAME>"
__copyright__ = "Copyright 2016, Tamas Gal and the KM3NeT collaboration."
__credits__ = []
__license__ = "MIT"
__maintainer__ = "<NAME> and <NAME>"
__email__ = "<EMAIL>"
__status__ = "Development"
__all__ = ('EventInfo', 'Point', 'Position', 'Direction', 'HitSeries', 'Hit',
           'Track', 'TrackSeries', 'Serialisable')


IS_CC = {
    2: True,
    1: False,
    0: True,
}


class Serialisable(type):
    """A metaclass for seriasiable classes.

    The classes should define a `dtype` attribute in their body and are not
    meant to define `__init__` (it will be overwritten).

    Example using six.with_metaclass for py2/py3 compat
    ---------------------------------------------------

        class Foo(with_metaclass(Serialisable)):
            dtype = [('a', '<i4'), ('b', '>i8')]

    """
    def __new__(metaclass, class_name, class_parents, class_attr):
        attr = {}
        for name, val in class_attr.items():
            if name == 'dtype':
                attr['dtype'] = np.dtype(val)
            else:
                attr[name] = val

        def __init__(self, *args, **kwargs):<commit_msg>fix docstring typo<commit_after># coding=utf-8
# cython: profile=True
# Filename: dataclasses.py
# cython: embedsignature=True
# pylint: disable=W0232,C0103,C0111
"""
...

"""
from __future__ import division, absolute_import, print_function

import ctypes
from libcpp cimport bool as c_bool  # noqa
from six import with_metaclass

import numpy as np
cimport numpy as np
cimport cython

np.import_array()

from km3pipe.tools import angle_between, geant2pdg, pdg2name

__author__ = "<NAME> and <NAME>"
__copyright__ = "Copyright 2016, <NAME> and the KM3NeT collaboration."
__credits__ = []
__license__ = "MIT"
__maintainer__ = "<NAME> and <NAME>"
__email__ = "<EMAIL>"
__status__ = "Development"
__all__ = ('EventInfo', 'Point', 'Position', 'Direction', 'HitSeries', 'Hit',
           'Track', 'TrackSeries', 'Serialisable')


IS_CC = {
    2: True,
    1: False,
    0: True,
}


class Serialisable(type):
    """A metaclass for serialisable classes.

    The classes should define a `dtype` attribute in their body and are not
    meant to define `__init__` (it will be overwritten).

    Example using six.with_metaclass for py2/py3 compat
    ---------------------------------------------------

        class Foo(with_metaclass(Serialisable)):
            dtype = [('a', '<i4'), ('b', '>i8')]

    """
    def __new__(metaclass, class_name, class_parents, class_attr):
        attr = {}
        for name, val in class_attr.items():
            if name == 'dtype':
                attr['dtype'] = np.dtype(val)
            else:
                attr[name] = val

        def __init__(self, *args, **kwargs):
{'fraction_non_alphanumeric': 0.15178849144634526, 'fraction_numerical': 0.017418351477449457, 'mean_word_length': 2.9124087591240877, 'pattern_counts': {'":': 0, '<': 16, '<?xml version=': 0, '>': 16, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '885904', 'n_tokens_mistral': 1069, 'n_tokens_neox': 1028, 'n_words': 302}