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


Python fields.Field方法代碼示例

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


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

示例1: test_unknown_typed_field

# 需要導入模塊: from marshmallow import fields [as 別名]
# 或者: from marshmallow.fields import Field [as 別名]
def test_unknown_typed_field():
    class Colour(fields.Field):
        def _jsonschema_type_mapping(self):
            return {"type": "string"}

        def _serialize(self, value, attr, obj):
            r, g, b = value
            r = hex(r)[2:]
            g = hex(g)[2:]
            b = hex(b)[2:]
            return "#" + r + g + b

    class UserSchema(Schema):
        name = fields.String(required=True)
        favourite_colour = Colour()

    schema = UserSchema()

    dumped = validate_and_dump(schema)

    assert dumped["definitions"]["UserSchema"]["properties"]["favourite_colour"] == {
        "type": "string"
    } 
開發者ID:fuhrysteve,項目名稱:marshmallow-jsonschema,代碼行數:25,代碼來源:test_dump.py

示例2: handle_one_of

# 需要導入模塊: from marshmallow import fields [as 別名]
# 或者: from marshmallow.fields import Field [as 別名]
def handle_one_of(schema, field, validator, parent_schema):
    """Adds the validation logic for ``marshmallow.validate.OneOf`` by setting
    the JSONSchema `enum` property to the allowed choices in the validator.

    Args:
        schema (dict): The original JSON schema we generated. This is what we
            want to post-process.
        field (fields.Field): The field that generated the original schema and
            who this post-processor belongs to.
        validator (marshmallow.validate.OneOf): The validator attached to the
            passed in field.
        parent_schema (marshmallow.Schema): The Schema instance that the field
            belongs to.

    Returns:
        dict: New JSON Schema that has been post processed and
            altered.
    """
    schema["enum"] = list(validator.choices)
    schema["enumNames"] = list(validator.labels)

    return schema 
開發者ID:fuhrysteve,項目名稱:marshmallow-jsonschema,代碼行數:24,代碼來源:validation.py

示例3: test__ma_field_to_fr_field_converts_metadata_param_to_description_if_present

# 需要導入模塊: from marshmallow import fields [as 別名]
# 或者: from marshmallow.fields import Field [as 別名]
def test__ma_field_to_fr_field_converts_metadata_param_to_description_if_present():
    @dataclass
    class FakeFieldWithDescription(ma.Field):
        metadata: dict

    expected_description = "test"

    fr_field_dict = utils._ma_field_to_fr_field(
        FakeFieldWithDescription(metadata={"description": expected_description})
    )
    assert fr_field_dict["description"] == expected_description

    @dataclass
    class FakeFieldNoMetaData(ma.Field):
        pass

    fr_field_dict = utils._ma_field_to_fr_field(FakeFieldNoMetaData())
    assert "description" not in fr_field_dict

    @dataclass
    class FakeFieldNoDescription(ma.Field):
        metadata: dict

    fr_field_dict = utils._ma_field_to_fr_field(FakeFieldNoDescription(metadata={}))
    assert "description" not in fr_field_dict 
開發者ID:apryor6,項目名稱:flask_accepts,代碼行數:27,代碼來源:utils_test.py

示例4: test__ma_field_to_fr_field_converts_default_to_example_if_present

# 需要導入模塊: from marshmallow import fields [as 別名]
# 或者: from marshmallow.fields import Field [as 別名]
def test__ma_field_to_fr_field_converts_default_to_example_if_present():
    @dataclass
    class FakeFieldWithDefault(ma.Field):
        default: str

    expected_example_value = "test"

    fr_field_dict = utils._ma_field_to_fr_field(
        FakeFieldWithDefault(default=expected_example_value)
    )
    assert fr_field_dict["example"] == expected_example_value

    @dataclass
    class FakeFieldNoDefault(ma.Field):
        pass

    fr_field_dict = utils._ma_field_to_fr_field(FakeFieldNoDefault())
    assert "example" not in fr_field_dict 
開發者ID:apryor6,項目名稱:flask_accepts,代碼行數:20,代碼來源:utils_test.py

示例5: _ma_field_to_fr_field

# 需要導入模塊: from marshmallow import fields [as 別名]
# 或者: from marshmallow.fields import Field [as 別名]
def _ma_field_to_fr_field(value: ma.Field) -> dict:
    fr_field_parameters = {}

    if hasattr(value, "default"):
        fr_field_parameters["example"] = value.default

    if hasattr(value, "required"):
        fr_field_parameters["required"] = value.required

    if hasattr(value, "metadata") and "description" in value.metadata:
        fr_field_parameters["description"] = value.metadata["description"]

    if hasattr(value, "missing") and type(value.missing) != ma.utils._Missing:
        fr_field_parameters["default"] = value.missing

    return fr_field_parameters 
