Skip to content

Commit 39f6f11

Browse files
authored
Merge pull request stac-utils#22 from azavea/rde/stac-0.8-release
Update PySTAC to STAC 0.8.0 release
2 parents bbc2583 + 0563817 commit 39f6f11

File tree

9 files changed

+40
-45
lines changed

9 files changed

+40
-45
lines changed

pystac/label.py

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,13 @@ def __init__(self,
2020
properties,
2121
label_description,
2222
label_type,
23-
label_property=None,
23+
label_properties=None,
2424
label_classes=None,
2525
stac_extensions=None,
2626
href=None,
2727
label_task=None,
2828
label_method=None,
29-
label_overview=None):
29+
label_overviews=None):
3030
if stac_extensions is None:
3131
stac_extensions = []
3232
if 'label' not in stac_extensions:
@@ -38,18 +38,18 @@ def __init__(self,
3838
properties=properties,
3939
stac_extensions=stac_extensions,
4040
href=href)
41-
self.label_property = label_property
41+
self.label_properties = label_properties
4242
self.label_classes = label_classes
4343
self.label_description = label_description
4444
self.label_type = label_type
4545
self.label_task = label_task
4646
self.label_method = label_method
47-
self.label_overview = label_overview
47+
self.label_overviews = label_overviews
4848

4949
# Be kind if folks didn't use lists for some properties
50-
if self.label_property is not None:
51-
if not type(self.label_property) is list:
52-
self.label_property = [self.label_property]
50+
if self.label_properties is not None:
51+
if not type(self.label_properties) is list:
52+
self.label_properties = [self.label_properties]
5353

5454
if self.label_method is not None:
5555
if not type(self.label_method) is list:
@@ -65,8 +65,8 @@ def __init__(self,
6565
"{}; was {}".format(LabelType.ALL, self.label_type))
6666

6767
if self.label_type == LabelType.VECTOR:
68-
if self.label_property is None:
69-
raise STACError('label_property must be set for vector label type')
68+
if self.label_properties is None:
69+
raise STACError('label_properties must be set for vector label type')
7070

7171
if self.label_task is not None:
7272
for task in self.label_task:
@@ -82,15 +82,15 @@ def to_dict(self, include_self_link=True):
8282
d = super(LabelItem, self).to_dict(include_self_link)
8383
d['properties']['label:description'] = self.label_description
8484
d['properties']['label:type'] = self.label_type
85-
d['properties']['label:property'] = self.label_property
85+
d['properties']['label:properties'] = self.label_properties
8686
if self.label_classes:
8787
d['properties']['label:classes'] = [classes.to_dict() for classes in self.label_classes]
8888
if self.label_task is not None:
8989
d['properties']['label:task'] = self.label_task
9090
if self.label_method is not None:
9191
d['properties']['label:method'] = self.label_method
92-
if self.label_overview is not None:
93-
d['properties']['label:overview'] = [ov.to_dict() for ov in self.label_overview]
92+
if self.label_overviews is not None:
93+
d['properties']['label:overviews'] = [ov.to_dict() for ov in self.label_overviews]
9494

9595
return d
9696

@@ -126,12 +126,12 @@ def clone(self):
126126
properties=deepcopy(self.properties),
127127
label_description=self.label_description,
128128
label_type=self.label_type,
129-
label_property=self.label_property,
129+
label_properties=self.label_properties,
130130
label_classes=copy(self.label_classes),
131131
stac_extensions=copy(self.stac_extensions),
132132
label_task=self.label_task,
133133
label_method=self.label_method,
134-
label_overview=deepcopy(self.label_overview))
134+
label_overviews=deepcopy(self.label_overviews))
135135
for link in self.links:
136136
clone.add_link(link.clone())
137137

@@ -143,21 +143,21 @@ def from_dict(d):
143143
item = Item.from_dict(d)
144144
props = item.properties
145145

146-
label_property = props.get('label:property')
146+
label_properties = props.get('label:properties')
147147
label_classes = props.get('label:classes')
148148
if label_classes is not None:
149149
label_classes = [LabelClasses.from_dict(classes) for classes in label_classes]
150150
label_description = props['label:description']
151151
label_type = props['label:type']
152152
label_task = props.get('label:task')
153153
label_method = props.get('label:method')
154-
label_overview = props.get('label:overview')
155-
if label_overview is not None:
156-
if type(label_overview) is list:
157-
label_overview = [LabelOverview.from_dict(ov) for ov in label_overview]
154+
label_overviews = props.get('label:overviews')
155+
if label_overviews is not None:
156+
if type(label_overviews) is list:
157+
label_overviews = [LabelOverview.from_dict(ov) for ov in label_overviews]
158158
else:
159159
# Read STAC with mistaken single overview object (should be list)
160-
label_overview = LabelOverview.from_dict(label_overview)
160+
label_overviews = LabelOverview.from_dict(label_overviews)
161161

162162
li = LabelItem(id=item.id,
163163
geometry=item.geometry,
@@ -166,12 +166,12 @@ def from_dict(d):
166166
properties=item.properties,
167167
label_description=label_description,
168168
label_type=label_type,
169-
label_property=label_property,
169+
label_properties=label_properties,
170170
label_classes=label_classes,
171171
stac_extensions=item.stac_extensions,
172172
label_task=label_task,
173173
label_method=label_method,
174-
label_overview=label_overview)
174+
label_overviews=label_overviews)
175175

