Schéma¤
Schémata v SP-Langu popisují typ a další vlastnosti polí v dynamicky typovaných kontejnerech, jako je JSON nebo pythonovské slovníky.
Je důležité poskytnout SP-Langu informace o typu, protože se používají jako vstup pro typovou inferenci, a tedy pro optimální výkon.
Definice schématu¤
Reprezentace schématu ve formátu YAML:
---
define:
type: splang/schema
fields:
field1:
type: str
aliases: ["FieldOne"]
field2:
type: ui64
Možnosti¤
Možnost type
¤
Definuje datový typ daného atributu, například str
, si64
a podobně.
Další informace naleznete v typovém systému SP-Langu.
Tato volba je povinná.
Možnost aliases
¤
Definuje aliasy polí pro daný atribut, které lze použít v deklaraci jako synonymní výraz.
Pokud má pole field1
alias pole s názvem FieldOne
, jsou následující deklarace rovny, pokud je schéma správně definováno:
!GET
what: field1
from: !ARG input
!GET
what: FieldOne
from: !ARG input
Možnost unit
¤
Definuje jednotku atributu, pokud je potřeba, například pro časové značky. V tomto případě může být jednotka auto
pro automatickou detekci, sekundy
a mikrosekundy
.
Deklarace funkce (Python)¤
Příklad deklarace funkce SP-Lang, která používá MYSCHEMA.yaml
:
splang.FunctionDeclaration(
name="main",
returns="bool",
arguments={
'myArgument': 'json<MYSCHEMA>'
},
)
a samotný soubor MYSCHEMA.yaml
:
---
define:
type: splang/schema
fields:
field1:
type: str
field2:
type: ui64
In-place schémata¤
SP-Lang umožňuje specifikovat schéma přímo v kódu FunctionDeclaration
jazyka Python:
splang.FunctionDeclaration(
name="main",
returns="bool",
arguments={
'myArgument': 'json<INPLACESCHEMA>'
},
schemas=[
("INPLACESCHEMA", {
"field1": "str",
"field2": "si32",
"field3": "ui64",
})
]
)
Provádí se pomocí tuple
, první položka je název schématu, druhá je slovník s poli.