Models

class ConfiguredBaseModel

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'strict': False, 'use_enum_values': True, 'validate_assignment': False, 'validate_default': True}

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

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_fields: ClassVar[dict[str, FieldInfo]] = {}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class LinkMLMeta(root: RootModelRootType = PydanticUndefined)

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

root: Dict[str, Any]
model_config: ClassVar[ConfigDict] = {'frozen': True}

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

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_fields: ClassVar[dict[str, FieldInfo]] = {'root': FieldInfo(annotation=Dict[str, Any], required=False, default={})}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class ParentizeMixin

Mixin to populate the parent field for nested datasets and groups

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

parentize() BaseModel

Set the parent attribute for all our fields they have one

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {}

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

model_fields: ClassVar[dict[str, FieldInfo]] = {}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class ReftypeOptions(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)
ref = 'ref'
reference = 'reference'
object = 'object'
region = 'region'
class QuantityEnum(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)
ASTERISK = '*'
QUESTION_MARK = '?'
PLUS_SIGN = '+'
zero_or_many = 'zero_or_many'
one_or_many = 'one_or_many'
zero_or_one = 'zero_or_one'
class FlatDtype(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)
float = 'float'
float32 = 'float32'
double = 'double'
float64 = 'float64'
long = 'long'
int64 = 'int64'
int = 'int'
int32 = 'int32'
int16 = 'int16'
short = 'short'
int8 = 'int8'
uint = 'uint'
uint32 = 'uint32'
uint16 = 'uint16'
uint8 = 'uint8'
uint64 = 'uint64'
numeric = 'numeric'
text = 'text'
utf = 'utf'
utf8 = 'utf8'
utf_8 = 'utf-8'
ascii = 'ascii'
bool = 'bool'
isodatetime = 'isodatetime'
class Namespace(*, doc: str, name: str, full_name: str | None = None, version: str, date: datetime | None = None, author: List[str] | str, contact: List[str] | str, schema: List[Schema] | None = None)

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta(root={'from_schema': 'https://w3id.org/p2p_ld/nwb-schema-language', 'slot_usage': {'name': {'name': 'name', 'required': True}}})
doc: str
name: str
full_name: str | None
version: str
date: datetime | None
author: List[str] | str
contact: List[str] | str
schema_: List[Schema] | None
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'strict': False, 'use_enum_values': True, 'validate_assignment': False, 'validate_default': True}

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

model_fields: ClassVar[dict[str, FieldInfo]] = {'author': FieldInfo(annotation=Union[List[str], str], required=True, description='List of strings with the names of the authors of the namespace.', json_schema_extra={'linkml_meta': {'alias': 'author', 'domain_of': ['Namespace'], 'slot_uri': 'schema:author'}}), 'contact': FieldInfo(annotation=Union[List[str], str], required=True, description='List of strings with the contact information for the authors. Ordering of the contacts should match the ordering of the authors.', json_schema_extra={'linkml_meta': {'alias': 'contact', 'domain_of': ['Namespace'], 'slot_uri': 'schema:email', 'structured_pattern': {'interpolated': True, 'syntax': '{email}'}}}), 'date': FieldInfo(annotation=Union[datetime, NoneType], required=False, default=None, description='Date that a namespace was last modified or released', json_schema_extra={'linkml_meta': {'alias': 'date', 'domain_of': ['Namespace'], 'examples': [{'value': '2017-04-25 17:14:13'}], 'slot_uri': 'schema:dateModified'}}), 'doc': FieldInfo(annotation=str, required=True, description='Description of corresponding object.', json_schema_extra={'linkml_meta': {'alias': 'doc', 'domain_of': ['Namespace', 'Schema', 'Group', 'Attribute', 'Link', 'Dataset', 'CompoundDtype']}}), 'full_name': FieldInfo(annotation=Union[str, NoneType], required=False, default=None, description='Optional string with extended full name for the namespace.', json_schema_extra={'linkml_meta': {'alias': 'full_name', 'domain_of': ['Namespace']}}), 'name': FieldInfo(annotation=str, required=True, json_schema_extra={'linkml_meta': {'alias': 'name', 'domain_of': ['Namespace', 'Group', 'Attribute', 'Link', 'Dataset', 'CompoundDtype'], 'structured_pattern': {'interpolated': True, 'syntax': '{protected_string}'}}}), 'schema_': FieldInfo(annotation=Union[List[Schema], NoneType], required=False, default=None, alias='schema', alias_priority=2, description='List of the schema to be included in this namespace.', json_schema_extra={'linkml_meta': {'alias': 'schema_', 'domain_of': ['Namespace']}}), 'version': FieldInfo(annotation=str, required=True, json_schema_extra={'linkml_meta': {'alias': 'version', 'domain_of': ['Namespace']}})}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class Namespaces(*, namespaces: List[Namespace] | None = None)

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta(root={'from_schema': 'https://w3id.org/p2p_ld/nwb-schema-language'})
namespaces: List[Namespace] | None
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'strict': False, 'use_enum_values': True, 'validate_assignment': False, 'validate_default': True}

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

