Cleaned up libbe.propertied.change_hook_property for mutables.
authorW. Trevor King <wking@drexel.edu>
Tue, 23 Jun 2009 18:05:36 +0000 (14:05 -0400)
committerW. Trevor King <wking@drexel.edu>
Tue, 23 Jun 2009 18:05:36 +0000 (14:05 -0400)
commit94ec388327e2418ff54431ed4e4f05cd6fc82e85
treeb346e3360300921effd04e7150fd9d1385169ecf
parent0940a0196db1e589a9c91652d92a284b28cd5629
Cleaned up libbe.propertied.change_hook_property for mutables.

Now (except for a wimpy hash function) it's as good as it's going to
get for true mutables.  Calls to change_hook occur for all changes,
sometime after the change-enducing action and before the next
attribute access.  See testChangeHookMutableProperty for an example of
the expected behavior.

If you're doing some mutable-modification (e.g. t.x.append(5)) and you
want to `flush' the changes into a change_hook call, just assign t.x
to a dummy variable.  e.g.
  t.x.append(5)
  dummy = t.x

If you _really_ need post-modification change_hook calls without such
a flush, you're on your own.  Would you get the property-owning class
to poll for changes?
libbe/properties.py