當前位置: 首頁>>代碼示例>>Python>>正文


Python trafaret.String方法代碼示例

本文整理匯總了Python中trafaret.String方法的典型用法代碼示例。如果您正苦於以下問題:Python trafaret.String方法的具體用法?Python trafaret.String怎麽用?Python trafaret.String使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在trafaret的用法示例。


在下文中一共展示了trafaret.String方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。

示例1: text_filter

# 需要導入模塊: import trafaret [as 別名]
# 或者: from trafaret import String [as 別名]
def text_filter(query, value, schema):
    string_columns = [s.name for s in schema.keys
                      if isinstance(s.trafaret, t.String)]
    query_list = []
    for column_name in string_columns:
        query_list.append(op(defaultdict(lambda: {}),
                             column_name,
                             "like",
                             value))
    query["$or"] = query_list
    return query


# TODO: use functional style to create query
# do not modify dict inside functions, modify dict on
# same level 
開發者ID:aio-libs,項目名稱:aiohttp_admin,代碼行數:18,代碼來源:mongo_utils.py

示例2: build_field

# 需要導入模塊: import trafaret [as 別名]
# 或者: from trafaret import String [as 別名]
def build_field(key, value, relations=None):
    extra = None
    name = key
    if isinstance(value, t.ToInt):
        v = "number"
    elif isinstance(value, (t.String, t.URL)):
        v = "string"
    elif isinstance(value, t.Email):
        v = "email"
    elif isinstance(value, t.ToFloat):
        v = "float"
    elif isinstance(value, t.Enum):
        v = "choice"
    elif isinstance(value, (t.Dict, t.List)):
        v = "json"
    elif isinstance(value, (t.Bool, t.StrBool)):
        v = "boolean"
    elif isinstance(value, DateTime):
        v = "datetime"
    else:
        v = "string"
    return name, v, extra 
開發者ID:aio-libs,項目名稱:aiohttp_admin,代碼行數:24,代碼來源:layout_utils.py

示例3: sa_table

# 需要導入模塊: import trafaret [as 別名]
# 或者: from trafaret import String [as 別名]
def sa_table():
    choices = ['a', 'b', 'c']
    meta = sa.MetaData()
    post = sa.Table(
        'test_post', meta,
        sa.Column('id', sa.Integer, nullable=False),
        sa.Column('title', sa.String(200), nullable=False),
        sa.Column('category', sa.String(200), nullable=True),
        sa.Column('body', sa.Text, nullable=False),
        sa.Column('views', sa.Integer, nullable=False),
        sa.Column('average_note', sa.Float, nullable=False),
        # sa.Column('pictures', postgresql.JSON, server_default='{}'),
        sa.Column('published_at', sa.DateTime, nullable=False),
        # sa.Column('tags', postgresql.ARRAY(sa.Integer), server_default='{}'),
        sa.Column('status',
                  sa.Enum(*choices, name="enum_name", native_enum=False),
                  server_default="a", nullable=False),
        sa.Column('visible', sa.Boolean, nullable=False),

        # Indexes #
        sa.PrimaryKeyConstraint('id', name='post_id_pkey'))
    return post 
開發者ID:aio-libs,項目名稱:aiohttp_admin,代碼行數:24,代碼來源:db_fixtures.py

示例4: test_mapping

# 需要導入模塊: import trafaret [as 別名]
# 或者: from trafaret import String [as 別名]
def test_mapping():
    trafaret = t.Mapping(t.String, t.ToInt & check_int)
    res = await (trafaret.async_check({'a': '5'}))
    assert res == {'a': 5}
    # bad key
    with pytest.raises(t.DataError) as res:
        await (trafaret.async_check({None: '5'}))
    assert res.value.as_dict() == {None: {"key": "value is not a string"}}
    # bad value
    with pytest.raises(t.DataError) as res:
        await (trafaret.async_check({'b': 'qwe'}))
    assert res.value.as_dict() == {'b': {"value": "value can't be converted to int"}}
    # is not a dict
    with pytest.raises(t.DataError) as res:
        await (trafaret.async_check(None))
    assert res.value.as_dict() == "value is not a dict" 
開發者ID:Deepwalker,項目名稱:trafaret,代碼行數:18,代碼來源:test_async.py

示例5: test_base