model_fields: ClassVar[dict[str, FieldInfo]] = {'namespaces': FieldInfo(annotation=Union[List[Namespace], NoneType], required=False, default=None, json_schema_extra={'linkml_meta': {'alias': 'namespaces', 'domain_of': ['Namespaces']}})}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class Schema(*, source: str | None = None, namespace: str | None = None, title: str | None = None, neurodata_types: List[Dataset | Group] | None = None, doc: str | None = None)

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta(root={'from_schema': 'https://w3id.org/p2p_ld/nwb-schema-language', 'rules': [{'description': 'If namespace is absent, source is required', 'postconditions': {'slot_conditions': {'source': {'name': 'source', 'required': True}}}, 'preconditions': {'slot_conditions': {'namespace': {'name': 'namespace', 'value_presence': 'ABSENT'}}}}, {'description': 'If source is absent, namespace is required.', 'postconditions': {'slot_conditions': {'namespace': {'name': 'namespace', 'required': True}}}, 'preconditions': {'slot_conditions': {'source': {'name': 'source', 'value_presence': 'ABSENT'}}}}, {'description': 'If namespace is present, source is cannot be', 'postconditions': {'slot_conditions': {'source': {'name': 'source', 'value_presence': 'ABSENT'}}}, 'preconditions': {'slot_conditions': {'namespace': {'name': 'namespace', 'value_presence': 'PRESENT'}}}}, {'description': 'If source is present, namespace cannot be.', 'postconditions': {'slot_conditions': {'namespace': {'name': 'namespace', 'value_presence': 'ABSENT'}}}, 'preconditions': {'slot_conditions': {'source': {'name': 'source', 'value_presence': 'PRESENT'}}}}]})
source: str | None
namespace: str | None
title: str | None
neurodata_types: List[Dataset | Group] | None
doc: str | None
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'strict': False, 'use_enum_values': True, 'validate_assignment': False, 'validate_default': True}

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

model_fields: ClassVar[dict[str, FieldInfo]] = {'doc': FieldInfo(annotation=Union[str, NoneType], required=False, default=None, json_schema_extra={'linkml_meta': {'alias': 'doc', 'domain_of': ['Namespace', 'Schema', 'Group', 'Attribute', 'Link', 'Dataset', 'CompoundDtype']}}), 'namespace': FieldInfo(annotation=Union[str, NoneType], required=False, default=None, description='describes a named reference to another namespace. In contrast to source, this is a reference by name to a known namespace (i.e., the namespace is resolved during the build and must point to an already existing namespace). This mechanism is used to allow, e.g., extension of a core namespace (here the NWB core namespace) without requiring hard paths to the files describing the core namespace. Either source or namespace must be specified, but not both.', json_schema_extra={'linkml_meta': {'alias': 'namespace', 'domain_of': ['Schema']}}), 'neurodata_types': FieldInfo(annotation=Union[List[Union[Dataset, Group]], NoneType], required=False, default=None, description='an optional list of strings indicating which data types should be included from the given specification source or namespace. The default is null indicating that all data types should be included.', json_schema_extra={'linkml_meta': {'alias': 'neurodata_types', 'any_of': [{'range': 'Dataset'}, {'range': 'Group'}], 'domain_of': ['Schema']}}), 'source': FieldInfo(annotation=Union[str, NoneType], required=False, default=None, description='describes the name of the YAML (or JSON) file with the schema specification. The schema files should be located in the same folder as the namespace file.', json_schema_extra={'linkml_meta': {'alias': 'source', 'domain_of': ['Schema']}}), 'title': FieldInfo(annotation=Union[str, NoneType], required=False, default=None, description='a descriptive title for a file for documentation purposes.', json_schema_extra={'linkml_meta': {'alias': 'title', 'domain_of': ['Schema']}})}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class Group(*, neurodata_type_def: str | None = None, neurodata_type_inc: str | None = None, name: str | None = None, default_name: str | None = None, doc: str, quantity: QuantityEnum | int | None = '1', linkable: bool | None = None, attributes: List[Attribute] | None = None, datasets: List[Dataset] | None = None, groups: List[Group] | None = None, links: List[Link] | None = None, parent: Group | None = None)

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta(root={'from_schema': 'https://w3id.org/p2p_ld/nwb-schema-language'})
neurodata_type_def: str | None
neurodata_type_inc: str | None
name: str | None
default_name: str | None
doc: str
quantity: QuantityEnum | int | None
linkable: bool | None
attributes: List[Attribute] | None
datasets: List[Dataset] | None
groups: List[Group] | None
parent: Group | None
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'strict': False, 'use_enum_values': True, 'validate_assignment': False, 'validate_default': True}

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

