model Package¶
model Package¶
Implementation of CKAN API Models takes place here.
client Module¶
Lowest communication layer of libckan. This package contains a wrapper for urllib2 requests that communicates with CKAN Api. It also contains a Response class to represent CKAN responses.
-
class
libckan.model.client.Client(base_url='http://master.ckan.org', api_key='')¶ Bases:
objectCKAN API Client. It does HTTP POST request to CKAN API.
-
classmethod
request(action, data=None, base_url='http://master.ckan.org', api_key='')¶ Post a data dict to one of the actions of the CKAN action API.
Code taken from https://gist.github.com/seanh/4130567
See the documentation of the action API, including each of the available actions and the data dicts they accept, here: https://ckan.readthedocs.org/en/255-update-api-docs/api.html
Parameters: - action (str) – the action to post to, e.g. “package_create”
- data (dict) – the data to post (optional, default: {})
- base_url (str) – the base URL of the CKAN instance to post to, e.g. “http://datahub.io/“
- api_key (str) – the CKAN API key to put in the ‘Authorization’ header of the HTTP request (optional, default: None)
Returns: the dictionary returned by the CKAN API encapsulated in a Response object.
Returns: - Raises:
libckan.model.exceptions.CKANError: - An error occurred accessing CKAN API
-
classmethod
-
class
libckan.model.client.Response¶ Bases:
libckan.model.serializable.SerializableCKAN Action API returns Response objects (in form of JSON). We encapsulate it in a Python object for consistency. The library actually never returns Response objects. It is employed internally.
exceptions Module¶
libckan custom exceptions are defined in this module.
-
exception
libckan.model.exceptions.CKANError(response_error)¶ Bases:
exceptions.ExceptionGeneral CKAN API error. It encapsulates the error part of a CKAN Response.
extra Module¶
-
class
libckan.model.extra.Extra¶ Bases:
libckan.model.serializable.SerializableRepresent extra objects contained in a Package extras array
package Module¶
This Python package contains the definition of a CKAN Dataset / Package.
-
class
libckan.model.package.Package(name='')¶ Bases:
libckan.model.serializable.SerializableA CKAN Package of Open Data.
-
add_extra(extra_obj)¶ Add an Extra to the Package’s array of extras
Parameters: extra_obj – The Resource to be associated to the Package Raises: ValueError if extra_obj is not an Extra
-
add_resource(resource_obj)¶ Add a Resource to the Package’s array of resources
Parameters: resource_obj – The Resource to be associated to the Package Raises: ValueError if resource_obj is not a Resource
-
add_tag(tag_obj)¶ Add a Tag to the Package’s array of tags
Parameters: tag_obj – The Resource to be associated to the Package Raises: ValueError if tag_obj is not a Tag
-
classmethod
from_dict(package_dict)¶ Convert a CKAN JSON Package, already converted to a PYthon dict, to a CKAN Python Package.
Parameters: package_dict – The CKAN Package already converted to a Python dict. Returns: The resulting CKAN Python Package. Return type: libckan.models.package.PackageRaises: ValueError if package_dict is not a dict
-
resource Module¶
-
class
libckan.model.resource.Resource¶ Bases:
libckan.model.serializable.SerializablePython CKAN Resource representation
serializable Module¶
-
class
libckan.model.serializable.Serializable¶ Bases:
objectSuperclass for all libckan models related to CKAN API models. A mix between an Abstract Class and an Interface. Never instantiate it.
-
classmethod
from_dict(obj_dict)¶ Return a CKAN Python object, given the related CKAN dict (converted from CKAN JSON). This method is suitable for all trivial CKAN API objects.
Parameters: obj_dict (dict) – the CKAN Client. Default: an instance of libckan.model.client.Client Returns: a libckan API Python object. Return type: libckan.model.serializable.SerializableRaises: ValueError if obj_dict is not a dict
-
classmethod
to_dict()¶
-
classmethod
tag Module¶
-
class
libckan.model.tag.Tag¶ Bases:
libckan.model.serializable.SerializableTag contained in a Package tags array
trackingsummary Module¶
-
class
libckan.model.trackingsummary.TrackingSummary¶ Bases:
libckan.model.serializable.SerializableTracking Summary object contained in a Package tracking_summary attribute