176176
for link in item.links:
177177
li.add_link(link)

tests/data-files/catalogs/test-case-1/country-1/area-1-1/area-1-1-labels/area-1-1-labels.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"datetime": "2019-10-04 18:55:37Z",
77
"label:description": "labels for area-1-1",
88
"label:type": "vector",
9-
"label:property": [
9+
"label:properties": [
1010
"label"
1111
],
1212
"label:classes": [
@@ -89,4 +89,4 @@
8989
"stac_extensions": [
9090
"label"
9191
]
92-
}
92+
}

tests/data-files/catalogs/test-case-1/country-1/area-1-2/area-1-2-labels/area-1-2-labels.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"datetime": "2019-10-04 18:55:37Z",
77
"label:description": "labels for area-1-2",
88
"label:type": "vector",
9-
"label:property": [
9+
"label:properties": [
1010
"label"
1111
],
1212
"label:classes": [
@@ -89,4 +89,4 @@
8989
"stac_extensions": [
9090
"label"
9191
]
92-
}
92+
}

tests/data-files/catalogs/test-case-1/country-2/area-2-1/area-2-1-labels/area-2-1-labels.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"datetime": "2019-10-04 18:55:37Z",
77
"label:description": "labels for area-2-1",
88
"label:type": "vector",
9-
"label:property": [
9+
"label:properties": [
1010
"label"
1111
],
1212
"label:classes": [
@@ -89,4 +89,4 @@
8989
"stac_extensions": [
9090
"label"
9191
]
92-
}
92+
}

tests/data-files/catalogs/test-case-1/country-2/area-2-2/area-2-2-labels/area-2-2-labels.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"datetime": "2019-10-04 18:55:37Z",
77
"label:description": "labels for area-2-2",
88
"label:type": "vector",
9-
"label:property": [
9+
"label:properties": [
1010
"label"
1111
],
1212
"label:classes": [
@@ -89,4 +89,4 @@
8989
"stac_extensions": [
9090
"label"
9191
]
92-
}
92+
}

tests/data-files/catalogs/test-case-2/1a8c1632-fa91-4a62-b33e-3a87c2ebdf16/5b922d42-9a77-4f79-a672-86096f7f849e/cf73ec1a-d790-4b59-b077-e101738571ed/cf73ec1a-d790-4b59-b077-e101738571ed.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
"label:task": [
2323
"detection"
2424
],
25-
"label:property": [
25+
"label:properties": [
2626
"label"
2727
]
2828
},

tests/test_catalog.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,9 @@ def test_create_and_read(self):
2727

2828
def test_read_remote(self):
2929
catalog_url = ('https://raw.githubusercontent.com/radiantearth/stac-spec/'
30-
'252cc892cdccf7ba0b9564bcae42bb6ec4189f14'
31-
'/extensions/label/examples/multidataset/catalog.json')
30+
'v{}'
31+
'/extensions/label/examples/multidataset/catalog.json'.format(
32+
STAC_VERSION))
3233
cat = Catalog.from_file(catalog_url)
3334

3435
zanzibar = cat.get_child('zanzibar-collection')
@@ -314,7 +315,7 @@ def test_full_copy_2(self):
314315
properties={},
315316
label_description='labels',
316317
label_type='vector',
317-
label_property='label',
318+
label_properties='label',
318319
label_classes=[LabelClasses(classes=['one', 'two'],
319320
name='label')],
320321
label_task='classification')

tests/utils.py

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -104,12 +104,12 @@ def test_case_3():
104104
properties={},
105105
label_description='ML Labels',
106106
label_type='vector',
107-
label_property=['label'],
107+
label_properties=['label'],
108108
label_classes=[LabelClasses(classes=['one', 'two'],
109109
name='label')],
110110
label_task=['classification'],
111111
label_method=['manual'],
112-
label_overview=overviews)
112+
label_overviews=overviews)
113113
label_item.add_source(image_item, assets=['ortho'])
114114

115115
root_cat.add_item(image_item)
@@ -120,14 +120,8 @@ def test_case_3():
120120

121121
class SchemaValidator:
122122
REPO = 'https://raw.githubusercontent.com/radiantearth/stac-spec'
123-
124-
# TODO: Replace once 0.8 release is out.
125-
# TAG = 'v{}'.format(STAC_VERSION)
126-
TAG = 'v0.8.0-rc1'
127-
128-
# TODO: Replace once 0.8 release is out.
129-
# SCHEMA_BASE_URI = '{}/{}'.format(REPO, TAG)
130-
SCHEMA_BASE_URI = 'https://raw.githubusercontent.com/radiantearth/stac-spec/dev'
123+
TAG = 'v{}'.format(STAC_VERSION)
124+
SCHEMA_BASE_URI = '{}/{}'.format(REPO, TAG)
131125

132126
schemas = {
133127
Catalog: 'catalog-spec/json-schema/catalog.json',

tutorials/pystac-spacenet-tutorial.ipynb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -319,7 +319,7 @@
319319
" 'properties': {},\n",
320320
" 'label_description': 'Building labels for scene {}'.format(item.id),\n",
321321
" 'label_type': 'vector',\n",
322-
" 'label_property': 'partialBuilding'\n",
322+
" 'label_properties': 'partialBuilding'\n",
323323
" }\n",
324324
" \n",
325325
" with open(label_uri) as gj:\n",

0 commit comments

Comments
 (0)