model_fields: ClassVar[dict[str, FieldInfo]] = {'attributes': FieldInfo(annotation=Union[List[Attribute], NoneType], required=False, default=None, json_schema_extra={'linkml_meta': {'alias': 'attributes', 'domain_of': ['Group', 'Dataset']}}), 'datasets': FieldInfo(annotation=Union[List[Dataset], NoneType], required=False, default=None, json_schema_extra={'linkml_meta': {'alias': 'datasets', 'domain_of': ['Group', 'Datasets']}}), 'default_name': FieldInfo(annotation=Union[str, NoneType], required=False, default=None, json_schema_extra={'linkml_meta': {'alias': 'default_name', 'domain_of': ['Group', 'Dataset'], 'structured_pattern': {'interpolated': True, 'syntax': '{protected_string}'}}}), 'doc': FieldInfo(annotation=str, required=True, description='Description of corresponding object.', json_schema_extra={'linkml_meta': {'alias': 'doc', 'domain_of': ['Namespace', 'Schema', 'Group', 'Attribute', 'Link', 'Dataset', 'CompoundDtype']}}), 'groups': FieldInfo(annotation=Union[List[Group], NoneType], required=False, default=None, json_schema_extra={'linkml_meta': {'alias': 'groups', 'domain_of': ['Group', 'Groups']}}), 'linkable': FieldInfo(annotation=Union[bool, NoneType], required=False, default=None, json_schema_extra={'linkml_meta': {'alias': 'linkable', 'domain_of': ['Group', 'Dataset']}}), 'links': FieldInfo(annotation=Union[List[Link], NoneType], required=False, default=None, json_schema_extra={'linkml_meta': {'alias': 'links', 'domain_of': ['Group']}}), 'name': FieldInfo(annotation=Union[str, NoneType], required=False, default=None, json_schema_extra={'linkml_meta': {'alias': 'name', 'domain_of': ['Namespace', 'Group', 'Attribute', 'Link', 'Dataset', 'CompoundDtype'], 'structured_pattern': {'interpolated': True, 'syntax': '{protected_string}'}}}), 'neurodata_type_def': FieldInfo(annotation=Union[str, NoneType], required=False, default=None, description='Used alongside neurodata_type_inc to indicate inheritance, naming, and mixins', json_schema_extra={'linkml_meta': {'alias': 'neurodata_type_def', 'domain_of': ['Group', 'Dataset'], 'structured_pattern': {'interpolated': True, 'syntax': '{protected_string}'}}}), 'neurodata_type_inc': FieldInfo(annotation=Union[str, NoneType], required=False, default=None, description='Used alongside neurodata_type_def to indicate inheritance, naming, and mixins', json_schema_extra={'linkml_meta': {'alias': 'neurodata_type_inc', 'domain_of': ['Group', 'Dataset'], 'structured_pattern': {'interpolated': True, 'syntax': '{protected_string}'}}}), 'parent': FieldInfo(annotation=Union[Group, NoneType], required=False, default=None, description='The parent group that contains this dataset or group', exclude=True, json_schema_extra={'linkml_meta': {'alias': 'parent', 'domain_of': ['Group', 'Attribute', 'Dataset']}}), 'quantity': FieldInfo(annotation=Union[QuantityEnum, int, NoneType], required=False, default='1', json_schema_extra={'linkml_meta': {'alias': 'quantity', 'any_of': [{'minimum_value': 1, 'range': 'integer'}, {'range': 'QuantityEnum'}], 'domain_of': ['Group', 'Link', 'Dataset'], 'ifabsent': 'int(1)', 'todos': ['logic to check that the corresponding class can only be implemented quantity times.']}})}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class Groups(*, groups: List[Group] | None = None)

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta(root={'from_schema': 'https://w3id.org/p2p_ld/nwb-schema-language'})
groups: List[Group] | None
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'strict': False, 'use_enum_values': True, 'validate_assignment': False, 'validate_default': True}

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

