Skip to content

jtemporal/schematics-tutorial

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 

Tutorial Schematics

Instalação

$ pip install schematics

Exemplos

Logo após o título de cada exemplo, eu coloquei também a parte inicial do hash do commit que você pode utilizar para "pular" para a versão dos arquivos de forma mais fácil 😉

Exemplo 1: Validação

Commit: 1949e50

from models import Pessoa
jess = Pessoa()
jess.nome = "Jess"
jess.idade = "42"
jess.linguagens = ["Python", "R", "Go"]
jess.validate() == None

Exemplo 2: DataError

Commit: 1949e50

from models import Pessoa
jess = Pessoa()
jess.nome = "Jess"
jess.idade = "4p2"
jess.linguagens = ["Python", "R", "Go"]
jess.validate()

Exemplo 3: Usando dicionários

Commit: 1949e50

from models import Pessoa
data = {
    "idade": "42",
    "nome": "Jess",
    "linguagens": [
        "Python",
        "Go",
        "R"
    ]
}
jess = Pessoa(data)

Exemplo 4: DataError usando dicionários

Commit: 1949e50

from models import Pessoa
data = {
    "idade": "4p2",
    "nome": "Jess",
    "linguagens": ["Python", "R", "Go"]
}
jess = Pessoa(data)

Exemplo 5: Serializando antes

Commit: 1949e50

from models import Pessoa
jess = Pessoa()
jess.nome = "Jess"
jess.to_native()

Exemplo 6: Serializando depois

Commit: 1bf5445

from models import Pessoa
jess = Pessoa()
jess.nome = "Jess"
jess.to_native()

Exemplo 7: Rogue field

Commit: 1bf5445

from models import Pessoa
data = {
    "name": "Jess"
}
jess = Pessoa(data)

Exemplo 8: Deserializando

Commit: 9898782

from models import Pessoa
data = {
    "name": "Jess",
    "age": "42",
    "lang": [
        "Python",
        "Go",
        "R"
    ]
}
jess = Pessoa(data)

Exemplo 9: Reserializando antes

Commit: 9898782

from models import Pessoa
data = {
    "name": "Jess",
    "age": "42",
    "lang": [
        "Python",
        "Go",
        "R"
    ]
}
jess = Pessoa(data)
jess.to_native()

Exemplo 10: Reserializando depois

Commit: 2beeea6

from models import Pessoa
data = {
    "name": "Jess",
    "age": "42",
    "lang": [
        "Python",
        "Go",
        "R"
    ]
}
jess = Pessoa(data)
jess.to_native()

Exemplo 11: Definindo tipos

Commit: ecf3a67

from models import Pessoa
jess = Pessoa()
jess.nome = "Jess"
jess.idade = 4242
jess.validate()

Exemplo 12: Pessoa tem cachorrinho

Commit: 923923a

from models import Pessoa
data = {
    "name": "Jess",
    "age": "42",
    "lang": ["Python", "R", "Go"],
    "pets": [
        {"name": "cora", "fur": "preta"},
        {"name": "channel", "fur": "branca"}
    ]
}
jess = Pessoa(data)

Exemplo 13: Cachorrinho

Commit: 923923a

from models import Cachorrinho
data = {
    "name": "cora",
    "fur": "preta"
}
dog = Cachorrinho(data)

Exemplo 14: Validadores - tipo

Commit: 9c3e573

from models import Pessoa
data = {
    "name": "Jess",
    "lang": ["Java"]
}
jess = Pessoa(data)
jess.validate()

Exemplo 15: Validadores - modelo DataError

Commit: b866fd0

from models import Cachorrinho
data = {
    "name": "cora",
    "fur": "preta"
}
dog = Cachorrinho(data)
dog.validate()

Exemplo 16: Validadores - modelo

Commit: b866fd0

from models import Cachorrinho
data = {
    "name": "Cora",
    "fur": "preta"
}
dog = Cachorrinho(data)
dog.validate()

About

vai ter post, qnd tiver no ar coloco o link aqui ;)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages