gxformat2.schema package#

Submodules#

gxformat2.schema.gxformat2 module#

class gxformat2.schema.gxformat2.ArraySchema(*, items: PrimitiveType | RecordSchema | EnumSchema | ArraySchema | str | list[PrimitiveType | RecordSchema | EnumSchema | ArraySchema | str], type: Literal['array'] = 'array', **extra_data: Any)[source]#

Bases: BaseModel

items: PrimitiveType | RecordSchema | EnumSchema | ArraySchema | str | list[PrimitiveType | RecordSchema | EnumSchema | ArraySchema | str]#
model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

type_: Literal['array']#
class gxformat2.schema.gxformat2.BaseComment(*, position: list[float] | None = None, size: list[float] | None = None, color: None | str = None, label: None | str = None, **extra_data: Any)[source]#

Bases: BaseModel

Base fields shared by all comment types.

color: None | str#
label: None | str#
model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

position: list[float] | None#
size: list[float] | None#
class gxformat2.schema.gxformat2.BaseCreator(*, name: None | str = None, identifier: None | str = None, url: None | str = None, email: None | str = None, image: None | str = None, address: None | str = None, alternateName: None | str = None, telephone: None | str = None, faxNumber: None | str = None, **extra_data: Any)[source]#

Bases: BaseModel

Base fields shared by all creator types, corresponding to schema.org Thing properties common to both Person and Organization.

address: None | str#
alternateName: None | str#
email: None | str#
faxNumber: None | str#
identifier: None | str#
image: None | str#
model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

name: None | str#
telephone: None | str#
url: None | str#
class gxformat2.schema.gxformat2.BaseDataParameter(*, position: None | StepPosition = None, id: None | str = None, doc: None | str | list[str] = None, label: None | str = None, default: None | Any = None, optional: bool | None = None, format: None | list[str] = None, **extra_data: Any)[source]#

Bases: BaseInputParameter

default: None | Any#
doc: None | str | list[str]#
format: None | list[str]#
id: None | str#
label: None | str#
model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

position: None | StepPosition#
class gxformat2.schema.gxformat2.BaseInputParameter(*, position: None | StepPosition = None, id: None | str = None, doc: None | str | list[str] = None, label: None | str = None, default: None | Any = None, optional: bool | None = None, **extra_data: Any)[source]#

Bases: InputParameter, HasStepPosition

doc: None | str | list[str]#
id: None | str#
label: None | str#
model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

optional: bool | None#
class gxformat2.schema.gxformat2.CreatorOrganization(*, name: None | str = None, identifier: None | str = None, url: None | str = None, email: None | str = None, image: None | str = None, address: None | str = None, alternateName: None | str = None, telephone: None | str = None, faxNumber: None | str = None, class_: Literal['Organization'] = 'Organization', **extra_data: Any)[source]#

Bases: BaseCreator

An organization that created or contributed to the workflow. Corresponds to a schema.org Organization.

class_: Literal['Organization']#
model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class gxformat2.schema.gxformat2.CreatorPerson(*, name: None | str = None, identifier: None | str = None, url: None | str = None, email: None | str = None, image: None | str = None, address: None | str = None, alternateName: None | str = None, telephone: None | str = None, faxNumber: None | str = None, class_: Literal['Person'] = 'Person', givenName: None | str = None, familyName: None | str = None, honorificPrefix: None | str = None, honorificSuffix: None | str = None, jobTitle: None | str = None, **extra_data: Any)[source]#

Bases: BaseCreator

A person who created or contributed to the workflow. Corresponds to a schema.org Person.

class_: Literal['Person']#
familyName: None | str#
givenName: None | str#
honorificPrefix: None | str#
honorificSuffix: None | str#
jobTitle: None | str#
model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class gxformat2.schema.gxformat2.Documented(*, doc: None | str | list[str] = None, **extra_data: Any)[source]#

Bases: BaseModel

doc: None | str | list[str]#
model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class gxformat2.schema.gxformat2.EnumSchema(*, symbols: list[str], type: Literal['enum'] = 'enum', **extra_data: Any)[source]#

Bases: BaseModel

Define an enumerated type.

model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

symbols: list[str]#
type_: Literal['enum']#
class gxformat2.schema.gxformat2.FrameComment(*, position: list[float] | None = None, size: list[float] | None = None, color: None | str = None, label: None | str = None, type: Literal['frame'] = 'frame', title: None | str = None, contains_steps: None | list[str | int] = None, contains_comments: None | list[str | int] = None, **extra_data: Any)[source]#

Bases: BaseComment

A rectangular grouping box that visually contains steps and other comments.

contains_comments: None | list[str | int]#
contains_steps: None | list[str | int]#
model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

title: None | str#
type_: Literal['frame']#
class gxformat2.schema.gxformat2.FreehandComment(*, position: list[float] | None = None, size: list[float] | None = None, color: None | str = None, label: None | str = None, type: Literal['freehand'] = 'freehand', thickness: None | float | int = None, line: list[list[float]] | None = None, **extra_data: Any)[source]#

Bases: BaseComment

A freehand drawn line on the editor canvas.

line: list[list[float]] | None#
model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

thickness: None | float | int#
type_: Literal['freehand']#
class gxformat2.schema.gxformat2.GalaxyType(*values)[source]#

Bases: str, Enum

Extends primitive types with the native Galaxy concepts such as datasets and collections. Normalized gxformat2 workflow input declaration spellings are data, collection, string, int, float, and boolean. Other spellings are accepted as compatibility aliases on import but normalized gxformat2 output emits the normalized spellings. data: one Galaxy dataset input. Native Galaxy data_input converts to this spelling. File: accepted alias for data, but normalized gxformat2 output emits data. Note: workflow test job YAML uses type: File to mean ‘stage this file as test input data’, which is a separate concept from workflow input declaration. collection: one Galaxy dataset collection input. Native Galaxy data_collection_input converts to this spelling. string: normalized gxformat2 spelling for native Galaxy text workflow parameters. text: accepted alias for string because native Galaxy parameter state and Galaxy tool XML terminology use text. int: normalized gxformat2 spelling for native Galaxy integer workflow parameters. integer: accepted alias for int because native Galaxy parameter state and Galaxy tool XML terminology use integer.

File = 'File'#
boolean = 'boolean'#
collection = 'collection'#
data = 'data'#
double = 'double'#
float = 'float'#
int = 'int'#
integer = 'integer'#
long = 'long'#
null = 'null'#
string = 'string'#
text = 'text'#
class gxformat2.schema.gxformat2.GalaxyWorkflow(*, uuid: None | str = None, doc: None | str | list[str] = None, label: None | str = None, id: None | str = None, inputs: list[Annotated[Annotated[WorkflowDataParameter, Tag(tag=WorkflowDataParameter)] | Annotated[WorkflowCollectionParameter, Tag(tag=WorkflowCollectionParameter)] | Annotated[WorkflowIntegerParameter, Tag(tag=WorkflowIntegerParameter)] | Annotated[WorkflowFloatParameter, Tag(tag=WorkflowFloatParameter)] | Annotated[WorkflowTextParameter, Tag(tag=WorkflowTextParameter)] | Annotated[WorkflowBooleanParameter, Tag(tag=WorkflowBooleanParameter)], Discriminator(discriminator=_discriminate_inputs, custom_error_type=None, custom_error_message=None, custom_error_context=None)]] | dict[str, WorkflowDataParameter | WorkflowCollectionParameter | WorkflowIntegerParameter | WorkflowFloatParameter | WorkflowTextParameter | WorkflowBooleanParameter | str] | dict[str, Any], outputs: list[WorkflowOutputParameter] | dict[str, WorkflowOutputParameter | str] | dict[str, Any], class_: Literal['GalaxyWorkflow'] = 'GalaxyWorkflow', steps: list[WorkflowStep] | dict[str, WorkflowStep], report: None | Report = None, tags: list[str] | None = None, comments: list[TextComment | MarkdownComment | FrameComment | FreehandComment] | dict[str, TextComment | MarkdownComment | FrameComment | FreehandComment] | None = None, creator: list[CreatorPerson | CreatorOrganization] | None = None, license: None | str = None, release: None | str = None, **extra_data: Any)[source]#

Bases: Process, HasUUID

A Galaxy workflow description. This record corresponds to the description of a workflow that should be executable on a Galaxy server that includes the contained tool definitions.

The workflows API or the user interface of Galaxy instances that are of version 19.09 or newer should be able to import a document defining this record.

## A note about label field.

This is the name of the workflow in the Galaxy user interface. This is the mechanism that users will primarily identify the workflow using. Legacy support - this may also be called ‘name’ and Galaxy will consume the workflow document fine and treat this attribute correctly - however in order to validate against this workflow definition schema the attribute should be called label.

class_: Literal['GalaxyWorkflow']#
comments: list[TextComment | MarkdownComment | FrameComment | FreehandComment] | dict[str, TextComment | MarkdownComment | FrameComment | FreehandComment] | None#
creator: list[CreatorPerson | CreatorOrganization] | None#
doc: None | str | list[str]#
id: None | str#
label: None | str#
license: None | str#
model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

release: None | str#
report: None | Report#
steps: list[WorkflowStep] | dict[str, WorkflowStep]#
tags: list[str] | None#
class gxformat2.schema.gxformat2.HasStepErrors(*, errors: None | str = None, **extra_data: Any)[source]#

Bases: BaseModel

errors: None | str#
model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class gxformat2.schema.gxformat2.HasStepPosition(*, position: None | StepPosition = None, **extra_data: Any)[source]#

Bases: BaseModel

model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

position: None | StepPosition#
class gxformat2.schema.gxformat2.HasUUID(*, uuid: None | str = None, **extra_data: Any)[source]#

Bases: BaseModel

model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

uuid: None | str#
class gxformat2.schema.gxformat2.Identified(*, id: None | str = None, **extra_data: Any)[source]#

Bases: BaseModel

id: None | str#
model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class gxformat2.schema.gxformat2.InputParameter(*, id: None | str = None, doc: None | str | list[str] = None, label: None | str = None, default: None | Any = None, **extra_data: Any)[source]#

Bases: Parameter

default: None | Any#
doc: None | str | list[str]#
id: None | str#
label: None | str#
model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class gxformat2.schema.gxformat2.Labeled(*, label: None | str = None, **extra_data: Any)[source]#

Bases: BaseModel

label: None | str#
model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class gxformat2.schema.gxformat2.MarkdownComment(*, position: list[float] | None = None, size: list[float] | None = None, color: None | str = None, label: None | str = None, type: Literal['markdown'] = 'markdown', text: None | str = None, **extra_data: Any)[source]#

Bases: BaseComment

A Markdown-rendered annotation in the workflow editor.

model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

text: None | str#
type_: Literal['markdown']#
class gxformat2.schema.gxformat2.MinMax(*, min: int | float | None = None, max: int | float | None = None, **extra_data: Any)[source]#

Bases: BaseModel

max: int | float | None#
min: int | float | None#
model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class gxformat2.schema.gxformat2.OutputParameter(*, id: None | str = None, doc: None | str | list[str] = None, label: None | str = None, **extra_data: Any)[source]#

Bases: Parameter

doc: None | str | list[str]#
id: None | str#
label: None | str#
model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class gxformat2.schema.gxformat2.Parameter(*, id: None | str = None, doc: None | str | list[str] = None, label: None | str = None, **extra_data: Any)[source]#

Bases: Labeled, Documented, Identified

Define an input or output parameter to a process.

model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class gxformat2.schema.gxformat2.PrimitiveType(*values)[source]#

Bases: str, Enum