model_fields: ClassVar[dict[str, FieldInfo]] = {'groups': FieldInfo(annotation=Union[List[Group], NoneType], required=False, default=None, json_schema_extra={'linkml_meta': {'alias': 'groups', 'domain_of': ['Group', 'Groups']}})}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta(root={'from_schema': 'https://w3id.org/p2p_ld/nwb-schema-language'})
name: str | None
doc: str
target_type: str
quantity: QuantityEnum | int | None
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'strict': False, 'use_enum_values': True, 'validate_assignment': False, 'validate_default': True}

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

model_fields: ClassVar[dict[str, FieldInfo]] = {'doc': FieldInfo(annotation=str, required=True, description='Description of corresponding object.', json_schema_extra={'linkml_meta': {'alias': 'doc', 'domain_of': ['Namespace', 'Schema', 'Group', 'Attribute', 'Link', 'Dataset', 'CompoundDtype']}}), 'name': FieldInfo(annotation=Union[str, NoneType], required=False, default=None, json_schema_extra={'linkml_meta': {'alias': 'name', 'domain_of': ['Namespace', 'Group', 'Attribute', 'Link', 'Dataset', 'CompoundDtype'], 'structured_pattern': {'interpolated': True, 'syntax': '{protected_string}'}}}), 'quantity': FieldInfo(annotation=Union[QuantityEnum, int, NoneType], required=False, default='1', json_schema_extra={'linkml_meta': {'alias': 'quantity', 'any_of': [{'minimum_value': 1, 'range': 'integer'}, {'range': 'QuantityEnum'}], 'domain_of': ['Group', 'Link', 'Dataset'], 'ifabsent': 'int(1)', 'todos': ['logic to check that the corresponding class can only be implemented quantity times.']}}), 'target_type': FieldInfo(annotation=str, required=True, description='Describes the neurodata_type of the target that the reference points to', json_schema_extra={'linkml_meta': {'alias': 'target_type', 'domain_of': ['Link', 'ReferenceDtype']}})}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class Datasets(*, datasets: List[Dataset] | None = None)

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta(root={'from_schema': 'https://w3id.org/p2p_ld/nwb-schema-language'})
datasets: List[Dataset] | None
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'strict': False, 'use_enum_values': True, 'validate_assignment': False, 'validate_default': True}

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

model_fields: ClassVar[dict[str, FieldInfo]] = {'datasets': FieldInfo(annotation=Union[List[Dataset], NoneType], required=False, default=None, json_schema_extra={'linkml_meta': {'alias': 'datasets', 'domain_of': ['Group', 'Datasets']}})}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class ReferenceDtype(*, target_type: str, reftype: ReftypeOptions | None = None)

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta(root={'from_schema': 'https://w3id.org/p2p_ld/nwb-schema-language'})
target_type: str
reftype: ReftypeOptions | None
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'strict': False, 'use_enum_values': True, 'validate_assignment': False, 'validate_default': True}

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

model_fields: ClassVar[dict[str, FieldInfo]] = {'reftype': FieldInfo(annotation=Union[ReftypeOptions, NoneType], required=False, default=None, description='describes the kind of reference', json_schema_extra={'linkml_meta': {'alias': 'reftype', 'domain_of': ['ReferenceDtype']}}), 'target_type': FieldInfo(annotation=str, required=True, description='Describes the neurodata_type of the target that the reference points to', json_schema_extra={'linkml_meta': {'alias': 'target_type', 'domain_of': ['Link', 'ReferenceDtype']}})}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class CompoundDtype(*, name: str, doc: str, dtype: FlatDtype | ReferenceDtype)

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta(root={'from_schema': 'https://w3id.org/p2p_ld/nwb-schema-language', 'slot_usage': {'dtype': {'any_of': [{'range': 'ReferenceDtype'}, {'range': 'FlatDtype'}], 'multivalued': False, 'name': 'dtype', 'required': True}, 'name': {'name': 'name', 'required': True}}})
name: str
doc: str
dtype: FlatDtype | ReferenceDtype
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'strict': False, 'use_enum_values': True, 'validate_assignment': False, 'validate_default': True}

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

