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 .hdmf_common_base import (
|
|
|
|
Container
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
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 CSRMatrix(Container):
|
|
|
|
"""
|
|
|
|
A compressed sparse row matrix. Data are stored in the standard CSR format, where column indices for row i are stored in indices[indptr[i]:indptr[i+1]] and their corresponding values are stored in data[indptr[i]:indptr[i+1]].
|
|
|
|
"""
|
2023-09-01 03:56:21 +00:00
|
|
|
name: str = Field(...)
|
2023-09-04 20:49:07 +00:00
|
|
|
shape: Optional[integer] = Field(None, description="""The shape (number of rows, number of columns) of this sparse matrix.""")
|
|
|
|
indices: List[integer] = Field(default_factory=list, description="""The column indices.""")
|
|
|
|
indptr: List[integer] = Field(default_factory=list, description="""The row index pointer.""")
|
2023-09-01 03:56:21 +00:00
|
|
|
data: List[Any] = Field(default_factory=list, description="""The non-zero values in the matrix.""")
|
2023-08-29 05:16:58 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
2023-09-01 03:56:21 +00:00
|
|
|
# Model rebuild
|
|
|
|
# see https://pydantic-docs.helpmanual.io/usage/models/#rebuilding-a-model
|
|
|
|
CSRMatrix.model_rebuild()
|
|
|
|
|