1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
|
from datetime import date, datetime
from decimal import Decimal
class DataType:
"""
Base class for :class:`.Series` data types.
"""
@classmethod
def infer(cls, v):
for t in [DateTime, Date, Number, Text]:
if isinstance(v, t.types):
return t
raise TypeError('No data type available for %s' % type(v))
class Date(DataType):
"""
Data representing dates.
"""
types = (date,)
class DateTime(DataType):
"""
Data representing dates with times.
"""
types = (datetime,)
class Number(DataType):
"""
Data representing numbers.
"""
types = (int, float, Decimal)
class Text(DataType):
"""
Data representing text/strings.
"""
types = (str,)
|