Skip to content

Commit dbbce65

Browse files
committed
update
1 parent 0484d3a commit dbbce65

File tree

5 files changed

+12
-8
lines changed

5 files changed

+12
-8
lines changed

docs/source/plugins.rst

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -432,8 +432,10 @@ The below template provides a minimal example (let's call the file ``mycooljsonf
432432
"""Inherit from parent class"""
433433
434434
super().__init__({'name': 'cooljson', 'geom': None})
435-
self.mimetype = 'application/json; subtype:mycooljson'
436-
self.attachment = False
435+
self.f = 'cooljson' # f= value
436+
self.mimetype = 'application/json; subtype:mycooljson' # response media type
437+
self.attachment = False # whether to provide as an attachment (default False)
438+
self.extension = 'cooljson' # filename extension if providing as an attachment
437439
438440
def write(self, options={}, data=None):
439441
"""custom writer"""

pygeoapi/api/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1146,8 +1146,8 @@ def describe_collections(api: API, request: APIRequest,
11461146
collection['links'].append({
11471147
'type': value.mimetype,
11481148
'rel': 'items',
1149-
'title': l10n.translate(f'Items as {value.name}', request.locale), # noqa
1150-
'href': f'{api.get_collections_url()}/{k}/items?f={key}' # noqa
1149+
'title': l10n.translate(f'Items as {key}', request.locale), # noqa
1150+
'href': f'{api.get_collections_url()}/{k}/items?f={value.f}' # noqa
11511151
})
11521152

11531153
# OAPIF Part 2 - list supported CRSs and StorageCRS

pygeoapi/api/itemtypes.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -673,8 +673,9 @@ def get_collection_items(
673673
'collections/items/index.html',
674674
content, request.locale)
675675
return headers, HTTPStatus.OK, content
676-
elif request.format in dataset_formatters: # render
677-
formatter = dataset_formatters[request.format]
676+
elif request.format in [df.f for df in dataset_formatters.values()]:
677+
formatter = [v for k, v in dataset_formatters.items() if
678+
v.f == request.format][0]
678679

679680
try:
680681
content = formatter.write(
@@ -1187,7 +1188,7 @@ def get_oas_30(cfg: dict, locale: str) -> tuple[list[dict[str, str]], dict[str,
11871188
dataset_formatters = get_dataset_formatters(v)
11881189
coll_f_parameter = deepcopy(get_oas_30_parameters(cfg, locale))['f'] # noqa
11891190
for key, value in dataset_formatters.items():
1190-
coll_f_parameter['schema']['enum'].append(key)
1191+
coll_f_parameter['schema']['enum'].append(value.f)
11911192

11921193
paths[items_path] = {
11931194
'get': {

pygeoapi/formatter/csv_.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ def __init__(self, formatter_def: dict):
5252

5353
super().__init__({'name': 'csv', 'geom': geom})
5454
self.mimetype = 'text/csv; charset=utf-8'
55+
self.f = 'csv'
5556
self.extension = 'csv'
5657

5758
def write(self, options: dict = {}, data: dict = None) -> str:

pygeoapi/util.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1129,7 +1129,7 @@ def get_dataset_formatters(dataset: dict) -> dict:
11291129

11301130
for key, value in PLUGINS['formatter'].items():
11311131
df2 = load_plugin('formatter', {'name': key})
1132-
dataset_formatters[df2.name] = df2
1132+
dataset_formatters[key] = df2
11331133
for df in dataset.get('formatters', []):
11341134
df2 = load_plugin('formatter', df)
11351135
dataset_formatters[df2.name] = df2

0 commit comments

Comments
 (0)