qref.schema_v1
Pydantic models used for defining V1 schema of Routine.
OPTIONALLY_NAMESPACED_NAME_PATTERN
module-attribute
MULTINAMESPACED_NAME_PATTERN
module-attribute
OPTIONALLY_MULTINAMESPACED_NAME_PATTERN
module-attribute
CONNECTION_PATTERN
module-attribute
CONNECTION_PATTERN = f"{OPTIONALLY_MULTINAMESPACED_NAME_PATTERN} -> {OPTIONALLY_MULTINAMESPACED_NAME_PATTERN}"
CONNECTION_SCHEMA
module-attribute
CONNECTION_SCHEMA = {
"type": "array",
"items": {
"anyOf": [
{"$ref": "#/$defs/Connection"},
{
"pattern": f"^{CONNECTION_PATTERN}$",
"type": "string",
},
]
},
"title": "Connections",
"type": "array",
}
NamedList
Bases: list[T]
Source code in src/qref/schema_v1.py
__get_pydantic_core_schema__
classmethod
PortV1
Bases: BaseModel
Description of Port in V1 schema
Source code in src/qref/schema_v1.py
ConnectionV1
Bases: BaseModel
Description of Connection in V1 schema
Source code in src/qref/schema_v1.py
ResourceV1
Bases: BaseModel
Description of Resource in V1 schema
Source code in src/qref/schema_v1.py
ParamLinkV1
Bases: BaseModel
Description of Parameter link in V1 schema
Source code in src/qref/schema_v1.py
ConstantSequenceV1
Bases: BaseModel
Description of a constant sequence in a V1 Schema.
In a constant sequence we repeat an element multiplier
times in each iteration.
Source code in src/qref/schema_v1.py
ArithmeticSequenceV1
Bases: BaseModel
Description of an arithmetic sequence in a V1 Schema.
In an arithmetic sequence we start from initial_term
repetitions of an element,
and in each iteration we increase it by difference
.
Source code in src/qref/schema_v1.py
GeometricSequenceV1
Bases: BaseModel
Description of a geometric sequence in a V1 Schema.
In a geometric sequence we start from 1 repetition of an element,
and in each iteration we multiply it by ratio
.
Source code in src/qref/schema_v1.py
ClosedFormSequenceV1
Bases: BaseModel
Description of a sequence with known closed-form for a sum or product in a V1 Schema.
If sum
/prod
are specified, they can be used to calculate these values for a given sequence.
Expressions for sum
/prod
should use num_terms_symbol
to represent the total number of terms.
Source code in src/qref/schema_v1.py
CustomSequenceV1
Bases: BaseModel
Description of a custom sequence in a V1 Schema.
For sequences which do not fall into categories defined in other classes, one can use a custom representation.
It is an explicit representation of a sequence where term_expression
defines the expression for each term
in the sequence and iterator_symbol
is used to represent number of the iteration.
Source code in src/qref/schema_v1.py
RepetitionV1
Bases: BaseModel
Description of a repetition of a routine in V1 schema.
Source code in src/qref/schema_v1.py
RoutineV1
Bases: BaseModel
Description of Routine in V1 schema.
Note
This is NOT a top-level object in the schema. Instead, RoutineV1 is wrapped in SchemaV1.
Source code in src/qref/schema_v1.py
children
class-attribute
instance-attribute
ports
class-attribute
instance-attribute
resources
class-attribute
instance-attribute
connections
class-attribute
instance-attribute
input_params
class-attribute
instance-attribute
linked_params
class-attribute
instance-attribute
model_config
class-attribute
instance-attribute
generate_schema_v1
Generate Routine schema V1.
The schema is generated from DocumentRootV1 model, and then enriched with additional fields "title" and "$schema".