aind_behavior_services package

Subpackages

Submodules

aind_behavior_services.base module

pydantic model aind_behavior_services.base.SchemaVersionedModel[source]

Bases: BaseModel

Show JSON schema
{
   "title": "SchemaVersionedModel",
   "type": "object",
   "properties": {
      "aind_behavior_services_pkg_version": {
         "const": "0.11.0",
         "default": "0.11.0",
         "title": "aind_behavior_services package version",
         "type": "string"
      },
      "version": {
         "description": "schema version",
         "pattern": "^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$",
         "title": "Version",
         "type": "string"
      }
   },
   "required": [
      "version"
   ]
}

Fields:
Validators:
field aind_behavior_services_pkg_version: Literal[pkg_version] = '0.11.0'[source]
Constraints:
  • pattern = ^(0|[1-9]d*).(0|[1-9]d*).(0|[1-9]d*)(?:-((?:0|[1-9]d*|d*[a-zA-Z-][0-9a-zA-Z-]*)(?:.(?:0|[1-9]d*|d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:+([0-9a-zA-Z-]+(?:.[0-9a-zA-Z-]+)*))?$

Validated by:
field version: str [Required][source]

schema version

Constraints:
  • pattern = ^(0|[1-9]d*).(0|[1-9]d*).(0|[1-9]d*)(?:-((?:0|[1-9]d*|d*[a-zA-Z-][0-9a-zA-Z-]*)(?:.(?:0|[1-9]d*|d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:+([0-9a-zA-Z-]+(?:.[0-9a-zA-Z-]+)*))?$

Validated by:
validator coerce_version  »  version, aind_behavior_services_pkg_version[source]
Parameters:

v (str)

Return type:

str

class aind_behavior_services.base.SemVerAnnotation[source]

Bases: object

A class representing semantic version annotations.

aind_behavior_services.base.coerce_schema_version(cls, v, version_string='version', check_compatibility=True)[source]
Parameters:
Return type:

str

aind_behavior_services.base.get_commit_hash(repository=None)[source]

Get the commit hash of the repository.

Parameters:

repository (PathLike | None)

Return type:

str

aind_behavior_services.data_types module

class aind_behavior_services.data_types.DataType(value)[source]

Bases: StrEnum

ARRAY = 'array'[source]
BOOLEAL = 'boolean'[source]
NULL = 'null'[source]
NUMBER = 'number'[source]
OBJECT = 'object'[source]
STRING = 'string'[source]
pydantic model aind_behavior_services.data_types.DataTypes[source]

Bases: SchemaVersionedModel

Show JSON schema
{
   "title": "DataTypes",
   "type": "object",
   "properties": {
      "aind_behavior_services_pkg_version": {
         "const": "0.11.0",
         "default": "0.11.0",
         "title": "aind_behavior_services package version",
         "type": "string"
      },
      "version": {
         "const": "0.1.1",
         "default": "0.1.1",
         "title": "Version",
         "type": "string"
      },
      "software_event": {
         "$ref": "#/$defs/SoftwareEvent"
      },
      "render_synch_state": {
         "$ref": "#/$defs/RenderSynchState"
      }
   },
   "$defs": {
      "DataType": {
         "enum": [
            "string",
            "number",
            "boolean",
            "object",
            "array",
            "null"
         ],
         "title": "DataType",
         "type": "string"
      },
      "RenderSynchState": {
         "properties": {
            "sync_quad_value": {
               "anyOf": [
                  {
                     "maximum": 1,
                     "minimum": 0,
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "The synchronization quad value",
               "title": "Sync Quad Value"
            },
            "frame_index": {
               "anyOf": [
                  {
                     "minimum": 0,
                     "type": "integer"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "The frame index of the event",
               "title": "Frame Index"
            },
            "frame_timestamp": {
               "anyOf": [
                  {
                     "minimum": 0,
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "The timestamp of the frame",
               "title": "Frame Timestamp"
            }
         },
         "title": "RenderSynchState",
         "type": "object"
      },
      "SoftwareEvent": {
         "description": "A software event is a generic event that can be used to track any event that occurs in the software.",
         "properties": {
            "name": {
               "description": "The name of the event",
               "title": "Name",
               "type": "string"
            },
            "timestamp": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "The timestamp of the event",
               "title": "Timestamp"
            },
            "timestamp_source": {
               "$ref": "#/$defs/TimestampSource",
               "default": "null",
               "description": "The source of the timestamp"
            },
            "frame_index": {
               "anyOf": [
                  {
                     "minimum": 0,
                     "type": "integer"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "The frame index of the event",
               "title": "Frame Index"
            },
            "frame_timestamp": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "The timestamp of the frame",
               "title": "Frame Timestamp"
            },
            "data": {
               "anyOf": [
                  {},
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "The data of the event",
               "title": "Data"
            },
            "dataType": {
               "$ref": "#/$defs/DataType",
               "default": "null",
               "description": "The data type of the event"
            },
            "data_type_hint": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "The data type hint of the event",
               "title": "Data Type Hint"
            }
         },
         "required": [
            "name"
         ],
         "title": "SoftwareEvent",
         "type": "object"
      },
      "TimestampSource": {
         "enum": [
            "null",
            "harp",
            "render"
         ],
         "title": "TimestampSource",
         "type": "string"
      }
   },
   "required": [
      "software_event",
      "render_synch_state"
   ],
   "x-abstract": "True"
}

Config:
  • json_schema_extra: dict = {‘x-abstract’: ‘True’}

Fields:
Validators:
field render_synch_state: RenderSynchState [Required][source]
field software_event: SoftwareEvent [Required][source]
field version: Literal['0.1.1'] = '0.1.1'[source]
Validated by:
class Config[source]

Bases: object

json_schema_extra = {'x-abstract': 'True'}[source]
pydantic model aind_behavior_services.data_types.RenderSynchState[source]

Bases: BaseModel

Show JSON schema
{
   "title": "RenderSynchState",
   "type": "object",
   "properties": {
      "sync_quad_value": {
         "anyOf": [
            {
               "maximum": 1,
               "minimum": 0,
               "type": "number"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "The synchronization quad value",
         "title": "Sync Quad Value"
      },
      "frame_index": {
         "anyOf": [
            {
               "minimum": 0,
               "type": "integer"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "The frame index of the event",
         "title": "Frame Index"
      },
      "frame_timestamp": {
         "anyOf": [
            {
               "minimum": 0,
               "type": "number"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "The timestamp of the frame",
         "title": "Frame Timestamp"
      }
   }
}

Fields:
field frame_index: int | None = None[source]

The frame index of the event

Constraints:
  • ge = 0

field frame_timestamp: float | None = None[source]

The timestamp of the frame

Constraints:
  • ge = 0

field sync_quad_value: float | None = None[source]

The synchronization quad value

Constraints:
  • ge = 0

  • le = 1

pydantic model aind_behavior_services.data_types.SoftwareEvent[source]

Bases: BaseModel, Generic[TData]

A software event is a generic event that can be used to track any event that occurs in the software.

Show JSON schema
{
   "title": "SoftwareEvent",
   "description": "A software event is a generic event that can be used to track any event that occurs in the software.",
   "type": "object",
   "properties": {
      "name": {
         "description": "The name of the event",
         "title": "Name",
         "type": "string"
      },
      "timestamp": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "The timestamp of the event",
         "title": "Timestamp"
      },
      "timestamp_source": {
         "$ref": "#/$defs/TimestampSource",
         "default": "null",
         "description": "The source of the timestamp"
      },
      "frame_index": {
         "anyOf": [
            {
               "minimum": 0,
               "type": "integer"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "The frame index of the event",
         "title": "Frame Index"
      },
      "frame_timestamp": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "The timestamp of the frame",
         "title": "Frame Timestamp"
      },
      "data": {
         "anyOf": [
            {},
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "The data of the event",
         "title": "Data"
      },
      "dataType": {
         "$ref": "#/$defs/DataType",
         "default": "null",
         "description": "The data type of the event"
      },
      "data_type_hint": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "The data type hint of the event",
         "title": "Data Type Hint"
      }
   },
   "$defs": {
      "DataType": {
         "enum": [
            "string",
            "number",
            "boolean",
            "object",
            "array",
            "null"
         ],
         "title": "DataType",
         "type": "string"
      },
      "TimestampSource": {
         "enum": [
            "null",
            "harp",
            "render"
         ],
         "title": "TimestampSource",
         "type": "string"
      }
   },
   "required": [
      "name"
   ]
}

Fields:
field data: TData | None = None[source]

The data of the event

field data_type: DataType = DataType.NULL (alias 'dataType')[source]

The data type of the event

field data_type_hint: str | None = None[source]

The data type hint of the event

field frame_index: int | None = None[source]

The frame index of the event

Constraints:
  • ge = 0

field frame_timestamp: float | None = None[source]

The timestamp of the frame

field name: str [Required][source]

The name of the event

field timestamp: float | None = None[source]

The timestamp of the event

field timestamp_source: TimestampSource = TimestampSource.NULL[source]

The source of the timestamp

class aind_behavior_services.data_types.TimestampSource(value)[source]

Bases: StrEnum

HARP = 'harp'[source]
NULL = 'null'[source]
RENDER = 'render'[source]

aind_behavior_services.patterns module

pydantic model aind_behavior_services.patterns.LookUpTable[source]

Bases: RootModel

Show JSON schema
{
   "title": "LookUpTable",
   "type": "array",
   "items": {
      "items": {
         "type": "number"
      },
      "maxItems": 2,
      "minItems": 2,
      "type": "array"
   },
   "minItems": 2
}

Fields:
field root: List[Annotated[List[float], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=2), MaxLen(max_length=2)])]] [Required][source]
Constraints:
  • min_length = 2

aind_behavior_services.utils module

class aind_behavior_services.utils.BonsaiSgenSerializers(value)[source]

Bases: Enum

JSON = 'NewtonsoftJson'[source]
NONE = 'None'[source]
YAML = 'YamlDotNet'[source]
class aind_behavior_services.utils.CustomGenerateJsonSchema(*args, **kwargs)[source]

Bases: GenerateJsonSchema

enum_schema(schema)[source]

Generates a JSON schema that matches an Enum value.

Parameters:

schema (EnumSchema) – The core schema.

Returns:

The generated JSON schema.

Return type:

dict[str, Any]

get_flattened_oneof(schemas)[source]
Parameters:

schemas (list[dict[str, Any]])

Return type:

dict[str, Any]

literal_schema(schema)[source]

Generates a JSON schema that matches a literal value.

Parameters:

schema (LiteralSchema) – The core schema.

Returns:

The generated JSON schema.

Return type:

dict[str, Any]

nullable_schema(schema)[source]

Generates a JSON schema that matches a schema that allows null values.

Parameters:

schema (NullableSchema) – The core schema.

Returns:

The generated JSON schema.

Return type:

dict[str, Any]

union_schema(schema)[source]

Generates a JSON schema that matches a schema that allows values matching any of the given schemas.

Parameters:

schema (UnionSchema) – The core schema.

Returns:

The generated JSON schema.

Return type:

dict[str, Any]

aind_behavior_services.utils.bonsai_sgen(schema_path, output_path, namespace='DataSchema', root_element=None, serializer=None, executable='dotnet tool run bonsai.sgen')[source]

Runs Bonsai.SGen to generate a Bonsai-compatible schema from a json-schema model For more information run bonsai.sgen –help in the command line.

Returns:

The result of running the command.

Return type:

CompletedProcess

Parameters:
  • schema_path (PathLike) – Target Json Schema file

  • output_path (PathLike) – Specifies the name of the file containing the generated code.

  • namespace (Optional[str], optional) – Specifies the namespace to use for all generated serialization classes. Defaults to DataSchema.

  • root_element (Optional[str], optional) – Specifies the name of the class used to represent the schema root element. If None, it will use the json schema root element. Defaults to None.

  • serializer (Optional[List[BonsaiSgenSerializers]], optional) – Specifies the serializer data annotations to include in the generated classes. Defaults to None.

  • executable (PathLike | str)

aind_behavior_services.utils.convert_pydantic_to_bonsai(models, namespace='DataSchema', schema_path=PosixPath('src/DataSchemas'), output_path=PosixPath('src/Extensions'), serializer=None, skip_sgen=False, export_schema_kwargs=None)[source]
Parameters:
  • models (Dict[str, List[Type[BaseModel]] | Type[BaseModel]])

  • namespace (str)

  • schema_path (PathLike)

  • output_path (PathLike)

  • serializer (List[BonsaiSgenSerializers] | None)

  • skip_sgen (bool)

  • export_schema_kwargs (Dict[str, Any] | None)

Return type:

Dict[str, CompletedProcess | None]

aind_behavior_services.utils.export_schema(model, schema_generator=<class 'aind_behavior_services.utils.CustomGenerateJsonSchema'>, mode='serialization', def_keyword='definitions', models_title=None)[source]

Export the schema of a model to a json file

Parameters:
  • model (List[Type[BaseModel]] | Type[BaseModel])

  • schema_generator (Type[GenerateJsonSchema])

  • mode (Literal['validation', 'serialization'])

  • def_keyword (str)

  • models_title (str | None)

aind_behavior_services.utils.format_datetime(value, is_tz_strict=False)[source]
Parameters:
  • value (datetime)

  • is_tz_strict (bool)

Return type:

str

aind_behavior_services.utils.get_fields_of_type(searchable, target_type, *, recursive=True, stop_recursion_on_type=True)[source]
Parameters:
  • searchable (BaseModel | Dict | List)

  • target_type (Type[T])

  • recursive (bool)

  • stop_recursion_on_type (bool)

Return type:

List[Tuple[str | None, T]]

aind_behavior_services.utils.model_from_json_file(json_path, model)[source]
Parameters:
  • json_path (PathLike | str)

  • model (type[TModel])

Return type:

TModel

aind_behavior_services.utils.now()[source]

Returns the current time as a timezone unaware datetime.

Return type:

datetime

aind_behavior_services.utils.open_bonsai_process(workflow_file, bonsai_exe='bonsai/bonsai.exe', is_editor_mode=True, is_start_flag=True, layout=None, additional_properties=None, log_file_name=None, cwd=None, creation_flags=None, print_cmd=False)[source]
Parameters:
  • workflow_file (PathLike | str)

  • bonsai_exe (PathLike | str)

  • is_editor_mode (bool)

  • is_start_flag (bool)

  • layout (PathLike | str | None)

  • additional_properties (Dict[str, str] | None)

  • log_file_name (str | None)

  • cwd (PathLike | str | None)

  • creation_flags (int | None)

  • print_cmd (bool)

Return type:

Popen

aind_behavior_services.utils.pascal_to_snake_case(s)[source]

Converts a PascalCase string to snake_case.

Parameters:

s (str) – The PascalCase string to be converted.

Returns:

The snake_case string.

Return type:

str

aind_behavior_services.utils.run_bonsai_process(workflow_file, bonsai_exe='bonsai/bonsai.exe', is_editor_mode=True, is_start_flag=True, layout=None, additional_properties=None, cwd=None, timeout=None, print_cmd=False)[source]
Parameters:
  • workflow_file (PathLike | str)

  • bonsai_exe (PathLike | str)

  • is_editor_mode (bool)

  • is_start_flag (bool)

  • layout (PathLike | str | None)

  • additional_properties (Dict[str, str] | None)

  • cwd (PathLike | str | None)

  • timeout (float | None)

  • print_cmd (bool)

Return type:

CompletedProcess

aind_behavior_services.utils.screaming_snake_case_to_pascal_case(s)[source]

Converts a SCREAMING_SNAKE_CASE string to PascalCase.

Parameters:

s (str) – The SCREAMING_SNAKE_CASE string to be converted.

Returns:

The PascalCase string.

Return type:

str

aind_behavior_services.utils.snake_to_pascal_case(s)[source]

Converts a snake_case string to PascalCase.

Parameters:

s (str) – The snake_case string to be converted.

Returns:

The PascalCase string.

Return type:

str

aind_behavior_services.utils.tznow()[source]

Returns the current time as a timezone aware datetime in the local timezone.

Return type:

datetime

aind_behavior_services.utils.utcnow()[source]

Returns the current time as a timezone aware datetime in UTC.

Return type:

datetime

Module contents

pydantic model aind_behavior_services.AindBehaviorRigModel[source]

Bases: SchemaVersionedModel

Show JSON schema
{
   "title": "AindBehaviorRigModel",
   "type": "object",
   "properties": {
      "aind_behavior_services_pkg_version": {
         "const": "0.11.0",
         "default": "0.11.0",
         "title": "aind_behavior_services package version",
         "type": "string"
      },
      "version": {
         "description": "schema version",
         "pattern": "^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$",
         "title": "Version",
         "type": "string"
      },
      "computer_name": {
         "description": "Computer name",
         "title": "Computer Name",
         "type": "string"
      },
      "rig_name": {
         "description": "Rig name",
         "title": "Rig Name",
         "type": "string"
      }
   },
   "required": [
      "version",
      "rig_name"
   ]
}

Fields:
  • computer_name (str)

  • rig_name (str)

Validators:

field computer_name: str [Optional][source]

Computer name

field rig_name: str [Required][source]

Rig name

pydantic model aind_behavior_services.AindBehaviorSessionModel[source]

Bases: SchemaVersionedModel

Show JSON schema
{
   "title": "AindBehaviorSessionModel",
   "type": "object",
   "properties": {
      "aind_behavior_services_pkg_version": {
         "const": "0.11.0",
         "default": "0.11.0",
         "title": "aind_behavior_services package version",
         "type": "string"
      },
      "version": {
         "const": "0.3.1",
         "default": "0.3.1",
         "title": "Version",
         "type": "string"
      },
      "experiment": {
         "description": "Name of the experiment",
         "title": "Experiment",
         "type": "string"
      },
      "experimenter": {
         "default": [],
         "description": "Name of the experimenter",
         "items": {
            "type": "string"
         },
         "title": "Experimenter",
         "type": "array"
      },
      "date": {
         "description": "Date of the experiment",
         "format": "date-time",
         "title": "Date",
         "type": "string"
      },
      "root_path": {
         "description": "Root path where data will be logged",
         "title": "Root Path",
         "type": "string"
      },
      "session_name": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "Name of the session. This will be used to create a folder in the root path.",
         "title": "Session Name"
      },
      "subject": {
         "description": "Name of the subject",
         "title": "Subject",
         "type": "string"
      },
      "experiment_version": {
         "description": "Version of the experiment",
         "title": "Experiment Version",
         "type": "string"
      },
      "notes": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "Notes about the experiment",
         "title": "Notes"
      },
      "commit_hash": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "Commit hash of the repository",
         "title": "Commit Hash"
      },
      "allow_dirty_repo": {
         "default": false,
         "description": "Allow running from a dirty repository",
         "title": "Allow Dirty Repo",
         "type": "boolean"
      },
      "skip_hardware_validation": {
         "default": false,
         "description": "Skip hardware validation",
         "title": "Skip Hardware Validation",
         "type": "boolean"
      }
   },
   "required": [
      "experiment",
      "root_path",
      "subject",
      "experiment_version"
   ]
}

Fields:
Validators:
field allow_dirty_repo: bool = False[source]

Allow running from a dirty repository

Validated by:
field commit_hash: str | None = None[source]

Commit hash of the repository

Validated by:
field date: Annotated[AwareDatetime, WrapValidator(func=_add_default_tz, json_schema_input_type=PydanticUndefined), FieldInfo(annotation=NoneType, required=True, validate_default=True)] [Optional][source]

Date of the experiment

Constraints:
  • func = <function _add_default_tz at 0x7f3f2bc9d800>

  • json_schema_input_type = PydanticUndefined

Validated by:
field experiment: str [Required][source]

Name of the experiment

Validated by:
field experiment_version: str [Required][source]

Version of the experiment

Validated by:
field experimenter: List[str] = [][source]

Name of the experimenter

Validated by:
field notes: str | None = None[source]

Notes about the experiment

Validated by:
field root_path: str [Required][source]

Root path where data will be logged

Validated by:
field session_name: str | None = None[source]

Name of the session. This will be used to create a folder in the root path.

Validated by:
field skip_hardware_validation: bool = False[source]

Skip hardware validation

Validated by:
field subject: str [Required][source]

Name of the subject

Validated by:
field version: Literal['0.3.1'] = '0.3.1'[source]
Validated by:
validator generate_session_name_default  »  all fields[source]
Return type:

Self

pydantic model aind_behavior_services.AindBehaviorTaskLogicModel[source]

Bases: Task

Show JSON schema
{
   "title": "AindBehaviorTaskLogicModel",
   "type": "object",
   "properties": {
      "name": {
         "description": "Name of the task.",
         "title": "Name",
         "type": "string"
      },
      "description": {
         "default": "",
         "description": "Description of the task.",
         "title": "Description",
         "type": "string"
      },
      "task_parameters": {
         "$ref": "#/$defs/TaskParameters",
         "description": "Parameters of the task logic"
      },
      "version": {
         "description": "task schema version",
         "pattern": "^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$",
         "title": "Version",
         "type": "string"
      },
      "stage_name": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "Optional stage name the `Task` object instance represents.",
         "title": "Stage Name"
      }
   },
   "$defs": {
      "TaskParameters": {
         "additionalProperties": true,
         "properties": {
            "rng_seed": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Seed of the random number generator",
               "title": "Rng Seed"
            },
            "aind_behavior_services_pkg_version": {
               "const": "0.11.0",
               "default": "0.11.0",
               "title": "aind_behavior_services package version",
               "type": "string"
            }
         },
         "title": "TaskParameters",
         "type": "object"
      }
   },
   "additionalProperties": false,
   "required": [
      "name",
      "task_parameters",
      "version"
   ]
}

Config:
  • extra: str = forbid

  • validate_assignment: bool = True

  • validate_default: bool = True

  • strict: bool = True

  • str_strip_whitespace: bool = True

Fields:
Validators:
field task_parameters: TaskParameters [Required][source]

Parameters of the task logic

field version: str [Required][source]

task schema version

Constraints:
  • pattern = ^(0|[1-9]d*).(0|[1-9]d*).(0|[1-9]d*)(?:-((?:0|[1-9]d*|d*[a-zA-Z-][0-9a-zA-Z-]*)(?:.(?:0|[1-9]d*|d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:+([0-9a-zA-Z-]+(?:.[0-9a-zA-Z-]+)*))?$

Validated by:
validator coerce_version  »  version[source]
Parameters:

v (str)

Return type:

str

pydantic model aind_behavior_services.SchemaVersionedModel[source]

Bases: BaseModel

Show JSON schema
{
   "title": "SchemaVersionedModel",
   "type": "object",
   "properties": {
      "aind_behavior_services_pkg_version": {
         "const": "0.11.0",
         "default": "0.11.0",
         "title": "aind_behavior_services package version",
         "type": "string"
      },
      "version": {
         "description": "schema version",
         "pattern": "^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$",
         "title": "Version",
         "type": "string"
      }
   },
   "required": [
      "version"
   ]
}

Fields:
Validators:
field aind_behavior_services_pkg_version: Literal[pkg_version] = '0.11.0'[source]
Constraints:
  • pattern = ^(0|[1-9]d*).(0|[1-9]d*).(0|[1-9]d*)(?:-((?:0|[1-9]d*|d*[a-zA-Z-][0-9a-zA-Z-]*)(?:.(?:0|[1-9]d*|d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:+([0-9a-zA-Z-]+(?:.[0-9a-zA-Z-]+)*))?$

Validated by:
field version: str [Required][source]

schema version

Constraints:
  • pattern = ^(0|[1-9]d*).(0|[1-9]d*).(0|[1-9]d*)(?:-((?:0|[1-9]d*|d*[a-zA-Z-][0-9a-zA-Z-]*)(?:.(?:0|[1-9]d*|d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:+([0-9a-zA-Z-]+(?:.[0-9a-zA-Z-]+)*))?$

Validated by:
validator coerce_version  »  version, aind_behavior_services_pkg_version[source]
Parameters:

v (str)

Return type:

str