Design thought for callbacks

Cem Karan cfkaran2 at gmail.com
Mon Mar 2 06:11:59 EST 2015


On Feb 26, 2015, at 7:04 PM, Fabio Zadrozny <fabiofz at gmail.com> wrote:

> 
> On Wed, Feb 25, 2015 at 9:46 AM, Cem Karan <cfkaran2 at gmail.com> wrote:
> 
> On Feb 24, 2015, at 8:23 AM, Fabio Zadrozny <fabiofz at gmail.com> wrote:
> 
> > Hi Cem,
> >
> > I didn't read the whole long thread, but I thought I'd point you to what I'm using in PyVmMonitor (http://www.pyvmmonitor.com/) -- which may already cover your use-case.
> >
> > Take a look at the callback.py at https://github.com/fabioz/pyvmmonitor-core/blob/master/pyvmmonitor_core/callback.py
> >
> > And its related test (where you can see how to use it): https://github.com/fabioz/pyvmmonitor-core/blob/master/_pyvmmonitor_core_tests/test_callback.py (note that it falls back to a strong reference on simple functions -- i.e.: usually top-level methods or methods created inside a scope -- but otherwise uses weak references).
> 
> That looks like a better version of what I was thinking about originally.  However, various people on the list have convinced me to stick with strong references everywhere.  I'm working out a possible API right now, once I have some code that I can use to illustrate what I'm thinking to everyone, I'll post it to the list.
> 
> Thank you for showing me your code though, it is clever!
> 
> Thanks,
> Cem Karan
> 
> ​Hi Cem,
> 
> Well, I decided to elaborate a bit on the use-case I have and how I use it (on a higher level): http://pydev.blogspot.com.br/2015/02/design-for-client-side-applications-in.html
> 
> So, you can see if it may be worth for you or not (I agree that sometimes you should keep strong references, but for my use-cases, weak references usually work better -- with the only exception being closures, which is handled different anyways but with the gotcha of having to manually unregister it).

As I mentioned in an earlier post, I've been quite busy at home, and expect to be for a few days to come, so I apologize both for being so late posting, and for not posting my own API plans.

Your blog post has given me quite a bit to think about, thank you!  Do you mind if I work up an API similar to yours?  I'm planning on using a different license (not LGPL), which is why I ask.

Thanks,
Cem Karan


More information about the Python-list mailing list