開發者ID:apryor6,項目名稱:flask_accepts,代碼行數:18,代碼來源:utils.py

示例6: ma_field_to_reqparse_argument

# 需要導入模塊: from marshmallow import fields [as 別名]
# 或者: from marshmallow.fields import Field [as 別名]
def ma_field_to_reqparse_argument(value: ma.Field) -> dict:
    """Maps a marshmallow field to a dictionary that can be used to initialize a
    request parser argument.
    """
    reqparse_argument_parameters = {}

    if is_list_field(value):
        value_type = type(value.inner)
        reqparse_argument_parameters["action"] = "append"
    else:
        value_type = type(value)
        reqparse_argument_parameters["action"] = "store"

    reqparse_argument_parameters["type"] = type_map_ma_to_reqparse.get(value_type, str)

    if hasattr(value, "required"):
        reqparse_argument_parameters["required"] = value.required

    if hasattr(value, "metadata") and "description" in value.metadata:
        reqparse_argument_parameters["help"] = value.metadata["description"]

    return reqparse_argument_parameters 
開發者ID:apryor6,項目名稱:flask_accepts,代碼行數:24,代碼來源:utils.py

示例7: _deserialize

# 需要導入模塊: from marshmallow import fields [as 別名]
# 或者: from marshmallow.fields import Field [as 別名]
def _deserialize(
        self,
        value: Any,
        attr: Optional[str],
        data: Optional[Mapping[str, Any]],
        **kwargs,
    ) -> SyncFilesItem:
        if isinstance(value, dict):
            try:
                if not isinstance(value["src"], str):
                    raise ValidationError("Field `src` should have type str.")
                if not isinstance(value["dest"], str):
                    raise ValidationError("Field `dest` should have type str.")
                file_to_sync = SyncFilesItem(src=value["src"], dest=value["dest"])
            except KeyError as e:
                raise ValidationError(e.__repr__())

        elif isinstance(value, str):
            file_to_sync = SyncFilesItem(src=value, dest=value)

        else:
            raise ValidationError(f"'dict' or 'str' required, got {type(value)!r}.")

        return file_to_sync 
開發者ID:packit-service,項目名稱:packit,代碼行數:26,代碼來源:schema.py

示例8: field2choices

# 需要導入模塊: from marshmallow import fields [as 別名]
# 或者: from marshmallow.fields import Field [as 別名]
def field2choices(field):
    """Return the set of valid choices for a Field
    or ``None`` if no choices are specified.

    :param Field field: A marshmallow field.
    :rtype: set
    """
    comparable = {
        validator.comparable for validator in field.validators
        if hasattr(validator, 'comparable')
    }
    if comparable:
        return comparable

    choices = [
        OrderedSet(validator.choices) for validator in field.validators
        if hasattr(validator, 'choices')
    ]
    if choices:
        return functools.reduce(operator.and_, choices) 
開發者ID:quantmind,項目名稱:lux,代碼行數:22,代碼來源:marshmallow.py

示例9: handle_error

# 需要導入模塊: from marshmallow import fields [as 別名]
# 或者: from marshmallow.fields import Field [as 別名]
def handle_error(self,
                     error: MarshmallowValidationError,
                     data: Any,  # skipcq: PYL-W0613 (unused arg)
                     **kwargs
                     ) -> None:
        """
        Customize the error messages for required/not-null validators with
        dynamically generated field names. This is definitely a little hacky (it
        mutates state, uses hardcoded strings), but unsure how better to do it
        """
        required_messages = {'Missing data for required field.',
                             'Field may not be null.'}
        for field_name in error.normalized_messages():
            for i, msg in enumerate(error.messages[field_name]):
                if isinstance(msg, _LazyString):
                    msg = str(msg)
                if msg in required_messages:
                    label = title_case(field_name)
                    error.messages[field_name][i] = f'{label} is required.' 
開發者ID:briancappello,項目名稱:flask-unchained,代碼行數:21,代碼來源:model_serializer.py

示例10: test_use_type_mapping_from_base_schema

# 需要導入模塊: from marshmallow import fields [as 別名]
# 或者: from marshmallow.fields import Field [as 別名]
def test_use_type_mapping_from_base_schema(self):
        class CustomType:
            pass

        class CustomField(Field):
            pass

        class CustomListField(ListField):
            pass

        class BaseSchema(Schema):
            TYPE_MAPPING = {CustomType: CustomField, typing.List: CustomListField}

        @dataclasses.dataclass
        class WithCustomField:
            custom: CustomType
            custom_list: typing.List[float]
            uuid: UUID
            n: int

        schema = class_schema(WithCustomField, base_schema=BaseSchema)()
        self.assertIsInstance(schema.fields["custom"], CustomField)
        self.assertIsInstance(schema.fields["custom_list"], CustomListField)
        self.assertIsInstance(schema.fields["uuid"], UUIDField)
        self.assertIsInstance(schema.fields["n"], Integer) 