model_fields: ClassVar[dict[str, FieldInfo]] = {'doc': FieldInfo(annotation=str, required=True, description='Description of corresponding object.', json_schema_extra={'linkml_meta': {'alias': 'doc', 'domain_of': ['Namespace', 'Schema', 'Group', 'Attribute', 'Link', 'Dataset', 'CompoundDtype']}}), 'dtype': FieldInfo(annotation=Union[FlatDtype, ReferenceDtype], required=True, json_schema_extra={'linkml_meta': {'alias': 'dtype', 'any_of': [{'range': 'ReferenceDtype'}, {'range': 'FlatDtype'}], 'domain_of': ['CompoundDtype', 'DtypeMixin']}}), 'name': FieldInfo(annotation=str, required=True, json_schema_extra={'linkml_meta': {'alias': 'name', 'domain_of': ['Namespace', 'Group', 'Attribute', 'Link', 'Dataset', 'CompoundDtype'], 'structured_pattern': {'interpolated': True, 'syntax': '{protected_string}'}}})}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class DtypeMixin(*, dtype: List[CompoundDtype] | FlatDtype | ReferenceDtype | None = None)

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta(root={'from_schema': 'https://w3id.org/p2p_ld/nwb-schema-language', 'mixin': True, 'rules': [{'postconditions': {'slot_conditions': {'dtype': {'multivalued': False, 'name': 'dtype'}}}, 'preconditions': {'slot_conditions': {'dtype': {'name': 'dtype', 'range': 'FlatDtype'}}}}]})
dtype: List[CompoundDtype] | FlatDtype | ReferenceDtype | None
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'strict': False, 'use_enum_values': True, 'validate_assignment': False, 'validate_default': True}

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

model_fields: ClassVar[dict[str, FieldInfo]] = {'dtype': FieldInfo(annotation=Union[List[CompoundDtype], FlatDtype, ReferenceDtype, NoneType], required=False, default=None, json_schema_extra={'linkml_meta': {'alias': 'dtype', 'any_of': [{'range': 'FlatDtype'}, {'range': 'CompoundDtype'}, {'range': 'ReferenceDtype'}], 'domain_of': ['CompoundDtype', 'DtypeMixin']}})}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class Attribute(*, dtype: List[CompoundDtype] | FlatDtype | ReferenceDtype | None = None, name: str, dims: List[Any | str] | None = None, shape: List[Any | int | str] | None = None, value: Any | None = None, default_value: Any | None = None, doc: str, required: bool | None = True, parent: Dataset | Group | None = None)

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta(root={'from_schema': 'https://w3id.org/p2p_ld/nwb-schema-language', 'mixins': ['DtypeMixin'], 'slot_usage': {'name': {'name': 'name', 'required': True}, 'parent': {'any_of': [{'range': 'Group'}, {'range': 'Dataset'}], 'name': 'parent'}}})
name: str
dims: List[Any | str] | None
shape: List[Any | int | str] | None
value: Any | None
default_value: Any | None
doc: str
required: bool | None
parent: Dataset | Group | None
dtype: List[CompoundDtype] | FlatDtype | ReferenceDtype | None
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'strict': False, 'use_enum_values': True, 'validate_assignment': False, 'validate_default': True}

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

