pypnusershub.schemas

Module Contents

Classes

OrganismeSchema

This mixin automatically exclude from serialization:

UserSchema

This mixin automatically exclude from serialization:

class pypnusershub.schemas.OrganismeSchema(*args, **kwargs)[source]

Bases: utils_flask_sqla.schema.SmartRelationshipsMixin, pypnusershub.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]
load_instance = True[source]
sqla_session[source]
class pypnusershub.schemas.UserSchema(*args, **kwargs)[source]

Bases: utils_flask_sqla.schema.SmartRelationshipsMixin, pypnusershub.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]
sqla_session[source]
exclude = ('_password', '_password_plus', 'champs_addi', 'max_level_profil')[source]
max_level_profil[source]
nom_complet[source]
groups[source]
organisme[source]
make_observer(data, **kwargs)[source]