ref_geo.schemas

Module Contents

Classes

AreaTypeSchema

This mixin automatically exclude from serialization:

AreaSchema

This mixin automatically exclude from serialization:

MunicipalitySchema

This mixin automatically exclude from serialization:

class ref_geo.schemas.AreaTypeSchema(*args, **kwargs)[source]

Bases: utils_flask_sqla.schema.SmartRelationshipsMixin, ref_geo.env.ma.SQLAlchemyAutoSchema

This mixin automatically exclude from serialization:

  • Nested, RelatedList and Related fields

  • all fields with exclude=True in their metadata (e.g. fields.String(metadata={'exclude': True}))

Adding only Nested fields to only will not exclude others fields and serialize specified Nested fields. Adding exclude=True fields to only will serialize only specified fields (default marshmallow behaviour). You can use “+field_name” syntax on only to serialize default excluded fields (with metadata exclude = True) without other fields.

Examples :

class FooSchema(SmartRelationshipsMixin):
    id = fields.Int()
    name = field.Str()
    default_excluded_field = fields.Str(metadata={"exclude": True})
    relationship = fields.Nested(OtherSchema) # or field.RelatedList() / field.Related()

FooSchema().dump() -> {"id": 1, "name": "toto" }
FooSchema(only=["+default_excluded_field"]).dump() -> {"id": 1, "name": "toto", default_excluded_field: "test" }
FooSchema(only=["relationship"]).dump() -> {"id": 1, "name": "toto",  relationship : {OtherSchema...} }
FooSchema(only=["id", "relationship"]).dump() -> {"id": 1, relationship : {OtherSchema...} }
class Meta[source]
model[source]
include_fk = True[source]
load_instance = True[source]
class ref_geo.schemas.AreaSchema(*args, **kwargs)[source]

Bases: utils_flask_sqla.schema.SmartRelationshipsMixin, utils_flask_sqla_geo.schema.GeoAlchemyAutoSchema

This mixin automatically exclude from serialization:

  • Nested, RelatedList and Related fields

  • all fields with exclude=True in their metadata (e.g. fields.String(metadata={'exclude': True}))

Adding only Nested fields to only will not exclude others fields and serialize specified Nested fields. Adding exclude=True fields to only will serialize only specified fields (default marshmallow behaviour). You can use “+field_name” syntax on only to serialize default excluded fields (with metadata exclude = True) without other fields.

Examples :

class FooSchema(SmartRelationshipsMixin):
    id = fields.Int()
    name = field.Str()
    default_excluded_field = fields.Str(metadata={"exclude": True})
    relationship = fields.Nested(OtherSchema) # or field.RelatedList() / field.Related()

FooSchema().dump() -> {"id": 1, "name": "toto" }
FooSchema(only=["+default_excluded_field"]).dump() -> {"id": 1, "name": "toto", default_excluded_field: "test" }
FooSchema(only=["relationship"]).dump() -> {"id": 1, "name": "toto",  relationship : {OtherSchema...} }
FooSchema(only=["id", "relationship"]).dump() -> {"id": 1, relationship : {OtherSchema...} }
class Meta[source]
model[source]
include_fk = True[source]
load_instance = True[source]
feature_geometry = 'geom_4326'[source]
area_type[source]
class ref_geo.schemas.MunicipalitySchema(*args, **kwargs)[source]

Bases: utils_flask_sqla.schema.SmartRelationshipsMixin, utils_flask_sqla_geo.schema.GeoAlchemyAutoSchema

This mixin automatically exclude from serialization:

  • Nested, RelatedList and Related fields

  • all fields with exclude=True in their metadata (e.g. fields.String(metadata={'exclude': True}))

Adding only Nested fields to only will not exclude others fields and serialize specified Nested fields. Adding exclude=True fields to only will serialize only specified fields (default marshmallow behaviour). You can use “+field_name” syntax on only to serialize default excluded fields (with metadata exclude = True) without other fields.

Examples :

class FooSchema(SmartRelationshipsMixin):
    id = fields.Int()
    name = field.Str()
    default_excluded_field = fields.Str(metadata={"exclude": True})
    relationship = fields.Nested(OtherSchema) # or field.RelatedList() / field.Related()

FooSchema().dump() -> {"id": 1, "name": "toto" }
FooSchema(only=["+default_excluded_field"]).dump() -> {"id": 1, "name": "toto", default_excluded_field: "test" }
FooSchema(only=["relationship"]).dump() -> {"id": 1, "name": "toto",  relationship : {OtherSchema...} }
FooSchema(only=["id", "relationship"]).dump() -> {"id": 1, relationship : {OtherSchema...} }
class Meta[source]
model[source]
include_fk = True[source]
load_instance = True[source]