* Improve alignment of live logbook and historical logbook models
- Make EventAsRow as NamedType which is better aligned with
sqlalchemy Row
- Use getitem to fetch results for both Row and EventAsRow
since its an order of magnitude faster fetching sqlalchemy
Row object values.
* final
* fix
* unused
* fix more tests
* cleanup
* reduce
* tweak
* Avoid duplicate timestamp conversions for websocket api and recorder
We convert the time from datetime to timestamps one per
open websocket connection and the recorder for every
state update. Only do the conversion once since its
~30% of the cost of building the state diff
* more
* two more
* two more in live history
* Speed up LazyEventPartialState for logbook
We should avoid the getattr call since every row would
have to call the sqlalchemy key not found implemention
if we blindly getattr
* Speed up LazyEventPartialState for logbook
We should avoid the getattr call since every row would
have to call the sqlalchemy key not found implemention
if we blindly getattr