Clone this wiki locally
Welcome to the encore wiki!
For the time being this will be a dumping place for thoughts on future directions and a dumping ground for issues about warts with the current code.
- More backends for Storage:
- we currently don't have a true 2-way remote store (eg. RESTful HTTP or 0MQ)
- Berkeley DB/anydbm etc. would be a natural fit
- perhaps a pure text-format store (XML or JSON)?
- More composed stores:
- caching store is the big one
- Better tests:
- currently no tests for event emission
- Refactor Event classes:
- add a source type attribute to BaseEvent
- make source type a first-class thing to filter on in addition to Event classes (ie. key of listener dictionary becomes a tuple of (EventClass, SourceClass) with both running up the MRO looking for matches).
- Better filtering for events and storage queries:
- both use the same basic idea, both could be improved by some sort of expression-based query builder
- could potentially be re-used to build numpy expressions for memory-efficient chunked computations
Things which smell
- Having to explicitly pass in the event manager for every storage class - particularly when we think of the event manager as being a global (almost-always) singleton.
- Not using traits. Should we really be working this low-level.
Possible other modules
- Preference support:
- this is a natural fit with key-value stores and joined stores
- A basic Application object:
- owns the event manager
- a non-traits, non-pluggable version of Envisage application