Note how the Service class will work with ServiceProvider instances
That was simple. Now to change Service to actually use ServiceProvider instances... Oh glory...
Starting on rewrite of autobus2.local.LocalService, moved singletons from autobus2 to autobus2.constants, and added singletons for all of the new ServiceProvider-related events
Yay! I already wrote an event framework that I forgot about! It'll do nicely for Autobus events.
Stuff
Possible solution...
More ideas, and probably gonna go to bed before I do much more
Throw an exception from __autobus_call__ if the function requested does not exist
Restructuring, but taking a detour to write an EventTable class
Created an EventTable class
More restructuring
Added a class like Event, but for Autobus's object system, which I'm calling properties. (I hope to change objects to be named properties in Autobus itself at some point, so this is a start.)
Convert stuff to use PropertyTable
More restructuring
Add __getitem__, __setitem__, and __delitem__ to PropertyTable to allow it to be used like a dict. I may add the rest of the mapping-related methods later so it can be used as a full dictionary.
pep8
Use property tables to store info objects to allow the introspection service to observe them
All events except SERVICE_CHANGED have been implemented now.
Filter out non-jsonable objects. Probably should do the same for events, although the repercussions of the error propagating to connection handling logic aren't nearly as large for events as for objects.
Working on a service provider that exposes a traditional Python object via Autobus.