# 需要導入模塊: import trafaret [as 別名]
# 或者: from trafaret import String [as 別名]
def test_base(self):
        trafaret = t.Dict(foo=t.ToInt, bar=t.String)
        trafaret.check({"foo": 1, "bar": u"spam"})
        res = t.extract_error(trafaret, {"foo": 1, "bar": 2})
        assert res == {'bar': 'value is not a string'}
        res = extract_error(trafaret, {"foo": 1})
        assert res == {'bar': 'is required'}
        res = extract_error(trafaret, {"foo": 1, "bar": u"spam", "eggs": None})
        assert res == {'eggs': 'eggs is not allowed key'}
        trafaret = trafaret.allow_extra("eggs")
        trafaret.check({"foo": 1, "bar": u"spam", "eggs": None})
        trafaret.check({"foo": 1, "bar": u"spam"})
        res = extract_error(trafaret, {"foo": 1, "bar": u"spam", "ham": 100})
        assert res == {'ham': 'ham is not allowed key'}
        trafaret = trafaret.allow_extra("*")
        trafaret = trafaret.ignore_extra("a")
        trafaret.check({"foo": 1, "bar": u"spam", "ham": 100})
        trafaret.check({"foo": 1, "bar": u"spam", "ham": 100, "baz": None})
        res = extract_error(trafaret, {"foo": 1, "ham": 100, "baz": None})
        assert res == {'bar': 'is required'} 
開發者ID:Deepwalker,項目名稱:trafaret,代碼行數:22,代碼來源:test_base.py

示例6: test_base3

# 需要導入模塊: import trafaret [as 別名]
# 或者: from trafaret import String [as 別名]
def test_base3(self):
        trafaret = t.Dict({t.Key('bar', default=u'nyanya') >> 'baz': t.String}, foo=t.ToInt)
        res = trafaret.check({'foo': 4})
        assert res == {'baz': u'nyanya', 'foo': 4}

        trafaret = trafaret.allow_extra('*')
        res = extract_error(trafaret, {'baz': u'spam', 'foo': 4})
        assert res == {'baz': 'baz key was shadowed'}

        trafaret = trafaret.allow_extra('*', trafaret=t.String)
        res = extract_error(trafaret, {'baaz': 5, 'foo': 4})
        assert res == {'baaz': 'value is not a string'}
        res = trafaret({'baaz': u'strstr', 'foo':4})
        assert res == {'baaz': u'strstr', 'foo':4, 'baz': u'nyanya'}

        trafaret = trafaret.ignore_extra('fooz')
        res = trafaret.check({'foo': 4, 'fooz': 5})
        assert res == {'baz': u'nyanya', 'foo': 4}

        trafaret = trafaret.ignore_extra('*')
        res = trafaret.check({'foo': 4, 'foor': 5})
        assert res == {'baz': u'nyanya', 'foo': 4} 
開發者ID:Deepwalker,項目名稱:trafaret,代碼行數:24,代碼來源:test_base.py

示例7: test_list

# 需要導入模塊: import trafaret [as 別名]
# 或者: from trafaret import String [as 別名]
def test_list(self):
        res = extract_error(t.List(t.ToInt), 1)
        assert res == 'value is not a list'
        res = t.List(t.ToInt).check([1, 2, 3])
        assert res == [1, 2, 3]
        res = t.List(t.String).check([u"foo", u"bar", u"spam"])
        assert res == [u'foo', u'bar', u'spam']
        res = extract_error(t.List(t.ToInt), [1, 2, 1 + 3j])
        assert res == {2: 'value is not int'}
        res = t.List(t.ToInt, min_length=1).check([1, 2, 3])
        assert res == [1, 2, 3]
        res = extract_error(t.List(t.ToInt, min_length=1), [])
        assert res == 'list length is less than 1'
        res = t.List(t.ToInt, max_length=2).check([1, 2])
        assert res == [1, 2]
        res = extract_error(t.List(t.ToInt, max_length=2), [1, 2, 3])
        assert res == 'list length is greater than 2'
        res = extract_error(t.List(t.ToInt), ["a"])
        assert res == {0: "value can't be converted to int"} 
開發者ID:Deepwalker,項目名稱:trafaret,代碼行數:21,代碼來源:test_base.py

示例8: test_string

