diff --git a/ckanext/odsh/plugin.py b/ckanext/odsh/plugin.py index 3c4fc5f1c11a0ba64ae7d67732a11555be665feb..2078ae169b16e1f94f871656b518cfc91eb775eb 100644 --- a/ckanext/odsh/plugin.py +++ b/ckanext/odsh/plugin.py @@ -3,12 +3,12 @@ from dateutil.parser import parse import json import logging from collections import OrderedDict +from ckan.types import Schema # imports from ckan -from ckan.lib.plugins import DefaultTranslation, DefaultDatasetForm -from ckan.logic.validators import tag_string_convert -import ckan.plugins as plugins -import ckan.plugins.toolkit as toolkit +from ckan.lib.plugins import DefaultTranslation +import ckan.plugins as p +import ckan.plugins.toolkit as tk # imports from this extension import ckanext.odsh.helpers as helpers_odsh @@ -28,20 +28,20 @@ from ckanext.odsh.views import feed log = logging.getLogger(__name__) -_ = toolkit._ +_ = tk._ -class OdshPlugin(plugins.SingletonPlugin, DefaultTranslation, DefaultDatasetForm): - plugins.implements(plugins.IActions) - plugins.implements(plugins.IConfigurer) - plugins.implements(plugins.IDatasetForm) - plugins.implements(plugins.IFacets) - plugins.implements(plugins.IPackageController, inherit=True) - plugins.implements(plugins.ITemplateHelpers) - plugins.implements(plugins.ITranslation) - plugins.implements(plugins.IValidators) - plugins.implements(plugins.IResourceController, inherit=True) - plugins.implements(plugins.IBlueprint) +class OdshPlugin(p.SingletonPlugin, DefaultTranslation, tk.DefaultDatasetForm): + p.implements(p.IActions) + p.implements(p.IConfigurer) + p.implements(p.IDatasetForm) + p.implements(p.IFacets) + p.implements(p.IPackageController, inherit=True) + p.implements(p.ITemplateHelpers) + p.implements(p.ITranslation) + p.implements(p.IValidators) + p.implements(p.IResourceController, inherit=True) + p.implements(p.IBlueprint) # IBlueprint def get_blueprint(self): @@ -58,7 +58,7 @@ class OdshPlugin(plugins.SingletonPlugin, DefaultTranslation, DefaultDatasetForm bp_default.add_url_rule(*rule) # DCAT - # if toolkit.asbool(toolkit.config.get('ckanext.dcat.enable_rdf_endpoints', True)): + # if tk.asbool(tk.config.get('ckanext.dcat.enable_rdf_endpoints', True)): # helpers_odsh.odsh_remove_route(map, 'dcat_catalog') # bp_default.add_url_rule('/catalog.<any("xml", "rdf", "n3", "ttl", "jsonld"):_format>', view_func=dcat_view.read_catalog, defaults={'_format': 'xml'}, methods=['GET']) @@ -108,9 +108,9 @@ class OdshPlugin(plugins.SingletonPlugin, DefaultTranslation, DefaultDatasetForm # IConfigurer def update_config(self, config_): - toolkit.add_template_directory(config_, 'templates') - toolkit.add_public_directory(config_, 'public') - toolkit.add_resource('assets', 'ckanext-odsh') + tk.add_template_directory(config_, 'templates') + tk.add_public_directory(config_, 'public') + tk.add_resource('assets', 'ckanext-odsh') def after_map(self, map): return map @@ -125,115 +125,119 @@ class OdshPlugin(plugins.SingletonPlugin, DefaultTranslation, DefaultDatasetForm # package types not handled by any other IDatasetForm plugin. return True - def create_package_schema(self): - schema = super(OdshPlugin, self).create_package_schema() - self._update_schema(schema) - self._update_create_or_update_package_schema(schema) + def create_package_schema(self) -> Schema: + log.debug("OdshPlugin::create_package_schema") + schema: Schema = super(OdshPlugin, self).create_package_schema() + schema = self._update_schema(schema) + schema = self._update_create_or_update_package_schema(schema) return schema - def update_package_schema(self): - schema = super(OdshPlugin, self).update_package_schema() - self._update_schema(schema) - self._update_create_or_update_package_schema(schema) + def update_package_schema(self) -> Schema: + log.debug("OdshPlugin::update_package_schema") + schema: Schema = super(OdshPlugin, self).update_package_schema() + schema = self._update_schema(schema) + schema = self._update_create_or_update_package_schema(schema) return schema - def show_package_schema(self): - schema = super(OdshPlugin, self).show_package_schema() - self._update_show_package_schema(schema) + def show_package_schema(self) -> Schema: + log.debug("OdshPlugin::show_package_schema") + schema: Schema = super(OdshPlugin, self).show_package_schema() + schema = self._update_show_package_schema(schema) return schema - def _update_schema(self, schema): + def _update_schema(self, schema: Schema) -> Schema: for field in ['title', 'license_id']: - schema.update({field: [toolkit.get_converter('not_empty')]}) + schema.update({field: [tk.get_converter('not_empty')]}) for field in ['reference','applicableLegislation','hvdCategory', 'is_replaced_by', 'version_notes']: schema.update({ field: [ - toolkit.get_validator('ignore_missing'), - toolkit.get_converter('convert_to_extras') + tk.get_validator('ignore_missing'), + tk.get_converter('convert_to_extras') ] }) schema['resources'].update({ - 'url': [toolkit.get_converter('not_empty')], - 'format': [toolkit.get_converter('odsh_validate_format')], + 'url': [tk.get_converter('not_empty')], + 'format': [tk.get_converter('odsh_validate_format')], }) schema['extras'].update({ 'key': [ - toolkit.get_converter('known_spatial_uri'), - toolkit.get_converter('validate_licenseAttributionByText'), + tk.get_converter('known_spatial_uri'), + tk.get_converter('validate_licenseAttributionByText'), ] }) schema.update( - {'__extras': [toolkit.get_converter('odsh_validate_extras')]}) + {'__extras': [tk.get_converter('odsh_validate_extras')]}) + return schema - def _update_create_or_update_package_schema(self, schema): + def _update_create_or_update_package_schema(self, schema: Schema) -> Schema: schema.update({ 'language': [ - toolkit.get_validator('ignore_missing'), - toolkit.get_converter('convert_to_extras') + tk.get_validator('ignore_missing'), + tk.get_converter('convert_to_extras') ], 'thumbnail': [ - toolkit.get_validator('ignore_missing'), - toolkit.get_converter('convert_to_extras') + tk.get_validator('ignore_missing'), + tk.get_converter('convert_to_extras') ], 'relatedPackage': [ - toolkit.get_validator('validate_relatedPackage'), - toolkit.get_converter('convert_to_extras') + tk.get_validator('validate_relatedPackage'), + tk.get_converter('convert_to_extras') ], 'accessibility': [ - toolkit.get_validator('ignore_missing'), - toolkit.get_converter('convert_to_extras') + tk.get_validator('ignore_missing'), + tk.get_converter('convert_to_extras') ], 'is_replaced_by': [ - toolkit.get_validator('ignore_missing'), - toolkit.get_converter('convert_to_extras') + tk.get_validator('ignore_missing'), + tk.get_converter('convert_to_extras') ], 'version_notes': [ - toolkit.get_validator('ignore_missing'), - toolkit.get_converter('convert_to_extras') + tk.get_validator('ignore_missing'), + tk.get_converter('convert_to_extras') ], }) return schema - def _update_show_package_schema(self, schema): + def _update_show_package_schema(self, schema: Schema) -> Schema: schema.update({ 'language': [ - toolkit.get_converter('convert_from_extras'), - toolkit.get_validator('ignore_missing') + tk.get_converter('convert_from_extras'), + tk.get_validator('ignore_missing') ], 'thumbnail': [ - toolkit.get_converter('convert_from_extras'), - toolkit.get_validator('ignore_missing') + tk.get_converter('convert_from_extras'), + tk.get_validator('ignore_missing') ], 'relatedPackage': [ - toolkit.get_converter('convert_from_extras'), - toolkit.get_validator('ignore_missing') + tk.get_converter('convert_from_extras'), + tk.get_validator('ignore_missing') ], 'accessibility': [ - toolkit.get_converter('convert_from_extras'), - toolkit.get_validator('ignore_missing') + tk.get_converter('convert_from_extras'), + tk.get_validator('ignore_missing') ], 'is_replaced_by': [ - toolkit.get_converter('convert_from_extras'), - toolkit.get_validator('ignore_missing') + tk.get_converter('convert_from_extras'), + tk.get_validator('ignore_missing') ], 'version_notes': [ - toolkit.get_converter('convert_from_extras'), - toolkit.get_validator('ignore_missing') + tk.get_converter('convert_from_extras'), + tk.get_validator('ignore_missing') ], 'reference': [ - toolkit.get_converter('convert_from_extras'), - toolkit.get_validator('ignore_missing') + tk.get_converter('convert_from_extras'), + tk.get_validator('ignore_missing') ], 'hvdCategory': [ - toolkit.get_converter('convert_from_extras'), - toolkit.get_validator('ignore_missing') + tk.get_converter('convert_from_extras'), + tk.get_validator('ignore_missing') ], 'applicableLegislation': [ - toolkit.get_converter('convert_from_extras'), - toolkit.get_validator('ignore_missing') + tk.get_converter('convert_from_extras'), + tk.get_validator('ignore_missing') ], }) return schema