<commit_before># -*- coding: utf-8 -*-
# Copyright (c) 2015-2017, Exa Analytics Development Team
# Distributed under the terms of the Apache License 2.0
"""
Parsing Editors
####################################
This module provides editors tailored to parsing small/medium sized text files
that do not have a consistent structure.
"""
from abc import ABC, abstractmethod
from exa.typed import Typed
from .editor import Editor
from .data import DataFrame, Column


class Sections(DataFrame):
    """
    """
    pass


class Parser(Editor, ABC):
    """
    """
    sections = Typed(Sections, doc="Parsing sections.")
    def parse(self):
        pass

    @abstractmethod
    def _parse(self):
        pass<commit_msg>base abc not available in py2<commit_after># -*- coding: utf-8 -*-
# Copyright (c) 2015-2017, Exa Analytics Development Team
# Distributed under the terms of the Apache License 2.0
"""
Parsing Editors
####################################
This module provides editors tailored to parsing small/medium sized text files
that do not have a consistent structure.
"""
import six
from abc import ABCMeta, abstractmethod
from exa.typed import Typed
from .editor import Editor
from .data import DataFrame, Column


class Sections(DataFrame):
    """
    """
    pass


class Parser(six.with_metaclass(ABCMeta, Editor)):
    """
    """
    sections = Typed(Sections, doc="Parsing sections.")

    def parse(self):
        pass

    @abstractmethod
    def _parse(self):
        pass
{'fraction_non_alphanumeric': 0.1389261744966443, 'fraction_numerical': 0.015436241610738255, 'mean_word_length': 3.659375, 'pattern_counts': {'":': 0, '<': 3, '<?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': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '187452', 'n_tokens_mistral': 434, 'n_tokens_neox': 397, 'n_words': 154}