[ckan-dev] CKAN API Clients

Rufus Pollock rufus.pollock at okfn.org
Mon Apr 30 19:23:47 UTC 2012


On 30 April 2012 18:46, Haq, Salman <Salman.Haq at neustar.biz> wrote:
>
>
> On 4/30/12 10:08 AM, "Sean Hammond" <sean.hammond at okfn.org> wrote:
>
>>> > And this is a the new ckanclient.loader.util module:
>>> > http://git.io/zYk8NA
>>> >
>>> > 'upload_file' and 'add_package_resource' are two high-level utility
>>> > functions it defines.
>>> >
>>> > To actually upload the file, we have to perform a multi-part form
>>>upload
>>> > which urllib2 does not handle by default so I've used httplib for that
>>> > purpose. The 'poster' module has a special urllib2 opener for doing
>>> > multi-part uploads but I didn't want to introduce a new dependency.
>>> >
>>> > Test cases to follow soon.
>>>
>>> Sorry I didn't have time to look at this this week. I'll get back to you
>>> about it next week (unless someone else can do it sooner?) but I think
>>> you can go ahead and add test cases, and maybe also integrate it into
>>> ckanclient/__init__.py? I think it's great work and will surely be
>>> useful
>>
>>This code looks good to me so I'd like to merge it once it's integrated
>>into ckanclient/__init__.py and maybe has some test cases. I did have
>>one problem testing it locally here, line 87 of util.py is using
>>u.hostname but that was None, when it should be '127.0.0.1:5000', so the
>>upload was failing. I think the problem is that auth_dict['action'] on
>>line 84 may be just a path like /storage/upload that does not contain
>>the hostname.
>
> Sean,
>
> I'll fix the issue with localhost issue that you¹ve highlight.
>
> Should the functions `upload_file` and `add_package_resource` become
> methods of the CkanClient class while the helpers remain the `util`
> module? Or do you want to not have a `util` module at all?

I'd suggest adding to main class. I'm also happy to review the
functions once done (this could substitute for getting you an upload
example).

I also wonder if now (or soon) is when we do the mass rename package -> dataset.

> I still haven't had a chance to work on adding test case, but will do so
> later this week hopefully.

That would be great. For upload we almost certainly need to mock ...

Rufus




More information about the ckan-dev mailing list