I have been working on updating the trunk to provide enthought.traits version
2.6b1. backend_driver.py is running without exceptions using the traited
config package with the internal traits package.
Issues:
1) there are lots of absolute package imports scattered throughout traits'
code. I worked around this by adding a line to matplotlib/__init__.py:
sys.path.append(os.path.split(__file__)[0])
This lets matplotlib access enthought.traits without modifying enthoughts code
(anymore than Gael had already done by stripping the pkg_resources imports).
2) When I tried updating rc_traits.py to import matplotlib.enthought.traits
instead of enthought.traits (which isnt on the PYTHONPATH), I discovered a
problem:
enthought.traits.trait_errors.TraitError: The 'parents_items' trait of a
ViewElements instance must be a TraitListEvent, but a value of
<matplotlib.enthought.traits.trait_handlers.TraitListEvent object at
0x850454c> was specified.
So traits would be a behind-the-scenes package, for internal mpl use only.
3) We can not include traits-3 without either adding setuptools as an external
dependency (which is already true for python-2.3 users) or monkey-patching
distutils. traits-3 includes some pyrex code, which standard distutils does
not recognize.
I have not committed my work to svn yet. I wanted to get some feedback on
points 1 and 2 first. Is it acceptable to use traits internally, but not
expose it to the end user? I think the answer is yes, and that this is even a
benefit. If we want to make it an external dependency we can strip the
package out without impacting any user code.
Darren