# Path: KPC/classes.py
# class Error:
#     '''An individual error from a check against an entry. One check
#     usually returns list of errors or empty list if there's no error.
#     '''
#     SUCCESS = 0
#     DEPRECATED = 1
#     WARNING = 2
#     ERROR = 3
# 
#     def __init__(self, message):
#         self.pos = 0
#         self.level = Error.ERROR
#         self.message = message
# 
# class BaseCheck:
#     '''Base class to check an entry from PO files. Subclasses should
#     implement check() function. check() returns list of errors if any.
#     '''
#     def _get_context(self, entry):
#         if not hasattr(self, 'get_context'):
#             return {}
#         fields = {}
#         # parse msgstr
#         for line in entry.msgstr.split('\n'):
#             try:
#                 k, v = line.split(': ', 1)
#                 fields[k] = v
#             except ValueError:
#                 pass
#         return self.get_context(entry, fields)
# 
#     def _check(self, entry, context):
#         return self.check(entry, context)


import re
from KPC.classes import Error, BaseCheck

    # 요일 24시각
    (R('(%[-_0^]?[EO]?a) (%[-_0^]?[EO]?R)'), '({0}) {1}'),

    # 요일 시각 오전/오후
    (R('(%[-_0^]?[EO]?a) ' +
       '(%[-_0^]?[EO]?[lI](?:[:\u2236]%[-_0^]?[EO]?M(?:[:\u2236]%[-_0^]?[EO]?S)?)?) ' +
       '(%[pP])'),
     '({0}) {2} {1}'),

    # 시각 오전/오후
    (R('(%[-_0^]?[EO]?[lI](?:[:\u2236]%[-_0^]?[EO]?M(?:[:\u2236]%[-_0^]?[EO]?S)?)?) ' +
       '(%[pP])'),
     '{1} {0}'),

    # 월 년
    (R('(%[-_0^]?[EO]?[bB]) (%[-_0^]?[EO]?Y)'), '{1}년 {0}'),

    # 월 일 년
    (R('(%[-_0^]?[EO]?[bB]) (%[-_0^]?[EO]?[de]) (%[-_0^]?[EO]?Y)'),
     '{2}년 {0} {1}일'),
    # 일 월 년
    (R('(%[-_0^]?[EO]?[de]) (%[-_0^]?[EO]?[bB]) (%[-_0^]?[EO]?Y)'),
     '{2}년 {1} {0}일'),

    # 요일 월/일/년
    (R('(%[-_0^]?[EO]?a) (%[-_0^]?[EO]?m)/(%[-_0^]?[EO]?[de])/(%[-_0^]?[EO]?Y)'),
     '{3}/{1}/{2} ({0})'),

    # 월/일/년

# Path: KPC/classes.py
# class Error:
#     '''An individual error from a check against an entry. One check
#     usually returns list of errors or empty list if there's no error.
#     '''
#     SUCCESS = 0
#     DEPRECATED = 1
#     WARNING = 2
#     ERROR = 3
# 
#     def __init__(self, message):
#         self.pos = 0
#         self.level = Error.ERROR
#         self.message = message
# 
# class BaseCheck:
#     '''Base class to check an entry from PO files. Subclasses should
#     implement check() function. check() returns list of errors if any.
#     '''
#     def _get_context(self, entry):
#         if not hasattr(self, 'get_context'):
#             return {}
#         fields = {}
#         # parse msgstr
#         for line in entry.msgstr.split('\n'):
#             try:
#                 k, v = line.split(': ', 1)
#                 fields[k] = v
#             except ValueError:
#                 pass
#         return self.get_context(entry, fields)
# 
#     def _check(self, entry, context):
#         return self.check(entry, context)


# Path: KPC/checks/convention/strftime.py
import re
from KPC.classes import Error, BaseCheck


    # 요일 24시각
    (R('(%[-_0^]?[EO]?a) (%[-_0^]?[EO]?R)'), '({0}) {1}'),

    # 요일 시각 오전/오후
    (R('(%[-_0^]?[EO]?a) ' +
       '(%[-_0^]?[EO]?[lI](?:[:\u2236]%[-_0^]?[EO]?M(?:[:\u2236]%[-_0^]?[EO]?S)?)?) ' +
       '(%[pP])'),
     '({0}) {2} {1}'),

    # 시각 오전/오후
    (R('(%[-_0^]?[EO]?[lI](?:[:\u2236]%[-_0^]?[EO]?M(?:[:\u2236]%[-_0^]?[EO]?S)?)?) ' +
       '(%[pP])'),
     '{1} {0}'),

    # 월 년
    (R('(%[-_0^]?[EO]?[bB]) (%[-_0^]?[EO]?Y)'), '{1}년 {0}'),

    # 월 일 년
    (R('(%[-_0^]?[EO]?[bB]) (%[-_0^]?[EO]?[de]) (%[-_0^]?[EO]?Y)'),
     '{2}년 {0} {1}일'),
    # 일 월 년
    (R('(%[-_0^]?[EO]?[de]) (%[-_0^]?[EO]?[bB]) (%[-_0^]?[EO]?Y)'),
     '{2}년 {1} {0}일'),

    # 요일 월/일/년
    (R('(%[-_0^]?[EO]?a) (%[-_0^]?[EO]?m)/(%[-_0^]?[EO]?[de])/(%[-_0^]?[EO]?Y)'),
     '{3}/{1}/{2} ({0})'),

    # 월/일/년

    (R('(%[-_0^]?[EO]?m)/(%[-_0^]?[EO]?[de])/(%[-_0^]?[EO]?Y)'), '{2}/{0}/{1}'),