# 需要導入模塊: import trafaret [as 別名]
# 或者: from trafaret import String [as 別名]
def test_string(self):
        res = t.String().check(u"foo")
        assert res == u'foo'
        res = extract_error(t.String(), u"")
        assert res == 'blank value is not allowed'
        res = t.String(allow_blank=True).check(u"")
        assert res == u''
        res = extract_error(t.String(), 1)
        assert res == 'value is not a string'
        res = t.String(min_length=2, max_length=3).check(u'123')
        assert res == u'123'
        res = extract_error(t.String(min_length=2, max_length=6), u'1')
        assert res == 'String is shorter than 2 characters'
        res = extract_error(t.String(min_length=2, max_length=6), u'1234567')
        assert res == 'String is longer than 6 characters'

        with pytest.raises(AssertionError) as exc_info:
            t.String(min_length=2, max_length=6, allow_blank=True)
        assert exc_info.value.args[0] == 'Either allow_blank or min_length should be specified, not both'

        res = t.String(min_length=0, max_length=6, allow_blank=True).check(u'123')
        assert res == u'123' 
開發者ID:Deepwalker,項目名稱:trafaret,代碼行數:24,代碼來源:test_base.py

示例9: test_xor_key

# 需要導入模塊: import trafaret [as 別名]
# 或者: from trafaret import String [as 別名]
def test_xor_key(self):
        trafaret = t.Dict(xor_key('name', 'nick', t.String()))

        res = trafaret({'name': u'Nickolay'})
        assert res == {'name': u'Nickolay'}

        res = catch_error(trafaret, {'name': u'Nickolay', 'nick': u'Sveta'})
        assert res.as_dict() == {
            'name': 'correct only if nick is not defined',
            'nick': 'correct only if name is not defined',
        }
        res = catch_error(trafaret, {})
        assert res.as_dict() == {
            'name': 'is required if nick is not defined',
            'nick': 'is required if name is not defined',
        } 
開發者ID:Deepwalker,項目名稱:trafaret,代碼行數:18,代碼來源:test_keys.py

示例10: mutate

# 需要導入模塊: import trafaret [as 別名]
# 或者: from trafaret import String [as 別名]
def mutate(cls, _, info, __):
        logger.debug("agrs %s", info)
        post_schema = t.Dict({
            'title': t.String(min_length=2),
            'user_id': t.String(min_length=2),
            'content': t.String(min_length=2),
            t.Key('tags',
                  optional=True): t.List(t.String,
                                         min_length=1),
        })

        post_data = post_schema.check(info)
        user_id = post_data.pop('user_id')
        user = User.objects.get_or_404(id=user_id)
        post = Post(author=user, **post_data)
        post.save()
        return cls(post=construct(PostField, post)) 
開發者ID:msoedov,項目名稱:flask-graphql-example,代碼行數:19,代碼來源:ql.py

示例11: build_trafaret

# 需要導入模塊: import trafaret [as 別名]
# 或者: from trafaret import String [as 別名]
def build_trafaret(sa_type, **kwargs):

    if isinstance(sa_type, sa.sql.sqltypes.Enum):
        trafaret = t.Enum(*sa_type.enums, **kwargs)

    # check for Text should be before String
    elif isinstance(sa_type, sa.sql.sqltypes.Text):
        trafaret = t.String(**kwargs)

    elif isinstance(sa_type, sa.sql.sqltypes.String):
        trafaret = t.String(max_length=sa_type.length, **kwargs)

    elif isinstance(sa_type, sa.sql.sqltypes.Integer):
        trafaret = t.ToInt(**kwargs)

    elif isinstance(sa_type, sa.sql.sqltypes.Float):
        trafaret = t.ToFloat(**kwargs)

    elif isinstance(sa_type, sa.sql.sqltypes.DateTime):
        trafaret = DateTime(**kwargs)  # RFC3339

    elif isinstance(sa_type, sa.sql.sqltypes.Date):
        trafaret = DateTime(**kwargs)  # RFC3339

    elif isinstance(sa_type, sa.sql.sqltypes.Boolean):
        trafaret = t.ToBool(**kwargs)

    # Add PG related JSON and ARRAY
    elif isinstance(sa_type, postgresql.JSON):
        trafaret = AnyDict | t.List(AnyDict)

    # Add PG related JSON and ARRAY
    elif isinstance(sa_type, postgresql.ARRAY):
        item_trafaret = build_trafaret(sa_type.item_type)
        trafaret = t.List(item_trafaret)

    else:
        type_ = str(sa_type)
        msg = 'Validator for type {} not implemented'.format(type_)
        raise NotImplementedError(msg)
    return trafaret 
