我正在尝试将一些数据集收集到2.8 ckan中,并且收集器给出了电子邮件验证错误。这些数据集来自不同的来源,可能没有正确的电子邮件格式/可能包含多个电子邮件/ URL,而不是有效的电子邮件。我使用的较早的ckan 2.6能够收集这些数据集。 这是我收到的错误消息:
错误[ckanext.harvest.harvesters.base] {'maintainer_email':['Email fanny.hernandez@ecu911.gob.ec; maria.serrano@ecu911.gob.ec不是 有效格式']}追溯(最近一次通话):文件 “ /usr/lib/ckan/default/src/ckanext-harvest/ckanext/harvest/harvesters/base.py”, _create_or_update_package中的第369行 else'package_create_rest')(上下文,package_dict)文件“ /usr/lib/ckan/default/src/ckan/ckan/logic/init.py”,在第464行 包裹 结果= _action(context,data_dict,** kw)文件“ /usr/lib/ckan/default/src/ckan/ckan/logic/action/create.py”,行 177,在package_create中 引发ValidationError(errors)ValidationError:{'maintainer_email':['电子邮件fanny.hernandez@ecu911.gob.ec; maria.serrano@ecu911.gob.ec格式无效']}
当我深入探究ckan源代码时,ckan收割机正在使用schema.py中的默认模式
schema = default_create_package_schema()
这将为模式提供email_validation:
“ maintainer_email”:[ignore_missing,unicode_safe,email_validator]
但是对于2.6,没有email_validator:
“ maintainer_email”:[ignore_missing,unicode]
我最初的想法是跳过此验证,是从schema.py的default_create_package_schema()中删除email_validator。
因此,虽然验证电子邮件是有意义的,但我认为验证是可配置的会更好,因为在某些情况下(例如上述错误中的多个维护者),我们可能需要跳过严格的电子邮件验证。
有没有人遇到这个问题和/或找到了收集电子邮件无效数据的方法?