model_fields: ClassVar[dict[str, FieldInfo]] = {'default_value': FieldInfo(annotation=Union[Any, NoneType], required=False, default=None, description='Optional default value for variable-valued attributes.', json_schema_extra={'linkml_meta': {'alias': 'default_value', 'domain_of': ['Attribute', 'Dataset']}}), 'dims': FieldInfo(annotation=Union[List[Union[Any, str]], NoneType], required=False, default=None, json_schema_extra={'linkml_meta': {'alias': 'dims', 'any_of': [{'range': 'string'}, {'range': 'AnyType'}], 'domain_of': ['Attribute', 'Dataset'], 'todos': ["Can't quite figure out how to allow an array of arrays - see https://github.com/linkml/linkml/issues/895"]}}), 'doc': FieldInfo(annotation=str, required=True, description='Description of corresponding object.', json_schema_extra={'linkml_meta': {'alias': 'doc', 'domain_of': ['Namespace', 'Schema', 'Group', 'Attribute', 'Link', 'Dataset', 'CompoundDtype']}}), 'dtype': FieldInfo(annotation=Union[List[CompoundDtype], FlatDtype, ReferenceDtype, NoneType], required=False, default=None, json_schema_extra={'linkml_meta': {'alias': 'dtype', 'any_of': [{'range': 'FlatDtype'}, {'range': 'CompoundDtype'}, {'range': 'ReferenceDtype'}], 'domain_of': ['CompoundDtype', 'DtypeMixin']}}), 'name': FieldInfo(annotation=str, required=True, json_schema_extra={'linkml_meta': {'alias': 'name', 'domain_of': ['Namespace', 'Group', 'Attribute', 'Link', 'Dataset', 'CompoundDtype'], 'structured_pattern': {'interpolated': True, 'syntax': '{protected_string}'}}}), 'parent': FieldInfo(annotation=Union[Dataset, Group, NoneType], required=False, default=None, description='The parent group that contains this dataset or group', exclude=True, json_schema_extra={'linkml_meta': {'alias': 'parent', 'any_of': [{'range': 'Group'}, {'range': 'Dataset'}], 'domain_of': ['Group', 'Attribute', 'Dataset']}}), 'required': FieldInfo(annotation=Union[bool, NoneType], required=False, default=True, description='Optional boolean key describing whether the attribute is required. Default value is True.', json_schema_extra={'linkml_meta': {'alias': 'required', 'domain_of': ['Attribute'], 'ifabsent': 'true'}}), 'shape': FieldInfo(annotation=Union[List[Union[Any, int, str]], NoneType], required=False, default=None, json_schema_extra={'linkml_meta': {'alias': 'shape', 'any_of': [{'minimum_value': 1, 'range': 'integer'}, {'equals_string': 'null', 'range': 'string'}, {'range': 'AnyType'}], 'domain_of': ['Attribute', 'Dataset'], 'todos': ["Can't quite figure out how to allow an array of arrays - see https://github.com/linkml/linkml/issues/895"]}}), 'value': FieldInfo(annotation=Union[Any, NoneType], required=False, default=None, description='Optional constant, fixed value for the attribute.', json_schema_extra={'linkml_meta': {'alias': 'value', 'domain_of': ['Attribute', 'Dataset']}})}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class Dataset(*, neurodata_type_def: str | None = None, neurodata_type_inc: str | None = None, name: str | None = None, default_name: str | None = None, dims: List[Any | str] | None = None, shape: List[Any | int | str] | None = None, value: Any | None = None, default_value: Any | None = None, doc: str, quantity: QuantityEnum | int | None = '1', linkable: bool | None = None, attributes: List[Attribute] | None = None, parent: Group | None = None, dtype: List[CompoundDtype] | FlatDtype | ReferenceDtype | None = None)

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta(root={'from_schema': 'https://w3id.org/p2p_ld/nwb-schema-language', 'mixins': ['DtypeMixin']})
neurodata_type_def: str | None
neurodata_type_inc: str | None
name: str | None
default_name: str | None
dims: List[Any | str] | None
shape: List[Any | int | str] | None
value: Any | None
default_value: Any | None
doc: str
quantity: QuantityEnum | int | None
linkable: bool | None
attributes: List[Attribute] | None
parent: Group | None
dtype: List[CompoundDtype] | FlatDtype | ReferenceDtype | None
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'strict': False, 'use_enum_values': True, 'validate_assignment': False, 'validate_default': True}

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

