In [1]:
from __future__ import print_function

import six

In [2]:
import datetime
from dataproperty import DataProperty, DataPropertyExtractor
from typepy import Typecode

dt = datetime.datetime(2017, 1, 1, 0, 0, 0)
inf = float("inf")
nan = float("nan")
data_matrix = [
    [1, 1.1,  "aa",   1,   1,     True,   inf,   nan,   dt],
    [2, 2.2,  "bbb",  2.2, 2.2,   False,  "inf", "nan", dt],
    [3, 3.33, "cccc", -3,  "ccc", "true", inf,   "NAN", "2017-01-01T01:23:45+0900"],
]
dp_extractor = DataPropertyExtractor()

In [3]:
print(DataProperty(-1.1))


data=-1.1, typename=REAL_NUMBER, align=right, ascii_char_width=4, integer_digits=1, decimal_places=1, additional_format_len=1

In [4]:
print(DataProperty(123456789))


data=123456789, typename=INTEGER, align=right, ascii_char_width=9, integer_digits=9, decimal_places=0, additional_format_len=0

In [5]:
print(DataProperty("sample string"))


data=sample string, typename=STRING, align=left, ascii_char_width=13, length=13, additional_format_len=0

In [6]:
print(six.text_type(DataProperty(u"吾輩は猫である")))


data=吾輩は猫である, typename=STRING, align=left, ascii_char_width=14, length=7, additional_format_len=0

In [7]:
import datetime
print(DataProperty(datetime.datetime(2017, 1, 1, 0, 0, 0)))


data=2017-01-01 00:00:00, typename=DATETIME, align=left, ascii_char_width=19, additional_format_len=0

In [8]:
print(DataProperty("2017-01-01T01:23:45+0900"))


data=2017-01-01T01:23:45+0900, typename=STRING, align=left, ascii_char_width=24, length=24, additional_format_len=0

In [9]:
print(DataProperty(True))


data=True, typename=BOOL, align=left, ascii_char_width=4, additional_format_len=0

In [10]:
dp_matrix = dp_extractor.to_dp_matrix(data_matrix)

for row, dp_list in enumerate(dp_matrix):
    for col, dp in enumerate(dp_list):
        print("row={:d}, col={:d}, {}".format(row, col, str(dp)))


row=0, col=0, data=1, typename=INTEGER, align=right, ascii_char_width=1, integer_digits=1, decimal_places=0, additional_format_len=0
row=0, col=1, data=1.1, typename=REAL_NUMBER, align=right, ascii_char_width=3, integer_digits=1, decimal_places=1, additional_format_len=0
row=0, col=2, data=aa, typename=STRING, align=left, ascii_char_width=2, length=2, additional_format_len=0
row=0, col=3, data=1, typename=INTEGER, align=right, ascii_char_width=1, integer_digits=1, decimal_places=0, additional_format_len=0
row=0, col=4, data=1, typename=INTEGER, align=right, ascii_char_width=1, integer_digits=1, decimal_places=0, additional_format_len=0
row=0, col=5, data=True, typename=BOOL, align=left, ascii_char_width=4, additional_format_len=0
row=0, col=6, data=Infinity, typename=INFINITY, align=left, ascii_char_width=8, additional_format_len=0
row=0, col=7, data=NaN, typename=NAN, align=left, ascii_char_width=3, additional_format_len=0
row=0, col=8, data=2017-01-01 00:00:00, typename=DATETIME, align=left, ascii_char_width=19, additional_format_len=0
row=1, col=0, data=2, typename=INTEGER, align=right, ascii_char_width=1, integer_digits=1, decimal_places=0, additional_format_len=0
row=1, col=1, data=2.2, typename=REAL_NUMBER, align=right, ascii_char_width=3, integer_digits=1, decimal_places=1, additional_format_len=0
row=1, col=2, data=bbb, typename=STRING, align=left, ascii_char_width=3, length=3, additional_format_len=0
row=1, col=3, data=2.2, typename=REAL_NUMBER, align=right, ascii_char_width=3, integer_digits=1, decimal_places=1, additional_format_len=0
row=1, col=4, data=2.2, typename=REAL_NUMBER, align=right, ascii_char_width=3, integer_digits=1, decimal_places=1, additional_format_len=0
row=1, col=5, data=False, typename=BOOL, align=left, ascii_char_width=5, additional_format_len=0
row=1, col=6, data=Infinity, typename=INFINITY, align=left, ascii_char_width=8, additional_format_len=0
row=1, col=7, data=NaN, typename=NAN, align=left, ascii_char_width=3, additional_format_len=0
row=1, col=8, data=2017-01-01 00:00:00, typename=DATETIME, align=left, ascii_char_width=19, additional_format_len=0
row=2, col=0, data=3, typename=INTEGER, align=right, ascii_char_width=1, integer_digits=1, decimal_places=0, additional_format_len=0
row=2, col=1, data=3.33, typename=REAL_NUMBER, align=right, ascii_char_width=4, integer_digits=1, decimal_places=2, additional_format_len=0
row=2, col=2, data=cccc, typename=STRING, align=left, ascii_char_width=4, length=4, additional_format_len=0
row=2, col=3, data=-3, typename=INTEGER, align=right, ascii_char_width=2, integer_digits=1, decimal_places=0, additional_format_len=1
row=2, col=4, data=ccc, typename=STRING, align=left, ascii_char_width=3, length=3, additional_format_len=0
row=2, col=5, data=True, typename=BOOL, align=left, ascii_char_width=4, additional_format_len=0
row=2, col=6, data=Infinity, typename=INFINITY, align=left, ascii_char_width=8, additional_format_len=0
row=2, col=7, data=NaN, typename=NAN, align=left, ascii_char_width=3, additional_format_len=0
row=2, col=8, data=2017-01-01T01:23:45+0900, typename=STRING, align=left, ascii_char_width=24, length=24, additional_format_len=0

In [11]:
dp_extractor.header_list = ["int", "float", "str", "num", "mix", "bool", "inf", "nan", "time"]
col_dp_list = dp_extractor.to_column_dp_list(dp_matrix)

for col_idx, col_dp in enumerate(col_dp_list):
    print(str(col_dp))


column=0, typename=INTEGER, align=right, ascii_char_width=3, bit_len=2, integer_digits=1, decimal_places=0
column=1, typename=REAL_NUMBER, align=right, ascii_char_width=5, integer_digits=1, decimal_places=(min=1, max=2)
column=2, typename=STRING, align=left, ascii_char_width=4
column=3, typename=REAL_NUMBER, align=right, ascii_char_width=4, integer_digits=1, decimal_places=(min=0, max=1), additional_format_len=(min=0, max=1)
column=4, typename=STRING, align=left, ascii_char_width=3, integer_digits=1, decimal_places=(min=0, max=1)
column=5, typename=BOOL, align=left, ascii_char_width=5
column=6, typename=INFINITY, align=left, ascii_char_width=8
column=7, typename=NAN, align=left, ascii_char_width=3
column=8, typename=STRING, align=left, ascii_char_width=24

In [ ]: