[ckan-dev] Feature Request: Upserts in ckanclient
Friedrich Lindenberg
friedrich.lindenberg at okfn.org
Fri Sep 23 13:09:00 UTC 2011
Hrm, I knew this would come back ;-)
https://bitbucket.org/okfn/ckanclient/pull-request/1/upsert-functions
- Friedrich
On Fri, Sep 23, 2011 at 12:38 AM, Rufus Pollock <rufus.pollock at okfn.org> wrote:
> On 21 September 2011 21:10, Friedrich Lindenberg
> <friedrich.lindenberg at okfn.org> wrote:
>> Hi all,
>>
>> I'm working on one of the community instances and essentially I'm
>> writing some scraper scripts to pipe packages into CKAN.
>> Micro-harvesters, in a sense. What I'd really like would be upsert
>> functions like this:
>>
>> def client():
>> return CkanClient(base_location=CKAN_URL + '/api', api_key=CKAN_KEY)
>>
>> def upsert_group(data):
>> name = data['name']
>> c = client()
>> try:
>> grp = c.group_entity_get(name)
>> grp = c.group_entity_put(data)
>> except CkanApiNotFoundError:
>> #print "Create %s" % name
>> grp = c.group_register_post(data)
>> return grp
>>
>> def upsert_package(data):
>> name = data['name']
>> c = client()
>> try:
>> pkg = c.package_entity_get(name)
>> pkg = c.package_entity_put(data)
>> except CkanApiNotFoundError:
>> #print "Create %s" % name
>> pkg = c.package_register_post(data)
>> return pkg
>>
>> def add_package_to_group(group_name, pkg_name):
>> c = client()
>> grp = c.group_entity_get(group_name)
>> grp['packages'].append(pkg_name)
>> return c.group_entity_put(grp)
>
> sounds like a good patch :-) Do you want to fork, apply and then we
> merge to ckanclient?
>
> Rufus
>
> _______________________________________________
> ckan-dev mailing list
> ckan-dev at lists.okfn.org
> http://lists.okfn.org/mailman/listinfo/ckan-dev
>
--
Open Knowledge Foundation
Promoting Open Knowledge in a Digital Age
http://www.okfn.org/ - http://blog.okfn.org/
http://twitter.com/pudo
http://pudo.org
More information about the ckan-dev
mailing list