[ckan-dev] Custom fields that are arrays or objects with fields

Renato Guevara guevara.renato at gmail.com
Thu Oct 30 16:21:26 UTC 2014


Ian,

Thank you again!  I tried installing the plugin using the following command:

 pip install -e "git+
https://github.com/open-data/ckanext-scheming.git#egg=ckanext-scheming"

but I receive the following error:

Obtaining ckanext-scheming from git+
https://github.com/open-data/ckanext-scheming.git#egg=ckanext-scheming
  Cloning https://github.com/open-data/ckanext-scheming.git to
./ckanext-scheming
  Running setup.py
(path:/usr/lib/ckan/default/src/ckanext-scheming/setup.py) egg_info for
package ckanext-scheming

    error: Namespace package problem: ckanext is a namespace package, but
its
    __init__.py does not call declare_namespace()! Please fix it.
    (See the setuptools manual under "Namespace Packages" for details.)
    "
    Complete output from command python setup.py egg_info:
    running egg_info

creating ckanext_scheming.egg-info

writing ckanext_scheming.egg-info/PKG-INFO

writing namespace_packages to
ckanext_scheming.egg-info/namespace_packages.txt

writing top-level names to ckanext_scheming.egg-info/top_level.txt

writing dependency_links to ckanext_scheming.egg-info/dependency_links.txt

writing entry points to ckanext_scheming.egg-info/entry_points.txt

writing manifest file 'ckanext_scheming.egg-info/SOURCES.txt'

warning: manifest_maker: standard file '-c' not found



error: Namespace package problem: ckanext is a namespace package, but its

__init__.py does not call declare_namespace()! Please fix it.

(See the setuptools manual under "Namespace Packages" for details.)

"
Have you see this before?

On Thu, Oct 30, 2014 at 11:31 AM, Ian Ward <ian at excess.org> wrote:

> On Thu, Oct 30, 2014 at 11:13 AM, Renato Guevara
> <guevara.renato at gmail.com> wrote:
> > Ian,
> >
> > Thank you for your response.  I'm looking through both ckanext-scheming
> and
> > ckanext-fluent, but I'm a bit confused on how you use them.  I get the
> > concept of how ckanext-scheming is used to define your own json schema.
> So,
> > when you use the ckanext-fluent plugin, how do you modify
> ckanext-scheming
> > to use fluent?  In addition to that, I see that ckanext-scheming
> implements
>
> You add the fluent plugin and include the fluent validators and
> template snippets where you wan them in your scheming schema.
>
> > the IDatasetForm class, but doesn't implement the
> package_create/modify/show
> > functions required.  Does that mean that it is added by the user?  I'm a
> bit
> > fuzzy on that.  Would you be able to help me run through the steps.
>
> Yes, to use ckanext-scheming you would add it (scheming_datasets) to
> your plugins in your ini file. The scheming_datasets plugin implements
> the validate method of the IDatasetForm interface which covers all the
> create/modify/show cases.
>
> > For example, before I knew about this plugin, I had written the following
> > plugin to add my customized fields.
> [...]
>
> The idea of scheming is to allow this kind of plugin to be written as
> mostly configuration instead of python code. So it's just another way
> of writing the plugin you already have.
>
> > I wanted to add another field called "queryLanguage" which is
> essentially a
> > list of options.  So, I can have something like
> >
> > queryLanguage: ["sql", "sparql"].
> >
> > This is what drove me to ask the question.  Do I use this plugin in
> > conjunction with ckanext-scheming?
>
> No, for scheming you would need to change the way your plugin is
> written (and use the latest ckan master version)
>
> The reason I wrote fluent as a separate extension, and plan to write
> the repeating extension the same way is so that people can reuse those
> new field types even in plugins that *don't* use scheming. You just
> need to add the validators to your schema, update your form to submit
> data the right way, and update your display template to display it the
> way you want.
>
> When I have something usable for this purpose I'll reply to this
> thread. For now the simplest thing to do for the list field you want
> to add is to store it as a delimited string. It's possible to convert
> from that to the new field type transparently with a show validator if
> you choose to switch later.
>
> Ian
> _______________________________________________
> ckan-dev mailing list
> ckan-dev at lists.okfn.org
> https://lists.okfn.org/mailman/listinfo/ckan-dev
> Unsubscribe: https://lists.okfn.org/mailman/options/ckan-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.okfn.org/pipermail/ckan-dev/attachments/20141030/b13bab38/attachment-0003.html>


More information about the ckan-dev mailing list