開發者ID:aio-libs,項目名稱:aiohttp_admin,代碼行數:43,代碼來源:sa_utils.py

示例12: text_filter

# 需要導入模塊: import trafaret [as 別名]
# 或者: from trafaret import String [as 別名]
def text_filter(query, value, table):
    pairs = ((n, c) for n, c in table.c.items()
             if isinstance(c.type, sa.sql.sqltypes.String))
    sub_queries = []
    for name, column in pairs:
        do_compare = op("like", column)
        sub_queries.append(do_compare(column, value))

    query = query.where(or_(*sub_queries))
    return query


# TODO: validate that value supplied in filter has same type as in table
# TODO: use functional style to create query 
開發者ID:aio-libs,項目名稱:aiohttp_admin,代碼行數:16,代碼來源:sa_utils.py

示例13: test_dict_extra_and_ignore

# 需要導入模塊: import trafaret [as 別名]
# 或者: from trafaret import String [as 別名]
def test_dict_extra_and_ignore():
    trafaret = t.Dict(
        t.Key('a', to_name='A', trafaret=t.String),
        allow_extra=['one_extra'],
        allow_extra_trafaret=t.String,
        ignore_extra=['one_ignore'],
    )
    res = await (trafaret.async_check({'a': 's', 'one_extra': 's', 'one_ignore': 's'}))
    assert res == {'A': 's', 'one_extra': 's'}

    # extra key that is not declared in extra not in ignore
    with pytest.raises(t.DataError) as res:
        await trafaret.async_check({'a': 's', 'bad_extra': 's'})
    assert res.value.as_dict() == {'bad_extra': 'bad_extra is not allowed key'}

    # extra key that was shadowed
    with pytest.raises(t.DataError) as res:
        await trafaret.async_check({'a': 's', 'A': 's'})
    assert res.value.as_dict() == {'A': 'A key was shadowed'}

    # extra key with failed check
    with pytest.raises(t.DataError) as res:
        await trafaret.async_check({'a': 's', 'one_extra': 5})
    assert res.value.as_dict() == {'one_extra': 'value is not a string'}

    # shadowing with allow_extra='*'
    trafaret = trafaret.allow_extra('*')
    with pytest.raises(t.DataError) as res:
        await trafaret.async_check({'a': 's', 'A': 's'})
    assert res.value.as_dict() == {'A': 'A key was shadowed'} 
開發者ID:Deepwalker,項目名稱:trafaret,代碼行數:32,代碼來源:test_async.py

示例14: test_repr

# 需要導入模塊: import trafaret [as 別名]
# 或者: from trafaret import String [as 別名]
def test_repr(self):
        trafaret = t.Dict(foo=t.ToInt, bar=t.String, allow_extra=['eggs'])
        assert repr(trafaret) == '<Dict(extras=(eggs) | <Key "bar" <String>>, <Key "foo" <ToInt>>)>'
        trafaret = trafaret.allow_extra('*')
        assert repr(trafaret) == '<Dict(any, extras=(eggs) | <Key "bar" <String>>, <Key "foo" <ToInt>>)>'
        trafaret = trafaret.ignore_extra("a")
        assert repr(trafaret) == '<Dict(any, ignore=(a), extras=(eggs) | <Key "bar" <String>>, <Key "foo" <ToInt>>)>' 
開發者ID:Deepwalker,項目名稱:trafaret,代碼行數:9,代碼來源:test_base.py

示例15: test_add_kwargs_ignore_any

# 需要導入模塊: import trafaret [as 別名]
# 或者: from trafaret import String [as 別名]
def test_add_kwargs_ignore_any(self):
        first = t.Dict(
            t.Key('bip', trafaret=t.String()), ignore_extra='*'
        )
        second = t.Dict(
            t.Key('bop', trafaret=t.Int())
        )

        third = first + second
        third.check({'bip': u'bam', 'bop': 17, 'matter': False})
        assert third.ignore_any 
開發者ID:Deepwalker,項目名稱:trafaret,代碼行數:13,代碼來源:test_base.py


注:本文中的trafaret.String方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。