if item[0] not in constraints or item[1] != constraints[ item[0]]: WorkingDataCache.myLogger.debug( "Cache data not validated for key {0}. Expected Value is {1}. Got {2}. Destroying it!..." .format(item[0], item[1], constraints[item[0]])) WorkingDataCache.removeEntry(cellId) return None WorkingDataCache.myLogger.debug( "Cache data validated for {}. Using it!...".format(cellId)) return value["data"] WorkingDataCache.myLogger.debug( "No Cache Entry found for {}".format(cellId)) #add a display Run Listener addDisplayRunListener( lambda entity, options: WorkingDataCache.onNewDisplayRun(entity, options)) #common Chart Options injection decorator def commonChartOptions(func): def wrapper(cls, *args, **kwargs): commonOptions = [] if hasattr(cls, "handlerId") and hasattr(cls, 'commonOptions'): handler = cls.commonOptions.get(cls.handlerId, []) if callable(handler): handler = handler(cls) commonOptions += handler fctSet = set() for cl in reversed(inspect.getmro(cls.__class__)): if hasattr(cl, func.__name__): f = getattr(cl, func.__name__)
# ------------------------------------------------------------------------------- # Copyright IBM Corp. 2017 # # Licensed under the Apache License, Version 2.0 (the 'License'); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an 'AS IS' BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ------------------------------------------------------------------------------- from pixiedust.display.display import * from pixiedust.display import addDisplayRunListener #add a display Run Listener addDisplayRunListener( lambda entity, options: onNewDisplayRun(entity, options) ) activesStreamingEntities = {} def onNewDisplayRun(entity, options): if "cell_id" in options and "showchrome" in options: if options["cell_id"] in activesStreamingEntities: del activesStreamingEntities[options["cell_id"]] class StreamingDisplay(Display): def __init__(self, options, entity, dataHandler=None): super(StreamingDisplay,self).__init__(options,entity,dataHandler) self.windowSize = 100
# you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an 'AS IS' BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ------------------------------------------------------------------------------- from pixiedust.display.display import * from pixiedust.display import addDisplayRunListener #add a display Run Listener addDisplayRunListener(lambda entity, options: onNewDisplayRun(entity, options)) activesStreamingEntities = {} def onNewDisplayRun(entity, options): if "cell_id" in options and "showchrome" in options: if options["cell_id"] in activesStreamingEntities: del activesStreamingEntities[options["cell_id"]] class StreamingDisplay(Display): def __init__(self, options, entity, dataHandler=None): super(StreamingDisplay, self).__init__(options, entity, dataHandler) self.windowSize = 100
constraints.pop("self",None) cellId = options["cell_id"] value = WorkingDataCache[cellId] if value: WorkingDataCache.myLogger.debug("Found cache data for {}. Validating integrity...".format(cellId)) for item in list(value["constraints"].items()): if item[0] not in constraints or item[1] != constraints[item[0]]: WorkingDataCache.myLogger.debug("Cache data not validated for key {0}. Expected Value is {1}. Got {2}. Destroying it!...".format(item[0], item[1], constraints[item[0]])) WorkingDataCache.removeEntry(cellId) return None WorkingDataCache.myLogger.debug("Cache data validated for {}. Using it!...".format(cellId)) return value["data"] WorkingDataCache.myLogger.debug("No Cache Entry found for {}".format(cellId)) #add a display Run Listener addDisplayRunListener( lambda entity, options: WorkingDataCache.onNewDisplayRun(entity, options) ) #common Chart Options injection decorator def commonChartOptions(func): def wrapper(cls, *args, **kwargs): commonOptions = [] if hasattr(cls, "handlerId") and hasattr(cls, 'commonOptions'): handler = cls.commonOptions.get(cls.handlerId, []) if callable(handler): handler = handler(cls) commonOptions += handler fctSet = set() for cl in reversed(inspect.getmro(cls.__class__)): if hasattr(cl, func.__name__): f = getattr(cl, func.__name__) if f not in fctSet: