On Aug 29, 2008, at 9:01 AM, Roger Ineichen wrote: > I'll try to make the ISource API smooth and usable > for other components. Right now ISource provides no > simple API for work with terms. > > Since a ISource only provides a __contains__ method > and the IterableSource the __iter__ method, > there is some more needed which makes it easy to > work with terms next to the ISourceQueriables API. > > The zope.app.form.browser.interfaces.ITerms > defines one possible way to make it work > like a vocabulary because it defines the methods > getTerm(value) and getValue(token). > > The z3c.form.interfaces.ITerms defines also > such a query API but right now only or vocabularies. > > I propose to define such a ITerms interface in > zope.schema.interfaces which makes it possible > to implement simple ISource terms and work with > the ITerm values like we do in vocabularies.
I'm not in favor of adding UI-support interfaces to zope.schema. The presense of terms in zope.schema.interfaces was a mistake. > This whould not affect other implementations like > the ISourceQueriables etc. It only offers the > a way to implement reusable simple ISource components > without the need that every UI framework needs to > implement their own interfaces for query ISource > component in their own way (e.g. ITerms). Why can't they use zope.app.form.interfaces.ITerms > The current state of ISource/ITerms concept whould not > work if someone will switch form zope.app.form based > sources to z3c.form based sources because of it's > different ITerms implementations. Why? If the interface is the same, why does it matter if the implementations differ. > Or if someone defines a zope.schema.ISource in a 3rd party > package, the zope.app.form.browser.interfaces.ITerms is > often used for query ITerms even if it's only used in python > code without any form framework. That's a real bad dependency. Why? > Fazit, > The only query API defined for ISource in zope.schema > is the ISourceQueriables API. That's defently to less > and makes it required to implement custom query APIs > in UI frameworks if we need to work with terms. I'm not convinced that a more specific API, except maybe one based on simple search strings will be generally useful. An earlier attempt to define a query interface was a disaster. > I no one objects, I'll start a zope.schema branch and > let you know about the progress and a hopfully a simple > solution. I object. Jim -- Jim Fulton Zope Corporation _______________________________________________ Zope-Dev maillist - Zope-Dev@zope.org http://mail.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope )