class SerializerPrimitiveField(Serializer):
    """
    Serializer for primitive fields.

    """
    char_f = CharField(required=True)
    integer_f = IntegerField(required=True)
    float_f = FloatField(required=True)
    bool_f = BooleanField(required=True)
    list_f = ListField(child=CharField(required=True), required=True)
class SerializerMixinRequired(Serializer):
    """
    Serializer for deep required field.

    """
    char_f = CharField(required=True)
    ser_f = SerializerPrimitiveField(required=True)
class SerializerMixinMany(Serializer):
    """
    Serializer for deep list field.

    """
    char_f = CharField(required=True)
    ser_f = SerializerPrimitiveField(many=True)
class AllowNoneSerializer(Serializer):
    """
    Serializer for testing `allow_none` argument on field.

    """
    integer = IntegerField(allow_none=True, required=False)
    char = CharField(allow_none=True, required=False, max_length=5)
    bool = BooleanField(allow_none=True, required=False)
class SerializerSourceFields(Serializer):
    """
    Serializer for check source argument.

    """
    source_field = CharField(source='source', required=True)