# Path: feet/config.py
# class RedisConfiguration(Configuration):
# class ServerConfiguration(Configuration):
# class MecabConfiguration(Configuration):
# class FeetConfiguration(Configuration):
#     CONF_PATHS = [
#         "/etc/feet.yaml",  # System configuration
#         os.path.expanduser("~/.feet.yaml"),  # User specific config
#         os.path.abspath("conf/feet.yaml"),  # Local configuration
#     ]
# 
# Path: feet/utils/decorators.py
# def memoized(fget):
#     """
#     Return a property attribute for new-style classes that only calls its
#     getter on the first access. The result is stored and on subsequent
#     accesses is returned, preventing the need to call the getter any more.
#     https://github.com/estebistec/python-memoized-property
#     """
#     attr_name = '_{0}'.format(fget.__name__)
# 
#     @wraps(fget)
#     def fget_memoized(self):
#         if not hasattr(self, attr_name):
#             setattr(self, attr_name, fget(self))
#         return getattr(self, attr_name)
# 
#     return property(fget_memoized)
# 
# Path: feet/utils/singleton.py
# class SingletonMetaClass(type):
#     """
#     Usage:
#         class bar(object):
#             __metaclass__ = SingletonMetaClass
#     """
#     def __init__(cls, name, bases, dict):
#         super(SingletonMetaClass, cls)\
#             .__init__(name, bases, dict)
#         original_new = cls.__new__
# 
#         def my_new(cls, *args, **kwds):
#             if cls.instance is None:
#                 cls.instance = original_new(cls, *args, **kwds)
#             return cls.instance
#         cls.instance = None
#         cls.__new__ = staticmethod(my_new)
# 
# Path: feet/utils/logger.py
# class LoggingMixin(object):
#     """
#     Mix in to classes that need their own logging object!
#     """
# 
#     @property
#     def logger(self):
#         """
#         Instantiates and returns a ServiceLogger instance
#         """
#         if not hasattr(self, '_logger') or not self._logger:
#             self._logger = ServiceLogger()
#         return self._logger


import MeCab
import re
from datetime import datetime
from feet.config import settings
from dateparser import parse
from feet.utils.decorators import memoized
from feet.utils.singleton import SingletonMetaClass
from feet.utils.logger import LoggingMixin
        'regex': ur'\d{1}/\d{1}',
        'format': '',
        'with_year': False
    }
]

F1_NOUN = '名詞'
F1_PARTICLE = '助詞'
F1_CONJONCTION = '接続詞'
F1_INTERJECTION = '感動詞'
F1_VERB = '動詞'
F1_AUXILIARY_VERB = '助動詞'
F1_ADJECTIVE = '形容詞'
F1_SEPARATOR = '記号'
F2_NUMBER = '数'
F2_SUFFIX = '接尾'
F2_SUFFIX_COUNTER = '接尾'
F2_IND_VERB = '自立'
F2_NO_MEANING_NAMES = '非自立'
F2_PRONOUN = '代名詞'
F2_ADVERBS = '副詞可能'
F2_ADJECTIVE = '形容動詞語幹'
F2_PROPER_NOUN = '固有名詞'
F3_ADVERBS = '副詞可能'
F3_SUFFIX_COUNTER = '助数詞'
SENTENCE_SEPARATORS = ('句点', '')
STOPLIST = set('http https for a of the and to in co com jp'.split())


class JAParser(LoggingMixin):

# Path: feet/config.py
# class RedisConfiguration(Configuration):
# class ServerConfiguration(Configuration):
# class MecabConfiguration(Configuration):
# class FeetConfiguration(Configuration):
#     CONF_PATHS = [
#         "/etc/feet.yaml",  # System configuration
#         os.path.expanduser("~/.feet.yaml"),  # User specific config
#         os.path.abspath("conf/feet.yaml"),  # Local configuration
#     ]
# 
# Path: feet/utils/decorators.py
# def memoized(fget):
#     """
#     Return a property attribute for new-style classes that only calls its
#     getter on the first access. The result is stored and on subsequent
#     accesses is returned, preventing the need to call the getter any more.
#     https://github.com/estebistec/python-memoized-property
#     """
#     attr_name = '_{0}'.format(fget.__name__)
# 
#     @wraps(fget)
#     def fget_memoized(self):
#         if not hasattr(self, attr_name):
#             setattr(self, attr_name, fget(self))
#         return getattr(self, attr_name)
# 
#     return property(fget_memoized)
# 
# Path: feet/utils/singleton.py
# class SingletonMetaClass(type):
#     """
#     Usage:
#         class bar(object):
#             __metaclass__ = SingletonMetaClass
#     """
#     def __init__(cls, name, bases, dict):
#         super(SingletonMetaClass, cls)\
#             .__init__(name, bases, dict)
#         original_new = cls.__new__
# 
#         def my_new(cls, *args, **kwds):
#             if cls.instance is None:
#                 cls.instance = original_new(cls, *args, **kwds)
#             return cls.instance
#         cls.instance = None
#         cls.__new__ = staticmethod(my_new)
# 
# Path: feet/utils/logger.py
# class LoggingMixin(object):
#     """
#     Mix in to classes that need their own logging object!
#     """
# 
#     @property
#     def logger(self):
#         """
#         Instantiates and returns a ServiceLogger instance
#         """
#         if not hasattr(self, '_logger') or not self._logger:
#             self._logger = ServiceLogger()
#         return self._logger


# Path: feet/entities/jptools.py
import MeCab
import re
from datetime import datetime
from feet.config import settings
from dateparser import parse
from feet.utils.decorators import memoized
from feet.utils.singleton import SingletonMetaClass
from feet.utils.logger import LoggingMixin

        'regex': ur'\d{1}/\d{1}',
        'format': '',
        'with_year': False
    }
]

F1_NOUN = '名詞'
F1_PARTICLE = '助詞'
F1_CONJONCTION = '接続詞'
F1_INTERJECTION = '感動詞'
F1_VERB = '動詞'
F1_AUXILIARY_VERB = '助動詞'
F1_ADJECTIVE = '形容詞'
F1_SEPARATOR = '記号'
F2_NUMBER = '数'
F2_SUFFIX = '接尾'
F2_SUFFIX_COUNTER = '接尾'
F2_IND_VERB = '自立'
F2_NO_MEANING_NAMES = '非自立'
F2_PRONOUN = '代名詞'
F2_ADVERBS = '副詞可能'
F2_ADJECTIVE = '形容動詞語幹'
F2_PROPER_NOUN = '固有名詞'
F3_ADVERBS = '副詞可能'
F3_SUFFIX_COUNTER = '助数詞'
SENTENCE_SEPARATORS = ('句点', '')
STOPLIST = set('http https for a of the and to in co com jp'.split())


class JAParser(LoggingMixin):

    __metaclass__ = SingletonMetaClass