Requirements:
- xmlschema
- faker
- exrex
- ckanapi
- typing_extensions
- pycountry
Installation:
pip install ckanext-iso19115
Add to ckan.plugins:
iso19115
Configuration:
Storage path for pre-compiled schema definitions
(optional, default: somewhere inside system’s tempdir)
ckanext.iso19115.misc.cache_dir = /var/data/iso19115_cache
Customization via IIso19115 interface:
from ckanext.iso19115.interfaces import IIso19115
from ckanext.iso19115.converter import Converter
class Iso19115Plugin(p.SingletonPlugin):
p.implements(IIso19115, inherit=True)
def iso19115_metadata_converter(self, data_dict: dict[str, Any]):
return CustomConverter(data_dict)
class CustomConverter(Converter):
# Implement custom conversion logic
# Base Converter class provides starting point
pass
API Actions:
- iso19115_package_show:
Export dataset into ISO 19115 format
Optional ‘format’ parameter (default: JsonML)
Alternative formats: xml
Example:
ckanapi action iso19115_package_show id=my-dataset format=xml
- iso19115_package_check:
Check if dataset can be rendered as valid ISO 19115 document
Example:
ckanapi action iso19115_package_check id=my-dataset
Testing: pytest –ckan-ini=test.ini