Changeset - fc66b28302a5
[Not reviewed]
default
0 1 0
drewp@bigasterisk.com - 6 years ago 2019-06-08 03:51:49
drewp@bigasterisk.com
some types for subclient
Ignore-this: a01ce3ca8427241d5f543e427167891d
1 file changed with 8 insertions and 3 deletions:
0 comments (0 inline, 0 general)
light9/subclient.py
Show inline comments
 
from light9.collector.collector_client import sendToCollector
 
from twisted.internet import reactor
 
from twisted.internet.defer import Deferred
 
import traceback
 
import time
 
import logging
 
from rdflib import URIRef
 
from rdfdb.syncedgraph import SyncedGraph
 
log = logging.getLogger()
 

	
 

	
 
class SubClient:
 

	
 
    graph: SyncedGraph
 
    session: URIRef
 
    
 
    def __init__(self):
 
        """assumed that your init saves self.graph"""
 
        pass  # we may later need init code for network setup
 

	
 
    def get_levels_as_sub(self):
 
        """Subclasses must implement this method and return a Submaster
 
        object."""
 

	
 
    def send_levels(self):
 
        self._send_sub()
 

	
 
    def send_levels_loop(self, delay=1000):
 
    def send_levels_loop(self, delay=1000) -> None:
 
        now = time.time()
 

	
 
        def done(sec):
 
            reactor.callLater(max(0,
 
                                  time.time() - (now + delay)),
 
                              self.send_levels_loop)
 
@@ -31,13 +36,13 @@ class SubClient:
 
            log.warn('subclient loop: %r', e)
 
            reactor.callLater(2, self.send_levels_loop)
 

	
 
        d = self._send_sub()
 
        d.addCallbacks(done, err)
 

	
 
    def _send_sub(self):
 
    def _send_sub(self) -> Deferred:
 
        try:
 
            with self.graph.currentState() as g:
 
                outputSettings = self.get_output_settings(_graph=g)
 
        except Exception:
 
            traceback.print_exc()
 
            return
0 comments (0 inline, 0 general)