2023-08-29 05:16:58 +00:00
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 "
2023-09-01 03:56:21 +00:00
class ConfiguredBaseModel ( BaseModel ,
2023-08-29 05:16:58 +00:00
validate_assignment = True ,
2023-09-01 03:56:21 +00:00
validate_default = True ,
2023-08-29 05:16:58 +00:00
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 .
"""
2023-09-01 03:56:21 +00:00
name : str = Field ( . . . )
2023-08-29 05:16:58 +00:00
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. """ )
2023-09-01 03:56:21 +00:00
# Model rebuild
# see https://pydantic-docs.helpmanual.io/usage/models/#rebuilding-a-model
Device . model_rebuild ( )