from __future__ import annotations from datetime import datetime, date from enum import Enum from typing import List, Dict, Optional, Any, Union from pydantic import BaseModel as BaseModel, Field from nptyping import NDArray, Shape, Float, Float32, Double, Float64, LongLong, Int64, Int, Int32, Int16, Short, Int8, UInt, UInt32, UInt16, UInt8, UInt64, Number, String, Unicode, Unicode, Unicode, String, Bool, Datetime64 import sys if sys.version_info >= (3, 8): from typing import Literal else: from typing_extensions import Literal from .core_nwb_base import ( NWBContainer ) metamodel_version = "None" version = "None" class ConfiguredBaseModel(BaseModel, validate_assignment = True, validate_default = True, extra = 'forbid', arbitrary_types_allowed = True, use_enum_values = True): pass class Device(NWBContainer): """ Metadata about a data acquisition device, e.g., recording system, electrode, microscope. """ name:str= Field(...) description:Optional[str]= Field(None, description="""Description of the device (e.g., model, firmware version, processing software version, etc.) as free-form text.""") manufacturer:Optional[str]= Field(None, description="""The name of the manufacturer of the device.""") # Model rebuild # see https://pydantic-docs.helpmanual.io/usage/models/#rebuilding-a-model Device.model_rebuild()