diff --git a/README.rst b/README.rst index 83085bf..9df34f7 100644 --- a/README.rst +++ b/README.rst @@ -161,7 +161,7 @@ Extract property of data for each data from a matrix ---------- str_len ---------- [1, 3, 2, 1, 1, 4, 3, 3, 19] [1, 3, 3, 3, 3, 5, 3, 3, 19] - [1, 4, 4, 2, 3, 4, 3, 3, 25] + [1, 4, 4, 2, 3, 4, 3, 3, 24] ---------- integer_digits ---------- [1, 1, nan, 1, 1, nan, nan, nan, nan] @@ -218,10 +218,10 @@ Extract property of data for each column from a matrix [right, right, left, right, left, left, left, left, left] ---------- padding_len ---------- - [3, 5, 4, 3, 3, 5, 3, 3, 25] + [3, 5, 4, 4, 3, 5, 3, 3, 24] ---------- decimal_places ---------- - [nan, 2, nan, 1, 1, nan, nan, nan, nan] + [0, 2, nan, 1, 1, nan, nan, nan, nan] Dependencies diff --git a/dataproperty/__init__.py b/dataproperty/__init__.py index 9565b24..0b2e9bc 100644 --- a/dataproperty/__init__.py +++ b/dataproperty/__init__.py @@ -11,7 +11,7 @@ from ._align import Align from ._align_getter import align_getter from ._container import MinMaxContainer -from ._typecode import Typecode +from .type import Typecode from ._data_property import ColumnDataProperty from ._data_property import DataProperty diff --git a/dataproperty/_align_getter.py b/dataproperty/_align_getter.py index 69f33d6..5a7d081 100644 --- a/dataproperty/_align_getter.py +++ b/dataproperty/_align_getter.py @@ -7,7 +7,7 @@ from __future__ import absolute_import from ._align import Align -from ._typecode import Typecode +from .type import Typecode class AlignGetter(object): diff --git a/dataproperty/_data_property.py b/dataproperty/_data_property.py index 90e92b5..ce28432 100644 --- a/dataproperty/_data_property.py +++ b/dataproperty/_data_property.py @@ -11,8 +11,8 @@ from ._container import MinMaxContainer from ._error import TypeConversionError from ._interface import DataPeropertyInterface -from ._typecode import Typecode -from ._type_checker import FloatTypeChecker +from .type import Typecode +from .type import FloatTypeChecker from ._function import is_nan from ._function import get_number_of_digit diff --git a/dataproperty/_factory.py b/dataproperty/_factory.py index 66169be..6176f69 100644 --- a/dataproperty/_factory.py +++ b/dataproperty/_factory.py @@ -15,14 +15,14 @@ from .converter import FloatConverterCreator from .converter import BoolConverterCreator from .converter import DateTimeConverterCreator -from ._type_checker_creator import NoneTypeCheckerCreator -from ._type_checker_creator import StringTypeCheckerCreator -from ._type_checker_creator import IntegerTypeCheckerCreator -from ._type_checker_creator import FloatTypeCheckerCreator -from ._type_checker_creator import BoolTypeCheckerCreator -from ._type_checker_creator import DateTimeTypeCheckerCreator -from ._type_checker_creator import InfinityCheckerCreator -from ._type_checker_creator import NanCheckerCreator +from .type import NoneTypeCheckerCreator +from .type import StringTypeCheckerCreator +from .type import IntegerTypeCheckerCreator +from .type import FloatTypeCheckerCreator +from .type import BoolTypeCheckerCreator +from .type import DateTimeTypeCheckerCreator +from .type import InfinityCheckerCreator +from .type import NanCheckerCreator @six.add_metaclass(abc.ABCMeta) diff --git a/dataproperty/_function.py b/dataproperty/_function.py index 47c3571..b098434 100644 --- a/dataproperty/_function.py +++ b/dataproperty/_function.py @@ -16,7 +16,7 @@ def is_integer(value): Use IntegerTypeChecker class instead of this function. """ - from ._type_checker import IntegerTypeChecker + from .type import IntegerTypeChecker return IntegerTypeChecker(value).is_type() @@ -38,7 +38,7 @@ def is_float(value): Use FloatTypeChecker class instead of this function. """ - from ._type_checker import FloatTypeChecker + from .type import FloatTypeChecker return FloatTypeChecker(value).is_type() @@ -97,7 +97,7 @@ def is_datetime(value): def get_integer_digit(value): - from ._type_checker import FloatTypeChecker + from .type import FloatTypeChecker abs_value = abs(float(value)) @@ -114,7 +114,7 @@ def get_integer_digit(value): def _get_decimal_places(value, integer_digits): from collections import namedtuple from six.moves import range - from ._type_checker import IntegerTypeChecker + from .type import IntegerTypeChecker float_digit_len = 0 if IntegerTypeChecker(value).is_type(): diff --git a/dataproperty/_interface.py b/dataproperty/_interface.py index dfbec08..71002bd 100644 --- a/dataproperty/_interface.py +++ b/dataproperty/_interface.py @@ -10,7 +10,7 @@ import six from ._function import is_nan -from ._typecode import Typecode +from .type import Typecode @six.add_metaclass(abc.ABCMeta) diff --git a/dataproperty/type/__init__.py b/dataproperty/type/__init__.py new file mode 100644 index 0000000..30049c2 --- /dev/null +++ b/dataproperty/type/__init__.py @@ -0,0 +1,27 @@ +# encoding: utf-8 + +""" +.. codeauthor:: Tsuyoshi Hombashi +""" + +from __future__ import absolute_import + +from ._checker import NoneTypeChecker +from ._checker import StringTypeChecker +from ._checker import IntegerTypeChecker +from ._checker import FloatTypeChecker +from ._checker import BoolTypeChecker +from ._checker import DateTimeTypeChecker +from ._checker import InfinityChecker +from ._checker import NanChecker + +from ._checker_creator import NoneTypeCheckerCreator +from ._checker_creator import StringTypeCheckerCreator +from ._checker_creator import IntegerTypeCheckerCreator +from ._checker_creator import FloatTypeCheckerCreator +from ._checker_creator import BoolTypeCheckerCreator +from ._checker_creator import DateTimeTypeCheckerCreator +from ._checker_creator import InfinityCheckerCreator +from ._checker_creator import NanCheckerCreator + +from ._typecode import Typecode diff --git a/dataproperty/_type_checker.py b/dataproperty/type/_checker.py similarity index 92% rename from dataproperty/_type_checker.py rename to dataproperty/type/_checker.py index 5eae3a4..fbcef79 100644 --- a/dataproperty/_type_checker.py +++ b/dataproperty/type/_checker.py @@ -10,14 +10,14 @@ import six -from .converter import NopConverterCreator -from .converter import StringConverterCreator -from .converter import IntegerConverterCreator -from .converter import FloatConverterCreator -from .converter import BoolConverterCreator -from .converter import DateTimeConverterCreator -from ._error import TypeConversionError -from ._function import is_nan +from ..converter import NopConverterCreator +from ..converter import StringConverterCreator +from ..converter import IntegerConverterCreator +from ..converter import FloatConverterCreator +from ..converter import BoolConverterCreator +from ..converter import DateTimeConverterCreator +from .._error import TypeConversionError +from .._function import is_nan from ._typecode import Typecode diff --git a/dataproperty/_type_checker_creator.py b/dataproperty/type/_checker_creator.py similarity index 81% rename from dataproperty/_type_checker_creator.py rename to dataproperty/type/_checker_creator.py index 5e50f16..13dc52b 100644 --- a/dataproperty/_type_checker_creator.py +++ b/dataproperty/type/_checker_creator.py @@ -9,14 +9,14 @@ import six -from ._type_checker import NoneTypeChecker -from ._type_checker import StringTypeChecker -from ._type_checker import IntegerTypeChecker -from ._type_checker import FloatTypeChecker -from ._type_checker import BoolTypeChecker -from ._type_checker import DateTimeTypeChecker -from ._type_checker import InfinityChecker -from ._type_checker import NanChecker +from ._checker import NoneTypeChecker +from ._checker import StringTypeChecker +from ._checker import IntegerTypeChecker +from ._checker import FloatTypeChecker +from ._checker import BoolTypeChecker +from ._checker import DateTimeTypeChecker +from ._checker import InfinityChecker +from ._checker import NanChecker @six.add_metaclass(abc.ABCMeta) diff --git a/dataproperty/_typecode.py b/dataproperty/type/_typecode.py similarity index 100% rename from dataproperty/_typecode.py rename to dataproperty/type/_typecode.py diff --git a/ipynb/DataProperty.ipynb b/ipynb/DataProperty.ipynb index 168de04..4f9eca7 100644 --- a/ipynb/DataProperty.ipynb +++ b/ipynb/DataProperty.ipynb @@ -123,7 +123,7 @@ { "data": { "text/plain": [ - "data=2017-01-01 01:23:45+09:00, typename=DATETIME, align=left, str_len=25, integer_digits=nan, decimal_places=nan, additional_format_len=0" + "data=2017-01-01 01:23:45+09:00, typename=DATETIME, align=left, str_len=24, integer_digits=nan, decimal_places=nan, additional_format_len=0" ] }, "execution_count": 6, @@ -187,7 +187,7 @@ "---------- str_len ----------\n", "[1, 3, 2, 1, 1, 4, 3, 3, 19]\n", "[1, 3, 3, 3, 3, 5, 3, 3, 19]\n", - "[1, 4, 4, 2, 3, 4, 3, 3, 25]\n", + "[1, 4, 4, 2, 3, 4, 3, 3, 24]\n", "\n", "---------- integer_digits ----------\n", "[1, 1, nan, 1, 1, nan, nan, nan, nan]\n", @@ -241,10 +241,10 @@ "[right, right, left, right, left, left, left, left, left]\n", "\n", "---------- padding_len ----------\n", - "[3, 5, 4, 3, 3, 5, 3, 3, 25]\n", + "[3, 5, 4, 4, 3, 5, 3, 3, 24]\n", "\n", "---------- decimal_places ----------\n", - "[nan, 2, nan, 1, 1, nan, nan, nan, nan]\n" + "[0, 2, nan, 1, 1, nan, nan, nan, nan]\n" ] } ], @@ -305,7 +305,7 @@ "row=2, col=5: data=True, typename=BOOL, align=left, str_len=4, integer_digits=nan, decimal_places=nan, additional_format_len=0\n", "row=2, col=6: data=inf, typename=INFINITY, align=left, str_len=3, integer_digits=nan, decimal_places=nan, additional_format_len=0\n", "row=2, col=7: data=nan, typename=NAN, align=left, str_len=3, integer_digits=nan, decimal_places=nan, additional_format_len=0\n", - "row=2, col=8: data=2017-01-01 01:23:45+09:00, typename=DATETIME, align=left, str_len=25, integer_digits=nan, decimal_places=nan, additional_format_len=0\n" + "row=2, col=8: data=2017-01-01 01:23:45+09:00, typename=DATETIME, align=left, str_len=24, integer_digits=nan, decimal_places=nan, additional_format_len=0\n" ] } ], @@ -329,15 +329,15 @@ "name": "stdout", "output_type": "stream", "text": [ - "col=0: typename=INT, align=right, padding_len=3, integer_digits=(min=1, max=1), decimal_places=(min=None, max=None), additional_format_len=(min=0, max=0)\n", + "col=0: typename=INT, align=right, padding_len=3, integer_digits=(min=1, max=1), decimal_places=(min=0, max=0), additional_format_len=(min=0, max=0)\n", "col=1: typename=FLOAT, align=right, padding_len=5, integer_digits=(min=1, max=1), decimal_places=(min=1, max=2), additional_format_len=(min=0, max=0)\n", "col=2: typename=STRING, align=left, padding_len=4, integer_digits=(min=None, max=None), decimal_places=(min=None, max=None), additional_format_len=(min=0, max=0)\n", - "col=3: typename=FLOAT, align=right, padding_len=3, integer_digits=(min=1, max=1), decimal_places=(min=1, max=1), additional_format_len=(min=0, max=1)\n", - "col=4: typename=STRING, align=left, padding_len=3, integer_digits=(min=1, max=1), decimal_places=(min=1, max=1), additional_format_len=(min=0, max=0)\n", + "col=3: typename=FLOAT, align=right, padding_len=4, integer_digits=(min=1, max=1), decimal_places=(min=0, max=1), additional_format_len=(min=0, max=1)\n", + "col=4: typename=STRING, align=left, padding_len=3, integer_digits=(min=1, max=1), decimal_places=(min=0, max=1), additional_format_len=(min=0, max=0)\n", "col=5: typename=BOOL, align=left, padding_len=5, integer_digits=(min=None, max=None), decimal_places=(min=None, max=None), additional_format_len=(min=0, max=0)\n", "col=6: typename=INFINITY, align=left, padding_len=3, integer_digits=(min=None, max=None), decimal_places=(min=None, max=None), additional_format_len=(min=0, max=0)\n", "col=7: typename=NAN, align=left, padding_len=3, integer_digits=(min=None, max=None), decimal_places=(min=None, max=None), additional_format_len=(min=0, max=0)\n", - "col=8: typename=DATETIME, align=left, padding_len=25, integer_digits=(min=None, max=None), decimal_places=(min=None, max=None), additional_format_len=(min=0, max=0)\n" + "col=8: typename=DATETIME, align=left, padding_len=24, integer_digits=(min=None, max=None), decimal_places=(min=None, max=None), additional_format_len=(min=0, max=0)\n" ] } ], @@ -377,7 +377,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.5.1" + "version": "3.5.2" } }, "nbformat": 4, diff --git a/test/test_type_checker.py b/test/test_type_checker.py index cb00eec..d211dbd 100644 --- a/test/test_type_checker.py +++ b/test/test_type_checker.py @@ -12,7 +12,7 @@ import pytest import six -import dataproperty._type_checker as tc +import dataproperty.type as tc from dataproperty import Typecode from decimal import Decimal diff --git a/test/test_type_checker_creator.py b/test/test_type_checker_creator.py index 0596f40..0ad9a6c 100644 --- a/test/test_type_checker_creator.py +++ b/test/test_type_checker_creator.py @@ -8,21 +8,20 @@ import pytest -import dataproperty._type_checker_creator as tcc -import dataproperty._type_checker as tc +import dataproperty.type as tc class Test_TypeCheckerCreator(object): @pytest.mark.parametrize(["value", "is_convert", "expected"], [ - [tcc.NoneTypeCheckerCreator, True, tc.NoneTypeChecker], - [tcc.NoneTypeCheckerCreator, False, tc.NoneTypeChecker], - [tcc.IntegerTypeCheckerCreator, True, tc.IntegerTypeChecker], - [tcc.IntegerTypeCheckerCreator, False, tc.IntegerTypeChecker], - [tcc.FloatTypeCheckerCreator, True, tc.FloatTypeChecker], - [tcc.FloatTypeCheckerCreator, False, tc.FloatTypeChecker], - [tcc.DateTimeTypeCheckerCreator, True, tc.DateTimeTypeChecker], - [tcc.DateTimeTypeCheckerCreator, False, tc.DateTimeTypeChecker], + [tc.NoneTypeCheckerCreator, True, tc.NoneTypeChecker], + [tc.NoneTypeCheckerCreator, False, tc.NoneTypeChecker], + [tc.IntegerTypeCheckerCreator, True, tc.IntegerTypeChecker], + [tc.IntegerTypeCheckerCreator, False, tc.IntegerTypeChecker], + [tc.FloatTypeCheckerCreator, True, tc.FloatTypeChecker], + [tc.FloatTypeCheckerCreator, False, tc.FloatTypeChecker], + [tc.DateTimeTypeCheckerCreator, True, tc.DateTimeTypeChecker], + [tc.DateTimeTypeCheckerCreator, False, tc.DateTimeTypeChecker], ]) def test_normal(self, value, is_convert, expected): creator = value()