# Path: hecatoncheir/logger.py
# def to_unicode(s):
# def str2unicode(s):
# def setup():
# def ts():
# def trace(msg):
# def debug(msg):
# def info(msg):
# def info_cont(msg):
# def info_end(msg):
# def warning(msg):
# def error(msg, detail=None, query=None):
# def dump_datetime_default(o):
# def dump(msg, obj):
# 
# Path: hecatoncheir/msgutil.py
# class DbProfilerJSONEncoder(json.JSONEncoder):
#     def default(self, o):
#         try:
#             iterable = iter(o)
#         except TypeError:
#             pass
#         else:
#             return list(iterable)
# 
#         if isinstance(o, datetime.datetime):
#             return o.isoformat()
#         elif isinstance(o, datetime.date):
#             return o.isoformat()
#         elif isinstance(o, decimal.Decimal):
#             return (str(o) for o in [o])
#         return super(DbProfilerJSONEncoder, self).default(o)
# 
# Path: hecatoncheir/msgutil.py
# class DbProfilerJSONEncoder(json.JSONEncoder):
#     def default(self, o):
# def jsonize(data):


import copy
import json
import sys
import dateutil.parser
from datetime import datetime
from hecatoncheir import logger as log
from hecatoncheir.msgutil import DbProfilerJSONEncoder
from hecatoncheir.msgutil import gettext as _
#!/usr/bin/env python2.7
# -*- coding: utf-8 -*-





class TableColumnMeta:
    def __init__(self, name):
        if not name:
            raise ValueError("Invalid column name: '%s'" % name)
        self.name = name
        self.name_nls = None
        self.data_type = []
        self.nulls = None
        self.min = None
        self.max = None
        self.most_freq_vals = []
        self.least_freq_vals = []
        self.cardinality = None
        self.validation = []
        self.comment = None
        self.__assert()

        # FIXME:
        #   Backward compatibility stuff.
        #   Needs to be removed in the future.
        self.most_freq_values = []
        self.least_freq_values = []

# Path: hecatoncheir/logger.py
# def to_unicode(s):
# def str2unicode(s):
# def setup():
# def ts():
# def trace(msg):
# def debug(msg):
# def info(msg):
# def info_cont(msg):
# def info_end(msg):
# def warning(msg):
# def error(msg, detail=None, query=None):
# def dump_datetime_default(o):
# def dump(msg, obj):
# 
# Path: hecatoncheir/msgutil.py
# class DbProfilerJSONEncoder(json.JSONEncoder):
#     def default(self, o):
#         try:
#             iterable = iter(o)
#         except TypeError:
#             pass
#         else:
#             return list(iterable)
# 
#         if isinstance(o, datetime.datetime):
#             return o.isoformat()
#         elif isinstance(o, datetime.date):
#             return o.isoformat()
#         elif isinstance(o, decimal.Decimal):
#             return (str(o) for o in [o])
#         return super(DbProfilerJSONEncoder, self).default(o)
# 
# Path: hecatoncheir/msgutil.py
# class DbProfilerJSONEncoder(json.JSONEncoder):
#     def default(self, o):
# def jsonize(data):


# Path: hecatoncheir/metadata.py
import copy
import json
import sys
import dateutil.parser
from datetime import datetime
from hecatoncheir import logger as log
from hecatoncheir.msgutil import DbProfilerJSONEncoder
from hecatoncheir.msgutil import gettext as _

#!/usr/bin/env python2.7
# -*- coding: utf-8 -*-





class TableColumnMeta:
    def __init__(self, name):
        if not name:
            raise ValueError("Invalid column name: '%s'" % name)
        self.name = name
        self.name_nls = None
        self.data_type = []
        self.nulls = None
        self.min = None
        self.max = None
        self.most_freq_vals = []
        self.least_freq_vals = []
        self.cardinality = None
        self.validation = []
        self.comment = None
        self.__assert()

        # FIXME:
        #   Backward compatibility stuff.
        #   Needs to be removed in the future.
        self.most_freq_values = []
        self.least_freq_values = []

        self.datatype = []