1919from pystac .extensions .grid import GridExtension
2020from pystac .extensions .item_assets import ItemAssetsExtension
2121from pystac .extensions .mgrs import MgrsExtension
22+ from pystac .extensions .mlm import (
23+ AssetDetailedMLMExtension ,
24+ AssetGeneralMLMExtension ,
25+ MLMExtension ,
26+ )
2227from pystac .extensions .pointcloud import PointcloudExtension
2328from pystac .extensions .projection import ProjectionExtension
2429from pystac .extensions .raster import RasterExtension
4954 "grid" ,
5055 "item_assets" ,
5156 "mgrs" ,
57+ "mlm" ,
5258 "pc" ,
5359 "proj" ,
5460 "raster" ,
7379 GridExtension .name : GridExtension ,
7480 ItemAssetsExtension .name : ItemAssetsExtension ,
7581 MgrsExtension .name : MgrsExtension ,
82+ MLMExtension .name : MLMExtension ,
7683 PointcloudExtension .name : PointcloudExtension ,
7784 ProjectionExtension .name : ProjectionExtension ,
7885 RasterExtension .name : RasterExtension ,
@@ -156,6 +163,10 @@ def cube(self) -> DatacubeExtension[Collection]:
156163 def item_assets (self ) -> dict [str , ItemAssetDefinition ]:
157164 return ItemAssetsExtension .ext (self .stac_object ).item_assets
158165
166+ @property
167+ def mlm (self ) -> MLMExtension [Collection ]:
168+ return MLMExtension .ext (self .stac_object )
169+
159170 @property
160171 def render (self ) -> dict [str , Render ]:
161172 return RenderExtension .ext (self .stac_object ).renders
@@ -232,6 +243,10 @@ def grid(self) -> GridExtension:
232243 def mgrs (self ) -> MgrsExtension :
233244 return MgrsExtension .ext (self .stac_object )
234245
246+ @property
247+ def mlm (self ) -> MLMExtension [Item ]:
248+ return MLMExtension .ext (self .stac_object )
249+
235250 @property
236251 def pc (self ) -> PointcloudExtension [Item ]:
237252 return PointcloudExtension .ext (self .stac_object )
@@ -404,6 +419,13 @@ class AssetExt(_AssetExt[Asset]):
404419 def file (self ) -> FileExtension [Asset ]:
405420 return FileExtension .ext (self .stac_object )
406421
422+ @property
423+ def mlm (self ) -> AssetGeneralMLMExtension [Asset ] | AssetDetailedMLMExtension :
424+ if "mlm:name" in self .stac_object .extra_fields :
425+ return AssetDetailedMLMExtension .ext (self .stac_object )
426+ else :
427+ return AssetGeneralMLMExtension .ext (self .stac_object )
428+
407429 @property
408430 def timestamps (self ) -> TimestampsExtension [Asset ]:
409431 return TimestampsExtension .ext (self .stac_object )
@@ -425,6 +447,10 @@ class ItemAssetExt(_AssetExt[ItemAssetDefinition]):
425447
426448 stac_object : ItemAssetDefinition
427449
450+ @property
451+ def mlm (self ) -> MLMExtension [ItemAssetDefinition ]:
452+ return MLMExtension .ext (self .stac_object )
453+
428454
429455@dataclass
430456class LinkExt (_AssetsExt [Link ]):
0 commit comments