11import datetime as dt
22from typing import Literal , Optional
33
4+ import pandas as pd
45from geojson_pydantic import Feature
5- from pydantic import BaseModel , field_validator
6+ from pydantic import BaseModel , field_serializer , field_validator
67
78
89class CubedataDimensionBase (BaseModel ):
@@ -22,6 +23,12 @@ class CubedataDimensionBase(BaseModel):
2223 reference_system : Optional [str | int ]
2324 unit : Optional [str ] = None
2425
26+ @field_serializer ("extent" , "values" , mode = "plain" )
27+ def ser_number (
28+ self , value : list [str | int | float | None ]
29+ ) -> list [str | int | float | None ]:
30+ return [element if pd .notnull (element ) else None for element in value ]
31+
2532
2633class CubedataVariable (BaseModel ):
2734 """A *Variable Object* defines a variable (or a multi-dimensional array).
@@ -54,6 +61,12 @@ class CubedataVariable(BaseModel):
5461 values : Optional [list [str | int | float ]] = None
5562 unit : Optional [str ] = None
5663
64+ @field_serializer ("extent" , mode = "plain" )
65+ def ser_number (
66+ self , value : list [str | int | float | None ]
67+ ) -> list [str | int | float | None ]:
68+ return [element if pd .notnull (element ) else None for element in value ]
69+
5770
5871class HorizontalSpatialRasterDimension (CubedataDimensionBase ):
5972 """A spatial raster dimension in one of the horizontal (x or y) directions.
0 commit comments