Source code for datapackage.sources

# -*- coding: utf-8 -*-
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
from __future__ import unicode_literals

from .util import Specification, is_url, is_email
from . import compat


[docs]class Source(Specification): """ Source object which can be added to a DataPackage object or a Resource object to represent where the data comes from. From the specification: Each source hash may have name, web and email fields. """ SPECIFICATION = {'name': compat.str, 'web': compat.str, 'email': compat.str} @property def web(self): """ Link to the source of the data on the web """ return self['web'] @web.setter
[docs] def web(self, value): if not value: if 'web' in self: del self['web'] return if not is_url(value): raise ValueError("not a url: {0}".format(value)) self['web'] = value
@property def email(self): """ Email address to the source of the data (person, organisation etc.) """ return self['email'] @email.setter
[docs] def email(self, value): if not value: if 'email' in self: del self['email'] return if not is_email(value): raise ValueError("not an email address: {0}".format(value)) self['email'] = value