Skip to content

Commit 65562c1

Browse files
authored
fix: mypy typing (#1569)
* fix: mypy typing * chore: update changelog
1 parent 8bc0151 commit 65562c1

File tree

14 files changed

+1906
-1615
lines changed

14 files changed

+1906
-1615
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
- More permissive collection extent deserialization ([#1559](https://github.com/stac-utils/pystac/pull/1559))
1414
- Type of `proj:code` setter ([#1560](https://github.com/stac-utils/pystac/pull/1560))
1515
- Use `urllib3` to fix parsing non-ascii in urls ([#1566](https://github.com/stac-utils/pystac/pull/1566))
16+
- Some return types and other **mypy** nits ([#1569](https://github.com/stac-utils/pystac/pull/1569))
1617

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

pystac/extensions/classification.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ def value(self) -> int:
155155
Returns:
156156
int
157157
"""
158-
return get_required(self.properties.get("value"), self, "value")
158+
return cast(int, get_required(self.properties.get("value"), self, "value"))
159159

160160
@value.setter
161161
def value(self, v: int) -> None:
@@ -184,7 +184,7 @@ def name(self) -> str:
184184
Returns:
185185
Optional[str]
186186
"""
187-
return get_required(self.properties.get("name"), self, "name")
187+
return cast(str, get_required(self.properties.get("name"), self, "name"))
188188

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

202202
@title.setter
203-
def title(self, v: str) -> None:
203+
def title(self, v: str | None) -> None:
204204
if v is not None:
205205
self.properties["title"] = v
206206
else:
@@ -392,7 +392,7 @@ def offset(self) -> int:
392392
Returns:
393393
int
394394
"""
395-
return get_required(self.properties.get("offset"), self, "offset")
395+
return cast(int, get_required(self.properties.get("offset"), self, "offset"))
396396

397397
@offset.setter
398398
def offset(self, v: int) -> None:
@@ -405,7 +405,7 @@ def length(self) -> int:
405405
Returns:
406406
int
407407
"""
408-
return get_required(self.properties.get("length"), self, "length")
408+
return cast(int, get_required(self.properties.get("length"), self, "length"))
409409

410410
@length.setter
411411
def length(self, v: int) -> None:

pystac/extensions/datacube.py

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -88,8 +88,11 @@ def dim_type(self) -> DimensionType | str:
8888
<datacube#temporal-dimension-object>`. May be an arbitrary string for
8989
:stac-ext:`Additional Dimension Objects
9090
<datacube#additional-dimension-object>`."""
91-
return get_required(
92-
self.properties.get(DIM_TYPE_PROP), "cube:dimension", DIM_TYPE_PROP
91+
return cast(
92+
str,
93+
get_required(
94+
self.properties.get(DIM_TYPE_PROP), "cube:dimension", DIM_TYPE_PROP
95+
),
9396
)
9497

9598
@dim_type.setter
@@ -198,8 +201,11 @@ class HorizontalSpatialDimension(SpatialDimension):
198201
@property
199202
def axis(self) -> HorizontalSpatialDimensionAxis:
200203
"""Axis of the spatial dimension. Must be one of ``"x"`` or ``"y"``."""
201-
return get_required(
202-
self.properties.get(DIM_AXIS_PROP), "cube:dimension", DIM_AXIS_PROP
204+
return cast(
205+
HorizontalSpatialDimensionAxis,
206+
get_required(
207+
self.properties.get(DIM_AXIS_PROP), "cube:dimension", DIM_AXIS_PROP
208+
),
203209
)
204210

205211
@axis.setter
@@ -211,8 +217,11 @@ class VerticalSpatialDimension(SpatialDimension):
211217
@property
212218
def axis(self) -> VerticalSpatialDimensionAxis:
213219
"""Axis of the spatial dimension. Must be ``"z"``."""
214-
return get_required(
215-
self.properties.get(DIM_AXIS_PROP), "cube:dimension", DIM_AXIS_PROP
220+
return cast(
221+
VerticalSpatialDimensionAxis,
222+
get_required(
223+
self.properties.get(DIM_AXIS_PROP), "cube:dimension", DIM_AXIS_PROP
224+
),
216225
)
217226

218227
@axis.setter
@@ -453,8 +462,11 @@ def dimensions(self, v: list[str]) -> None:
453462
@property
454463
def var_type(self) -> VariableType | str:
455464
"""Type of the variable, either ``data`` or ``auxiliary``"""
456-
return get_required(
457-
self.properties.get(VAR_TYPE_PROP), "cube:variable", VAR_TYPE_PROP
465+
return cast(
466+
str,
467+
get_required(
468+
self.properties.get(VAR_TYPE_PROP), "cube:variable", VAR_TYPE_PROP
469+
),
458470
)
459471

460472
@var_type.setter

pystac/extensions/eo.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ def name(self) -> str:
134134
Returns:
135135
str
136136
"""
137-
return get_required(self.properties.get("name"), self, "name")
137+
return cast(str, get_required(self.properties.get("name"), self, "name"))
138138

139139
@name.setter
140140
def name(self, v: str) -> None:

pystac/extensions/file.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ def values(self, v: list[Any]) -> None:
9090
@property
9191
def summary(self) -> str:
9292
"""Gets or sets the short description of the value(s)."""
93-
return get_required(self.properties.get("summary"), self, "summary")
93+
return cast(str, get_required(self.properties.get("summary"), self, "summary"))
9494

9595
@summary.setter
9696
def summary(self, v: str) -> None:

pystac/extensions/label.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,7 @@ def create(cls, name: str, count: int) -> LabelCount:
193193
@property
194194
def name(self) -> str:
195195
"""Gets or sets the class that this count represents."""
196-
return get_required(self.properties.get("name"), self, "name")
196+
return cast(str, get_required(self.properties.get("name"), self, "name"))
197197

198198
@name.setter
199199
def name(self, v: str) -> None:
@@ -202,7 +202,7 @@ def name(self, v: str) -> None:
202202
@property
203203
def count(self) -> int:
204204
"""Get or sets the number of occurrences of the class."""
205-
return get_required(self.properties.get("count"), self, "count")
205+
return cast(int, get_required(self.properties.get("count"), self, "count"))
206206

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

263263
@name.setter
264264
def name(self, v: str) -> None:
@@ -267,7 +267,7 @@ def name(self, v: str) -> None:
267267
@property
268268
def value(self) -> float:
269269
"""Gets or sets the value of the statistic."""
270-
return get_required(self.properties.get("value"), self, "value")
270+
return cast(float, get_required(self.properties.get("value"), self, "value"))
271271

272272
@value.setter
273273
def value(self, v: float) -> None:
@@ -506,8 +506,11 @@ class names for each label:properties. (e.g., tree, building, car,
506506
def label_description(self) -> str:
507507
"""Gets or sets a description of the label, how it was created,
508508
and what it is recommended for."""
509-
return get_required(
510-
self.obj.properties.get(DESCRIPTION_PROP), self.obj, DESCRIPTION_PROP
509+
return cast(
510+
str,
511+
get_required(
512+
self.obj.properties.get(DESCRIPTION_PROP), self.obj, DESCRIPTION_PROP
513+
),
511514
)
512515

513516
@label_description.setter

pystac/extensions/mlm.py

Lines changed: 52 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -228,10 +228,13 @@ def name(self) -> str:
228228
"""
229229
Get or set the required name property of a ModelBand object
230230
"""
231-
return get_required(
232-
self.properties.get(NAME_MODEL_BAND_OBJECT_PROP),
233-
self,
234-
NAME_MODEL_BAND_OBJECT_PROP,
231+
return cast(
232+
str,
233+
get_required(
234+
self.properties.get(NAME_MODEL_BAND_OBJECT_PROP),
235+
self,
236+
NAME_MODEL_BAND_OBJECT_PROP,
237+
),
235238
)
236239

237240
@name.setter
@@ -325,10 +328,13 @@ def format(self) -> str:
325328
"""
326329
Get or set the required format property of this ProcessingExpression
327330
"""
328-
return get_required(
329-
self.properties.get(FORMAT_PROCESSING_EXPRESSION_PROP),
330-
self,
331-
FORMAT_PROCESSING_EXPRESSION_PROP,
331+
return cast(
332+
str,
333+
get_required(
334+
self.properties.get(FORMAT_PROCESSING_EXPRESSION_PROP),
335+
self,
336+
FORMAT_PROCESSING_EXPRESSION_PROP,
337+
),
332338
)
333339

334340
@format.setter
@@ -528,8 +534,13 @@ def type(self) -> str:
528534
"""
529535
Get or set the required type property of this ValueScaling object
530536
"""
531-
return get_required(
532-
self.properties.get(TYPE_VALUE_SCALING_PROP), self, TYPE_VALUE_SCALING_PROP
537+
return cast(
538+
str,
539+
get_required(
540+
self.properties.get(TYPE_VALUE_SCALING_PROP),
541+
self,
542+
TYPE_VALUE_SCALING_PROP,
543+
),
533544
)
534545

535546
@type.setter
@@ -740,10 +751,13 @@ def data_type(self) -> DataType:
740751
"""
741752
Get or set the required data_type property of this InputStructure object
742753
"""
743-
return get_required(
744-
self.properties.get(DATA_TYPE_INPUT_STRUCTURE_PROP),
745-
self,
746-
DATA_TYPE_INPUT_STRUCTURE_PROP,
754+
return cast(
755+
DataType,
756+
get_required(
757+
self.properties.get(DATA_TYPE_INPUT_STRUCTURE_PROP),
758+
self,
759+
DATA_TYPE_INPUT_STRUCTURE_PROP,
760+
),
747761
)
748762

749763
@data_type.setter
@@ -889,8 +903,13 @@ def name(self) -> str:
889903
"""
890904
Gets or sets the required name property of this ModelInput object
891905
"""
892-
return get_required(
893-
self.properties.get(NAME_INPUT_OBJECT_PROP), self, NAME_INPUT_OBJECT_PROP
906+
return cast(
907+
str,
908+
get_required(
909+
self.properties.get(NAME_INPUT_OBJECT_PROP),
910+
self,
911+
NAME_INPUT_OBJECT_PROP,
912+
),
894913
)
895914

896915
@name.setter
@@ -1094,10 +1113,13 @@ def data_type(self) -> DataType:
10941113
"""
10951114
Gets or sets the required data_type property of the ResultStructure object
10961115
"""
1097-
return get_required(
1098-
self.properties.get(DATA_TYPE_RESULT_STRUCTURE_PROP),
1099-
self,
1100-
DIM_ORDER_RESULT_STRUCTURE_PROP,
1116+
return cast(
1117+
DataType,
1118+
get_required(
1119+
self.properties.get(DATA_TYPE_RESULT_STRUCTURE_PROP),
1120+
self,
1121+
DIM_ORDER_RESULT_STRUCTURE_PROP,
1122+
),
11011123
)
11021124

11031125
@data_type.setter
@@ -1215,8 +1237,9 @@ def name(self) -> str:
12151237
"""
12161238
Gets or sets the required name property of this ModelOutput object
12171239
"""
1218-
return get_required(
1219-
self.properties.get(NAME_RESULT_PROP), self, NAME_RESULT_PROP
1240+
return cast(
1241+
str,
1242+
get_required(self.properties.get(NAME_RESULT_PROP), self, NAME_RESULT_PROP),
12201243
)
12211244

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

14891512
@mlm_name.setter
14901513
def mlm_name(self, v: str) -> None:
@@ -1495,8 +1518,11 @@ def architecture(self) -> str:
14951518
"""
14961519
Get or set the required architecture property
14971520
"""
1498-
return get_required(
1499-
self.properties.get(ARCHITECTURE_PROP), self, ARCHITECTURE_PROP
1521+
return cast(
1522+
str,
1523+
get_required(
1524+
self.properties.get(ARCHITECTURE_PROP), self, ARCHITECTURE_PROP
1525+
),
15001526
)
15011527

15021528
@architecture.setter
@@ -1772,7 +1798,7 @@ def artifact_type(self) -> str | None:
17721798
"""
17731799
prop_value = self.properties.get(ARTIFACT_TYPE_ASSET_PROP)
17741800
if isinstance(self.asset.roles, list) and "mlm:model" in self.asset.roles:
1775-
return get_required(prop_value, self, ARTIFACT_TYPE_ASSET_PROP)
1801+
return cast(str, get_required(prop_value, self, ARTIFACT_TYPE_ASSET_PROP))
17761802
else:
17771803
return prop_value
17781804

pystac/extensions/pointcloud.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ def create(cls, name: str, size: int, type: SchemaType) -> Schema:
9898
@property
9999
def size(self) -> int:
100100
"""Gets or sets the size value."""
101-
return get_required(self.properties.get("size"), self, "size")
101+
return cast(int, get_required(self.properties.get("size"), self, "size"))
102102

103103
@size.setter
104104
def size(self, v: int) -> None:
@@ -110,7 +110,7 @@ def size(self, v: int) -> None:
110110
@property
111111
def name(self) -> str:
112112
"""Gets or sets the name property for this Schema."""
113-
return get_required(self.properties.get("name"), self, "name")
113+
return cast(str, get_required(self.properties.get("name"), self, "name"))
114114

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

125125
@type.setter
126126
def type(self, v: SchemaType) -> None:
@@ -221,7 +221,7 @@ def create(
221221
@property
222222
def name(self) -> str:
223223
"""Gets or sets the name property."""
224-
return get_required(self.properties.get("name"), self, "name")
224+
return cast(str, get_required(self.properties.get("name"), self, "name"))
225225

226226
@name.setter
227227
def name(self, v: str) -> None:

pystac/extensions/raster.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -298,7 +298,7 @@ def count(self) -> int:
298298
Returns:
299299
int
300300
"""
301-
return get_required(self.properties.get("count"), self, "count")
301+
return cast(int, get_required(self.properties.get("count"), self, "count"))
302302

303303
@count.setter
304304
def count(self, v: int) -> None:
@@ -311,7 +311,7 @@ def min(self) -> float:
311311
Returns:
312312
float
313313
"""
314-
return get_required(self.properties.get("min"), self, "min")
314+
return cast(float, get_required(self.properties.get("min"), self, "min"))
315315

316316
@min.setter
317317
def min(self, v: float) -> None:
@@ -324,7 +324,7 @@ def max(self) -> float:
324324
Returns:
325325
float
326326
"""
327-
return get_required(self.properties.get("max"), self, "max")
327+
return cast(float, get_required(self.properties.get("max"), self, "max"))
328328

329329
@max.setter
330330
def max(self, v: float) -> None:

0 commit comments

Comments
 (0)