Esempio n. 1
0
    def __init__(self,
                 *,
                 allow_blank=False,
                 regex=None,
                 choices=None,
                 min_length=None,
                 max_length=None,
                 **kwargs):
        super(String, self).__init__(**kwargs)
        if regex is not None:
            self._trafaret = t.Regexp(regex)
        else:
            self._trafaret = t.String(allow_blank=allow_blank,
                                      min_length=min_length,
                                      max_length=max_length)
        self.choices = None
        if choices and is_collection(choices):
            if isinstance(choices, type(Enum)):
                self.choices = choices
                self._trafaret &= t.Enum(*choices.__members__.keys())
            else:
                self._trafaret &= t.Enum(*choices)

        if self.allow_none:
            self._trafaret |= t.Null()
Esempio n. 2
0
 def build_trafaret(self, trafaret, kwargs):
     if trafaret:
         if self.column.nullable:
             trafaret |= t.Null()
             # accept empty string as None value
             trafaret |= (t.String(max_length=0, allow_blank=True) >>
                          (lambda x: None))
     return trafaret
Esempio n. 3
0
 def test_null(self):
     res = t.Null()
     self.assertEqual(repr(res), '<Null>')
     res = t.Null().check(None)
     res = extract_error(t.Null(), 1)
     self.assertEqual(res, 'value should be None')
Esempio n. 4
0
 def test_repr(self):
     res = t.Null()
     assert repr(res) == '<Null>'
Esempio n. 5
0
 def test_null(self):
     res = t.Null().check(None)
     assert res is None
     res = extract_error(t.Null(), 1)
     assert res == 'value should be None'
Esempio n. 6
0
 def __init__(self, **kwargs):
     super(Boolean, self).__init__(**kwargs)
     self._trafaret = t.Bool()
     if self.allow_none:
         self._trafaret |= t.Null()
Esempio n. 7
0
 def __init__(self, *, allow_blank: bool = False, **kwargs):
     super(Date, self).__init__(**kwargs)
     self._trafaret = rfc_3339.Date(allow_blank=allow_blank)
     if self.allow_none:
         self._trafaret |= t.Null()
Esempio n. 8
0
 def __init__(self, *, gte=None, lte=None, gt=None, lt=None, **kwargs):
     super(Decimal, self).__init__(**kwargs)
     self._trafaret = DecimalTrafaret(gte=gte, lte=lte, gt=gt, lt=lt)
     if self.allow_none:
         self._trafaret |= t.Null()
Esempio n. 9
0
 def __init__(self, *, gte=None, lte=None, gt=None, lt=None, **kwargs):
     super(Integer, self).__init__(**kwargs)
     self._trafaret = t.Int(gte=gte, lte=lte, gt=gt, lt=lt)
     if self.allow_none:
         self._trafaret |= t.Null()
Esempio n. 10
0
    Not,
    Pattern,
    unique_strings_list,
    ensure_list,
)
from .decimal import Decimal
from .format import format_trafaret


__VERSION__ = (0, 2, 1)


check_number = t.OnError(t.Float() | Decimal(), 'Not a number')

json_schema_type = (
    t.Atom('null') & just(t.Null())
    | t.Atom('boolean') & just(t.Bool())
    | t.Atom('object') & just(t.Type(dict))
    | t.Atom('array') & just(t.Type(list))
    | t.Atom('number') & just(check_number)
    | t.Atom('integer') & just(t.Int())
    | t.Atom('string') & just(t.String())
)


def multipleOf(multiplier):
    def check(value):
        if value % multiplier != 0:
            return t.DataError('%s is not devisible by %s' % (value, multiplier))
        return value
    return check
Esempio n. 11
0
CONF_CONST = 'config'

TRAFARET = trafaret.Dict({
    trafaret.Key('dashboard'):
    trafaret.Dict({
        trafaret.Key('default_state'):
        trafaret.Dict({
            'forecast_timescale': trafaret.String(),
            'forecast_absolute_rate': trafaret.String(),
            'forecast_collapse_expand': trafaret.String(),
            'forecast_active_tab': trafaret.String(),
            'forecast_tab': trafaret.String(),
            'decomp_value_volume_price': trafaret.String(),
            'd_summary_table_collapsed_expanded': trafaret.String(),
            'd_details_table_collapsed_expanded': trafaret.String(),
            'd_details_selected_factor': trafaret.Null()
        })
    }),
    trafaret.Key('scenarios'):
    trafaret.Dict({
        trafaret.Key('scenarios'):
        trafaret.Dict({
            'work_list_show_limit': trafaret.Int(),
            'min_search_input_length': trafaret.Int(),
            'sorting_field': trafaret.String(),
            'sorting_order': trafaret.Bool(),
            'dateformat': trafaret.String()
        })
    })
})