19
19
from pystac .extensions .grid import GridExtension
20
20
from pystac .extensions .item_assets import ItemAssetsExtension
21
21
from pystac .extensions .mgrs import MgrsExtension
22
+ from pystac .extensions .mlm import (
23
+ AssetDetailedMLMExtension ,
24
+ AssetGeneralMLMExtension ,
25
+ MLMExtension ,
26
+ )
22
27
from pystac .extensions .pointcloud import PointcloudExtension
23
28
from pystac .extensions .projection import ProjectionExtension
24
29
from pystac .extensions .raster import RasterExtension
48
53
"grid" ,
49
54
"item_assets" ,
50
55
"mgrs" ,
56
+ "mlm" ,
51
57
"pc" ,
52
58
"proj" ,
53
59
"raster" ,
71
77
GridExtension .name : GridExtension ,
72
78
ItemAssetsExtension .name : ItemAssetsExtension ,
73
79
MgrsExtension .name : MgrsExtension ,
80
+ MLMExtension .name : MLMExtension ,
74
81
PointcloudExtension .name : PointcloudExtension ,
75
82
ProjectionExtension .name : ProjectionExtension ,
76
83
RasterExtension .name : RasterExtension ,
@@ -153,6 +160,10 @@ def cube(self) -> DatacubeExtension[Collection]:
153
160
def item_assets (self ) -> dict [str , ItemAssetDefinition ]:
154
161
return ItemAssetsExtension .ext (self .stac_object ).item_assets
155
162
163
+ @property
164
+ def mlm (self ) -> MLMExtension [Collection ]:
165
+ return MLMExtension .ext (self .stac_object )
166
+
156
167
@property
157
168
def render (self ) -> dict [str , Render ]:
158
169
return RenderExtension .ext (self .stac_object ).renders
@@ -225,6 +236,10 @@ def grid(self) -> GridExtension:
225
236
def mgrs (self ) -> MgrsExtension :
226
237
return MgrsExtension .ext (self .stac_object )
227
238
239
+ @property
240
+ def mlm (self ) -> MLMExtension [Item ]:
241
+ return MLMExtension .ext (self .stac_object )
242
+
228
243
@property
229
244
def pc (self ) -> PointcloudExtension [Item ]:
230
245
return PointcloudExtension .ext (self .stac_object )
@@ -389,6 +404,13 @@ class AssetExt(_AssetExt[Asset]):
389
404
def file (self ) -> FileExtension [Asset ]:
390
405
return FileExtension .ext (self .stac_object )
391
406
407
+ @property
408
+ def mlm (self ) -> AssetGeneralMLMExtension [Asset ] | AssetDetailedMLMExtension :
409
+ if "mlm:name" in self .stac_object .extra_fields :
410
+ return AssetDetailedMLMExtension .ext (self .stac_object )
411
+ else :
412
+ return AssetGeneralMLMExtension .ext (self .stac_object )
413
+
392
414
@property
393
415
def timestamps (self ) -> TimestampsExtension [Asset ]:
394
416
return TimestampsExtension .ext (self .stac_object )
@@ -406,6 +428,10 @@ class ItemAssetExt(_AssetExt[ItemAssetDefinition]):
406
428
407
429
stac_object : ItemAssetDefinition
408
430
431
+ @property
432
+ def mlm (self ) -> MLMExtension [ItemAssetDefinition ]:
433
+ return MLMExtension .ext (self .stac_object )
434
+
409
435
410
436
@dataclass
411
437
class LinkExt (_AssetsExt [Link ]):
0 commit comments