model_fields: ClassVar[dict[str, FieldInfo]] = {'attributes': FieldInfo(annotation=Union[List[Attribute], NoneType], required=False, default=None, json_schema_extra={'linkml_meta': {'alias': 'attributes', 'domain_of': ['Group', 'Dataset']}}), 'default_name': FieldInfo(annotation=Union[str, NoneType], required=False, default=None, json_schema_extra={'linkml_meta': {'alias': 'default_name', 'domain_of': ['Group', 'Dataset'], 'structured_pattern': {'interpolated': True, 'syntax': '{protected_string}'}}}), 'default_value': FieldInfo(annotation=Union[Any, NoneType], required=False, default=None, description='Optional default value for variable-valued attributes.', json_schema_extra={'linkml_meta': {'alias': 'default_value', 'domain_of': ['Attribute', 'Dataset']}}), 'dims': FieldInfo(annotation=Union[List[Union[Any, str]], NoneType], required=False, default=None, json_schema_extra={'linkml_meta': {'alias': 'dims', 'any_of': [{'range': 'string'}, {'range': 'AnyType'}], 'domain_of': ['Attribute', 'Dataset'], 'todos': ["Can't quite figure out how to allow an array of arrays - see https://github.com/linkml/linkml/issues/895"]}}), 'doc': FieldInfo(annotation=str, required=True, description='Description of corresponding object.', json_schema_extra={'linkml_meta': {'alias': 'doc', 'domain_of': ['Namespace', 'Schema', 'Group', 'Attribute', 'Link', 'Dataset', 'CompoundDtype']}}), 'dtype': FieldInfo(annotation=Union[List[CompoundDtype], FlatDtype, ReferenceDtype, NoneType], required=False, default=None, json_schema_extra={'linkml_meta': {'alias': 'dtype', 'any_of': [{'range': 'FlatDtype'}, {'range': 'CompoundDtype'}, {'range': 'ReferenceDtype'}], 'domain_of': ['CompoundDtype', 'DtypeMixin']}}), 'linkable': FieldInfo(annotation=Union[bool, NoneType], required=False, default=None, json_schema_extra={'linkml_meta': {'alias': 'linkable', 'domain_of': ['Group', 'Dataset']}}), 'name': FieldInfo(annotation=Union[str, NoneType], required=False, default=None, json_schema_extra={'linkml_meta': {'alias': 'name', 'domain_of': ['Namespace', 'Group', 'Attribute', 'Link', 'Dataset', 'CompoundDtype'], 'structured_pattern': {'interpolated': True, 'syntax': '{protected_string}'}}}), 'neurodata_type_def': FieldInfo(annotation=Union[str, NoneType], required=False, default=None, description='Used alongside neurodata_type_inc to indicate inheritance, naming, and mixins', json_schema_extra={'linkml_meta': {'alias': 'neurodata_type_def', 'domain_of': ['Group', 'Dataset'], 'structured_pattern': {'interpolated': True, 'syntax': '{protected_string}'}}}), 'neurodata_type_inc': FieldInfo(annotation=Union[str, NoneType], required=False, default=None, description='Used alongside neurodata_type_def to indicate inheritance, naming, and mixins', json_schema_extra={'linkml_meta': {'alias': 'neurodata_type_inc', 'domain_of': ['Group', 'Dataset'], 'structured_pattern': {'interpolated': True, 'syntax': '{protected_string}'}}}), 'parent': FieldInfo(annotation=Union[Group, NoneType], required=False, default=None, description='The parent group that contains this dataset or group', exclude=True, json_schema_extra={'linkml_meta': {'alias': 'parent', 'domain_of': ['Group', 'Attribute', 'Dataset']}}), 'quantity': FieldInfo(annotation=Union[QuantityEnum, int, NoneType], required=False, default='1', json_schema_extra={'linkml_meta': {'alias': 'quantity', 'any_of': [{'minimum_value': 1, 'range': 'integer'}, {'range': 'QuantityEnum'}], 'domain_of': ['Group', 'Link', 'Dataset'], 'ifabsent': 'int(1)', 'todos': ['logic to check that the corresponding class can only be implemented quantity times.']}}), 'shape': FieldInfo(annotation=Union[List[Union[Any, int, str]], NoneType], required=False, default=None, json_schema_extra={'linkml_meta': {'alias': 'shape', 'any_of': [{'minimum_value': 1, 'range': 'integer'}, {'equals_string': 'null', 'range': 'string'}, {'range': 'AnyType'}], 'domain_of': ['Attribute', 'Dataset'], 'todos': ["Can't quite figure out how to allow an array of arrays - see https://github.com/linkml/linkml/issues/895"]}}), 'value': FieldInfo(annotation=Union[Any, NoneType], required=False, default=None, description='Optional constant, fixed value for the attribute.', json_schema_extra={'linkml_meta': {'alias': 'value', 'domain_of': ['Attribute', 'Dataset']}})}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.