Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
- More permissive collection extent deserialization ([#1559](https://github.com/stac-utils/pystac/pull/1559))
- Type of `proj:code` setter ([#1560](https://github.com/stac-utils/pystac/pull/1560))
- Use `urllib3` to fix parsing non-ascii in urls ([#1566](https://github.com/stac-utils/pystac/pull/1566))
- Some return types and other **mypy** nits ([#1569](https://github.com/stac-utils/pystac/pull/1569))

## [v1.13.0] - 2025-04-15

Expand Down
10 changes: 5 additions & 5 deletions pystac/extensions/classification.py
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,7 @@ def value(self) -> int:
Returns:
int
"""
return get_required(self.properties.get("value"), self, "value")
return cast(int, get_required(self.properties.get("value"), self, "value"))

@value.setter
def value(self, v: int) -> None:
Expand Down Expand Up @@ -184,7 +184,7 @@ def name(self) -> str:
Returns:
Optional[str]
"""
return get_required(self.properties.get("name"), self, "name")
return cast(str, get_required(self.properties.get("name"), self, "name"))

@name.setter
def name(self, v: str) -> None:
Expand All @@ -200,7 +200,7 @@ def title(self) -> str | None:
return self.properties.get("title")

@title.setter
def title(self, v: str) -> None:
def title(self, v: str | None) -> None:
if v is not None:
self.properties["title"] = v
else:
Expand Down Expand Up @@ -392,7 +392,7 @@ def offset(self) -> int:
Returns:
int
"""
return get_required(self.properties.get("offset"), self, "offset")
return cast(int, get_required(self.properties.get("offset"), self, "offset"))

@offset.setter
def offset(self, v: int) -> None:
Expand All @@ -405,7 +405,7 @@ def length(self) -> int:
Returns:
int
"""
return get_required(self.properties.get("length"), self, "length")
return cast(int, get_required(self.properties.get("length"), self, "length"))

@length.setter
def length(self, v: int) -> None:
Expand Down
28 changes: 20 additions & 8 deletions pystac/extensions/datacube.py
Original file line number Diff line number Diff line change
Expand Up @@ -88,8 +88,11 @@ def dim_type(self) -> DimensionType | str:
<datacube#temporal-dimension-object>`. May be an arbitrary string for
:stac-ext:`Additional Dimension Objects
<datacube#additional-dimension-object>`."""
return get_required(
self.properties.get(DIM_TYPE_PROP), "cube:dimension", DIM_TYPE_PROP
return cast(
str,
get_required(
self.properties.get(DIM_TYPE_PROP), "cube:dimension", DIM_TYPE_PROP
),
)

@dim_type.setter
Expand Down Expand Up @@ -198,8 +201,11 @@ class HorizontalSpatialDimension(SpatialDimension):
@property
def axis(self) -> HorizontalSpatialDimensionAxis:
"""Axis of the spatial dimension. Must be one of ``"x"`` or ``"y"``."""
return get_required(
self.properties.get(DIM_AXIS_PROP), "cube:dimension", DIM_AXIS_PROP
return cast(
HorizontalSpatialDimensionAxis,
get_required(
self.properties.get(DIM_AXIS_PROP), "cube:dimension", DIM_AXIS_PROP
),
)

@axis.setter
Expand All @@ -211,8 +217,11 @@ class VerticalSpatialDimension(SpatialDimension):
@property
def axis(self) -> VerticalSpatialDimensionAxis:
"""Axis of the spatial dimension. Must be ``"z"``."""
return get_required(
self.properties.get(DIM_AXIS_PROP), "cube:dimension", DIM_AXIS_PROP
return cast(
VerticalSpatialDimensionAxis,
get_required(
self.properties.get(DIM_AXIS_PROP), "cube:dimension", DIM_AXIS_PROP
),
)

@axis.setter
Expand Down Expand Up @@ -453,8 +462,11 @@ def dimensions(self, v: list[str]) -> None:
@property
def var_type(self) -> VariableType | str:
"""Type of the variable, either ``data`` or ``auxiliary``"""
return get_required(
self.properties.get(VAR_TYPE_PROP), "cube:variable", VAR_TYPE_PROP
return cast(
str,
get_required(
self.properties.get(VAR_TYPE_PROP), "cube:variable", VAR_TYPE_PROP
),
)

@var_type.setter
Expand Down
2 changes: 1 addition & 1 deletion pystac/extensions/eo.py
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ def name(self) -> str:
Returns:
str
"""
return get_required(self.properties.get("name"), self, "name")
return cast(str, get_required(self.properties.get("name"), self, "name"))

@name.setter
def name(self, v: str) -> None:
Expand Down
2 changes: 1 addition & 1 deletion pystac/extensions/file.py
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ def values(self, v: list[Any]) -> None:
@property
def summary(self) -> str:
"""Gets or sets the short description of the value(s)."""
return get_required(self.properties.get("summary"), self, "summary")
return cast(str, get_required(self.properties.get("summary"), self, "summary"))

@summary.setter
def summary(self, v: str) -> None:
Expand Down
15 changes: 9 additions & 6 deletions pystac/extensions/label.py
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,7 @@ def create(cls, name: str, count: int) -> LabelCount:
@property
def name(self) -> str:
"""Gets or sets the class that this count represents."""
return get_required(self.properties.get("name"), self, "name")
return cast(str, get_required(self.properties.get("name"), self, "name"))

@name.setter
def name(self, v: str) -> None:
Expand All @@ -202,7 +202,7 @@ def name(self, v: str) -> None:
@property
def count(self) -> int:
"""Get or sets the number of occurrences of the class."""
return get_required(self.properties.get("count"), self, "count")
return cast(int, get_required(self.properties.get("count"), self, "count"))

@count.setter
def count(self, v: int) -> None:
Expand Down Expand Up @@ -258,7 +258,7 @@ def create(cls, name: str, value: float) -> LabelStatistics:
@property
def name(self) -> str:
"""Gets or sets the name of the statistic being reported."""
return get_required(self.properties.get("name"), self, "name")
return cast(str, get_required(self.properties.get("name"), self, "name"))

@name.setter
def name(self, v: str) -> None:
Expand All @@ -267,7 +267,7 @@ def name(self, v: str) -> None:
@property
def value(self) -> float:
"""Gets or sets the value of the statistic."""
return get_required(self.properties.get("value"), self, "value")
return cast(float, get_required(self.properties.get("value"), self, "value"))

@value.setter
def value(self, v: float) -> None:
Expand Down Expand Up @@ -506,8 +506,11 @@ class names for each label:properties. (e.g., tree, building, car,
def label_description(self) -> str:
"""Gets or sets a description of the label, how it was created,
and what it is recommended for."""
return get_required(
self.obj.properties.get(DESCRIPTION_PROP), self.obj, DESCRIPTION_PROP
return cast(
str,
get_required(
self.obj.properties.get(DESCRIPTION_PROP), self.obj, DESCRIPTION_PROP
),
)

@label_description.setter
Expand Down
78 changes: 52 additions & 26 deletions pystac/extensions/mlm.py
Original file line number Diff line number Diff line change
Expand Up @@ -228,10 +228,13 @@ def name(self) -> str:
"""
Get or set the required name property of a ModelBand object
"""
return get_required(
self.properties.get(NAME_MODEL_BAND_OBJECT_PROP),
self,
NAME_MODEL_BAND_OBJECT_PROP,
return cast(
str,
get_required(
self.properties.get(NAME_MODEL_BAND_OBJECT_PROP),
self,
NAME_MODEL_BAND_OBJECT_PROP,
),
)

@name.setter
Expand Down Expand Up @@ -325,10 +328,13 @@ def format(self) -> str:
"""
Get or set the required format property of this ProcessingExpression
"""
return get_required(
self.properties.get(FORMAT_PROCESSING_EXPRESSION_PROP),
self,
FORMAT_PROCESSING_EXPRESSION_PROP,
return cast(
str,
get_required(
self.properties.get(FORMAT_PROCESSING_EXPRESSION_PROP),
self,
FORMAT_PROCESSING_EXPRESSION_PROP,
),
)

@format.setter
Expand Down Expand Up @@ -528,8 +534,13 @@ def type(self) -> str:
"""
Get or set the required type property of this ValueScaling object
"""
return get_required(
self.properties.get(TYPE_VALUE_SCALING_PROP), self, TYPE_VALUE_SCALING_PROP
return cast(
str,
get_required(
self.properties.get(TYPE_VALUE_SCALING_PROP),
self,
TYPE_VALUE_SCALING_PROP,
),
)

@type.setter
Expand Down Expand Up @@ -740,10 +751,13 @@ def data_type(self) -> DataType:
"""
Get or set the required data_type property of this InputStructure object
"""
return get_required(
self.properties.get(DATA_TYPE_INPUT_STRUCTURE_PROP),
self,
DATA_TYPE_INPUT_STRUCTURE_PROP,
return cast(
DataType,
get_required(
self.properties.get(DATA_TYPE_INPUT_STRUCTURE_PROP),
self,
DATA_TYPE_INPUT_STRUCTURE_PROP,
),
)

@data_type.setter
Expand Down Expand Up @@ -889,8 +903,13 @@ def name(self) -> str:
"""
Gets or sets the required name property of this ModelInput object
"""
return get_required(
self.properties.get(NAME_INPUT_OBJECT_PROP), self, NAME_INPUT_OBJECT_PROP
return cast(
str,
get_required(
self.properties.get(NAME_INPUT_OBJECT_PROP),
self,
NAME_INPUT_OBJECT_PROP,
),
)

@name.setter
Expand Down Expand Up @@ -1094,10 +1113,13 @@ def data_type(self) -> DataType:
"""
Gets or sets the required data_type property of the ResultStructure object
"""
return get_required(
self.properties.get(DATA_TYPE_RESULT_STRUCTURE_PROP),
self,
DIM_ORDER_RESULT_STRUCTURE_PROP,
return cast(
DataType,
get_required(
self.properties.get(DATA_TYPE_RESULT_STRUCTURE_PROP),
self,
DIM_ORDER_RESULT_STRUCTURE_PROP,
),
)

@data_type.setter
Expand Down Expand Up @@ -1215,8 +1237,9 @@ def name(self) -> str:
"""
Gets or sets the required name property of this ModelOutput object
"""
return get_required(
self.properties.get(NAME_RESULT_PROP), self, NAME_RESULT_PROP
return cast(
str,
get_required(self.properties.get(NAME_RESULT_PROP), self, NAME_RESULT_PROP),
)

@name.setter
Expand Down Expand Up @@ -1484,7 +1507,7 @@ def mlm_name(self) -> str:
Get or set the required (mlm) name property. It is named mlm_name in this
context to not break convention and overwrite the extension name class property.
"""
return get_required(self.properties.get(NAME_PROP), self, NAME_PROP)
return cast(str, get_required(self.properties.get(NAME_PROP), self, NAME_PROP))

@mlm_name.setter
def mlm_name(self, v: str) -> None:
Expand All @@ -1495,8 +1518,11 @@ def architecture(self) -> str:
"""
Get or set the required architecture property
"""
return get_required(
self.properties.get(ARCHITECTURE_PROP), self, ARCHITECTURE_PROP
return cast(
str,
get_required(
self.properties.get(ARCHITECTURE_PROP), self, ARCHITECTURE_PROP
),
)

@architecture.setter
Expand Down Expand Up @@ -1772,7 +1798,7 @@ def artifact_type(self) -> str | None:
"""
prop_value = self.properties.get(ARTIFACT_TYPE_ASSET_PROP)
if isinstance(self.asset.roles, list) and "mlm:model" in self.asset.roles:
return get_required(prop_value, self, ARTIFACT_TYPE_ASSET_PROP)
return cast(str, get_required(prop_value, self, ARTIFACT_TYPE_ASSET_PROP))
else:
return prop_value

Expand Down
8 changes: 4 additions & 4 deletions pystac/extensions/pointcloud.py
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ def create(cls, name: str, size: int, type: SchemaType) -> Schema:
@property
def size(self) -> int:
"""Gets or sets the size value."""
return get_required(self.properties.get("size"), self, "size")
return cast(int, get_required(self.properties.get("size"), self, "size"))

@size.setter
def size(self, v: int) -> None:
Expand All @@ -110,7 +110,7 @@ def size(self, v: int) -> None:
@property
def name(self) -> str:
"""Gets or sets the name property for this Schema."""
return get_required(self.properties.get("name"), self, "name")
return cast(str, get_required(self.properties.get("name"), self, "name"))

@name.setter
def name(self, v: str) -> None:
Expand All @@ -120,7 +120,7 @@ def name(self, v: str) -> None:
def type(self) -> SchemaType:
"""Gets or sets the type property. Valid values are ``floating``, ``unsigned``,
and ``signed``."""
return get_required(self.properties.get("type"), self, "type")
return cast(SchemaType, get_required(self.properties.get("type"), self, "type"))

@type.setter
def type(self, v: SchemaType) -> None:
Expand Down Expand Up @@ -221,7 +221,7 @@ def create(
@property
def name(self) -> str:
"""Gets or sets the name property."""
return get_required(self.properties.get("name"), self, "name")
return cast(str, get_required(self.properties.get("name"), self, "name"))

@name.setter
def name(self, v: str) -> None:
Expand Down
6 changes: 3 additions & 3 deletions pystac/extensions/raster.py
Original file line number Diff line number Diff line change
Expand Up @@ -298,7 +298,7 @@ def count(self) -> int:
Returns:
int
"""
return get_required(self.properties.get("count"), self, "count")
return cast(int, get_required(self.properties.get("count"), self, "count"))

@count.setter
def count(self, v: int) -> None:
Expand All @@ -311,7 +311,7 @@ def min(self) -> float:
Returns:
float
"""
return get_required(self.properties.get("min"), self, "min")
return cast(float, get_required(self.properties.get("min"), self, "min"))

@min.setter
def min(self, v: float) -> None:
Expand All @@ -324,7 +324,7 @@ def max(self) -> float:
Returns:
float
"""
return get_required(self.properties.get("max"), self, "max")
return cast(float, get_required(self.properties.get("max"), self, "max"))

@max.setter
def max(self, v: float) -> None:
Expand Down
Loading
Loading