irongit

A parser inspired by the django orm.

gparser/parsers/fields.py
53 lines949 BPython
1from . import translators
2import datetime as dt
3
4
5def default_function(cls, x):
6 return x
7
8
9class Field:
10 translator = default_function
11 type = str
12
13 def __init__(self, translator=None, unique=False, default=None, null=False):
14 if translator:
15 self.translator = translator
16 self.unique = unique
17 self.default = default
18 self.null = null
19
20 def convert(self, val):
21 return self.translator(val)
22
23
24class HourMinuteDeltaField(Field):
25 type = dt.timedelta
26 translator = translators.hour_minute_to_delta
27
28
29class HourMinuteIntField(Field):
30 type = int
31 translator = translators.hour_minute_to_int
32
33
34class PhoneField(Field):
35 translator = translators.phone
36
37
38class StrField(Field):
39 translator = str
40
41
42class IntField(Field):
43 type = int
44 translator = int
45
46
47class FloatField(Field):
48 type = float
49 translator = float
50
51
52class BooleanField(Field):
53 translator = bool