開發者ID:lovasoa,項目名稱:marshmallow_dataclass,代碼行數:27,代碼來源:test_class_schema.py

示例11: __init__

# 需要導入模塊: from marshmallow import fields [as 別名]
# 或者: from marshmallow.fields import Field [as 別名]
def __init__(self):
        self.encoders: Dict[type, Callable] = {}
        self.decoders: Dict[type, Callable] = {}
        self.mm_fields: Dict[type, MarshmallowField] = {}
        # self._json_module = json

    # TODO: #180
    # @property
    # def json_module(self):
    #     return self._json_module
    #
    # @json_module.setter
    # def json_module(self, value):
    #     warnings.warn(f"Now using {value.__name__} module to handle JSON. "
    #                   f"{self._disable_msg}")
    #     self._json_module = value 
開發者ID:lidatong,項目名稱:dataclasses-json,代碼行數:18,代碼來源:cfg.py

示例12: serialize

# 需要導入模塊: from marshmallow import fields [as 別名]
# 或者: from marshmallow.fields import Field [as 別名]
def serialize(self, attr_name, field_symbol,
                  assignment_template, field_obj):
        # type: (str, str, str, fields.Field) -> IndentedString
        """Generates the code to pull a field off of an object into the result.

        :param attr_name: The name of the attribute being accessed/
        :param field_symbol: The symbol to use when accessing the field.  Should
            be generated via field_symbol_name.
        :param assignment_template: A string template to use when generating
            code.  The assignment template is passed into the serializer and
            has a single possitional placeholder for string formatting.  An
            example of a value that may be passed into assignment_template is:
            `res['some_field'] = {0}`
        :param field_obj: The instance of the Marshmallow field being
            serialized.
        :return: The code to pull a field off of the object passed in.
        """
        pass  # pragma: no cover 
開發者ID:lyft,項目名稱:toasted-marshmallow,代碼行數:20,代碼來源:jit.py

示例13: inline

# 需要導入模塊: from marshmallow import fields [as 別名]
# 或者: from marshmallow.fields import Field [as 別名]
def inline(self, field, context):
        # type: (fields.Field, JitContext) -> Optional[str]
        """Generates a template for inlining boolean serialization.

        For example, generates:

        (
            (value in __some_field_truthy) or
            (False if value in __some_field_falsy else bool(value))
        )

        This is somewhat fragile but it tracks what Marshmallow does.
        """
        if is_overridden(field._serialize, fields.Boolean._serialize):
            return None
        truthy_symbol = '__{0}_truthy'.format(field.name)
        falsy_symbol = '__{0}_falsy'.format(field.name)
        context.namespace[truthy_symbol] = field.truthy
        context.namespace[falsy_symbol] = field.falsy
        result = ('(({0} in ' + truthy_symbol +
                  ') or (False if {0} in ' + falsy_symbol +
                  ' else dict()["error"]))')
        return result + ' if {0} is not None else None' 
開發者ID:lyft,項目名稱:toasted-marshmallow,代碼行數:25,代碼來源:jit.py

示例14: test_unknown_typed_field_throws_valueerror

# 需要導入模塊: from marshmallow import fields [as 別名]
# 或者: from marshmallow.fields import Field [as 別名]
def test_unknown_typed_field_throws_valueerror():
    class Invalid(fields.Field):
        def _serialize(self, value, attr, obj):
            return value

    class UserSchema(Schema):
        favourite_colour = Invalid()

    schema = UserSchema()
    json_schema = JSONSchema()

    with pytest.raises(UnsupportedValueError):
        validate_and_dump(json_schema.dump(schema)) 
開發者ID:fuhrysteve,項目名稱:marshmallow-jsonschema,代碼行數:15,代碼來源:test_dump.py

示例15: test_field_subclass

# 需要導入模塊: from marshmallow import fields [as 別名]
# 或者: from marshmallow.fields import Field [as 別名]
def test_field_subclass():
    """JSON schema generation should not fail on sublcass marshmallow field."""

    class CustomField(fields.Field):
        pass

    class TestSchema(Schema):
        myfield = CustomField()

    schema = TestSchema()
    with pytest.raises(UnsupportedValueError):
        _ = validate_and_dump(schema) 
開發者ID:fuhrysteve,項目名稱:marshmallow-jsonschema,代碼行數:14,代碼來源:test_dump.py


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