Skip to content

Home

corranwebster edited this page Jan 18, 2012 · 2 revisions
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.

Directions

  • 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
Something went wrong with that request. Please try again.