Salad data types are based on Avro schema declarations. Refer to the [Avro schema declaration documentation](https://avro.apache.org/docs/current/spec.html#schemas) for detailed information.

null: no value boolean: a binary value int: 32-bit signed integer long: 64-bit signed integer float: single precision (32-bit) IEEE 754 floating-point number double: double precision (64-bit) IEEE 754 floating-point number string: Unicode character sequence

boolean = 'boolean'#
double = 'double'#
float = 'float'#
int = 'int'#
long = 'long'#
null = 'null'#
string = 'string'#
class gxformat2.schema.gxformat2.Process(*, doc: None | str | list[str] = None, label: None | str = None, id: None | str = None, inputs: list[Annotated[Annotated[WorkflowDataParameter, Tag(tag=WorkflowDataParameter)] | Annotated[WorkflowCollectionParameter, Tag(tag=WorkflowCollectionParameter)] | Annotated[WorkflowIntegerParameter, Tag(tag=WorkflowIntegerParameter)] | Annotated[WorkflowFloatParameter, Tag(tag=WorkflowFloatParameter)] | Annotated[WorkflowTextParameter, Tag(tag=WorkflowTextParameter)] | Annotated[WorkflowBooleanParameter, Tag(tag=WorkflowBooleanParameter)], Discriminator(discriminator=_discriminate_inputs, custom_error_type=None, custom_error_message=None, custom_error_context=None)]] | dict[str, WorkflowDataParameter | WorkflowCollectionParameter | WorkflowIntegerParameter | WorkflowFloatParameter | WorkflowTextParameter | WorkflowBooleanParameter | str] | dict[str, Any], outputs: list[WorkflowOutputParameter] | dict[str, WorkflowOutputParameter | str] | dict[str, Any], **extra_data: Any)[source]#

Bases: Identified, Labeled, Documented

The base executable type in CWL is the Process object defined by the document. Note that the Process object is abstract and cannot be directly executed.

inputs: list[Annotated[Annotated[WorkflowDataParameter, Tag('WorkflowDataParameter')] | Annotated[WorkflowCollectionParameter, Tag('WorkflowCollectionParameter')] | Annotated[WorkflowIntegerParameter, Tag('WorkflowIntegerParameter')] | Annotated[WorkflowFloatParameter, Tag('WorkflowFloatParameter')] | Annotated[WorkflowTextParameter, Tag('WorkflowTextParameter')] | Annotated[WorkflowBooleanParameter, Tag('WorkflowBooleanParameter')], Discriminator(_discriminate_inputs)]] | dict[str, WorkflowDataParameter | WorkflowCollectionParameter | WorkflowIntegerParameter | WorkflowFloatParameter | WorkflowTextParameter | WorkflowBooleanParameter | str] | dict[str, Any]#
model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

outputs: list[WorkflowOutputParameter] | dict[str, WorkflowOutputParameter | str] | dict[str, Any]#
class gxformat2.schema.gxformat2.RecordField(*, doc: None | str | list[str] = None, name: str, type: PrimitiveType | RecordSchema | EnumSchema | ArraySchema | str | list[PrimitiveType | RecordSchema | EnumSchema | ArraySchema | str], **extra_data: Any)[source]#

Bases: Documented

A field of a record.

model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

name: str#
type_: PrimitiveType | RecordSchema | EnumSchema | ArraySchema | str | list[PrimitiveType | RecordSchema | EnumSchema | ArraySchema | str]#
class gxformat2.schema.gxformat2.RecordFieldDefinition(*, name: str, type: Literal['File', 'null', 'boolean', 'int', 'float', 'string'] | list[Literal['File', 'null', 'boolean', 'int', 'float', 'string']] = 'File', format: None | str = None, **extra_data: Any)[source]#

Bases: BaseModel

Describes one field of a record collection input. Used in fields on a collection_type containing record (e.g. record, list:record, sample_sheet:record). Mirrors a subset of the CWL InputRecordSchema shape that Galaxy persists on DatasetCollection.fields.

format: None | str#
model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

name: str#
type_: Literal['File', 'null', 'boolean', 'int', 'float', 'string'] | list[Literal['File', 'null', 'boolean', 'int', 'float', 'string']]#
class gxformat2.schema.gxformat2.RecordSchema(*, fields: None | list[RecordField] = None, type: Literal['record'] = 'record', **extra_data: Any)[source]#

Bases: BaseModel

fields: None | list[RecordField]#
model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

type_: Literal['record']#
class gxformat2.schema.gxformat2.ReferencesTool(*, tool_id: None | str = None, tool_shed_repository: None | ToolShedRepository = None, tool_version: None | str = None, **extra_data: Any)[source]#

Bases: BaseModel

model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

tool_id: None | str#
tool_shed_repository: None | ToolShedRepository#
tool_version: None | str#
class gxformat2.schema.gxformat2.Report(*, markdown: str, **extra_data: Any)[source]#

Bases: BaseModel

Definition of an invocation report for this workflow. Currently the only field is ‘markdown’.

markdown: str#
model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class gxformat2.schema.gxformat2.SampleSheetColumnDefinition(*, name: str, description: None | str = None, type: Literal['string', 'int', 'float', 'boolean', 'element_identifier'] = 'string', optional: bool, default_value: None | str | int | float | bool = None, validators: None | list[Any] = None, restrictions: None | list[str | int | float | bool] = None, suggestions: None | list[str | int | float | bool] = None, **extra_data: Any)[source]#

Bases: BaseModel

Describes one column of a sample-sheet collection input. Used in column_definitions on a collection_type: sample_sheet[:<type>] workflow input.

default_value: None | str | int | float | bool#
description: None | str#
model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

name: str#
optional: bool#
restrictions: None | list[str | int | float | bool]#
suggestions: None | list[str | int | float | bool]#
type_: Literal['string', 'int', 'float', 'boolean', 'element_identifier']#
validators: None | list[Any]#
class gxformat2.schema.gxformat2.Sink(*, source: None | str | list[str] = None, **extra_data: Any)[source]#

Bases: BaseModel

model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

source: None | str | list[str]#
class gxformat2.schema.gxformat2.StepPosition(*, top: float | int, left: float | int, **extra_data: Any)[source]#

Bases: BaseModel

This field specifies the location of the step’s node when rendered in the workflow editor.

left: float | int#
model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

top: float | int#
class gxformat2.schema.gxformat2.TextComment(*, position: list[float] | None = None, size: list[float] | None = None, color: None | str = None, label: None | str = None, type: Literal['text'] = 'text', text: None | str = None, bold: None | bool = None, italic: None | bool = None, text_size: None | float | int = None, **extra_data: Any)[source]#

Bases: BaseComment

A plain text annotation in the workflow editor.

bold: None | bool#
italic: None | bool#
model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

text: None | str#
text_size: None | float | int#
type_: Literal['text']#
class gxformat2.schema.gxformat2.ToolShedRepository(*, name: str, changeset_revision: str, owner: str, tool_shed: str, **extra_data: Any)[source]#

Bases: BaseModel

changeset_revision: str#
model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

name: str#
owner: str#
tool_shed: str#
class gxformat2.schema.gxformat2.WorkflowBooleanParameter(*, position: None | StepPosition = None, id: None | str = None, doc: None | str | list[str] = None, label: None | str = None, default: None | Any = None, optional: bool | None = None, type: Literal['boolean'] = 'boolean', **extra_data: Any)[source]#

Bases: BaseInputParameter

A boolean input parameter for a Galaxy workflow.

default: None | Any#
doc: None | str | list[str]#
id: None | str#
label: None | str#
model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

position: None | StepPosition#
type_: Literal['boolean']#
class gxformat2.schema.gxformat2.WorkflowCollectionParameter(*, position: None | StepPosition = None, id: None | str = None, doc: None | str | list[str] = None, label: None | str = None, default: None | Any = None, optional: bool | None = None, format: None | list[str] = None, type: Literal['collection'] = 'collection', collection_type: None | str = None, column_definitions: None | list[SampleSheetColumnDefinition] = None, fields: None | list[RecordFieldDefinition] = None, **extra_data: Any)[source]#

Bases: BaseDataParameter

A collection input parameter for a Galaxy workflow - represents a dataset collection.

collection_type: None | str#
column_definitions: None | list[SampleSheetColumnDefinition]#
default: None | Any#
doc: None | str | list[str]#
fields: None | list[RecordFieldDefinition]#
id: None | str#
label: None | str#
model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

optional: bool | None#
position: None | StepPosition#
type_: Literal['collection']#
class gxformat2.schema.gxformat2.WorkflowDataParameter(*, position: None | StepPosition = None, id: None | str = None, doc: None | str | list[str] = None, label: None | str = None, default: None | Any = None, optional: bool | None = None, format: None | list[str] = None, type: Literal['data', 'File'] | None = None, **extra_data: Any)[source]#

Bases: BaseDataParameter

A data input parameter for a Galaxy workflow. Represents one Galaxy dataset. Normalized gxformat2 output uses type: data. type: File is accepted as an alias, but should not be confused with workflow test job syntax where type: File means stage a file as test input data.

default: None | Any#
doc: None | str | list[str]#
id: None | str#
label: None | str#
model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

optional: bool | None#
position: None | StepPosition#
type_: Literal['data', 'File'] | None#
class gxformat2.schema.gxformat2.WorkflowFloatParameter(*, min: int | float | None = None, max: int | float | None = None, position: None | StepPosition = None, id: None | str = None, doc: None | str | list[str] = None, label: None | str = None, default: None | Any = None, optional: bool | None = None, type: Literal['float'] = 'float', **extra_data: Any)[source]#

Bases: BaseInputParameter, MinMax

A float input parameter for a Galaxy workflow.

default: None | Any#
doc: None | str | list[str]#
id: None | str#
label: None | str#
model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

position: None | StepPosition#
type_: Literal['float']#
class gxformat2.schema.gxformat2.WorkflowInputParameter(*, min: int | float | None = None, max: int | float | None = None, position: None | StepPosition = None, id: None | str = None, doc: None | str | list[str] = None, label: None | str = None, default: None | Any = None, optional: bool | None = None, format: None | list[str] = None, type: GalaxyType | None | list[GalaxyType] = None, collection_type: None | str = None, column_definitions: None | list[SampleSheetColumnDefinition] = None, fields: None | list[RecordFieldDefinition] = None, restrictions: None | list[str | WorkflowTextOption] = None, suggestions: None | list[str | WorkflowTextOption] = None, restrictOnConnections: None | bool = None, **extra_data: Any)[source]#

Bases: BaseDataParameter, MinMax

An input parameter to a Galaxy workflow. This is the catch-all type used by the Schema Salad codegen. The pydantic layer uses a discriminated union of the specific parameter types instead.

collection_type: None | str#
column_definitions: None | list[SampleSheetColumnDefinition]#
default: None | Any#
doc: None | str | list[str]#
fields: None | list[RecordFieldDefinition]#
id: None | str#
label: None | str#
model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

optional: bool | None#
position: None | StepPosition#
restrictOnConnections: None | bool#
restrictions: None | list[str | WorkflowTextOption]#
suggestions: None | list[str | WorkflowTextOption]#
type_: GalaxyType | None | list[GalaxyType]#
class gxformat2.schema.gxformat2.WorkflowIntegerParameter(*, min: int | float | None = None, max: int | float | None = None, position: None | StepPosition = None, id: None | str = None, doc: None | str | list[str] = None, label: None | str = None, default: None | Any = None, optional: bool | None = None, type: Literal['integer', 'int'] = 'integer', **extra_data: Any)[source]#

Bases: BaseInputParameter, MinMax

A scalar integer workflow parameter. Normalized gxformat2 output uses type: int. type: integer is accepted for compatibility with native Galaxy parameter state and Galaxy tool XML terminology.

default: None | Any#
doc: None | str | list[str]#
id: None | str#
label: None | str#
model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

position: None | StepPosition#
type_: Literal['integer', 'int']#
class gxformat2.schema.gxformat2.WorkflowOutputParameter(*, id: None | str = None, doc: None | str | list[str] = None, label: None | str = None, outputSource: None | str = None, type: None | GalaxyType = None, **extra_data: Any)[source]#

Bases: OutputParameter

Describe an output parameter of a workflow. The parameter must be connected to one parameter defined in the workflow that will provide the value of the output parameter. It is legal to connect a WorkflowInputParameter to a WorkflowOutputParameter.

doc: None | str | list[str]#
id: None | str#
label: None | str#
model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

outputSource: None | str#
type_: None | GalaxyType#
class gxformat2.schema.gxformat2.WorkflowStep(*, uuid: None | str = None, errors: None | str = None, tool_id: None | str = None, tool_shed_repository: None | ToolShedRepository = None, tool_version: None | str = None, position: None | StepPosition = None, doc: None | str | list[str] = None, label: None | str = None, id: None | str = None, in_: list[WorkflowStepInput] | dict[str, WorkflowStepInput | str | list[str]] | None = None, out: list[WorkflowStepOutput | str] | dict[str, WorkflowStepOutput | str] | None = None, state: dict[str, Any] | None = None, tool_state: str | dict[str, Any] | None = None, post_job_actions: dict[str, Any] | None = None, type: None | WorkflowStepType = None, run: GalaxyWorkflow | str | dict[str, Any] | None = None, runtime_inputs: None | list[str] = None, when: None | str = None, **extra_data: Any)[source]#

Bases: Identified, Labeled, Documented, HasStepPosition, ReferencesTool, HasStepErrors, HasUUID

This represents a non-input step a Galaxy Workflow.

# A note about state and tool_state fields.

Only one or the other should be specified. These are two ways to represent the “state” of a tool at this workflow step. Both are essentially maps from parameter names to parameter values.

tool_state is much more low-level and expects a flat dictionary with each value a JSON dump. Nested tool structures such as conditionals and repeats should have all their values in the JSON dumped string. In general tool_state may be present in workflows exported from Galaxy but shouldn’t be written by humans.

state can contained a typed map. Repeat values can be represented as YAML arrays. An alternative to representing state this way is defining inputs with default values.

in_: list[WorkflowStepInput] | dict[str, WorkflowStepInput | str | list[str]] | None#
model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

out: list[WorkflowStepOutput | str] | dict[str, WorkflowStepOutput | str] | None#
post_job_actions: dict[str, Any] | None#
run: GalaxyWorkflow | str | dict[str, Any] | None#
runtime_inputs: None | list[str]#
state: dict[str, Any] | None#
tool_state: str | dict[str, Any] | None#
type_: None | WorkflowStepType#
when: None | str#
class gxformat2.schema.gxformat2.WorkflowStepInput(*, label: None | str = None, source: None | str | list[str] = None, id: None | str = None, default: None | Any = None, **extra_data: Any)[source]#

Bases: Identified, Sink, Labeled

TODO:

default: None | Any#
model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class gxformat2.schema.gxformat2.WorkflowStepOutput(*, id: None | str = None, add_tags: None | list[str] = None, change_datatype: None | str = None, delete_intermediate_datasets: None | bool = None, hide: None | bool = None, remove_tags: None | list[str] = None, rename: None | str = None, set_columns: dict[str, Any] | None = None, **extra_data: Any)[source]#

Bases: Identified

Associate an output parameter of the underlying process with a workflow parameter. The workflow parameter (given in the id field) be may be used as a source to connect with input parameters of other workflow steps, or with an output parameter of the process.

A unique identifier for this workflow output parameter. This is the identifier to use in the source field of WorkflowStepInput to connect the output value to downstream parameters.

add_tags: None | list[str]#
change_datatype: None | str#
delete_intermediate_datasets: None | bool#
hide: None | bool#
model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

remove_tags: None | list[str]#
rename: None | str#
set_columns: dict[str, Any] | None#
class gxformat2.schema.gxformat2.WorkflowStepType(*values)[source]#

Bases: str, Enum

Module types used by Galaxy steps. Galaxy’s native format allows additional types such as data_input, data_input_collection, and parameter_type but these should be represented as inputs in Format2.

tool: Run a tool. subworkflow: Run a subworkflow. pause: Pause computation on this branch of workflow until user allows it to continue. pick_value: Select the first non-null value from multiple inputs. Used to merge branches of conditional or optional workflow paths.

pause = 'pause'#
pick_value = 'pick_value'#
subworkflow = 'subworkflow'#
tool = 'tool'#
class gxformat2.schema.gxformat2.WorkflowTextOption(*, value: str, label: None | str = None, **extra_data: Any)[source]#

Bases: BaseModel

A {value, label} option used in restrictions or suggestions on a text workflow parameter. Plain strings are also accepted in those arrays as shorthand for {value: <str>, label: <str>}.

label: None | str#
model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

value: str#
class gxformat2.schema.gxformat2.WorkflowTextParameter(*, position: None | StepPosition = None, id: None | str = None, doc: None | str | list[str] = None, label: None | str = None, default: None | Any = None, optional: bool | None = None, type: Literal['text', 'string'] = 'text', restrictions: None | list[str | WorkflowTextOption] = None, suggestions: None | list[str | WorkflowTextOption] = None, restrictOnConnections: None | bool = None, **extra_data: Any)[source]#

Bases: BaseInputParameter

A scalar text workflow parameter. Normalized gxformat2 output uses type: string. type: text is accepted for compatibility with native Galaxy parameter state and Galaxy tool XML terminology.

default: None | Any#
doc: None | str | list[str]#
id: None | str#
label: None | str#
model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

position: None | StepPosition#
restrictOnConnections: None | bool#
restrictions: None | list[str | WorkflowTextOption]#
suggestions: None | list[str | WorkflowTextOption]#
type_: Literal['text', 'string']#
gxformat2.schema.gxformat2.input_parameter_class(type_value: str | None) type[BaseInputParameter][source]#

Return the specific input parameter class for a Format2 type string.

Falls back to WorkflowDataParameter for unknown or None types.

gxformat2.schema.gxformat2.load_document(path: str | Path) GalaxyWorkflow | list[GalaxyWorkflow][source]#

Load and validate a document from a JSON file.

gxformat2.schema.gxformat2.parser_info() str[source]#

gxformat2.schema.gxformat2_strict module#

class gxformat2.schema.gxformat2_strict.ArraySchema(*, items: PrimitiveType | RecordSchema | EnumSchema | ArraySchema | str | list[PrimitiveType | RecordSchema | EnumSchema | ArraySchema | str], type: Literal['array'] = 'array')[source]#

Bases: BaseModel

items: PrimitiveType | RecordSchema | EnumSchema | ArraySchema | str | list[PrimitiveType | RecordSchema | EnumSchema | ArraySchema | str]#
model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

type_: Literal['array']#
class gxformat2.schema.gxformat2_strict.BaseComment(*, position: list[float] | None = None, size: list[float] | None = None, color: None | str = None, label: None | str = None)[source]#

Bases: BaseModel

Base fields shared by all comment types.

color: None | str#
label: None | str#
model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

position: list[float] | None#
size: list[float] | None#
class gxformat2.schema.gxformat2_strict.BaseCreator(*, name: None | str = None, identifier: None | str = None, url: None | str = None, email: None | str = None, image: None | str = None, address: None | str = None, alternateName: None | str = None, telephone: None | str = None, faxNumber: None | str = None)[source]#

Bases: BaseModel

Base fields shared by all creator types, corresponding to schema.org Thing properties common to both Person and Organization.

address: None | str#
alternateName: None | str#
email: None | str#
faxNumber: None | str#
identifier: None | str#
image: None | str#
model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

name: None | str#
telephone: None | str#
url: None | str#
class gxformat2.schema.gxformat2_strict.BaseDataParameter(*, position: None | StepPosition = None, id: None | str = None, doc: None | str | list[str] = None, label: None | str = None, default: None | Any = None, optional: bool | None = None, format: None | list[str] = None)[source]#

Bases: BaseInputParameter

default: None | Any#
doc: None | str | list[str]#
format: None | list[str]#
id: None | str#
label: None | str#
model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

position: None | StepPosition#
class gxformat2.schema.gxformat2_strict.BaseInputParameter(*, position: None | StepPosition = None, id: None | str = None, doc: None | str | list[str] = None, label: None | str = None, default: None | Any = None, optional: bool | None = None)[source]#

Bases: InputParameter, HasStepPosition

doc: None | str | list[str]#
id: None | str#
label: None | str#
model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

optional: bool | None#
class gxformat2.schema.gxformat2_strict.CreatorOrganization(*, name: None | str = None, identifier: None | str = None, url: None | str = None, email: None | str = None, image: None | str = None, address: None | str = None, alternateName: None | str = None, telephone: None | str = None, faxNumber: None | str = None, class_: Literal['Organization'] = 'Organization')[source]#

Bases: BaseCreator

An organization that created or contributed to the workflow. Corresponds to a schema.org Organization.

class_: Literal['Organization']#
model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class gxformat2.schema.gxformat2_strict.CreatorPerson(*, name: None | str = None, identifier: None | str = None, url: None | str = None, email: None | str = None, image: None | str = None, address: None | str = None, alternateName: None | str = None, telephone: None | str = None, faxNumber: None | str = None, class_: Literal['Person'] = 'Person', givenName: None | str = None, familyName: None | str = None, honorificPrefix: None | str = None, honorificSuffix: None | str = None, jobTitle: None | str = None)[source]#

Bases: BaseCreator

A person who created or contributed to the workflow. Corresponds to a schema.org Person.

class_: Literal['Person']#
familyName: None | str#
givenName: None | str#
honorificPrefix: None | str#
honorificSuffix: None | str#
jobTitle: None | str#
model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class gxformat2.schema.gxformat2_strict.Documented(*, doc: None | str | list[str] = None)[source]#

Bases: BaseModel

doc: None | str | list[str]#
model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class gxformat2.schema.gxformat2_strict.EnumSchema(*, symbols: list[str], type: Literal['enum'] = 'enum')[source]#

Bases: BaseModel

Define an enumerated type.

model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

symbols: list[str]#
type_: Literal['enum']#
class gxformat2.schema.gxformat2_strict.FrameComment(*, position: list[float] | None = None, size: list[float] | None = None, color: None | str = None, label: None | str = None, type: Literal['frame'] = 'frame', title: None | str = None, contains_steps: None | list[str | int] = None, contains_comments: None | list[str | int] = None)[source]#

Bases: BaseComment

A rectangular grouping box that visually contains steps and other comments.

contains_comments: None | list[str | int]#
contains_steps: None | list[str | int]#
model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

title: None | str#
type_: Literal['frame']#
class gxformat2.schema.gxformat2_strict.FreehandComment(*, position: list[float] | None = None, size: list[float] | None = None, color: None | str = None, label: None | str = None, type: Literal['freehand'] = 'freehand', thickness: None | float | int = None, line: list[list[float]] | None = None)[source]#

Bases: BaseComment

A freehand drawn line on the editor canvas.

line: list[list[float]] | None#
model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

thickness: None | float | int#
type_: Literal['freehand']#
class gxformat2.schema.gxformat2_strict.GalaxyType(*values)[source]#

Bases: str, Enum

Extends primitive types with the native Galaxy concepts such as datasets and collections. Normalized gxformat2 workflow input declaration spellings are data, collection, string, int, float, and boolean. Other spellings are accepted as compatibility aliases on import but normalized gxformat2 output emits the normalized spellings. data: one Galaxy dataset input. Native Galaxy data_input converts to this spelling. File: accepted alias for data, but normalized gxformat2 output emits data. Note: workflow test job YAML uses type: File to mean ‘stage this file as test input data’, which is a separate concept from workflow input declaration. collection: one Galaxy dataset collection input. Native Galaxy data_collection_input converts to this spelling. string: normalized gxformat2 spelling for native Galaxy text workflow parameters. text: accepted alias for string because native Galaxy parameter state and Galaxy tool XML terminology use text. int: normalized gxformat2 spelling for native Galaxy integer workflow parameters. integer: accepted alias for int because native Galaxy parameter state and Galaxy tool XML terminology use integer.

File = 'File'#
boolean = 'boolean'#
collection = 'collection'#
data = 'data'#
double = 'double'#
float = 'float'#
int = 'int'#
integer = 'integer'#
long = 'long'#
null = 'null'#
string = 'string'#
text = 'text'#
class gxformat2.schema.gxformat2_strict.GalaxyWorkflow(*, uuid: None | str = None, doc: None | str | list[str] = None, label: None | str = None, id: None | str = None, inputs: list[Annotated[Annotated[WorkflowDataParameter, Tag(tag=WorkflowDataParameter)] | Annotated[WorkflowCollectionParameter, Tag(tag=WorkflowCollectionParameter)] | Annotated[WorkflowIntegerParameter, Tag(tag=WorkflowIntegerParameter)] | Annotated[WorkflowFloatParameter, Tag(tag=WorkflowFloatParameter)] | Annotated[WorkflowTextParameter, Tag(tag=WorkflowTextParameter)] | Annotated[WorkflowBooleanParameter, Tag(tag=WorkflowBooleanParameter)], Discriminator(discriminator=_discriminate_inputs, custom_error_type=None, custom_error_message=None, custom_error_context=None)]] | dict[str, WorkflowDataParameter | WorkflowCollectionParameter | WorkflowIntegerParameter | WorkflowFloatParameter | WorkflowTextParameter | WorkflowBooleanParameter | str] | dict[str, Any], outputs: list[WorkflowOutputParameter] | dict[str, WorkflowOutputParameter | str] | dict[str, Any], class_: Literal['GalaxyWorkflow'] = 'GalaxyWorkflow', steps: list[WorkflowStep] | dict[str, WorkflowStep], report: None | Report = None, tags: list[str] | None = None, comments: list[TextComment | MarkdownComment | FrameComment | FreehandComment] | dict[str, TextComment | MarkdownComment | FrameComment | FreehandComment] | None = None, creator: list[CreatorPerson | CreatorOrganization] | None = None, license: None | str = None, release: None | str = None)[source]#

Bases: Process, HasUUID

A Galaxy workflow description. This record corresponds to the description of a workflow that should be executable on a Galaxy server that includes the contained tool definitions.

The workflows API or the user interface of Galaxy instances that are of version 19.09 or newer should be able to import a document defining this record.

## A note about label field.

This is the name of the workflow in the Galaxy user interface. This is the mechanism that users will primarily identify the workflow using. Legacy support - this may also be called ‘name’ and Galaxy will consume the workflow document fine and treat this attribute correctly - however in order to validate against this workflow definition schema the attribute should be called label.

class_: Literal['GalaxyWorkflow']#
comments: list[TextComment | MarkdownComment | FrameComment | FreehandComment] | dict[str, TextComment | MarkdownComment | FrameComment | FreehandComment] | None#
creator: list[CreatorPerson | CreatorOrganization] | None#
doc: None | str | list[str]#
id: None | str#
label: None | str#
license: None | str#
model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

release: None | str#
report: None | Report#
steps: list[WorkflowStep] | dict[str, WorkflowStep]#
tags: list[str] | None#
class gxformat2.schema.gxformat2_strict.HasStepErrors(*, errors: None | str = None)[source]#

Bases: BaseModel

errors: None | str#
model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class gxformat2.schema.gxformat2_strict.HasStepPosition(*, position: None | StepPosition = None)[source]#

Bases: BaseModel

model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

position: None | StepPosition#
class gxformat2.schema.gxformat2_strict.HasUUID(*, uuid: None | str = None)[source]#

Bases: BaseModel

model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

uuid: None | str#
class gxformat2.schema.gxformat2_strict.Identified(*, id: None | str = None)[source]#

Bases: BaseModel

id: None | str#
model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class gxformat2.schema.gxformat2_strict.InputParameter(*, id: None | str = None, doc: None | str | list[str] = None, label: None | str = None, default: None | Any = None)[source]#

Bases: Parameter

default: None | Any#
doc: None | str | list[str]#
id: None | str#
label: None | str#
model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class gxformat2.schema.gxformat2_strict.Labeled(*, label: None | str = None)[source]#

Bases: BaseModel

label: None | str#
model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class gxformat2.schema.gxformat2_strict.MarkdownComment(*, position: list[float] | None = None, size: list[float] | None = None, color: None | str = None, label: None | str = None, type: Literal['markdown'] = 'markdown', text: None | str = None)[source]#

Bases: BaseComment

A Markdown-rendered annotation in the workflow editor.

model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

text: None | str#
type_: Literal['markdown']#
class gxformat2.schema.gxformat2_strict.MinMax(*, min: int | float | None = None, max: int | float | None = None)[source]#

Bases: BaseModel

max: int | float | None#
min: int | float | None#
model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class gxformat2.schema.gxformat2_strict.OutputParameter(*, id: None | str = None, doc: None | str | list[str] = None, label: None | str = None)[source]#

Bases: Parameter

doc: None | str | list[str]#
id: None | str#
label: None | str#
model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class gxformat2.schema.gxformat2_strict.Parameter(*, id: None | str = None, doc: None | str | list[str] = None, label: None | str = None)[source]#

Bases: Labeled, Documented, Identified

Define an input or output parameter to a process.

model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class gxformat2.schema.gxformat2_strict.PrimitiveType(*values)[source]#

Bases: str, Enum

Salad data types are based on Avro schema declarations. Refer to the [Avro schema declaration documentation](https://avro.apache.org/docs/current/spec.html#schemas) for detailed information.

null: no value boolean: a binary value int: 32-bit signed integer long: 64-bit signed integer float: single precision (32-bit) IEEE 754 floating-point number double: double precision (64-bit) IEEE 754 floating-point number string: Unicode character sequence

boolean = 'boolean'#
double = 'double'#
float = 'float'#
int = 'int'#
long = 'long'#
null = 'null'#
string = 'string'#
class gxformat2.schema.gxformat2_strict.Process(*, doc: None | str | list[str] = None, label: None | str = None, id: None | str = None, inputs: list[Annotated[Annotated[WorkflowDataParameter, Tag(tag=WorkflowDataParameter)] | Annotated[WorkflowCollectionParameter, Tag(tag=WorkflowCollectionParameter)] | Annotated[WorkflowIntegerParameter, Tag(tag=WorkflowIntegerParameter)] | Annotated[WorkflowFloatParameter, Tag(tag=WorkflowFloatParameter)] | Annotated[WorkflowTextParameter, Tag(tag=WorkflowTextParameter)] | Annotated[WorkflowBooleanParameter, Tag(tag=WorkflowBooleanParameter)], Discriminator(discriminator=_discriminate_inputs, custom_error_type=None, custom_error_message=None, custom_error_context=None)]] | dict[str, WorkflowDataParameter | WorkflowCollectionParameter | WorkflowIntegerParameter | WorkflowFloatParameter | WorkflowTextParameter | WorkflowBooleanParameter | str] | dict[str, Any], outputs: list[WorkflowOutputParameter] | dict[str, WorkflowOutputParameter | str] | dict[str, Any])[source]#

Bases: Identified, Labeled, Documented

The base executable type in CWL is the Process object defined by the document. Note that the Process object is abstract and cannot be directly executed.

inputs: list[Annotated[Annotated[WorkflowDataParameter, Tag('WorkflowDataParameter')] | Annotated[WorkflowCollectionParameter, Tag('WorkflowCollectionParameter')] | Annotated[WorkflowIntegerParameter, Tag('WorkflowIntegerParameter')] | Annotated[WorkflowFloatParameter, Tag('WorkflowFloatParameter')] | Annotated[WorkflowTextParameter, Tag('WorkflowTextParameter')] | Annotated[WorkflowBooleanParameter, Tag('WorkflowBooleanParameter')], Discriminator(_discriminate_inputs)]] | dict[str, WorkflowDataParameter | WorkflowCollectionParameter | WorkflowIntegerParameter | WorkflowFloatParameter | WorkflowTextParameter | WorkflowBooleanParameter | str] | dict[str, Any]#
model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

outputs: list[WorkflowOutputParameter] | dict[str, WorkflowOutputParameter | str] | dict[str, Any]#
class gxformat2.schema.gxformat2_strict.RecordField(*, doc: None | str | list[str] = None, name: str, type: PrimitiveType | RecordSchema | EnumSchema | ArraySchema | str | list[PrimitiveType | RecordSchema | EnumSchema | ArraySchema | str])[source]#

Bases: Documented

A field of a record.

model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

name: str#
type_: PrimitiveType | RecordSchema | EnumSchema | ArraySchema | str | list[PrimitiveType | RecordSchema | EnumSchema | ArraySchema | str]#
class gxformat2.schema.gxformat2_strict.RecordFieldDefinition(*, name: str, type: Literal['File', 'null', 'boolean', 'int', 'float', 'string'] | list[Literal['File', 'null', 'boolean', 'int', 'float', 'string']] = 'File', format: None | str = None)[source]#

Bases: BaseModel

Describes one field of a record collection input. Used in fields on a collection_type containing record (e.g. record, list:record, sample_sheet:record). Mirrors a subset of the CWL InputRecordSchema shape that Galaxy persists on DatasetCollection.fields.

format: None | str#
model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

name: str#
type_: Literal['File', 'null', 'boolean', 'int', 'float', 'string'] | list[Literal['File', 'null', 'boolean', 'int', 'float', 'string']]#
class gxformat2.schema.gxformat2_strict.RecordSchema(*, fields: None | list[RecordField] = None, type: Literal['record'] = 'record')[source]#

Bases: BaseModel

fields: None | list[RecordField]#
model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

type_: Literal['record']#
class gxformat2.schema.gxformat2_strict.ReferencesTool(*, tool_id: None | str = None, tool_shed_repository: None | ToolShedRepository = None, tool_version: None | str = None)[source]#

Bases: BaseModel

model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

tool_id: None | str#
tool_shed_repository: None | ToolShedRepository#
tool_version: None | str#
class gxformat2.schema.gxformat2_strict.Report(*, markdown: str)[source]#

Bases: BaseModel

Definition of an invocation report for this workflow. Currently the only field is ‘markdown’.

markdown: str#
model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class gxformat2.schema.gxformat2_strict.SampleSheetColumnDefinition(*, name: str, description: None | str = None, type: Literal['string', 'int', 'float', 'boolean', 'element_identifier'] = 'string', optional: bool, default_value: None | str | int | float | bool = None, validators: None | list[Any] = None, restrictions: None | list[str | int | float | bool] = None, suggestions: None | list[str | int | float | bool] = None)[source]#

Bases: BaseModel

Describes one column of a sample-sheet collection input. Used in column_definitions on a collection_type: sample_sheet[:<type>] workflow input.

default_value: None | str | int | float | bool#
description: None | str#
model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

name: str#
optional: bool#
restrictions: None | list[str | int | float | bool]#
suggestions: None | list[str | int | float | bool]#
type_: Literal['string', 'int', 'float', 'boolean', 'element_identifier']#
validators: None | list[Any]#
class gxformat2.schema.gxformat2_strict.Sink(*, source: None | str | list[str] = None)[source]#

Bases: BaseModel

model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

source: None | str | list[str]#
class gxformat2.schema.gxformat2_strict.StepPosition(*, top: float | int, left: float | int)[source]#

Bases: BaseModel

This field specifies the location of the step’s node when rendered in the workflow editor.

left: float | int#
model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

top: float | int#
class gxformat2.schema.gxformat2_strict.TextComment(*, position: list[float] | None = None, size: list[float] | None = None, color: None | str = None, label: None | str = None, type: Literal['text'] = 'text', text: None | str = None, bold: None | bool = None, italic: None | bool = None, text_size: None | float | int = None)[source]#

Bases: BaseComment

A plain text annotation in the workflow editor.

bold: None | bool#
italic: None | bool#
model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

text: None | str#
text_size: None | float | int#
type_: Literal['text']#
class gxformat2.schema.gxformat2_strict.ToolShedRepository(*, name: str, changeset_revision: str, owner: str, tool_shed: str)[source]#

Bases: BaseModel

changeset_revision: str#
model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

name: str#
owner: str#
tool_shed: str#
class gxformat2.schema.gxformat2_strict.WorkflowBooleanParameter(*, position: None | StepPosition = None, id: None | str = None, doc: None | str | list[str] = None, label: None | str = None, default: None | Any = None, optional: bool | None = None, type: Literal['boolean'] = 'boolean')[source]#

Bases: BaseInputParameter

A boolean input parameter for a Galaxy workflow.

default: None | Any#
doc: None | str | list[str]#
id: None | str#
label: None | str#
model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

position: None | StepPosition#
type_: Literal['boolean']#
class gxformat2.schema.gxformat2_strict.WorkflowCollectionParameter(*, position: None | StepPosition = None, id: None | str = None, doc: None | str | list[str] = None, label: None | str = None, default: None | Any = None, optional: bool | None = None, format: None | list[str] = None, type: Literal['collection'] = 'collection', collection_type: None | str = None, column_definitions: None | list[SampleSheetColumnDefinition] = None, fields: None | list[RecordFieldDefinition] = None)[source]#

Bases: BaseDataParameter

A collection input parameter for a Galaxy workflow - represents a dataset collection.

collection_type: None | str#
column_definitions: None | list[SampleSheetColumnDefinition]#
default: None | Any#
doc: None | str | list[str]#
fields: None | list[RecordFieldDefinition]#
id: None | str#
label: None | str#
model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

optional: bool | None#
position: None | StepPosition#
type_: Literal['collection']#
class gxformat2.schema.gxformat2_strict.WorkflowDataParameter(*, position: None | StepPosition = None, id: None | str = None, doc: None | str | list[str] = None, label: None | str = None, default: None | Any = None, optional: bool | None = None, format: None | list[str] = None, type: Literal['data', 'File'] | None = None)[source]#

Bases: BaseDataParameter

A data input parameter for a Galaxy workflow. Represents one Galaxy dataset. Normalized gxformat2 output uses type: data. type: File is accepted as an alias, but should not be confused with workflow test job syntax where type: File means stage a file as test input data.

default: None | Any#
doc: None | str | list[str]#
id: None | str#
label: None | str#
model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

optional: bool | None#
position: None | StepPosition#
type_: Literal['data', 'File'] | None#
class gxformat2.schema.gxformat2_strict.WorkflowFloatParameter(*, min: int | float | None = None, max: int | float | None = None, position: None | StepPosition = None, id: None | str = None, doc: None | str | list[str] = None, label: None | str = None, default: None | Any = None, optional: bool | None = None, type: Literal['float'] = 'float')[source]#

Bases: BaseInputParameter, MinMax

A float input parameter for a Galaxy workflow.

default: None | Any#
doc: None | str | list[str]#
id: None | str#
label: None | str#
model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

position: None | StepPosition#
type_: Literal['float']#
class gxformat2.schema.gxformat2_strict.WorkflowInputParameter(*, min: int | float | None = None, max: int | float | None = None, position: None | StepPosition = None, id: None | str = None, doc: None | str | list[str] = None, label: None | str = None, default: None | Any = None, optional: bool | None = None, format: None | list[str] = None, type: GalaxyType | None | list[GalaxyType] = None, collection_type: None | str = None, column_definitions: None | list[SampleSheetColumnDefinition] = None, fields: None | list[RecordFieldDefinition] = None, restrictions: None | list[str | WorkflowTextOption] = None, suggestions: None | list[str | WorkflowTextOption] = None, restrictOnConnections: None | bool = None)[source]#

Bases: BaseDataParameter, MinMax

An input parameter to a Galaxy workflow. This is the catch-all type used by the Schema Salad codegen. The pydantic layer uses a discriminated union of the specific parameter types instead.

collection_type: None | str#
column_definitions: None | list[SampleSheetColumnDefinition]#
default: None | Any#
doc: None | str | list[str]#
fields: None | list[RecordFieldDefinition]#
id: None | str#
label: None | str#
model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

optional: bool | None#
position: None | StepPosition#
restrictOnConnections: None | bool#
restrictions: None | list[str | WorkflowTextOption]#
suggestions: None | list[str | WorkflowTextOption]#
type_: GalaxyType | None | list[GalaxyType]#
class gxformat2.schema.gxformat2_strict.WorkflowIntegerParameter(*, min: int | float | None = None, max: int | float | None = None, position: None | StepPosition = None, id: None | str = None, doc: None | str | list[str] = None, label: None | str = None, default: None | Any = None, optional: bool | None = None, type: Literal['integer', 'int'] = 'integer')[source]#

Bases: BaseInputParameter, MinMax

A scalar integer workflow parameter. Normalized gxformat2 output uses type: int. type: integer is accepted for compatibility with native Galaxy parameter state and Galaxy tool XML terminology.

default: None | Any#
doc: None | str | list[str]#
id: None | str#
label: None | str#
model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

position: None | StepPosition#
type_: Literal['integer', 'int']#
class gxformat2.schema.gxformat2_strict.WorkflowOutputParameter(*, id: None | str = None, doc: None | str | list[str] = None, label: None | str = None, outputSource: None | str = None, type: None | GalaxyType = None)[source]#

Bases: OutputParameter

Describe an output parameter of a workflow. The parameter must be connected to one parameter defined in the workflow that will provide the value of the output parameter. It is legal to connect a WorkflowInputParameter to a WorkflowOutputParameter.

doc: None | str | list[str]#
id: None | str#
label: None | str#
model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

outputSource: None | str#
type_: None | GalaxyType#
class gxformat2.schema.gxformat2_strict.WorkflowStep(*, uuid: None | str = None, errors: None | str = None, tool_id: None | str = None, tool_shed_repository: None | ToolShedRepository = None, tool_version: None | str = None, position: None | StepPosition = None, doc: None | str | list[str] = None, label: None | str = None, id: None | str = None, in_: list[WorkflowStepInput] | dict[str, WorkflowStepInput | str | list[str]] | None = None, out: list[WorkflowStepOutput | str] | dict[str, WorkflowStepOutput | str] | None = None, state: dict[str, Any] | None = None, tool_state: str | dict[str, Any] | None = None, post_job_actions: dict[str, Any] | None = None, type: None | WorkflowStepType = None, run: GalaxyWorkflow | str | dict[str, Any] | None = None, runtime_inputs: None | list[str] = None, when: None | str = None)[source]#

Bases: Identified, Labeled, Documented, HasStepPosition, ReferencesTool, HasStepErrors, HasUUID

This represents a non-input step a Galaxy Workflow.

# A note about state and tool_state fields.

Only one or the other should be specified. These are two ways to represent the “state” of a tool at this workflow step. Both are essentially maps from parameter names to parameter values.

tool_state is much more low-level and expects a flat dictionary with each value a JSON dump. Nested tool structures such as conditionals and repeats should have all their values in the JSON dumped string. In general tool_state may be present in workflows exported from Galaxy but shouldn’t be written by humans.

state can contained a typed map. Repeat values can be represented as YAML arrays. An alternative to representing state this way is defining inputs with default values.

in_: list[WorkflowStepInput] | dict[str, WorkflowStepInput | str | list[str]] | None#
model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

out: list[WorkflowStepOutput | str] | dict[str, WorkflowStepOutput | str] | None#
post_job_actions: dict[str, Any] | None#
run: GalaxyWorkflow | str | dict[str, Any] | None#
runtime_inputs: None | list[str]#
state: dict[str, Any] | None#
tool_state: str | dict[str, Any] | None#
type_: None | WorkflowStepType#
when: None | str#
class gxformat2.schema.gxformat2_strict.WorkflowStepInput(*, label: None | str = None, source: None | str | list[str] = None, id: None | str = None, default: None | Any = None)[source]#

Bases: Identified, Sink, Labeled

TODO:

default: None | Any#
model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class gxformat2.schema.gxformat2_strict.WorkflowStepOutput(*, id: None | str = None, add_tags: None | list[str] = None, change_datatype: None | str = None, delete_intermediate_datasets: None | bool = None, hide: None | bool = None, remove_tags: None | list[str] = None, rename: None | str = None, set_columns: dict[str, Any] | None = None)[source]#

Bases: Identified

Associate an output parameter of the underlying process with a workflow parameter. The workflow parameter (given in the id field) be may be used as a source to connect with input parameters of other workflow steps, or with an output parameter of the process.

A unique identifier for this workflow output parameter. This is the identifier to use in the source field of WorkflowStepInput to connect the output value to downstream parameters.

add_tags: None | list[str]#
change_datatype: None | str#
delete_intermediate_datasets: None | bool#
hide: None | bool#
model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

remove_tags: None | list[str]#
rename: None | str#
set_columns: dict[str, Any] | None#
class gxformat2.schema.gxformat2_strict.WorkflowStepType(*values)[source]#

Bases: str, Enum

Module types used by Galaxy steps. Galaxy’s native format allows additional types such as data_input, data_input_collection, and parameter_type but these should be represented as inputs in Format2.

tool: Run a tool. subworkflow: Run a subworkflow. pause: Pause computation on this branch of workflow until user allows it to continue. pick_value: Select the first non-null value from multiple inputs. Used to merge branches of conditional or optional workflow paths.

pause = 'pause'#
pick_value = 'pick_value'#
subworkflow = 'subworkflow'#
tool = 'tool'#
class gxformat2.schema.gxformat2_strict.WorkflowTextOption(*, value: str, label: None | str = None)[source]#

Bases: BaseModel

A {value, label} option used in restrictions or suggestions on a text workflow parameter. Plain strings are also accepted in those arrays as shorthand for {value: <str>, label: <str>}.

label: None | str#
model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

value: str#
class gxformat2.schema.gxformat2_strict.WorkflowTextParameter(*, position: None | StepPosition = None, id: None | str = None, doc: None | str | list[str] = None, label: None | str = None, default: None | Any = None, optional: bool | None = None, type: Literal['text', 'string'] = 'text', restrictions: None | list[str | WorkflowTextOption] = None, suggestions: None | list[str | WorkflowTextOption] = None, restrictOnConnections: None | bool = None)[source]#

Bases: BaseInputParameter

A scalar text workflow parameter. Normalized gxformat2 output uses type: string. type: text is accepted for compatibility with native Galaxy parameter state and Galaxy tool XML terminology.

default: None | Any#
doc: None | str | list[str]#
id: None | str#
label: None | str#
model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

position: None | StepPosition#
restrictOnConnections: None | bool#
restrictions: None | list[str | WorkflowTextOption]#
suggestions: None | list[str | WorkflowTextOption]#
type_: Literal['text', 'string']#
gxformat2.schema.gxformat2_strict.input_parameter_class(type_value: str | None) type[BaseInputParameter][source]#

Return the specific input parameter class for a Format2 type string.

Falls back to WorkflowDataParameter for unknown or None types.

gxformat2.schema.gxformat2_strict.load_document(path: str | Path) GalaxyWorkflow | list[GalaxyWorkflow][source]#

Load and validate a document from a JSON file.

gxformat2.schema.gxformat2_strict.parser_info() str[source]#

gxformat2.schema.json_schema module#

JSON Schema export for gxformat2 workflow models.

Provides export functions that generate standard Draft 2020-12 JSON Schema from gxformat2’s Pydantic models. Exported schemas are intended for consumption by external validators (Python jsonschema, TypeScript ajv, VSCode YAML extension).

class gxformat2.schema.json_schema.GxFormat2GenerateJsonSchema(by_alias: bool = True, ref_template: str = '#/$defs/{model}', union_format: Literal['any_of', 'primitive_type_array'] = 'any_of')[source]#

Bases: GenerateJsonSchema

Custom JSON Schema generator that injects $schema dialect.

generate(schema, mode: Literal['validation', 'serialization'] = 'validation')[source]#

Generate JSON Schema with $schema dialect injected.

gxformat2.schema.json_schema.native_workflow_json_schema(*, strict: bool = False, mode: Literal['validation', 'serialization'] = 'validation') dict[str, Any][source]#

Export NativeGalaxyWorkflow JSON Schema.

Args:

strict: If True, use strict model (extra=”forbid” — rejects unknown keys). mode: Pydantic schema mode (“validation” or “serialization”).

gxformat2.schema.json_schema.native_workflow_json_schema_string(*, strict: bool = False, mode: Literal['validation', 'serialization'] = 'validation') str[source]#

Export NativeGalaxyWorkflow JSON Schema as formatted string.

gxformat2.schema.json_schema.workflow_json_schema(*, strict: bool = False, mode: Literal['validation', 'serialization'] = 'validation') dict[str, Any][source]#

Export GalaxyWorkflow JSON Schema.

Args:

strict: If True, use strict model (extra=”forbid” — rejects unknown keys). mode: Pydantic schema mode (“validation” or “serialization”).

gxformat2.schema.json_schema.workflow_json_schema_string(*, strict: bool = False, mode: Literal['validation', 'serialization'] = 'validation') str[source]#

Export GalaxyWorkflow JSON Schema as formatted string.

gxformat2.schema.native module#

class gxformat2.schema.native.ArraySchema(*, items: PrimitiveType | RecordSchema | EnumSchema | ArraySchema | str | list[PrimitiveType | RecordSchema | EnumSchema | ArraySchema | str], type: Literal['array'] = 'array', **extra_data: Any)[source]#

Bases: BaseModel

items: PrimitiveType | RecordSchema | EnumSchema | ArraySchema | str | list[PrimitiveType | RecordSchema | EnumSchema | ArraySchema | str]#
model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

type_: Literal['array']#
class gxformat2.schema.native.BaseNativeComment(*, id: int, position: list[float] | None = None, size: list[float] | None = None, color: None | str = None, **extra_data: Any)[source]#

Bases: BaseModel

Base fields shared by all comment types.

color: None | str#
id: int#
model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

position: list[float] | None#
size: list[float] | None#
class gxformat2.schema.native.BaseNativeCreator(*, name: None | str = None, identifier: None | str = None, url: None | str = None, email: None | str = None, image: None | str = None, address: None | str = None, alternateName: None | str = None, telephone: None | str = None, faxNumber: None | str = None, **extra_data: Any)[source]#

Bases: BaseModel

Base fields shared by all creator types, corresponding to schema.org Thing properties common to both Person and Organization.

address: None | str#
alternateName: None | str#
email: None | str#
faxNumber: None | str#
identifier: None | str#
image: None | str#
model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

name: None | str#
telephone: None | str#
url: None | str#
class gxformat2.schema.native.Documented(*, doc: None | str | list[str] = None, **extra_data: Any)[source]#

Bases: BaseModel

doc: None | str | list[str]#
model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class gxformat2.schema.native.EnumSchema(*, symbols: list[str], type: Literal['enum'] = 'enum', **extra_data: Any)[source]#

Bases: BaseModel

Define an enumerated type.

model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

symbols: list[str]#
type_: Literal['enum']#
class gxformat2.schema.native.HasStepErrors(*, errors: None | str = None, **extra_data: Any)[source]#

Bases: BaseModel

errors: None | str#
model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class gxformat2.schema.native.HasStepPosition(*, position: None | StepPosition = None, **extra_data: Any)[source]#

Bases: BaseModel

model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

position: None | StepPosition#
class gxformat2.schema.native.HasUUID(*, uuid: None | str = None, **extra_data: Any)[source]#

Bases: BaseModel

model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

uuid: None | str#
class gxformat2.schema.native.NativeCreatorOrganization(*, name: None | str = None, identifier: None | str = None, url: None | str = None, email: None | str = None, image: None | str = None, address: None | str = None, alternateName: None | str = None, telephone: None | str = None, faxNumber: None | str = None, class_: Literal['Organization'] = 'Organization', **extra_data: Any)[source]#

Bases: BaseNativeCreator

An organization that created or contributed to the workflow. Corresponds to a schema.org Organization.

class_: Literal['Organization']#
model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class gxformat2.schema.native.NativeCreatorPerson(*, name: None | str = None, identifier: None | str = None, url: None | str = None, email: None | str = None, image: None | str = None, address: None | str = None, alternateName: None | str = None, telephone: None | str = None, faxNumber: None | str = None, class_: Literal['Person'] = 'Person', givenName: None | str = None, familyName: None | str = None, honorificPrefix: None | str = None, honorificSuffix: None | str = None, jobTitle: None | str = None, **extra_data: Any)[source]#

Bases: BaseNativeCreator

A person who created or contributed to the workflow. Corresponds to a schema.org Person.

class_: Literal['Person']#
familyName: None | str#
givenName: None | str#
honorificPrefix: None | str#
honorificSuffix: None | str#
jobTitle: None | str#
model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class gxformat2.schema.native.NativeFrameComment(*, id: int, position: list[float] | None = None, size: list[float] | None = None, color: None | str = None, type: Literal['frame'] = 'frame', data: None | NativeFrameCommentData = None, child_steps: None | list[int] = None, child_comments: None | list[int] = None, **extra_data: Any)[source]#

Bases: BaseNativeComment

A rectangular grouping box that visually contains steps and other comments.

child_comments: None | list[int]#
child_steps: None | list[int]#
data: None | NativeFrameCommentData#
model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

type_: Literal['frame']#
class gxformat2.schema.native.NativeFrameCommentData(*, title: None | str = None, **extra_data: Any)[source]#

Bases: BaseModel

Data payload for a frame comment.

model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

title: None | str#
class gxformat2.schema.native.NativeFreehandComment(*, id: int, position: list[float] | None = None, size: list[float] | None = None, color: None | str = None, type: Literal['freehand'] = 'freehand', data: None | NativeFreehandCommentData = None, **extra_data: Any)[source]#

Bases: BaseNativeComment

A freehand drawn line on the editor canvas.

data: None | NativeFreehandCommentData#
model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

type_: Literal['freehand']#
class gxformat2.schema.native.NativeFreehandCommentData(*, line: list[list[float]] | None = None, thickness: None | float | int = None, **extra_data: Any)[source]#

Bases: BaseModel

Data payload for a freehand comment.

line: list[list[float]] | None#
model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

thickness: None | float | int#
class gxformat2.schema.native.NativeGalaxyWorkflow(*, uuid: None | str = None, name: None | str = None, class_: Literal['NativeGalaxyWorkflow'] = 'NativeGalaxyWorkflow', a_galaxy_workflow: Literal['true'], format_version: Literal['0.1'], annotation: None | str = None, tags: None | list[str] = None, version: None | int = None, license: None | str = None, release: None | str = None, creator: list[Annotated[Annotated[NativeCreatorPerson, Tag(tag=NativeCreatorPerson)] | Annotated[NativeCreatorOrganization, Tag(tag=NativeCreatorOrganization)], Discriminator(discriminator=_discriminate_creator, custom_error_type=None, custom_error_message=None, custom_error_context=None)]] | None = None, report: None | NativeReport = None, readme: None | str = None, help: None | str = None, logo_url: None | str = None, doi: None | list[str] = None, source_metadata: None | NativeSourceMetadata = None, comments: list[Annotated[Annotated[NativeTextComment, Tag(tag=NativeTextComment)] | Annotated[NativeMarkdownComment, Tag(tag=NativeMarkdownComment)] | Annotated[NativeFrameComment, Tag(tag=NativeFrameComment)] | Annotated[NativeFreehandComment, Tag(tag=NativeFreehandComment)], Discriminator(discriminator=_discriminate_comments, custom_error_type=None, custom_error_message=None, custom_error_context=None)]] | None = None, steps: dict[str, NativeStep] | None = None, subworkflows: dict[str, NativeGalaxyWorkflow] | None = None, **extra_data: Any)[source]#

Bases: HasUUID

A Galaxy native workflow document (.ga format). This is the canonical serialization format used internally by Galaxy.

The native format mirrors the database schema directly – steps are keyed by numeric IDs, connections reference step IDs, and tool state is stored as double-encoded JSON strings.

The format version has been "0.1" since inception. New features are added without version bumps.

a_galaxy_workflow: Literal['true']#
annotation: None | str#
class_: Literal['NativeGalaxyWorkflow']#
comments: list[Annotated[Annotated[NativeTextComment, Tag('NativeTextComment')] | Annotated[NativeMarkdownComment, Tag('NativeMarkdownComment')] | Annotated[NativeFrameComment, Tag('NativeFrameComment')] | Annotated[NativeFreehandComment, Tag('NativeFreehandComment')], Discriminator(_discriminate_comments)]] | None#
creator: list[Annotated[Annotated[NativeCreatorPerson, Tag('NativeCreatorPerson')] | Annotated[NativeCreatorOrganization, Tag('NativeCreatorOrganization')], Discriminator(_discriminate_creator)]] | None#
doi: None | list[str]#
format_version: Literal['0.1']#
help: None | str#
license: None | str#
logo_url: None | str#
model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

name: None | str#
readme: None | str#
release: None | str#
report: None | NativeReport#
source_metadata: None | NativeSourceMetadata#
steps: dict[str, NativeStep] | None#
subworkflows: dict[str, NativeGalaxyWorkflow] | None#
tags: None | list[str]#
version: None | int#
class gxformat2.schema.native.NativeInputConnection(*, id: int, output_name: str, input_subworkflow_step_id: None | int = None, **extra_data: Any)[source]#

Bases: BaseModel

Describes a connection from one step’s output to another step’s input. These objects appear as values in the input_connections dictionary.

For multi-valued inputs, the value is an array of these objects rather than a single object.

id: int#
input_subworkflow_step_id: None | int#
model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

output_name: str#
class gxformat2.schema.native.NativeMarkdownComment(*, id: int, position: list[float] | None = None, size: list[float] | None = None, color: None | str = None, type: Literal['markdown'] = 'markdown', data: None | NativeMarkdownCommentData = None, **extra_data: Any)[source]#

Bases: BaseNativeComment

A Markdown-rendered annotation in the workflow editor.

data: None | NativeMarkdownCommentData#
model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

type_: Literal['markdown']#
class gxformat2.schema.native.NativeMarkdownCommentData(*, text: None | str = None, **extra_data: Any)[source]#

Bases: BaseModel

Data payload for a markdown comment.

model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

text: None | str#
class gxformat2.schema.native.NativePostJobAction(*, action_type: str, output_name: str | None = None, action_arguments: dict[str, Any] | None = None, **extra_data: Any)[source]#

Bases: BaseModel

An action applied to a step’s output after tool execution. These objects appear as values in the post_job_actions dictionary, keyed by compound strings of the form {ActionType}{OutputName} (e.g. HideDatasetActionout_pairs).

Common action types: HideDatasetAction, RenameDatasetAction, DeleteIntermediatesAction, ChangeDatatypeAction, TagDatasetAction, ColumnSetAction.

action_arguments: dict[str, Any] | None#
action_type: str#
model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

output_name: str | None#
class gxformat2.schema.native.NativeReport(*, markdown: str, **extra_data: Any)[source]#

Bases: BaseModel

Workflow invocation report template.

markdown: str#
model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class gxformat2.schema.native.NativeSourceMetadata(*, url: None | str = None, trs_tool_id: None | str = None, trs_version_id: None | str = None, trs_server: None | str = None, trs_url: None | str = None, **extra_data: Any)[source]#

Bases: BaseModel

Provenance tracking for workflows imported from external sources. Contains either a direct URL or TRS (Tool Registry Service) metadata, depending on how the workflow was imported.

For URL imports, only url is set. For TRS imports (Dockstore, WorkflowHub), trs_tool_id, trs_version_id, and trs_url are set, with trs_server optionally identifying the server.

model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

trs_server: None | str#
trs_tool_id: None | str#
trs_url: None | str#
trs_version_id: None | str#
url: None | str#
class gxformat2.schema.native.NativeStep(*, tool_id: None | str = None, tool_shed_repository: None | ToolShedRepository = None, tool_version: None | str = None, uuid: None | str = None, position: None | StepPosition = None, errors: None | str = None, name: None | str = None, id: None | int = None, type: None | NativeStepType = None, label: None | str = None, annotation: None | str = None, when: None | str = None, content_id: None | str = None, tool_state: str | dict[str, Any] | None = None, tool_uuid: None | str = None, input_connections: dict[str, NativeInputConnection | list[NativeInputConnection]] | None = None, inputs: None | list[NativeStepInput] = None, outputs: None | list[NativeStepOutput] = None, workflow_outputs: None | list[NativeWorkflowOutput] = None, post_job_actions: dict[str, NativePostJobAction] | None = None, subworkflow: NativeGalaxyWorkflow | None = None, tool_representation: dict[str, Any] | None = None, in_: dict[str, Any] | None = None, **extra_data: Any)[source]#

Bases: HasStepErrors, HasStepPosition, HasUUID, ReferencesTool

A step in a native Galaxy workflow. Steps are keyed by string integers ("0", "1", …) in the steps dictionary. The key serves as an external ID for connection wiring.

The type field determines the step’s behavior. All step types share common fields; type-specific fields are optional and only relevant for their respective type.

# Tool State

The tool_state field contains the tool’s parameter configuration. Traditionally this is a JSON-encoded string (double-encoded: each top-level value is itself a JSON string), but it may also be a plain dictionary when unencoded tool state is used. Connected parameters are represented as {"__class__": "ConnectedValue"}, runtime parameters as {"__class__": "RuntimeValue"}.

annotation: None | str#
content_id: None | str#
id: None | int#
in_: dict[str, Any] | None#
input_connections: dict[str, NativeInputConnection | list[NativeInputConnection]] | None#
inputs: None | list[NativeStepInput]#
label: None | str#
model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

name: None | str#
outputs: None | list[NativeStepOutput]#
post_job_actions: dict[str, NativePostJobAction] | None#
subworkflow: NativeGalaxyWorkflow | None#
tool_representation: dict[str, Any] | None#
tool_state: str | dict[str, Any] | None#
tool_uuid: None | str#
type_: None | NativeStepType#
when: None | str#
workflow_outputs: None | list[NativeWorkflowOutput]#
class gxformat2.schema.native.NativeStepInput(*, name: str, description: None | str = None, **extra_data: Any)[source]#

Bases: BaseModel

Describes an input parameter on a step. This is metadata about the input, not the connection wiring (which is in input_connections).

description: None | str#
model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

name: str#
class gxformat2.schema.native.NativeStepOutput(*, name: str, type: None | str = None, **extra_data: Any)[source]#

Bases: BaseModel

Declares an output produced by a step, with its name and datatype.

model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

name: str#
type_: None | str#
class gxformat2.schema.native.NativeStepType(*values)[source]#

Bases: str, Enum

Step module types in the native Galaxy workflow format. data_input: A single dataset input to the workflow. data_collection_input: A dataset collection input to the workflow. parameter_input: A typed parameter input (text, integer, float, boolean, color). tool: A Galaxy tool execution step. subworkflow: An embedded or referenced sub-workflow. pause: A manual pause point that halts execution until user intervention. pick_value: Select the first non-null value from multiple inputs.

data_collection_input = 'data_collection_input'#
data_input = 'data_input'#
parameter_input = 'parameter_input'#
pause = 'pause'#
pick_value = 'pick_value'#
subworkflow = 'subworkflow'#
tool = 'tool'#
class gxformat2.schema.native.NativeTextComment(*, id: int, position: list[float] | None = None, size: list[float] | None = None, color: None | str = None, type: Literal['text'] = 'text', data: None | NativeTextCommentData = None, **extra_data: Any)[source]#

Bases: BaseNativeComment

A plain text annotation in the workflow editor.

data: None | NativeTextCommentData#
model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

type_: Literal['text']#
class gxformat2.schema.native.NativeTextCommentData(*, text: None | str = None, bold: None | bool = None, italic: None | bool = None, size: None | float | int = None, **extra_data: Any)[source]#

Bases: BaseModel

Data payload for a text comment.

bold: None | bool#
italic: None | bool#
model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

size: None | float | int#
text: None | str#
class gxformat2.schema.native.NativeWorkflowOutput(*, label: None | str = None, output_name: str, uuid: None | str = None, **extra_data: Any)[source]#

Bases: BaseModel

Designates a step output as a workflow-level output. These appear in the workflow_outputs array on each step.

label: None | str#
model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

output_name: str#
uuid: None | str#
class gxformat2.schema.native.PrimitiveType(*values)[source]#

Bases: str, Enum

Salad data types are based on Avro schema declarations. Refer to the [Avro schema declaration documentation](https://avro.apache.org/docs/current/spec.html#schemas) for detailed information.

null: no value boolean: a binary value int: 32-bit signed integer long: 64-bit signed integer float: single precision (32-bit) IEEE 754 floating-point number double: double precision (64-bit) IEEE 754 floating-point number string: Unicode character sequence

boolean = 'boolean'#
double = 'double'#
float = 'float'#
int = 'int'#
long = 'long'#
null = 'null'#
string = 'string'#
class gxformat2.schema.native.RecordField(*, doc: None | str | list[str] = None, name: str, type: PrimitiveType | RecordSchema | EnumSchema | ArraySchema | str | list[PrimitiveType | RecordSchema | EnumSchema | ArraySchema | str], **extra_data: Any)[source]#

Bases: Documented

A field of a record.

model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

name: str#
type_: PrimitiveType | RecordSchema | EnumSchema | ArraySchema | str | list[PrimitiveType | RecordSchema | EnumSchema | ArraySchema | str]#
class gxformat2.schema.native.RecordFieldDefinition(*, name: str, type: Literal['File', 'null', 'boolean', 'int', 'float', 'string'] | list[Literal['File', 'null', 'boolean', 'int', 'float', 'string']] = 'File', format: None | str = None, **extra_data: Any)[source]#

Bases: BaseModel

Describes one field of a record collection input. Used in fields on a collection_type containing record (e.g. record, list:record, sample_sheet:record). Mirrors a subset of the CWL InputRecordSchema shape that Galaxy persists on DatasetCollection.fields.

format: None | str#
model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

name: str#
type_: Literal['File', 'null', 'boolean', 'int', 'float', 'string'] | list[Literal['File', 'null', 'boolean', 'int', 'float', 'string']]#
class gxformat2.schema.native.RecordSchema(*, fields: None | list[RecordField] = None, type: Literal['record'] = 'record', **extra_data: Any)[source]#

Bases: BaseModel

fields: None | list[RecordField]#
model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

type_: Literal['record']#
class gxformat2.schema.native.ReferencesTool(*, tool_id: None | str = None, tool_shed_repository: None | ToolShedRepository = None, tool_version: None | str = None, **extra_data: Any)[source]#

Bases: BaseModel

model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

tool_id: None | str#
tool_shed_repository: None | ToolShedRepository#
tool_version: None | str#
class gxformat2.schema.native.SampleSheetColumnDefinition(*, name: str, description: None | str = None, type: Literal['string', 'int', 'float', 'boolean', 'element_identifier'] = 'string', optional: bool, default_value: None | str | int | float | bool = None, validators: None | list[Any] = None, restrictions: None | list[str | int | float | bool] = None, suggestions: None | list[str | int | float | bool] = None, **extra_data: Any)[source]#

Bases: BaseModel

Describes one column of a sample-sheet collection input. Used in column_definitions on a collection_type: sample_sheet[:<type>] workflow input.

default_value: None | str | int | float | bool#
description: None | str#
model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

name: str#
optional: bool#
restrictions: None | list[str | int | float | bool]#
suggestions: None | list[str | int | float | bool]#
type_: Literal['string', 'int', 'float', 'boolean', 'element_identifier']#
validators: None | list[Any]#
class gxformat2.schema.native.StepPosition(*, top: float | int, left: float | int, **extra_data: Any)[source]#

Bases: BaseModel

This field specifies the location of the step’s node when rendered in the workflow editor.

left: float | int#
model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

top: float | int#
class gxformat2.schema.native.ToolShedRepository(*, name: str, changeset_revision: str, owner: str, tool_shed: str, **extra_data: Any)[source]#

Bases: BaseModel

changeset_revision: str#
model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

name: str#
owner: str#
tool_shed: str#
class gxformat2.schema.native.WorkflowTextOption(*, value: str, label: None | str = None, **extra_data: Any)[source]#

Bases: BaseModel

A {value, label} option used in restrictions or suggestions on a text workflow parameter. Plain strings are also accepted in those arrays as shorthand for {value: <str>, label: <str>}.

label: None | str#
model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

value: str#
gxformat2.schema.native.load_document(path: str | Path) NativeGalaxyWorkflow | list[NativeGalaxyWorkflow][source]#

Load and validate a document from a JSON file.

gxformat2.schema.native.parser_info() str[source]#

gxformat2.schema.native_strict module#

class gxformat2.schema.native_strict.ArraySchema(*, items: PrimitiveType | RecordSchema | EnumSchema | ArraySchema | str | list[PrimitiveType | RecordSchema | EnumSchema | ArraySchema | str], type: Literal['array'] = 'array')[source]#

Bases: BaseModel

items: PrimitiveType | RecordSchema | EnumSchema | ArraySchema | str | list[PrimitiveType | RecordSchema | EnumSchema | ArraySchema | str]#
model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

type_: Literal['array']#
class gxformat2.schema.native_strict.BaseNativeComment(*, id: int, position: list[float] | None = None, size: list[float] | None = None, color: None | str = None)[source]#

Bases: BaseModel

Base fields shared by all comment types.

color: None | str#
id: int#
model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

position: list[float] | None#
size: list[float] | None#
class gxformat2.schema.native_strict.BaseNativeCreator(*, name: None | str = None, identifier: None | str = None, url: None | str = None, email: None | str = None, image: None | str = None, address: None | str = None, alternateName: None | str = None, telephone: None | str = None, faxNumber: None | str = None)[source]#

Bases: BaseModel

Base fields shared by all creator types, corresponding to schema.org Thing properties common to both Person and Organization.

address: None | str#
alternateName: None | str#
email: None | str#
faxNumber: None | str#
identifier: None | str#
image: None | str#
model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

name: None | str#
telephone: None | str#
url: None | str#
class gxformat2.schema.native_strict.Documented(*, doc: None | str | list[str] = None)[source]#

Bases: BaseModel

doc: None | str | list[str]#
model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class gxformat2.schema.native_strict.EnumSchema(*, symbols: list[str], type: Literal['enum'] = 'enum')[source]#

Bases: BaseModel

Define an enumerated type.

model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

symbols: list[str]#
type_: Literal['enum']#
class gxformat2.schema.native_strict.HasStepErrors(*, errors: None | str = None)[source]#

Bases: BaseModel

errors: None | str#
model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class gxformat2.schema.native_strict.HasStepPosition(*, position: None | StepPosition = None)[source]#

Bases: BaseModel

model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

position: None | StepPosition#
class gxformat2.schema.native_strict.HasUUID(*, uuid: None | str = None)[source]#

Bases: BaseModel

model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

uuid: None | str#
class gxformat2.schema.native_strict.NativeCreatorOrganization(*, name: None | str = None, identifier: None | str = None, url: None | str = None, email: None | str = None, image: None | str = None, address: None | str = None, alternateName: None | str = None, telephone: None | str = None, faxNumber: None | str = None, class_: Literal['Organization'] = 'Organization')[source]#

Bases: BaseNativeCreator

An organization that created or contributed to the workflow. Corresponds to a schema.org Organization.

class_: Literal['Organization']#
model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class gxformat2.schema.native_strict.NativeCreatorPerson(*, name: None | str = None, identifier: None | str = None, url: None | str = None, email: None | str = None, image: None | str = None, address: None | str = None, alternateName: None | str = None, telephone: None | str = None, faxNumber: None | str = None, class_: Literal['Person'] = 'Person', givenName: None | str = None, familyName: None | str = None, honorificPrefix: None | str = None, honorificSuffix: None | str = None, jobTitle: None | str = None)[source]#

Bases: BaseNativeCreator

A person who created or contributed to the workflow. Corresponds to a schema.org Person.

class_: Literal['Person']#
familyName: None | str#
givenName: None | str#
honorificPrefix: None | str#
honorificSuffix: None | str#
jobTitle: None | str#
model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class gxformat2.schema.native_strict.NativeFrameComment(*, id: int, position: list[float] | None = None, size: list[float] | None = None, color: None | str = None, type: Literal['frame'] = 'frame', data: None | NativeFrameCommentData = None, child_steps: None | list[int] = None, child_comments: None | list[int] = None)[source]#

Bases: BaseNativeComment

A rectangular grouping box that visually contains steps and other comments.

child_comments: None | list[int]#
child_steps: None | list[int]#
data: None | NativeFrameCommentData#
model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

type_: Literal['frame']#
class gxformat2.schema.native_strict.NativeFrameCommentData(*, title: None | str = None)[source]#

Bases: BaseModel

Data payload for a frame comment.

model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

title: None | str#
class gxformat2.schema.native_strict.NativeFreehandComment(*, id: int, position: list[float] | None = None, size: list[float] | None = None, color: None | str = None, type: Literal['freehand'] = 'freehand', data: None | NativeFreehandCommentData = None)[source]#

Bases: BaseNativeComment

A freehand drawn line on the editor canvas.

data: None | NativeFreehandCommentData#
model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

type_: Literal['freehand']#
class gxformat2.schema.native_strict.NativeFreehandCommentData(*, line: list[list[float]] | None = None, thickness: None | float | int = None)[source]#

Bases: BaseModel

Data payload for a freehand comment.

line: list[list[float]] | None#
model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

thickness: None | float | int#
class gxformat2.schema.native_strict.NativeGalaxyWorkflow(*, uuid: None | str = None, name: None | str = None, class_: Literal['NativeGalaxyWorkflow'] = 'NativeGalaxyWorkflow', a_galaxy_workflow: Literal['true'], format_version: Literal['0.1'], annotation: None | str = None, tags: None | list[str] = None, version: None | int = None, license: None | str = None, release: None | str = None, creator: list[Annotated[Annotated[NativeCreatorPerson, Tag(tag=NativeCreatorPerson)] | Annotated[NativeCreatorOrganization, Tag(tag=NativeCreatorOrganization)], Discriminator(discriminator=_discriminate_creator, custom_error_type=None, custom_error_message=None, custom_error_context=None)]] | None = None, report: None | NativeReport = None, readme: None | str = None, help: None | str = None, logo_url: None | str = None, doi: None | list[str] = None, source_metadata: None | NativeSourceMetadata = None, comments: list[Annotated[Annotated[NativeTextComment, Tag(tag=NativeTextComment)] | Annotated[NativeMarkdownComment, Tag(tag=NativeMarkdownComment)] | Annotated[NativeFrameComment, Tag(tag=NativeFrameComment)] | Annotated[NativeFreehandComment, Tag(tag=NativeFreehandComment)], Discriminator(discriminator=_discriminate_comments, custom_error_type=None, custom_error_message=None, custom_error_context=None)]] | None = None, steps: dict[str, NativeStep] | None = None, subworkflows: dict[str, NativeGalaxyWorkflow] | None = None)[source]#

Bases: HasUUID

A Galaxy native workflow document (.ga format). This is the canonical serialization format used internally by Galaxy.

The native format mirrors the database schema directly – steps are keyed by numeric IDs, connections reference step IDs, and tool state is stored as double-encoded JSON strings.

The format version has been "0.1" since inception. New features are added without version bumps.

a_galaxy_workflow: Literal['true']#
annotation: None | str#
class_: Literal['NativeGalaxyWorkflow']#
comments: list[Annotated[Annotated[NativeTextComment, Tag('NativeTextComment')] | Annotated[NativeMarkdownComment, Tag('NativeMarkdownComment')] | Annotated[NativeFrameComment, Tag('NativeFrameComment')] | Annotated[NativeFreehandComment, Tag('NativeFreehandComment')], Discriminator(_discriminate_comments)]] | None#
creator: list[Annotated[Annotated[NativeCreatorPerson, Tag('NativeCreatorPerson')] | Annotated[NativeCreatorOrganization, Tag('NativeCreatorOrganization')], Discriminator(_discriminate_creator)]] | None#
doi: None | list[str]#
format_version: Literal['0.1']#
help: None | str#
license: None | str#
logo_url: None | str#
model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

name: None | str#
readme: None | str#
release: None | str#
report: None | NativeReport#
source_metadata: None | NativeSourceMetadata#
steps: dict[str, NativeStep] | None#
subworkflows: dict[str, NativeGalaxyWorkflow] | None#
tags: None | list[str]#
version: None | int#
class gxformat2.schema.native_strict.NativeInputConnection(*, id: int, output_name: str, input_subworkflow_step_id: None | int = None)[source]#

Bases: BaseModel

Describes a connection from one step’s output to another step’s input. These objects appear as values in the input_connections dictionary.

For multi-valued inputs, the value is an array of these objects rather than a single object.

id: int#
input_subworkflow_step_id: None | int#
model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

output_name: str#
class gxformat2.schema.native_strict.NativeMarkdownComment(*, id: int, position: list[float] | None = None, size: list[float] | None = None, color: None | str = None, type: Literal['markdown'] = 'markdown', data: None | NativeMarkdownCommentData = None)[source]#

Bases: BaseNativeComment

A Markdown-rendered annotation in the workflow editor.

data: None | NativeMarkdownCommentData#
model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

type_: Literal['markdown']#
class gxformat2.schema.native_strict.NativeMarkdownCommentData(*, text: None | str = None)[source]#

Bases: BaseModel

Data payload for a markdown comment.

model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

text: None | str#
class gxformat2.schema.native_strict.NativePostJobAction(*, action_type: str, output_name: str | None = None, action_arguments: dict[str, Any] | None = None)[source]#

Bases: BaseModel

An action applied to a step’s output after tool execution. These objects appear as values in the post_job_actions dictionary, keyed by compound strings of the form {ActionType}{OutputName} (e.g. HideDatasetActionout_pairs).

Common action types: HideDatasetAction, RenameDatasetAction, DeleteIntermediatesAction, ChangeDatatypeAction, TagDatasetAction, ColumnSetAction.

action_arguments: dict[str, Any] | None#
action_type: str#
model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

output_name: str | None#
class gxformat2.schema.native_strict.NativeReport(*, markdown: str)[source]#

Bases: BaseModel

Workflow invocation report template.

markdown: str#
model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class gxformat2.schema.native_strict.NativeSourceMetadata(*, url: None | str = None, trs_tool_id: None | str = None, trs_version_id: None | str = None, trs_server: None | str = None, trs_url: None | str = None)[source]#

Bases: BaseModel

Provenance tracking for workflows imported from external sources. Contains either a direct URL or TRS (Tool Registry Service) metadata, depending on how the workflow was imported.

For URL imports, only url is set. For TRS imports (Dockstore, WorkflowHub), trs_tool_id, trs_version_id, and trs_url are set, with trs_server optionally identifying the server.

model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

trs_server: None | str#
trs_tool_id: None | str#
trs_url: None | str#
trs_version_id: None | str#
url: None | str#
class gxformat2.schema.native_strict.NativeStep(*, tool_id: None | str = None, tool_shed_repository: None | ToolShedRepository = None, tool_version: None | str = None, uuid: None | str = None, position: None | StepPosition = None, errors: None | str = None, name: None | str = None, id: None | int = None, type: None | NativeStepType = None, label: None | str = None, annotation: None | str = None, when: None | str = None, content_id: None | str = None, tool_state: str | dict[str, Any] | None = None, tool_uuid: None | str = None, input_connections: dict[str, NativeInputConnection | list[NativeInputConnection]] | None = None, inputs: None | list[NativeStepInput] = None, outputs: None | list[NativeStepOutput] = None, workflow_outputs: None | list[NativeWorkflowOutput] = None, post_job_actions: dict[str, NativePostJobAction] | None = None, subworkflow: NativeGalaxyWorkflow | None = None, tool_representation: dict[str, Any] | None = None, in_: dict[str, Any] | None = None)[source]#

Bases: HasStepErrors, HasStepPosition, HasUUID, ReferencesTool

A step in a native Galaxy workflow. Steps are keyed by string integers ("0", "1", …) in the steps dictionary. The key serves as an external ID for connection wiring.

The type field determines the step’s behavior. All step types share common fields; type-specific fields are optional and only relevant for their respective type.

# Tool State

The tool_state field contains the tool’s parameter configuration. Traditionally this is a JSON-encoded string (double-encoded: each top-level value is itself a JSON string), but it may also be a plain dictionary when unencoded tool state is used. Connected parameters are represented as {"__class__": "ConnectedValue"}, runtime parameters as {"__class__": "RuntimeValue"}.

annotation: None | str#
content_id: None | str#
id: None | int#
in_: dict[str, Any] | None#
input_connections: dict[str, NativeInputConnection | list[NativeInputConnection]] | None#
inputs: None | list[NativeStepInput]#
label: None | str#
model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

name: None | str#
outputs: None | list[NativeStepOutput]#
post_job_actions: dict[str, NativePostJobAction] | None#
subworkflow: NativeGalaxyWorkflow | None#
tool_representation: dict[str, Any] | None#
tool_state: str | dict[str, Any] | None#
tool_uuid: None | str#
type_: None | NativeStepType#
when: None | str#
workflow_outputs: None | list[NativeWorkflowOutput]#
class gxformat2.schema.native_strict.NativeStepInput(*, name: str, description: None | str = None)[source]#

Bases: BaseModel

Describes an input parameter on a step. This is metadata about the input, not the connection wiring (which is in input_connections).

description: None | str#
model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

name: str#
class gxformat2.schema.native_strict.NativeStepOutput(*, name: str, type: None | str = None)[source]#

Bases: BaseModel

Declares an output produced by a step, with its name and datatype.

model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

name: str#
type_: None | str#
class gxformat2.schema.native_strict.NativeStepType(*values)[source]#

Bases: str, Enum

Step module types in the native Galaxy workflow format. data_input: A single dataset input to the workflow. data_collection_input: A dataset collection input to the workflow. parameter_input: A typed parameter input (text, integer, float, boolean, color). tool: A Galaxy tool execution step. subworkflow: An embedded or referenced sub-workflow. pause: A manual pause point that halts execution until user intervention. pick_value: Select the first non-null value from multiple inputs.

data_collection_input = 'data_collection_input'#
data_input = 'data_input'#
parameter_input = 'parameter_input'#
pause = 'pause'#
pick_value = 'pick_value'#
subworkflow = 'subworkflow'#
tool = 'tool'#
class gxformat2.schema.native_strict.NativeTextComment(*, id: int, position: list[float] | None = None, size: list[float] | None = None, color: None | str = None, type: Literal['text'] = 'text', data: None | NativeTextCommentData = None)[source]#

Bases: BaseNativeComment

A plain text annotation in the workflow editor.

data: None | NativeTextCommentData#
model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

type_: Literal['text']#
class gxformat2.schema.native_strict.NativeTextCommentData(*, text: None | str = None, bold: None | bool = None, italic: None | bool = None, size: None | float | int = None)[source]#

Bases: BaseModel

Data payload for a text comment.

bold: None | bool#
italic: None | bool#
model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

size: None | float | int#
text: None | str#
class gxformat2.schema.native_strict.NativeWorkflowOutput(*, label: None | str = None, output_name: str, uuid: None | str = None)[source]#

Bases: BaseModel

Designates a step output as a workflow-level output. These appear in the workflow_outputs array on each step.

label: None | str#
model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

output_name: str#
uuid: None | str#
class gxformat2.schema.native_strict.PrimitiveType(*values)[source]#

Bases: str, Enum

Salad data types are based on Avro schema declarations. Refer to the [Avro schema declaration documentation](https://avro.apache.org/docs/current/spec.html#schemas) for detailed information.

null: no value boolean: a binary value int: 32-bit signed integer long: 64-bit signed integer float: single precision (32-bit) IEEE 754 floating-point number double: double precision (64-bit) IEEE 754 floating-point number string: Unicode character sequence

boolean = 'boolean'#
double = 'double'#
float = 'float'#
int = 'int'#
long = 'long'#
null = 'null'#
string = 'string'#
class gxformat2.schema.native_strict.RecordField(*, doc: None | str | list[str] = None, name: str, type: PrimitiveType | RecordSchema | EnumSchema | ArraySchema | str | list[PrimitiveType | RecordSchema | EnumSchema | ArraySchema | str])[source]#

Bases: Documented

A field of a record.

model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

name: str#
type_: PrimitiveType | RecordSchema | EnumSchema | ArraySchema | str | list[PrimitiveType | RecordSchema | EnumSchema | ArraySchema | str]#
class gxformat2.schema.native_strict.RecordFieldDefinition(*, name: str, type: Literal['File', 'null', 'boolean', 'int', 'float', 'string'] | list[Literal['File', 'null', 'boolean', 'int', 'float', 'string']] = 'File', format: None | str = None)[source]#

Bases: BaseModel

Describes one field of a record collection input. Used in fields on a collection_type containing record (e.g. record, list:record, sample_sheet:record). Mirrors a subset of the CWL InputRecordSchema shape that Galaxy persists on DatasetCollection.fields.

format: None | str#
model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

name: str#
type_: Literal['File', 'null', 'boolean', 'int', 'float', 'string'] | list[Literal['File', 'null', 'boolean', 'int', 'float', 'string']]#
class gxformat2.schema.native_strict.RecordSchema(*, fields: None | list[RecordField] = None, type: Literal['record'] = 'record')[source]#

Bases: BaseModel

fields: None | list[RecordField]#
model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

type_: Literal['record']#
class gxformat2.schema.native_strict.ReferencesTool(*, tool_id: None | str = None, tool_shed_repository: None | ToolShedRepository = None, tool_version: None | str = None)[source]#

Bases: BaseModel

model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

tool_id: None | str#
tool_shed_repository: None | ToolShedRepository#
tool_version: None | str#
class gxformat2.schema.native_strict.SampleSheetColumnDefinition(*, name: str, description: None | str = None, type: Literal['string', 'int', 'float', 'boolean', 'element_identifier'] = 'string', optional: bool, default_value: None | str | int | float | bool = None, validators: None | list[Any] = None, restrictions: None | list[str | int | float | bool] = None, suggestions: None | list[str | int | float | bool] = None)[source]#

Bases: BaseModel

Describes one column of a sample-sheet collection input. Used in column_definitions on a collection_type: sample_sheet[:<type>] workflow input.

default_value: None | str | int | float | bool#
description: None | str#
model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

name: str#
optional: bool#
restrictions: None | list[str | int | float | bool]#
suggestions: None | list[str | int | float | bool]#
type_: Literal['string', 'int', 'float', 'boolean', 'element_identifier']#
validators: None | list[Any]#
class gxformat2.schema.native_strict.StepPosition(*, top: float | int, left: float | int)[source]#

Bases: BaseModel

This field specifies the location of the step’s node when rendered in the workflow editor.

left: float | int#
model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

top: float | int#
class gxformat2.schema.native_strict.ToolShedRepository(*, name: str, changeset_revision: str, owner: str, tool_shed: str)[source]#

Bases: BaseModel

changeset_revision: str#
model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

name: str#
owner: str#
tool_shed: str#
class gxformat2.schema.native_strict.WorkflowTextOption(*, value: str, label: None | str = None)[source]#

Bases: BaseModel

A {value, label} option used in restrictions or suggestions on a text workflow parameter. Plain strings are also accepted in those arrays as shorthand for {value: <str>, label: <str>}.

label: None | str#
model_config = {'extra': 'forbid', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

value: str#
gxformat2.schema.native_strict.load_document(path: str | Path) NativeGalaxyWorkflow | list[NativeGalaxyWorkflow][source]#

Load and validate a document from a JSON file.

gxformat2.schema.native_strict.parser_info() str[source]#

gxformat2.schema.native_v0_1 module#

gxformat2.schema.native_v0_1.AnyLoader = Any#

The Any type validates for any non-null value.

class gxformat2.schema.native_v0_1.ArraySchema(items: Any, type_: Any, extension_fields: dict[str, Any] | None = None, loadingOptions: LoadingOptions | None = None)[source]#

Bases: Saveable

attrs = frozenset({'items', 'type'})#
classmethod fromDoc(doc: Any, baseuri: str, loadingOptions: LoadingOptions, docRoot: str | None = None) ArraySchema[source]#

Construct this object from the result of yaml.load().

save(top: bool = False, base_url: str = '', relative_uris: bool = True) dict[str, Any][source]#

Convert this object to a JSON/YAML friendly dictionary.

class gxformat2.schema.native_v0_1.BaseNativeComment[source]#

Bases: Saveable

Base fields shared by all comment types.

class gxformat2.schema.native_v0_1.BaseNativeCreator[source]#

Bases: Saveable

Base fields shared by all creator types, corresponding to schema.org Thing properties common to both Person and Organization.

class gxformat2.schema.native_v0_1.Documented[source]#

Bases: Saveable

class gxformat2.schema.native_v0_1.EnumSchema(symbols: Any, type_: Any, extension_fields: dict[str, Any] | None = None, loadingOptions: LoadingOptions | None = None)[source]#

Bases: Saveable

Define an enumerated type.

attrs = frozenset({'symbols', 'type'})#
classmethod fromDoc(doc: Any, baseuri: str, loadingOptions: LoadingOptions, docRoot: str | None = None) EnumSchema[source]#

Construct this object from the result of yaml.load().

save(top: bool = False, base_url: str = '', relative_uris: bool = True) dict[str, Any][source]#

Convert this object to a JSON/YAML friendly dictionary.

class gxformat2.schema.native_v0_1.HasStepErrors[source]#

Bases: Saveable

class gxformat2.schema.native_v0_1.HasStepPosition[source]#

Bases: Saveable

class gxformat2.schema.native_v0_1.HasUUID[source]#

Bases: Saveable

class gxformat2.schema.native_v0_1.LoadingOptions(fetcher: Fetcher | None = None, namespaces: dict[str, str] | None = None, schemas: list[str] | None = None, fileuri: str | None = None, copyfrom: LoadingOptions | None = None, original_doc: Any | None = None, addl_metadata: dict[str, str] | None = None, baseuri: str | None = None, idx: MutableMapping[str, tuple[Any, LoadingOptions]] | None = None, imports: list[str] | None = None, includes: list[str] | None = None, no_link_check: bool | None = None, container: str | None = None)[source]#

Bases: object

addl_metadata: Final[MutableMapping[str, Any]]#
baseuri: Final[str]#
cache: Final[dict[str, str | Graph | bool]]#
container: Final[str | None]#
fetcher: Final[Fetcher]#
fileuri: Final[str | None]#
property graph: Graph#

Generate a merged rdflib.Graph from all entries in self.schemas.

idx: Final[MutableMapping[str, tuple[Any, LoadingOptions]]]#
imports: Final[list[str]]#
includes: Final[list[str]]#
namespaces: Final[MutableMapping[str, str]]#
original_doc: Final[Any | None]#
rvocab: Final[dict[str, str]]#
schemas: Final[MutableSequence[str]]#
vocab: Final[dict[str, str]]#
class gxformat2.schema.native_v0_1.NativeCreatorOrganization(name: Any | None = None, identifier: Any | None = None, url: Any | None = None, email: Any | None = None, image: Any | None = None, address: Any | None = None, alternateName: Any | None = None, telephone: Any | None = None, faxNumber: Any | None = None, extension_fields: dict[str, Any] | None = None, loadingOptions: LoadingOptions | None = None)[source]#

Bases: BaseNativeCreator

An organization that created or contributed to the workflow. Corresponds to a schema.org Organization.

attrs = frozenset({'address', 'alternateName', 'class', 'email', 'faxNumber', 'identifier', 'image', 'name', 'telephone', 'url'})#
classmethod fromDoc(doc: Any, baseuri: str, loadingOptions: LoadingOptions, docRoot: str | None = None) NativeCreatorOrganization[source]#

Construct this object from the result of yaml.load().

name: str#
save(top: bool = False, base_url: str = '', relative_uris: bool = True) dict[str, Any][source]#

Convert this object to a JSON/YAML friendly dictionary.

gxformat2.schema.native_v0_1.NativeCreatorOrganizationTypeLoader = NativeCreatorOrganizationType#

Discriminator for schema.org Organization creators.

class gxformat2.schema.native_v0_1.NativeCreatorPerson(name: Any | None = None, identifier: Any | None = None, url: Any | None = None, email: Any | None = None, image: Any | None = None, address: Any | None = None, alternateName: Any | None = None, telephone: Any | None = None, faxNumber: Any | None = None, givenName: Any | None = None, familyName: Any | None = None, honorificPrefix: Any | None = None, honorificSuffix: Any | None = None, jobTitle: Any | None = None, extension_fields: dict[str, Any] | None = None, loadingOptions: LoadingOptions | None = None)[source]#

Bases: BaseNativeCreator

A person who created or contributed to the workflow. Corresponds to a schema.org Person.

attrs = frozenset({'address', 'alternateName', 'class', 'email', 'familyName', 'faxNumber', 'givenName', 'honorificPrefix', 'honorificSuffix', 'identifier', 'image', 'jobTitle', 'name', 'telephone', 'url'})#
classmethod fromDoc(doc: Any, baseuri: str, loadingOptions: LoadingOptions, docRoot: str | None = None) NativeCreatorPerson[source]#

Construct this object from the result of yaml.load().

name: str#
save(top: bool = False, base_url: str = '', relative_uris: bool = True) dict[str, Any][source]#

Convert this object to a JSON/YAML friendly dictionary.

gxformat2.schema.native_v0_1.NativeCreatorPersonTypeLoader = NativeCreatorPersonType#

Discriminator for schema.org Person creators.

class gxformat2.schema.native_v0_1.NativeFrameComment(id: Any, type_: Any, position: Any | None = None, size: Any | None = None, color: Any | None = None, data: Any | None = None, child_steps: Any | None = None, child_comments: Any | None = None, extension_fields: dict[str, Any] | None = None, loadingOptions: LoadingOptions | None = None)[source]#

Bases: BaseNativeComment

A rectangular grouping box that visually contains steps and other comments.

attrs = frozenset({'child_comments', 'child_steps', 'color', 'data', 'id', 'position', 'size', 'type'})#
classmethod fromDoc(doc: Any, baseuri: str, loadingOptions: LoadingOptions, docRoot: str | None = None) NativeFrameComment[source]#

Construct this object from the result of yaml.load().

save(top: bool = False, base_url: str = '', relative_uris: bool = True) dict[str, Any][source]#

Convert this object to a JSON/YAML friendly dictionary.

class gxformat2.schema.native_v0_1.NativeFrameCommentData(title: Any | None = None, extension_fields: dict[str, Any] | None = None, loadingOptions: LoadingOptions | None = None)[source]#

Bases: Saveable

Data payload for a frame comment.

attrs = frozenset({'title'})#
classmethod fromDoc(doc: Any, baseuri: str, loadingOptions: LoadingOptions, docRoot: str | None = None) NativeFrameCommentData[source]#

Construct this object from the result of yaml.load().

save(top: bool = False, base_url: str = '', relative_uris: bool = True) dict[str, Any][source]#

Convert this object to a JSON/YAML friendly dictionary.

class gxformat2.schema.native_v0_1.NativeFreehandComment(id: Any, type_: Any, position: Any | None = None, size: Any | None = None, color: Any | None = None, data: Any | None = None, extension_fields: dict[str, Any] | None = None, loadingOptions: LoadingOptions | None = None)[source]#

Bases: BaseNativeComment

A freehand drawn line on the editor canvas.

attrs = frozenset({'color', 'data', 'id', 'position', 'size', 'type'})#
classmethod fromDoc(doc: Any, baseuri: str, loadingOptions: LoadingOptions, docRoot: str | None = None) NativeFreehandComment[source]#

Construct this object from the result of yaml.load().

save(top: bool = False, base_url: str = '', relative_uris: bool = True) dict[str, Any][source]#

Convert this object to a JSON/YAML friendly dictionary.

class gxformat2.schema.native_v0_1.NativeFreehandCommentData(line: Any | None = None, thickness: Any | None = None, extension_fields: dict[str, Any] | None = None, loadingOptions: LoadingOptions | None = None)[source]#

Bases: Saveable

Data payload for a freehand comment.

attrs = frozenset({'line', 'thickness'})#
classmethod fromDoc(doc: Any, baseuri: str, loadingOptions: LoadingOptions, docRoot: str | None = None) NativeFreehandCommentData[source]#

Construct this object from the result of yaml.load().

save(top: bool = False, base_url: str = '', relative_uris: bool = True) dict[str, Any][source]#

Convert this object to a JSON/YAML friendly dictionary.

class gxformat2.schema.native_v0_1.NativeGalaxyWorkflow(a_galaxy_workflow: Any, format_version: Any, uuid: Any | None = None, name: Any | None = None, annotation: Any | None = None, tags: Any | None = None, version: Any | None = None, license: Any | None = None, release: Any | None = None, creator: Any | None = None, report: Any | None = None, readme: Any | None = None, help: Any | None = None, logo_url: Any | None = None, doi: Any | None = None, source_metadata: Any | None = None, comments: Any | None = None, steps: Any | None = None, subworkflows: Any | None = None, extension_fields: dict[str, Any] | None = None, loadingOptions: LoadingOptions | None = None)[source]#

Bases: HasUUID

A Galaxy native workflow document (.ga format). This is the canonical serialization format used internally by Galaxy.

The native format mirrors the database schema directly – steps are keyed by numeric IDs, connections reference step IDs, and tool state is stored as double-encoded JSON strings.

The format version has been "0.1" since inception. New features are added without version bumps.

attrs = frozenset({'a_galaxy_workflow', 'annotation', 'class', 'comments', 'creator', 'doi', 'format_version', 'help', 'license', 'logo_url', 'name', 'readme', 'release', 'report', 'source_metadata', 'steps', 'subworkflows', 'tags', 'uuid', 'version'})#
classmethod fromDoc(doc: Any, baseuri: str, loadingOptions: LoadingOptions, docRoot: str | None = None) NativeGalaxyWorkflow[source]#

Construct this object from the result of yaml.load().

name: str#
save(top: bool = False, base_url: str = '', relative_uris: bool = True) dict[str, Any][source]#

Convert this object to a JSON/YAML friendly dictionary.

class gxformat2.schema.native_v0_1.NativeInputConnection(id: Any, output_name: Any, input_subworkflow_step_id: Any | None = None, extension_fields: dict[str, Any] | None = None, loadingOptions: LoadingOptions | None = None)[source]#

Bases: Saveable

Describes a connection from one step’s output to another step’s input. These objects appear as values in the input_connections dictionary.

For multi-valued inputs, the value is an array of these objects rather than a single object.

attrs = frozenset({'id', 'input_subworkflow_step_id', 'output_name'})#
classmethod fromDoc(doc: Any, baseuri: str, loadingOptions: LoadingOptions, docRoot: str | None = None) NativeInputConnection[source]#

Construct this object from the result of yaml.load().

save(top: bool = False, base_url: str = '', relative_uris: bool = True) dict[str, Any][source]#

Convert this object to a JSON/YAML friendly dictionary.

class gxformat2.schema.native_v0_1.NativeMarkdownComment(id: Any, type_: Any, position: Any | None = None, size: Any | None = None, color: Any | None = None, data: Any | None = None, extension_fields: dict[str, Any] | None = None, loadingOptions: LoadingOptions | None = None)[source]#

Bases: BaseNativeComment

A Markdown-rendered annotation in the workflow editor.

attrs = frozenset({'color', 'data', 'id', 'position', 'size', 'type'})#
classmethod fromDoc(doc: Any, baseuri: str, loadingOptions: LoadingOptions, docRoot: str | None = None) NativeMarkdownComment[source]#

Construct this object from the result of yaml.load().

save(top: bool = False, base_url: str = '', relative_uris: bool = True) dict[str, Any][source]#

Convert this object to a JSON/YAML friendly dictionary.

class gxformat2.schema.native_v0_1.NativeMarkdownCommentData(text: Any | None = None, extension_fields: dict[str, Any] | None = None, loadingOptions: LoadingOptions | None = None)[source]#

Bases: Saveable

Data payload for a markdown comment.

attrs = frozenset({'text'})#
classmethod fromDoc(doc: Any, baseuri: str, loadingOptions: LoadingOptions, docRoot: str | None = None) NativeMarkdownCommentData[source]#

Construct this object from the result of yaml.load().

save(top: bool = False, base_url: str = '', relative_uris: bool = True) dict[str, Any][source]#

Convert this object to a JSON/YAML friendly dictionary.

class gxformat2.schema.native_v0_1.NativePostJobAction(action_type: Any, output_name: Any, action_arguments: Any | None = None, extension_fields: dict[str, Any] | None = None, loadingOptions: LoadingOptions | None = None)[source]#

Bases: Saveable

An action applied to a step’s output after tool execution. These objects appear as values in the post_job_actions dictionary, keyed by compound strings of the form {ActionType}{OutputName} (e.g. HideDatasetActionout_pairs).

Common action types: HideDatasetAction, RenameDatasetAction, DeleteIntermediatesAction, ChangeDatatypeAction, TagDatasetAction, ColumnSetAction.

attrs = frozenset({'action_arguments', 'action_type', 'output_name'})#
classmethod fromDoc(doc: Any, baseuri: str, loadingOptions: LoadingOptions, docRoot: str | None = None) NativePostJobAction[source]#

Construct this object from the result of yaml.load().

save(top: bool = False, base_url: str = '', relative_uris: bool = True) dict[str, Any][source]#

Convert this object to a JSON/YAML friendly dictionary.

class gxformat2.schema.native_v0_1.NativeReport(markdown: Any, extension_fields: dict[str, Any] | None = None, loadingOptions: LoadingOptions | None = None)[source]#

Bases: Saveable

Workflow invocation report template.

attrs = frozenset({'markdown'})#
classmethod fromDoc(doc: Any, baseuri: str, loadingOptions: LoadingOptions, docRoot: str | None = None) NativeReport[source]#

Construct this object from the result of yaml.load().

save(top: bool = False, base_url: str = '', relative_uris: bool = True) dict[str, Any][source]#

Convert this object to a JSON/YAML friendly dictionary.

class gxformat2.schema.native_v0_1.NativeSourceMetadata(url: Any | None = None, trs_tool_id: Any | None = None, trs_version_id: Any | None = None, trs_server: Any | None = None, trs_url: Any | None = None, extension_fields: dict[str, Any] | None = None, loadingOptions: LoadingOptions | None = None)[source]#

Bases: Saveable

Provenance tracking for workflows imported from external sources. Contains either a direct URL or TRS (Tool Registry Service) metadata, depending on how the workflow was imported.

For URL imports, only url is set. For TRS imports (Dockstore, WorkflowHub), trs_tool_id, trs_version_id, and trs_url are set, with trs_server optionally identifying the server.

attrs = frozenset({'trs_server', 'trs_tool_id', 'trs_url', 'trs_version_id', 'url'})#
classmethod fromDoc(doc: Any, baseuri: str, loadingOptions: LoadingOptions, docRoot: str | None = None) NativeSourceMetadata[source]#

Construct this object from the result of yaml.load().

save(top: bool = False, base_url: str = '', relative_uris: bool = True) dict[str, Any][source]#

Convert this object to a JSON/YAML friendly dictionary.

class gxformat2.schema.native_v0_1.NativeStep(errors: Any | None = None, position: Any | None = None, uuid: Any | None = None, tool_id: Any | None = None, tool_shed_repository: Any | None = None, tool_version: Any | None = None, id: Any | None = None, type_: Any | None = None, name: Any | None = None, label: Any | None = None, annotation: Any | None = None, when: Any | None = None, content_id: Any | None = None, tool_state: Any | None = None, tool_uuid: Any | None = None, input_connections: Any | None = None, inputs: Any | None = None, outputs: Any | None = None, workflow_outputs: Any | None = None, post_job_actions: Any | None = None, subworkflow: Any | None = None, tool_representation: Any | None = None, in_: Any | None = None, extension_fields: dict[str, Any] | None = None, loadingOptions: LoadingOptions | None = None)[source]#

Bases: HasStepErrors, HasStepPosition, HasUUID, ReferencesTool

A step in a native Galaxy workflow. Steps are keyed by string integers ("0", "1", …) in the steps dictionary. The key serves as an external ID for connection wiring.

The type field determines the step’s behavior. All step types share common fields; type-specific fields are optional and only relevant for their respective type.

# Tool State

The tool_state field contains the tool’s parameter configuration. Traditionally this is a JSON-encoded string (double-encoded: each top-level value is itself a JSON string), but it may also be a plain dictionary when unencoded tool state is used. Connected parameters are represented as {"__class__": "ConnectedValue"}, runtime parameters as {"__class__": "RuntimeValue"}.

attrs = frozenset({'annotation', 'content_id', 'errors', 'id', 'in', 'input_connections', 'inputs', 'label', 'name', 'outputs', 'position', 'post_job_actions', 'subworkflow', 'tool_id', 'tool_representation', 'tool_shed_repository', 'tool_state', 'tool_uuid', 'tool_version', 'type', 'uuid', 'when', 'workflow_outputs'})#
classmethod fromDoc(doc: Any, baseuri: str, loadingOptions: LoadingOptions, docRoot: str | None = None) NativeStep[source]#

Construct this object from the result of yaml.load().

name: str#
save(top: bool = False, base_url: str = '', relative_uris: bool = True) dict[str, Any][source]#

Convert this object to a JSON/YAML friendly dictionary.

class gxformat2.schema.native_v0_1.NativeStepInput(name: Any, description: Any | None = None, extension_fields: dict[str, Any] | None = None, loadingOptions: LoadingOptions | None = None)[source]#

Bases: Saveable

Describes an input parameter on a step. This is metadata about the input, not the connection wiring (which is in input_connections).

attrs = frozenset({'description', 'name'})#
classmethod fromDoc(doc: Any, baseuri: str, loadingOptions: LoadingOptions, docRoot: str | None = None) NativeStepInput[source]#

Construct this object from the result of yaml.load().

name: str#
save(top: bool = False, base_url: str = '', relative_uris: bool = True) dict[str, Any][source]#

Convert this object to a JSON/YAML friendly dictionary.

class gxformat2.schema.native_v0_1.NativeStepOutput(name: Any, type_: Any | None = None, extension_fields: dict[str, Any] | None = None, loadingOptions: LoadingOptions | None = None)[source]#

Bases: Saveable

Declares an output produced by a step, with its name and datatype.

attrs = frozenset({'name', 'type'})#
classmethod fromDoc(doc: Any, baseuri: str, loadingOptions: LoadingOptions, docRoot: str | None = None) NativeStepOutput[source]#

Construct this object from the result of yaml.load().

name: str#
save(top: bool = False, base_url: str = '', relative_uris: bool = True) dict[str, Any][source]#

Convert this object to a JSON/YAML friendly dictionary.

gxformat2.schema.native_v0_1.NativeStepTypeLoader = NativeStepType#

Step module types in the native Galaxy workflow format. data_input: A single dataset input to the workflow. data_collection_input: A dataset collection input to the workflow. parameter_input: A typed parameter input (text, integer, float, boolean, color). tool: A Galaxy tool execution step. subworkflow: An embedded or referenced sub-workflow. pause: A manual pause point that halts execution until user intervention. pick_value: Select the first non-null value from multiple inputs.

class gxformat2.schema.native_v0_1.NativeTextComment(id: Any, type_: Any, position: Any | None = None, size: Any | None = None, color: Any | None = None, data: Any | None = None, extension_fields: dict[str, Any] | None = None, loadingOptions: LoadingOptions | None = None)[source]#

Bases: BaseNativeComment

A plain text annotation in the workflow editor.

attrs = frozenset({'color', 'data', 'id', 'position', 'size', 'type'})#
classmethod fromDoc(doc: Any, baseuri: str, loadingOptions: LoadingOptions, docRoot: str | None = None) NativeTextComment[source]#

Construct this object from the result of yaml.load().

save(top: bool = False, base_url: str = '', relative_uris: bool = True) dict[str, Any][source]#

Convert this object to a JSON/YAML friendly dictionary.

class gxformat2.schema.native_v0_1.NativeTextCommentData(text: Any | None = None, bold: Any | None = None, italic: Any | None = None, size: Any | None = None, extension_fields: dict[str, Any] | None = None, loadingOptions: LoadingOptions | None = None)[source]#

Bases: Saveable

Data payload for a text comment.

attrs = frozenset({'bold', 'italic', 'size', 'text'})#
classmethod fromDoc(doc: Any, baseuri: str, loadingOptions: LoadingOptions, docRoot: str | None = None) NativeTextCommentData[source]#

Construct this object from the result of yaml.load().

save(top: bool = False, base_url: str = '', relative_uris: bool = True) dict[str, Any][source]#

Convert this object to a JSON/YAML friendly dictionary.

class gxformat2.schema.native_v0_1.NativeWorkflowOutput(output_name: Any, label: Any | None = None, uuid: Any | None = None, extension_fields: dict[str, Any] | None = None, loadingOptions: LoadingOptions | None = None)[source]#

Bases: Saveable

Designates a step output as a workflow-level output. These appear in the workflow_outputs array on each step.

attrs = frozenset({'label', 'output_name', 'uuid'})#
classmethod fromDoc(doc: Any, baseuri: str, loadingOptions: LoadingOptions, docRoot: str | None = None) NativeWorkflowOutput[source]#

Construct this object from the result of yaml.load().

save(top: bool = False, base_url: str = '', relative_uris: bool = True) dict[str, Any][source]#

Convert this object to a JSON/YAML friendly dictionary.

gxformat2.schema.native_v0_1.PrimitiveTypeLoader = PrimitiveType#

Salad data types are based on Avro schema declarations. Refer to the [Avro schema declaration documentation](https://avro.apache.org/docs/current/spec.html#schemas) for detailed information.

null: no value boolean: a binary value int: 32-bit signed integer long: 64-bit signed integer float: single precision (32-bit) IEEE 754 floating-point number double: double precision (64-bit) IEEE 754 floating-point number string: Unicode character sequence

class gxformat2.schema.native_v0_1.RecordField(name: Any, type_: Any, doc: Any | None = None, extension_fields: dict[str, Any] | None = None, loadingOptions: LoadingOptions | None = None)[source]#

Bases: Documented

A field of a record.

attrs = frozenset({'doc', 'name', 'type'})#
classmethod fromDoc(doc: Any, baseuri: str, loadingOptions: LoadingOptions, docRoot: str | None = None) RecordField[source]#

Construct this object from the result of yaml.load().

name: str#
save(top: bool = False, base_url: str = '', relative_uris: bool = True) dict[str, Any][source]#

Convert this object to a JSON/YAML friendly dictionary.

class gxformat2.schema.native_v0_1.RecordFieldDefinition(name: Any, type_: Any, format: Any | None = None, extension_fields: dict[str, Any] | None = None, loadingOptions: LoadingOptions | None = None)[source]#

Bases: Saveable

Describes one field of a record collection input. Used in fields on a collection_type containing record (e.g. record, list:record, sample_sheet:record). Mirrors a subset of the CWL InputRecordSchema shape that Galaxy persists on DatasetCollection.fields.

attrs = frozenset({'format', 'name', 'type'})#
classmethod fromDoc(doc: Any, baseuri: str, loadingOptions: LoadingOptions, docRoot: str | None = None) RecordFieldDefinition[source]#

Construct this object from the result of yaml.load().

name: str#
save(top: bool = False, base_url: str = '', relative_uris: bool = True) dict[str, Any][source]#

Convert this object to a JSON/YAML friendly dictionary.

class gxformat2.schema.native_v0_1.RecordSchema(type_: Any, fields: Any | None = None, extension_fields: dict[str, Any] | None = None, loadingOptions: LoadingOptions | None = None)[source]#

Bases: Saveable

attrs = frozenset({'fields', 'type'})#
classmethod fromDoc(doc: Any, baseuri: str, loadingOptions: LoadingOptions, docRoot: str | None = None) RecordSchema[source]#

Construct this object from the result of yaml.load().

save(top: bool = False, base_url: str = '', relative_uris: bool = True) dict[str, Any][source]#

Convert this object to a JSON/YAML friendly dictionary.

class gxformat2.schema.native_v0_1.ReferencesTool[source]#

Bases: Saveable

class gxformat2.schema.native_v0_1.SampleSheetColumnDefinition(name: Any, type_: Any, optional: Any, description: Any | None = None, default_value: Any | None = None, validators: Any | None = None, restrictions: Any | None = None, suggestions: Any | None = None, extension_fields: dict[str, Any] | None = None, loadingOptions: LoadingOptions | None = None)[source]#

Bases: Saveable

Describes one column of a sample-sheet collection input. Used in column_definitions on a collection_type: sample_sheet[:<type>] workflow input.

attrs = frozenset({'default_value', 'description', 'name', 'optional', 'restrictions', 'suggestions', 'type', 'validators'})#
classmethod fromDoc(doc: Any, baseuri: str, loadingOptions: LoadingOptions, docRoot: str | None = None) SampleSheetColumnDefinition[source]#

Construct this object from the result of yaml.load().

name: str#
save(top: bool = False, base_url: str = '', relative_uris: bool = True) dict[str, Any][source]#

Convert this object to a JSON/YAML friendly dictionary.

class gxformat2.schema.native_v0_1.Saveable[source]#

Bases: ABC

Mark classes than have a save() and fromDoc() function.

abstractmethod classmethod fromDoc(_doc: Any, baseuri: str, loadingOptions: LoadingOptions, docRoot: str | None = None) Saveable[source]#

Construct this object from the result of yaml.load().

abstractmethod save(top: bool = False, base_url: str = '', relative_uris: bool = True) dict[str, Any][source]#

Convert this object to a JSON/YAML friendly dictionary.

class gxformat2.schema.native_v0_1.StepPosition(top: Any, left: Any, extension_fields: dict[str, Any] | None = None, loadingOptions: LoadingOptions | None = None)[source]#

Bases: Saveable

This field specifies the location of the step’s node when rendered in the workflow editor.

attrs = frozenset({'left', 'top'})#
classmethod fromDoc(doc: Any, baseuri: str, loadingOptions: LoadingOptions, docRoot: str | None = None) StepPosition[source]#

Construct this object from the result of yaml.load().

save(top: bool = False, base_url: str = '', relative_uris: bool = True) dict[str, Any][source]#

Convert this object to a JSON/YAML friendly dictionary.

class gxformat2.schema.native_v0_1.ToolShedRepository(changeset_revision: Any, name: Any, owner: Any, tool_shed: Any, extension_fields: dict[str, Any] | None = None, loadingOptions: LoadingOptions | None = None)[source]#

Bases: Saveable

attrs = frozenset({'changeset_revision', 'name', 'owner', 'tool_shed'})#
classmethod fromDoc(doc: Any, baseuri: str, loadingOptions: LoadingOptions, docRoot: str | None = None) ToolShedRepository[source]#

Construct this object from the result of yaml.load().

name: str#
save(top: bool = False, base_url: str = '', relative_uris: bool = True) dict[str, Any][source]#

Convert this object to a JSON/YAML friendly dictionary.

class gxformat2.schema.native_v0_1.WorkflowTextOption(value: Any, label: Any | None = None, extension_fields: dict[str, Any] | None = None, loadingOptions: LoadingOptions | None = None)[source]#

Bases: Saveable

A {value, label} option used in restrictions or suggestions on a text workflow parameter. Plain strings are also accepted in those arrays as shorthand for {value: <str>, label: <str>}.

attrs = frozenset({'label', 'value'})#
classmethod fromDoc(doc: Any, baseuri: str, loadingOptions: LoadingOptions, docRoot: str | None = None) WorkflowTextOption[source]#

Construct this object from the result of yaml.load().

save(top: bool = False, base_url: str = '', relative_uris: bool = True) dict[str, Any][source]#

Convert this object to a JSON/YAML friendly dictionary.

gxformat2.schema.native_v0_1.convert_typing(val_type: str) str[source]#

Normalize type names to schema-salad types.

gxformat2.schema.native_v0_1.expand_url(url: str, base_url: str, loadingOptions: LoadingOptions, scoped_id: bool = False, vocab_term: bool = False, scoped_ref: int | None = None) str[source]#
gxformat2.schema.native_v0_1.extract_type(val_type: type[Any]) str[source]#

Take a type of value, and extracts the value as a string.

gxformat2.schema.native_v0_1.file_uri(path: str, split_frag: bool = False) str[source]#

Transform a file path into a URL with file scheme.

gxformat2.schema.native_v0_1.load_document(doc: Any, baseuri: str | None = None, loadingOptions: LoadingOptions | None = None) Any[source]#
gxformat2.schema.native_v0_1.load_document_by_string(string: Any, uri: str, loadingOptions: LoadingOptions | None = None) Any[source]#
gxformat2.schema.native_v0_1.load_document_by_yaml(yaml: Any, uri: str, loadingOptions: LoadingOptions | None = None) Any[source]#

Shortcut to load via a YAML object. yaml: must be from ruamel.yaml.main.YAML.load with preserve_quotes=True

gxformat2.schema.native_v0_1.load_document_with_metadata(doc: Any, baseuri: str | None = None, loadingOptions: LoadingOptions | None = None, addl_metadata_fields: MutableSequence[str] | None = None) Any[source]#
gxformat2.schema.native_v0_1.load_field(val: str | dict[str, str], fieldtype: _Loader, baseuri: str, loadingOptions: LoadingOptions, lc: list[Any] | None = None) Any[source]#

Load field.

gxformat2.schema.native_v0_1.parse_errors(error_message: str) tuple[str, str, str][source]#

Parse error messages from several loaders into one error message.

gxformat2.schema.native_v0_1.parser_info() str[source]#
gxformat2.schema.native_v0_1.prefix_url(url: str, namespaces: dict[str, str]) str[source]#

Expand short forms into full URLs using the given namespace dictionary.

gxformat2.schema.native_v0_1.save(val: Any, top: bool = True, base_url: str = '', relative_uris: bool = True) MutableMapping[str, Any] | MutableSequence[Any] | int | float | bool | str | None[source]#
gxformat2.schema.native_v0_1.save_relative_uri(uri: Any, base_url: str, scoped_id: bool, ref_scope: int | None, relative_uris: bool) Any[source]#

Convert any URI to a relative one, obeying the scoping rules.

gxformat2.schema.native_v0_1.save_with_metadata(val: Any, valLoadingOpts: LoadingOptions, top: bool = True, base_url: str = '', relative_uris: bool = True) MutableMapping[str, Any] | MutableSequence[Any] | int | float | bool | str | None[source]#

Save and set $namespaces, $schemas, $base and any other metadata fields at the top level.

gxformat2.schema.native_v0_1.shortname(inputid: str) str[source]#

Compute the shortname of a fully qualified identifier.

See https://w3id.org/cwl/v1.2/SchemaSalad.html#Short_names.

gxformat2.schema.v19_09 module#

gxformat2.schema.v19_09.AnyLoader: Final = Any#

The Any type validates for any non-null value.

class gxformat2.schema.v19_09.ArraySchema(items: Any, type_: Any, extension_fields: MutableMapping[str, Any] | None = None, loadingOptions: LoadingOptions | None = None)[source]#

Bases: Saveable

attrs: ClassVar[Collection[str]] = frozenset({'items', 'type'})#
classmethod fromDoc(doc: Any, baseuri: str, loadingOptions: LoadingOptions, docRoot: str | None = None) Self[source]#

Construct this object from the result of yaml.load().

save(top: bool = False, base_url: str = '', relative_uris: bool = True) dict[str, Any][source]#

Convert this object to a JSON/YAML friendly dictionary.

class gxformat2.schema.v19_09.BaseComment[source]#

Bases: Saveable

Base fields shared by all comment types.

class gxformat2.schema.v19_09.BaseCreator[source]#

Bases: Saveable

Base fields shared by all creator types, corresponding to schema.org Thing properties common to both Person and Organization.

class gxformat2.schema.v19_09.BaseDataParameter(optional: Any, label: Any | None = None, doc: Any | None = None, id: Any | None = None, default: Any | None = None, position: Any | None = None, format: Any | None = None, extension_fields: MutableMapping[str, Any] | None = None, loadingOptions: LoadingOptions | None = None)[source]#

Bases: BaseInputParameter

attrs: ClassVar[Collection[str]] = frozenset({'default', 'doc', 'format', 'id', 'label', 'optional', 'position'})#
classmethod fromDoc(doc: Any, baseuri: str, loadingOptions: LoadingOptions, docRoot: str | None = None) Self[source]#

Construct this object from the result of yaml.load().

id: str#
save(top: bool = False, base_url: str = '', relative_uris: bool = True) dict[str, Any][source]#

Convert this object to a JSON/YAML friendly dictionary.

class gxformat2.schema.v19_09.BaseInputParameter(optional: Any, label: Any | None = None, doc: Any | None = None, id: Any | None = None, default: Any | None = None, position: Any | None = None, extension_fields: MutableMapping[str, Any] | None = None, loadingOptions: LoadingOptions | None = None)[source]#

Bases: InputParameter, HasStepPosition

attrs: ClassVar[Collection[str]] = frozenset({'default', 'doc', 'id', 'label', 'optional', 'position'})#
classmethod fromDoc(doc: Any, baseuri: str, loadingOptions: LoadingOptions, docRoot: str | None = None) Self[source]#

Construct this object from the result of yaml.load().

id: str#
save(top: bool = False, base_url: str = '', relative_uris: bool = True) dict[str, Any][source]#

Convert this object to a JSON/YAML friendly dictionary.

class gxformat2.schema.v19_09.CreatorOrganization(name: Any | None = None, identifier: Any | None = None, url: Any | None = None, email: Any | None = None, image: Any | None = None, address: Any | None = None, alternateName: Any | None = None, telephone: Any | None = None, faxNumber: Any | None = None, extension_fields: MutableMapping[str, Any] | None = None, loadingOptions: LoadingOptions | None = None)[source]#

Bases: BaseCreator

An organization that created or contributed to the workflow. Corresponds to a ``schema.org Organization <https://schema.org/Organization>``_.

attrs: ClassVar[Collection[str]] = frozenset({'address', 'alternateName', 'class', 'email', 'faxNumber', 'identifier', 'image', 'name', 'telephone', 'url'})#
class_: Final[str]#
classmethod fromDoc(doc: Any, baseuri: str, loadingOptions: LoadingOptions, docRoot: str | None = None) Self[source]#

Construct this object from the result of yaml.load().

name: str#
save(top: bool = False, base_url: str = '', relative_uris: bool = True) dict[str, Any][source]#

Convert this object to a JSON/YAML friendly dictionary.

gxformat2.schema.v19_09.CreatorOrganizationTypeLoader: Final = CreatorOrganizationType#

Discriminator for schema.org Organization creators.

class gxformat2.schema.v19_09.CreatorPerson(name: Any | None = None, identifier: Any | None = None, url: Any | None = None, email: Any | None = None, image: Any | None = None, address: Any | None = None, alternateName: Any | None = None, telephone: Any | None = None, faxNumber: Any | None = None, givenName: Any | None = None, familyName: Any | None = None, honorificPrefix: Any | None = None, honorificSuffix: Any | None = None, jobTitle: Any | None = None, extension_fields: MutableMapping[str, Any] | None = None, loadingOptions: LoadingOptions | None = None)[source]#

Bases: BaseCreator

A person who created or contributed to the workflow. Corresponds to a ``schema.org Person <https://schema.org/Person>``_.

attrs: ClassVar[Collection[str]] = frozenset({'address', 'alternateName', 'class', 'email', 'familyName', 'faxNumber', 'givenName', 'honorificPrefix', 'honorificSuffix', 'identifier', 'image', 'jobTitle', 'name', 'telephone', 'url'})#
class_: Final[str]#
classmethod fromDoc(doc: Any, baseuri: str, loadingOptions: LoadingOptions, docRoot: str | None = None) Self[source]#

Construct this object from the result of yaml.load().

name: str#
save(top: bool = False, base_url: str = '', relative_uris: bool = True) dict[str, Any][source]#

Convert this object to a JSON/YAML friendly dictionary.

gxformat2.schema.v19_09.CreatorPersonTypeLoader: Final = CreatorPersonType#

Discriminator for schema.org Person creators.

class gxformat2.schema.v19_09.Documented[source]#

Bases: Saveable

class gxformat2.schema.v19_09.EnumSchema(symbols: Any, type_: Any, extension_fields: MutableMapping[str, Any] | None = None, loadingOptions: LoadingOptions | None = None)[source]#

Bases: Saveable

Define an enumerated type.

attrs: ClassVar[Collection[str]] = frozenset({'symbols', 'type'})#
classmethod fromDoc(doc: Any, baseuri: str, loadingOptions: LoadingOptions, docRoot: str | None = None) Self[source]#

Construct this object from the result of yaml.load().

save(top: bool = False, base_url: str = '', relative_uris: bool = True) dict[str, Any][source]#

Convert this object to a JSON/YAML friendly dictionary.

class gxformat2.schema.v19_09.FrameComment(type_: Any, position: Any | None = None, size: Any | None = None, color: Any | None = None, label: Any | None = None, title: Any | None = None, contains_steps: Any | None = None, contains_comments: Any | None = None, extension_fields: MutableMapping[str, Any] | None = None, loadingOptions: LoadingOptions | None = None)[source]#

Bases: BaseComment

A rectangular grouping box that visually contains steps and other comments.

attrs: ClassVar[Collection[str]] = frozenset({'color', 'contains_comments', 'contains_steps', 'label', 'position', 'size', 'title', 'type'})#
classmethod fromDoc(doc: Any, baseuri: str, loadingOptions: LoadingOptions, docRoot: str | None = None) Self[source]#

Construct this object from the result of yaml.load().

save(top: bool = False, base_url: str = '', relative_uris: bool = True) dict[str, Any][source]#

Convert this object to a JSON/YAML friendly dictionary.

class gxformat2.schema.v19_09.FreehandComment(type_: Any, position: Any | None = None, size: Any | None = None, color: Any | None = None, label: Any | None = None, thickness: Any | None = None, line: Any | None = None, extension_fields: MutableMapping[str, Any] | None = None, loadingOptions: LoadingOptions | None = None)[source]#

Bases: BaseComment

A freehand drawn line on the editor canvas.

attrs: ClassVar[Collection[str]] = frozenset({'color', 'label', 'line', 'position', 'size', 'thickness', 'type'})#
classmethod fromDoc(doc: Any, baseuri: str, loadingOptions: LoadingOptions, docRoot: str | None = None) Self[source]#

Construct this object from the result of yaml.load().

save(top: bool = False, base_url: str = '', relative_uris: bool = True) dict[str, Any][source]#

Convert this object to a JSON/YAML friendly dictionary.

gxformat2.schema.v19_09.GalaxyTypeLoader: Final = GalaxyType#

Extends primitive types with the native Galaxy concepts such as datasets and collections.

Normalized gxformat2 workflow input declaration spellings are data, collection, string, int, float, and boolean. Other spellings are accepted as compatibility aliases on import but normalized gxformat2 output emits the normalized spellings.

data: one Galaxy dataset input. Native Galaxy data_input converts to this spelling.

File: accepted alias for data, but normalized gxformat2 output emits data. Note: workflow test job YAML uses type: File to mean ‘stage this file as test input data’, which is a separate concept from workflow input declaration.

collection: one Galaxy dataset collection input. Native Galaxy data_collection_input converts to this spelling.

string: normalized gxformat2 spelling for native Galaxy text workflow parameters.

text: accepted alias for string because native Galaxy parameter state and Galaxy tool XML terminology use text.

int: normalized gxformat2 spelling for native Galaxy integer workflow parameters.

integer: accepted alias for int because native Galaxy parameter state and Galaxy tool XML terminology use integer.

class gxformat2.schema.v19_09.GalaxyWorkflow(inputs: Any, outputs: Any, steps: Any, tags: Any, id: Any | None = None, label: Any | None = None, doc: Any | None = None, uuid: Any | None = None, report: Any | None = None, comments: Any | None = None, creator: Any | None = None, license: Any | None = None, release: Any | None = None, extension_fields: MutableMapping[str, Any] | None = None, loadingOptions: LoadingOptions | None = None)[source]#

Bases: Process, HasUUID

A Galaxy workflow description. This record corresponds to the description of a workflow that should be executable on a Galaxy server that includes the contained tool definitions.

The workflows API or the user interface of Galaxy instances that are of version 19.09 or newer should be able to import a document defining this record.

A note about label field.#

This is the name of the workflow in the Galaxy user interface. This is the mechanism that users will primarily identify the workflow using. Legacy support - this may also be called ‘name’ and Galaxy will consume the workflow document fine and treat this attribute correctly - however in order to validate against this workflow definition schema the attribute should be called label.

attrs: ClassVar[Collection[str]] = frozenset({'class', 'comments', 'creator', 'doc', 'id', 'inputs', 'label', 'license', 'outputs', 'release', 'report', 'steps', 'tags', 'uuid'})#
class_: Final[str]#
classmethod fromDoc(doc: Any, baseuri: str, loadingOptions: LoadingOptions, docRoot: str | None = None) Self[source]#

Construct this object from the result of yaml.load().

id: str#
save(top: bool = False, base_url: str = '', relative_uris: bool = True) dict[str, Any][source]#

Convert this object to a JSON/YAML friendly dictionary.

class gxformat2.schema.v19_09.HasStepErrors[source]#

Bases: Saveable

class gxformat2.schema.v19_09.HasStepPosition[source]#

Bases: Saveable

class gxformat2.schema.v19_09.HasUUID[source]#

Bases: Saveable

class gxformat2.schema.v19_09.Identified[source]#

Bases: Saveable

class gxformat2.schema.v19_09.InputParameter[source]#

Bases: Parameter

class gxformat2.schema.v19_09.Labeled[source]#

Bases: Saveable

class gxformat2.schema.v19_09.LoadingOptions(fetcher: Fetcher | None = None, namespaces: dict[str, str] | None = None, schemas: list[str] | None = None, fileuri: str | None = None, copyfrom: LoadingOptions | None = None, original_doc: Any | None = None, addl_metadata: dict[str, str] | None = None, baseuri: str | None = None, idx: MutableMapping[str, tuple[Any, LoadingOptions]] | None = None, imports: list[str] | None = None, includes: list[str] | None = None, no_link_check: bool | None = None, container: str | None = None)[source]#

Bases: object

addl_metadata: Final[MutableMapping[str, Any]]#
baseuri: Final[str]#
cache: Final[dict[str, str | Graph | bool]]#
container: Final[str | None]#
fetcher: Final[Fetcher]#
fileuri: Final[str | None]#
property graph: Graph#

Generate a merged rdflib.Graph from all entries in self.schemas.

idx: Final[MutableMapping[str, tuple[Any, LoadingOptions]]]#
imports: Final[list[str]]#
includes: Final[list[str]]#
namespaces: Final[MutableMapping[str, str]]#
original_doc: Final[Any | None]#
rvocab: Final[dict[str, str]]#
schemas: Final[MutableSequence[str]]#
vocab: Final[dict[str, str]]#
class gxformat2.schema.v19_09.MarkdownComment(type_: Any, position: Any | None = None, size: Any | None = None, color: Any | None = None, label: Any | None = None, text: Any | None = None, extension_fields: MutableMapping[str, Any] | None = None, loadingOptions: LoadingOptions | None = None)[source]#

Bases: BaseComment

A Markdown-rendered annotation in the workflow editor.

attrs: ClassVar[Collection[str]] = frozenset({'color', 'label', 'position', 'size', 'text', 'type'})#
classmethod fromDoc(doc: Any, baseuri: str, loadingOptions: LoadingOptions, docRoot: str | None = None) Self[source]#

Construct this object from the result of yaml.load().

save(top: bool = False, base_url: str = '', relative_uris: bool = True) dict[str, Any][source]#

Convert this object to a JSON/YAML friendly dictionary.

class gxformat2.schema.v19_09.MinMax(min: Any, max: Any, extension_fields: MutableMapping[str, Any] | None = None, loadingOptions: LoadingOptions | None = None)[source]#

Bases: Saveable

attrs: ClassVar[Collection[str]] = frozenset({'max', 'min'})#
classmethod fromDoc(doc: Any, baseuri: str, loadingOptions: LoadingOptions, docRoot: str | None = None) Self[source]#

Construct this object from the result of yaml.load().

save(top: bool = False, base_url: str = '', relative_uris: bool = True) dict[str, Any][source]#

Convert this object to a JSON/YAML friendly dictionary.

class gxformat2.schema.v19_09.OutputParameter[source]#

Bases: Parameter

class gxformat2.schema.v19_09.Parameter[source]#

Bases: Labeled, Documented, Identified

Define an input or output parameter to a process.

gxformat2.schema.v19_09.PrimitiveTypeLoader: Final = PrimitiveType#

Salad data types are based on Avro schema declarations. Refer to the Avro schema declaration documentation for detailed information.

null: no value

boolean: a binary value

int: 32-bit signed integer

long: 64-bit signed integer

float: single precision (32-bit) IEEE 754 floating-point number

double: double precision (64-bit) IEEE 754 floating-point number

string: Unicode character sequence

class gxformat2.schema.v19_09.Process[source]#

Bases: Identified, Labeled, Documented

The base executable type in CWL is the Process object defined by the document. Note that the Process object is abstract and cannot be directly executed.

class gxformat2.schema.v19_09.RecordField(name: Any, type_: Any, doc: Any | None = None, extension_fields: MutableMapping[str, Any] | None = None, loadingOptions: LoadingOptions | None = None)[source]#

Bases: Documented

A field of a record.

attrs: ClassVar[Collection[str]] = frozenset({'doc', 'name', 'type'})#
classmethod fromDoc(doc: Any, baseuri: str, loadingOptions: LoadingOptions, docRoot: str | None = None) Self[source]#

Construct this object from the result of yaml.load().

name: str#
save(top: bool = False, base_url: str = '', relative_uris: bool = True) dict[str, Any][source]#

Convert this object to a JSON/YAML friendly dictionary.

class gxformat2.schema.v19_09.RecordFieldDefinition(name: Any, type_: Any, format: Any | None = None, extension_fields: MutableMapping[str, Any] | None = None, loadingOptions: LoadingOptions | None = None)[source]#

Bases: Saveable

Describes one field of a record collection input. Used in fields on a collection_type containing record (e.g. record, list:record, sample_sheet:record). Mirrors a subset of the CWL InputRecordSchema shape that Galaxy persists on DatasetCollection.fields.

attrs: ClassVar[Collection[str]] = frozenset({'format', 'name', 'type'})#
classmethod fromDoc(doc: Any, baseuri: str, loadingOptions: LoadingOptions, docRoot: str | None = None) Self[source]#

Construct this object from the result of yaml.load().

name: str#
save(top: bool = False, base_url: str = '', relative_uris: bool = True) dict[str, Any][source]#

Convert this object to a JSON/YAML friendly dictionary.

class gxformat2.schema.v19_09.RecordSchema(type_: Any, fields: Any | None = None, extension_fields: MutableMapping[str, Any] | None = None, loadingOptions: LoadingOptions | None = None)[source]#

Bases: Saveable

attrs: ClassVar[Collection[str]] = frozenset({'fields', 'type'})#
classmethod fromDoc(doc: Any, baseuri: str, loadingOptions: LoadingOptions, docRoot: str | None = None) Self[source]#

Construct this object from the result of yaml.load().

save(top: bool = False, base_url: str = '', relative_uris: bool = True) dict[str, Any][source]#

Convert this object to a JSON/YAML friendly dictionary.

class gxformat2.schema.v19_09.ReferencesTool[source]#

Bases: Saveable

class gxformat2.schema.v19_09.Report(markdown: Any, extension_fields: MutableMapping[str, Any] | None = None, loadingOptions: LoadingOptions | None = None)[source]#

Bases: Saveable

Definition of an invocation report for this workflow. Currently the only field is ‘markdown’.

attrs: ClassVar[Collection[str]] = frozenset({'markdown'})#
classmethod fromDoc(doc: Any, baseuri: str, loadingOptions: LoadingOptions, docRoot: str | None = None) Self[source]#

Construct this object from the result of yaml.load().

save(top: bool = False, base_url: str = '', relative_uris: bool = True) dict[str, Any][source]#

Convert this object to a JSON/YAML friendly dictionary.

class gxformat2.schema.v19_09.SampleSheetColumnDefinition(name: Any, type_: Any, optional: Any, description: Any | None = None, default_value: Any | None = None, validators: Any | None = None, restrictions: Any | None = None, suggestions: Any | None = None, extension_fields: MutableMapping[str, Any] | None = None, loadingOptions: LoadingOptions | None = None)[source]#

Bases: Saveable

Describes one column of a sample-sheet collection input. Used in column_definitions on a collection_type: sample_sheet[:<type>] workflow input.

attrs: ClassVar[Collection[str]] = frozenset({'default_value', 'description', 'name', 'optional', 'restrictions', 'suggestions', 'type', 'validators'})#
classmethod fromDoc(doc: Any, baseuri: str, loadingOptions: LoadingOptions, docRoot: str | None = None) Self[source]#

Construct this object from the result of yaml.load().

name: str#
save(top: bool = False, base_url: str = '', relative_uris: bool = True) dict[str, Any][source]#

Convert this object to a JSON/YAML friendly dictionary.

class gxformat2.schema.v19_09.Saveable[source]#

Bases: object

Mark classes than have a save() and fromDoc() function.

abstractmethod classmethod fromDoc(_doc: Any, baseuri: str, loadingOptions: LoadingOptions, docRoot: str | None = None) Self[source]#

Construct this object from the result of yaml.load().

abstractmethod save(top: bool = False, base_url: str = '', relative_uris: bool = True) dict[str, Any][source]#

Convert this object to a JSON/YAML friendly dictionary.

class gxformat2.schema.v19_09.Sink[source]#

Bases: Saveable

class gxformat2.schema.v19_09.StepPosition(top: Any, left: Any, extension_fields: MutableMapping[str, Any] | None = None, loadingOptions: LoadingOptions | None = None)[source]#

Bases: Saveable

This field specifies the location of the step’s node when rendered in the workflow editor.

attrs: ClassVar[Collection[str]] = frozenset({'left', 'top'})#
classmethod fromDoc(doc: Any, baseuri: str, loadingOptions: LoadingOptions, docRoot: str | None = None) Self[source]#

Construct this object from the result of yaml.load().

save(top: bool = False, base_url: str = '', relative_uris: bool = True) dict[str, Any][source]#

Convert this object to a JSON/YAML friendly dictionary.

class gxformat2.schema.v19_09.TextComment(type_: Any, position: Any | None = None, size: Any | None = None, color: Any | None = None, label: Any | None = None, text: Any | None = None, bold: Any | None = None, italic: Any | None = None, text_size: Any | None = None, extension_fields: MutableMapping[str, Any] | None = None, loadingOptions: LoadingOptions | None = None)[source]#

Bases: BaseComment

A plain text annotation in the workflow editor.

attrs: ClassVar[Collection[str]] = frozenset({'bold', 'color', 'italic', 'label', 'position', 'size', 'text', 'text_size', 'type'})#
classmethod fromDoc(doc: Any, baseuri: str, loadingOptions: LoadingOptions, docRoot: str | None = None) Self[source]#

Construct this object from the result of yaml.load().

save(top: bool = False, base_url: str = '', relative_uris: bool = True) dict[str, Any][source]#

Convert this object to a JSON/YAML friendly dictionary.

class gxformat2.schema.v19_09.ToolShedRepository(changeset_revision: Any, name: Any, owner: Any, tool_shed: Any, extension_fields: MutableMapping[str, Any] | None = None, loadingOptions: LoadingOptions | None = None)[source]#

Bases: Saveable

attrs: ClassVar[Collection[str]] = frozenset({'changeset_revision', 'name', 'owner', 'tool_shed'})#
classmethod fromDoc(doc: Any, baseuri: str, loadingOptions: LoadingOptions, docRoot: str | None = None) Self[source]#

Construct this object from the result of yaml.load().

name: str#
save(top: bool = False, base_url: str = '', relative_uris: bool = True) dict[str, Any][source]#

Convert this object to a JSON/YAML friendly dictionary.

class gxformat2.schema.v19_09.WorkflowBooleanParameter(optional: Any, type_: Any, label: Any | None = None, doc: Any | None = None, id: Any | None = None, default: Any | None = None, position: Any | None = None, extension_fields: MutableMapping[str, Any] | None = None, loadingOptions: LoadingOptions | None = None)[source]#

Bases: BaseInputParameter

A boolean input parameter for a Galaxy workflow.

attrs: ClassVar[Collection[str]] = frozenset({'default', 'doc', 'id', 'label', 'optional', 'position', 'type'})#
classmethod fromDoc(doc: Any, baseuri: str, loadingOptions: LoadingOptions, docRoot: str | None = None) Self[source]#

Construct this object from the result of yaml.load().

id: str#
save(top: bool = False, base_url: str = '', relative_uris: bool = True) dict[str, Any][source]#

Convert this object to a JSON/YAML friendly dictionary.

class gxformat2.schema.v19_09.WorkflowCollectionParameter(optional: Any, type_: Any, label: Any | None = None, doc: Any | None = None, id: Any | None = None, default: Any | None = None, position: Any | None = None, format: Any | None = None, collection_type: Any | None = None, column_definitions: Any | None = None, fields: Any | None = None, extension_fields: MutableMapping[str, Any] | None = None, loadingOptions: LoadingOptions | None = None)[source]#

Bases: BaseDataParameter

A collection input parameter for a Galaxy workflow - represents a dataset collection.

attrs: ClassVar[Collection[str]] = frozenset({'collection_type', 'column_definitions', 'default', 'doc', 'fields', 'format', 'id', 'label', 'optional', 'position', 'type'})#
classmethod fromDoc(doc: Any, baseuri: str, loadingOptions: LoadingOptions, docRoot: str | None = None) Self[source]#

Construct this object from the result of yaml.load().

id: str#
save(top: bool = False, base_url: str = '', relative_uris: bool = True) dict[str, Any][source]#

Convert this object to a JSON/YAML friendly dictionary.

class gxformat2.schema.v19_09.WorkflowDataParameter(optional: Any, type_: Any, label: Any | None = None, doc: Any | None = None, id: Any | None = None, default: Any | None = None, position: Any | None = None, format: Any | None = None, extension_fields: MutableMapping[str, Any] | None = None, loadingOptions: LoadingOptions | None = None)[source]#

Bases: BaseDataParameter

A data input parameter for a Galaxy workflow. Represents one Galaxy dataset. Normalized gxformat2 output uses type: data. type: File is accepted as an alias, but should not be confused with workflow test job syntax where type: File means stage a file as test input data.

attrs: ClassVar[Collection[str]] = frozenset({'default', 'doc', 'format', 'id', 'label', 'optional', 'position', 'type'})#
classmethod fromDoc(doc: Any, baseuri: str, loadingOptions: LoadingOptions, docRoot: str | None = None) Self[source]#

Construct this object from the result of yaml.load().

id: str#
save(top: bool = False, base_url: str = '', relative_uris: bool = True) dict[str, Any][source]#

Convert this object to a JSON/YAML friendly dictionary.

class gxformat2.schema.v19_09.WorkflowFloatParameter(optional: Any, min: Any, max: Any, type_: Any, label: Any | None = None, doc: Any | None = None, id: Any | None = None, default: Any | None = None, position: Any | None = None, extension_fields: MutableMapping[str, Any] | None = None, loadingOptions: LoadingOptions | None = None)[source]#

Bases: BaseInputParameter, MinMax

A float input parameter for a Galaxy workflow.

attrs: ClassVar[Collection[str]] = frozenset({'default', 'doc', 'id', 'label', 'max', 'min', 'optional', 'position', 'type'})#
classmethod fromDoc(doc: Any, baseuri: str, loadingOptions: LoadingOptions, docRoot: str | None = None) Self[source]#

Construct this object from the result of yaml.load().

id: str#
save(top: bool = False, base_url: str = '', relative_uris: bool = True) dict[str, Any][source]#

Convert this object to a JSON/YAML friendly dictionary.

class gxformat2.schema.v19_09.WorkflowInputParameter(optional: Any, min: Any, max: Any, type_: Any, label: Any | None = None, doc: Any | None = None, id: Any | None = None, default: Any | None = None, position: Any | None = None, format: Any | None = None, collection_type: Any | None = None, column_definitions: Any | None = None, fields: Any | None = None, restrictions: Any | None = None, suggestions: Any | None = None, restrictOnConnections: Any | None = None, extension_fields: MutableMapping[str, Any] | None = None, loadingOptions: LoadingOptions | None = None)[source]#

Bases: BaseDataParameter, MinMax

An input parameter to a Galaxy workflow. This is the catch-all type used by the Schema Salad codegen. The pydantic layer uses a discriminated union of the specific parameter types instead.

attrs: ClassVar[Collection[str]] = frozenset({'collection_type', 'column_definitions', 'default', 'doc', 'fields', 'format', 'id', 'label', 'max', 'min', 'optional', 'position', 'restrictOnConnections', 'restrictions', 'suggestions', 'type'})#
classmethod fromDoc(doc: Any, baseuri: str, loadingOptions: LoadingOptions, docRoot: str | None = None) Self[source]#

Construct this object from the result of yaml.load().

id: str#
save(top: bool = False, base_url: str = '', relative_uris: bool = True) dict[str, Any][source]#

Convert this object to a JSON/YAML friendly dictionary.

class gxformat2.schema.v19_09.WorkflowIntegerParameter(optional: Any, min: Any, max: Any, type_: Any, label: Any | None = None, doc: Any | None = None, id: Any | None = None, default: Any | None = None, position: Any | None = None, extension_fields: MutableMapping[str, Any] | None = None, loadingOptions: LoadingOptions | None = None)[source]#

Bases: BaseInputParameter, MinMax

A scalar integer workflow parameter. Normalized gxformat2 output uses type: int. type: integer is accepted for compatibility with native Galaxy parameter state and Galaxy tool XML terminology.

attrs: ClassVar[Collection[str]] = frozenset({'default', 'doc', 'id', 'label', 'max', 'min', 'optional', 'position', 'type'})#
classmethod fromDoc(doc: Any, baseuri: str, loadingOptions: LoadingOptions, docRoot: str | None = None) Self[source]#

Construct this object from the result of yaml.load().

id: str#
save(top: bool = False, base_url: str = '', relative_uris: bool = True) dict[str, Any][source]#

Convert this object to a JSON/YAML friendly dictionary.

class gxformat2.schema.v19_09.WorkflowOutputParameter(label: Any | None = None, doc: Any | None = None, id: Any | None = None, outputSource: Any | None = None, type_: Any | None = None, extension_fields: MutableMapping[str, Any] | None = None, loadingOptions: LoadingOptions | None = None)[source]#

Bases: OutputParameter

Describe an output parameter of a workflow. The parameter must be connected to one parameter defined in the workflow that will provide the value of the output parameter. It is legal to connect a WorkflowInputParameter to a WorkflowOutputParameter.

attrs: ClassVar[Collection[str]] = frozenset({'doc', 'id', 'label', 'outputSource', 'type'})#
classmethod fromDoc(doc: Any, baseuri: str, loadingOptions: LoadingOptions, docRoot: str | None = None) Self[source]#

Construct this object from the result of yaml.load().

id: str#
save(top: bool = False, base_url: str = '', relative_uris: bool = True) dict[str, Any][source]#

Convert this object to a JSON/YAML friendly dictionary.

class gxformat2.schema.v19_09.WorkflowStep(out: Any, id: Any | None = None, label: Any | None = None, doc: Any | None = None, position: Any | None = None, tool_id: Any | None = None, tool_shed_repository: Any | None = None, tool_version: Any | None = None, errors: Any | None = None, uuid: Any | None = None, in_: Any | None = None, state: Any | None = None, tool_state: Any | None = None, post_job_actions: Any | None = None, type_: Any | None = None, run: Any | None = None, runtime_inputs: Any | None = None, when: Any | None = None, extension_fields: MutableMapping[str, Any] | None = None, loadingOptions: LoadingOptions | None = None)[source]#

Bases: Identified, Labeled, Documented, HasStepPosition, ReferencesTool, HasStepErrors, HasUUID

This represents a non-input step a Galaxy Workflow.

A note about state and tool_state fields.#

Only one or the other should be specified. These are two ways to represent the “state” of a tool at this workflow step. Both are essentially maps from parameter names to parameter values.

tool_state is much more low-level and expects a flat dictionary with each value a JSON dump. Nested tool structures such as conditionals and repeats should have all their values in the JSON dumped string. In general tool_state may be present in workflows exported from Galaxy but shouldn’t be written by humans.

state can contained a typed map. Repeat values can be represented as YAML arrays. An alternative to representing state this way is defining inputs with default values.

attrs: ClassVar[Collection[str]] = frozenset({'doc', 'errors', 'id', 'in', 'label', 'out', 'position', 'post_job_actions', 'run', 'runtime_inputs', 'state', 'tool_id', 'tool_shed_repository', 'tool_state', 'tool_version', 'type', 'uuid', 'when'})#
classmethod fromDoc(doc: Any, baseuri: str, loadingOptions: LoadingOptions, docRoot: str | None = None) Self[source]#

Construct this object from the result of yaml.load().

id: str#
save(top: bool = False, base_url: str = '', relative_uris: bool = True) dict[str, Any][source]#

Convert this object to a JSON/YAML friendly dictionary.

class gxformat2.schema.v19_09.WorkflowStepInput(id: Any | None = None, source: Any | None = None, label: Any | None = None, default: Any | None = None, extension_fields: MutableMapping[str, Any] | None = None, loadingOptions: LoadingOptions | None = None)[source]#

Bases: Identified, Sink, Labeled

TODO:

attrs: ClassVar[Collection[str]] = frozenset({'default', 'id', 'label', 'source'})#
classmethod fromDoc(doc: Any, baseuri: str, loadingOptions: LoadingOptions, docRoot: str | None = None) Self[source]#

Construct this object from the result of yaml.load().

id: str#
save(top: bool = False, base_url: str = '', relative_uris: bool = True) dict[str, Any][source]#

Convert this object to a JSON/YAML friendly dictionary.

class gxformat2.schema.v19_09.WorkflowStepOutput(id: Any | None = None, add_tags: Any | None = None, change_datatype: Any | None = None, delete_intermediate_datasets: Any | None = None, hide: Any | None = None, remove_tags: Any | None = None, rename: Any | None = None, set_columns: Any | None = None, extension_fields: MutableMapping[str, Any] | None = None, loadingOptions: LoadingOptions | None = None)[source]#

Bases: Identified

Associate an output parameter of the underlying process with a workflow parameter. The workflow parameter (given in the id field) be may be used as a source to connect with input parameters of other workflow steps, or with an output parameter of the process.

A unique identifier for this workflow output parameter. This is the identifier to use in the source field of WorkflowStepInput to connect the output value to downstream parameters.

attrs: ClassVar[Collection[str]] = frozenset({'add_tags', 'change_datatype', 'delete_intermediate_datasets', 'hide', 'id', 'remove_tags', 'rename', 'set_columns'})#
classmethod fromDoc(doc: Any, baseuri: str, loadingOptions: LoadingOptions, docRoot: str | None = None) Self[source]#

Construct this object from the result of yaml.load().

id: str#
save(top: bool = False, base_url: str = '', relative_uris: bool = True) dict[str, Any][source]#

Convert this object to a JSON/YAML friendly dictionary.

gxformat2.schema.v19_09.WorkflowStepTypeLoader: Final = WorkflowStepType#

Module types used by Galaxy steps. Galaxy’s native format allows additional types such as data_input, data_input_collection, and parameter_type but these should be represented as inputs in Format2.

tool: Run a tool.

subworkflow: Run a subworkflow.

pause: Pause computation on this branch of workflow until user allows it to continue.

pick_value: Select the first non-null value from multiple inputs. Used to merge branches of conditional or optional workflow paths.

class gxformat2.schema.v19_09.WorkflowTextOption(value: Any, label: Any | None = None, extension_fields: MutableMapping[str, Any] | None = None, loadingOptions: LoadingOptions | None = None)[source]#

Bases: Saveable

A {value, label} option used in restrictions or suggestions on a text workflow parameter. Plain strings are also accepted in those arrays as shorthand for {value: <str>, label: <str>}.

attrs: ClassVar[Collection[str]] = frozenset({'label', 'value'})#
classmethod fromDoc(doc: Any, baseuri: str, loadingOptions: LoadingOptions, docRoot: str | None = None) Self[source]#

Construct this object from the result of yaml.load().

save(top: bool = False, base_url: str = '', relative_uris: bool = True) dict[str, Any][source]#

Convert this object to a JSON/YAML friendly dictionary.

class gxformat2.schema.v19_09.WorkflowTextParameter(optional: Any, type_: Any, label: Any | None = None, doc: Any | None = None, id: Any | None = None, default: Any | None = None, position: Any | None = None, restrictions: Any | None = None, suggestions: Any | None = None, restrictOnConnections: Any | None = None, extension_fields: MutableMapping[str, Any] | None = None, loadingOptions: LoadingOptions | None = None)[source]#

Bases: BaseInputParameter

A scalar text workflow parameter. Normalized gxformat2 output uses type: string. type: text is accepted for compatibility with native Galaxy parameter state and Galaxy tool XML terminology.

attrs: ClassVar[Collection[str]] = frozenset({'default', 'doc', 'id', 'label', 'optional', 'position', 'restrictOnConnections', 'restrictions', 'suggestions', 'type'})#
classmethod fromDoc(doc: Any, baseuri: str, loadingOptions: LoadingOptions, docRoot: str | None = None) Self[source]#

Construct this object from the result of yaml.load().

id: str#
save(top: bool = False, base_url: str = '', relative_uris: bool = True) dict[str, Any][source]#

Convert this object to a JSON/YAML friendly dictionary.

gxformat2.schema.v19_09.convert_typing(val_type: str) str[source]#

Normalize type names to schema-salad types.

gxformat2.schema.v19_09.expand_url(url: str, base_url: str, loadingOptions: LoadingOptions, scoped_id: bool = False, vocab_term: bool = False, scoped_ref: int | None = None) str[source]#
gxformat2.schema.v19_09.extract_type(val_type: type[Any]) str[source]#

Take a type of value, and extracts the value as a string.

gxformat2.schema.v19_09.file_uri(path: str, split_frag: bool = False) str[source]#

Transform a file path into a URL with file scheme.

gxformat2.schema.v19_09.load_document(doc: Any, baseuri: str | None = None, loadingOptions: LoadingOptions | None = None) Any[source]#
gxformat2.schema.v19_09.load_document_by_string(string: Any, uri: str, loadingOptions: LoadingOptions | None = None) Any[source]#
gxformat2.schema.v19_09.load_document_by_yaml(yaml: Any, uri: str, loadingOptions: LoadingOptions | None = None) Any[source]#

Shortcut to load via a YAML object. yaml: must be from ruamel.yaml.main.YAML.load with preserve_quotes=True

gxformat2.schema.v19_09.load_document_with_metadata(doc: Any, baseuri: str | None = None, loadingOptions: LoadingOptions | None = None, addl_metadata_fields: MutableSequence[str] | None = None) Any[source]#
gxformat2.schema.v19_09.load_field(val: Any | None, fieldtype: _Loader, baseuri: str, loadingOptions: LoadingOptions, lc: Any | None = None) Any[source]#

Load field.

gxformat2.schema.v19_09.parse_errors(error_message: str) tuple[str, str, str][source]#

Parse error messages from several loaders into one error message.

gxformat2.schema.v19_09.parser_info() str[source]#
gxformat2.schema.v19_09.prefix_url(url: str, namespaces: dict[str, str]) str[source]#

Expand short forms into full URLs using the given namespace dictionary.

gxformat2.schema.v19_09.save(val: Any, top: bool = True, base_url: str = '', relative_uris: bool = True) None | MutableMapping[str, Any] | MutableSequence[Any] | int | float | bool | str[source]#
gxformat2.schema.v19_09.save_relative_uri(uri: Any, base_url: str, scoped_id: bool, ref_scope: int | None, relative_uris: bool) Any[source]#

Convert any URI to a relative one, obeying the scoping rules.

gxformat2.schema.v19_09.save_with_metadata(val: Any, valLoadingOpts: LoadingOptions, top: bool = True, base_url: str = '', relative_uris: bool = True) None | MutableMapping[str, Any] | MutableSequence[Any] | int | float | bool | str[source]#

Save and set $namespaces, $schemas, $base and any other metadata fields at the top level.

gxformat2.schema.v19_09.shortname(inputid: str) str[source]#

Compute the shortname of a fully qualified identifier.

See https://w3id.org/cwl/v1.2/SchemaSalad.html#Short_names.

Module contents#

Parsers for workflows dervied from schema-salad descriptions and codegen.

Python files in this package probably shouldn’t be modified manually. See build_schema.sh for more information.