I restructured the TXNG 3 source so that the core implementation can be used as package (within Zope 2.8/Five)
...so far so good.

The configure.zcml under Products/TextIndexNG3 contains several statements of the form:

<utility provides="textindexng.interfaces.IConverter" component="textindexng.converters.doc.DocConverter" name="application/vnd.ms-word" />

Inside a browser view class there is the following method:

   def get_converters(self):
       """ return all available converters """

       from zope.app import zapi
       from textindexng.interfaces import IConverter
       print [x for x in zapi.getUtilitiesFor(IConverter)]
       return zapi.getUtilitiesFor(IConverter)

But the getUtilitiesFor() call always returns nothing. In my case textindexng/interfaces contains several files with interfaces and all interfaces are aliased in interfaces/__init__.py. The "textindexng" package itself lives unter Products/TextIndexNG3 and sys.path is extended in Products/TextIndexNG3/__init__.py to be able to import the "textindexng" package without the need to use "Products.TextIndexNG3" in imports....so any ideas why the utility machinery refuses to return the registered utilities for the given interface? A


Attachment: pgppEgVgAzNmB.pgp
Description: PGP signature

Zope3-dev mailing list
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com

Reply via email to