Twisted plugins fail when import path has trailing slash

[email protected]
Newsgroups gmane.comp.python.twisted.bugs
Message-ID <[email protected]>
New submission from colin <[email protected]>:

The essence of the problem is if you have a trailing slash in your import path, twisted asserts that the stripped module path is '''''in''''' the python import cache. Obviously "''''''/foo/bar' in {'/foo/bar/':None}'''''" never matches anything, then many kittens die. 

{{{
import sys
sys.path.append('/usr/local/tcs/tums/lib/')
}}}

Worlds largest traceback commenses here

{{{
2009-07-13 09:22:45+0200 [HTTPChannel,1,172.31.0.127] Unhandled Error
        Traceback (most recent call last):
          File "/usr/local/tcs/tums/lib/nevow/rend.py", line 572, in _renderHTTP
            return self.flattenFactory(doc, ctx, writer, finisher)
          File "/usr/local/tcs/tums/lib/nevow/rend.py", line 531, in <lambda>
            flattenFactory = lambda self, *args: flat.flattenFactory(*args)
          File "/usr/local/tcs/tums/lib/nevow/flat/__init__.py", line 14, in flattenFactory
            return deferflatten(stan, ctx, writer).addCallback(finisher)
          File "/usr/local/tcs/tums/lib/nevow/flat/twist.py", line 63, in deferflatten
            _drive(iterable, finished)
        --- <exception caught here> ---
          File "/usr/local/tcs/tums/lib/nevow/flat/twist.py", line 24, in _drive
            next = iterable.next()
          File "/usr/local/tcs/tums/lib/nevow/flat/ten.py", line 83, in iterflatten
            for item in gen:
          File "/usr/local/tcs/tums/lib/nevow/flat/flatstan.py", line 103, in TagSerializer
            yield serialize(toBeRenderedBy, context)
          File "/usr/local/tcs/tums/lib/nevow/flat/ten.py", line 70, in serialize
            return partialflatten(context, obj)
          File "/usr/local/tcs/tums/lib/nevow/flat/ten.py", line 61, in partialflatten
            return flattener(obj, context)
          File "/usr/local/tcs/tums/lib/nevow/flat/flatstan.py", line 264, in DirectiveSerializer
            return serialize(renderer, context)
          File "/usr/local/tcs/tums/lib/nevow/flat/ten.py", line 70, in serialize
            return partialflatten(context, obj)
          File "/usr/local/tcs/tums/lib/nevow/flat/ten.py", line 61, in partialflatten
            return flattener(obj, context)
          File "/usr/local/tcs/tums/lib/nevow/flat/flatstan.py", line 247, in MethodSerializer
            return FunctionSerializer(original, context, nocontext)
          File "/usr/local/tcs/tums/lib/nevow/flat/flatstan.py", line 236, in FunctionSerializer
            result = original(context, data)
          File "/usr/local/tcs/tums/lib/nevow/athena.py", line 1064, in render_liveglue
            in self._getRequiredModules()],
          File "/usr/local/tcs/tums/lib/nevow/athena.py", line 755, in _getRequiredModules
            in self._getModuleForClass().allDependencies()
          File "/usr/local/tcs/tums/lib/nevow/athena.py", line 742, in _getModuleForClass
            return jsDeps.getModuleForClass(self.jsClass)
          File "/usr/local/tcs/tums/lib/nevow/athena.py", line 301, in getModuleForName
            self.mapping.update(allJavascriptPackages())
          File "/usr/local/tcs/tums/lib/nevow/athena.py", line 273, in allJavascriptPackages
            for p in plugin.getPlugIns(inevow.IJavascriptPackage, plugins):
          File "/usr/lib/python2.5/site-packages/twisted/plugin.py", line 200, in getPlugins
            allDropins = getCache(package)
          File "/usr/lib/python2.5/site-packages/twisted/plugin.py", line 131, in getCache
            mod = getModule(module.__name__)
          File "/usr/lib/python2.5/site-packages/twisted/python/modules.py", line 741, in getModule
            return theSystemPath[moduleName]
          File "/usr/lib/python2.5/site-packages/twisted/python/modules.py", line 677, in __getitem__
            self._findEntryPathString(moduleObject)),
          File "/usr/lib/python2.5/site-packages/twisted/python/modules.py", line 630, in _findEntryPathString
            rval, modobj, pformat(self.importerCache))
        exceptions.AssertionError: '/usr/local/tcs/tums/lib' for <module 'nevow.plugins' from '/usr/local/tcs/tums/lib/nevow/plugins/__init__.pyc'> not in import cache {'.': None,
         '/usr/lib/python2.5': None,
         '/usr/lib/python2.5/': None,
         '/usr/lib/python2.5/ctypes': None,
         '/usr/lib/python2.5/email': None,
         '/usr/lib/python2.5/email/mime': None,
         '/usr/lib/python2.5/lib-dynload': None,
         '/usr/lib/python2.5/lib-tk': None,
         '/usr/lib/python2.5/plat-linux2': None,
         '/usr/lib/python2.5/site-packages': None,
         '/usr/lib/python2.5/site-packages/Crypto': None,
         '/usr/lib/python2.5/site-packages/Crypto/Cipher': None,
         '/usr/lib/python2.5/site-packages/Crypto/Hash': None,
         '/usr/lib/python2.5/site-packages/Crypto/PublicKey': None,
         '/usr/lib/python2.5/site-packages/Crypto/Util': None,
         '/usr/lib/python2.5/site-packages/PIL': None,
         '/usr/lib/python2.5/site-packages/cairo': None,
         '/usr/lib/python2.5/site-packages/pysqlite2': None,
         '/usr/lib/python2.5/site-packages/twisted': None,
         '/usr/lib/python2.5/site-packages/twisted/application': None,
         '/usr/lib/python2.5/site-packages/twisted/conch': None,
         '/usr/lib/python2.5/site-packages/twisted/conch/insults': None,
         '/usr/lib/python2.5/site-packages/twisted/conch/ssh': None,
         '/usr/lib/python2.5/site-packages/twisted/cred': None,
         '/usr/lib/python2.5/site-packages/twisted/internet': None,
         '/usr/lib/python2.5/site-packages/twisted/mail': None,
         '/usr/lib/python2.5/site-packages/twisted/persisted': None,
         '/usr/lib/python2.5/site-packages/twisted/protocols': None,
         '/usr/lib/python2.5/site-packages/twisted/python': None,
         '/usr/lib/python2.5/site-packages/twisted/scripts': None,
         '/usr/lib/python2.5/site-packages/twisted/spread': None,
         '/usr/lib/python2.5/site-packages/twisted/trial': None,
         '/usr/lib/python2.5/site-packages/twisted/web': None,
         '/usr/lib/python2.5/site-packages/zope': None,
         '/usr/lib/python2.5/site-packages/zope/interface': None,
         '/usr/lib/python2.5/xml': None,
         '/usr/lib/python2.5/xml/parsers': None,
         '/usr/lib/python2.5/xml/sax': None,
         '/usr/local/lib/python2.5/site-packages': None,
         '/usr/local/tcs/tums': None,
         '/usr/local/tcs/tums/lang': None,
         '/usr/local/tcs/tums/lang/en': None,
         '/usr/local/tcs/tums/lib/': None,
         '/usr/local/tcs/tums/lib/axiom': None,
         '/usr/local/tcs/tums/lib/epsilon': None,
         '/usr/local/tcs/tums/lib/formal': None,
         '/usr/local/tcs/tums/lib/formal/widgets': None,
         '/usr/local/tcs/tums/lib/formless': None,
         '/usr/local/tcs/tums/lib/nevow': None,
         '/usr/local/tcs/tums/lib/nevow/flat': None,
         '/usr/local/tcs/tums/lib/nevow/plugins': None,
         '/usr/local/tcs/tums/lib/nevow/taglibrary': None,
         '/usr/local/tcs/tums/lib/pycha': None,
         '/usr/local/tcs/tums/lib/reportlab': None,
         '/usr/local/tcs/tums/lib/reportlab/lib': None,
         '/usr/local/tcs/tums/lib/reportlab/pdfbase': None,
         '/usr/local/tcs/tums/lib/reportlab/pdfgen': None,
         '/usr/local/tcs/tums/lib/reportlab/platypus': None,
         '/usr/local/tcs/tums/lib/sasync': None,
         '/usr/local/tcs/tums/lib/sqlalchemy': None,
         '/usr/local/tcs/tums/lib/sqlalchemy/databases': None,
         '/usr/local/tcs/tums/lib/sqlalchemy/engine': None,
         '/usr/local/tcs/tums/lib/sqlalchemy/orm': None,
         '/var/lib/python-support/python2.5': None,
         '/var/lib/python-support/python2.5/MySQLdb': None,
         '/var/lib/python-support/python2.5/MySQLdb/constants': None,
         '/var/lib/python-support/python2.5/OpenSSL': None}

2009-07-13 09:22:46+0200 [HTTPChannel,1,172.31.0.127] <class 'nevow.stan.raw'> ERROR
...
}}}

----------
Type     : defect
Component: core
Keywords : 
Priority : normal
Nosy     : 
----------
http://twistedmatrix.com/trac/ticket/3913
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.