Beispiel #1
0
def gen_json_for_line_chart(data_in,tile_id):
    start_time=current_date_time()
    end_time=current_date_time()    
    tile_json={}
    tile_json["valid_time"]={
        "start_time": start_time,
        "end_time": end_time
    }
    tile_json["tile_id"] = tile_id
    tile_json["keys"] = []
    tile_json["cache_scope"] = "user"
    tile_json["key_type"] = "timestamp"
    tile_json["period"] = "last_7_days"
    tile_json["observed_time"]= {
        "start_time": start_time,
        "end_time": end_time
    }    
    data_list=[]
    ii=0
    for item in data_in:
        print(cyan(item,bold=True)) 
        print(yellow(len(item),bold=True))
        data_dict_item={}
        data_dict_item["key"]=epoch_datetime(item[0])  
        data_dict_item["value"]=item[1]
        data_list.append(data_dict_item)
    tile_json["data"]=data_list
    return(tile_json)
Beispiel #2
0
def gen_json_for_donut(data_in,tile_id): 
    start_time=current_date_time()
    end_time=current_date_time()    
    tile_json={}
    tile_json["valid_time"]={
        "start_time": start_time,
        "end_time": end_time
    }
    tile_json["tile_id"] = tile_id
    tile_json["labels"] = []
    tile_json["labels"].append([])
    tile_json["labels"].append([])
    tile_json["cache_scope"] = "org"
    tile_json["period"] = "last_7_days"
    tile_json["observed_time"]= {
        "start_time": start_time,
        "end_time": end_time
    }    
    data_list=[]
    ii=0
    key_index=0
    for item in data_in:
        print(cyan(item,bold=True)) 
        print(yellow(len(item),bold=True))
        data_dict_item={}
        data_dict_item["key"]=item[0]   
        data_dict_item["value"]=item[3]
        tile_json["labels"][0].append(item[2])
        url=item[1]
        i=0
        iii=0
        data_dict_item["segments"]=[]
        for sub_item in item:
            print(red(i,bold=True))
            entry={}
            if i>3 and i<len(item):
                entry["key"]= item[i]
                entry["value"]= item[i+1]
                entry["tooltip"]= f"{item[i]} : {item[i+1]}"
                entry["link_uri"]= url                             
                data_dict_item["segments"].append(entry)
                if item[i] not in tile_json["labels"][1]:
                    tile_json["labels"][1].append(item[i])
                if ii==0:
                    new_key={}
                    new_key={"key": iii,"value": item[i]}  
                    iii+=1
                i+=1
            i+=1            
        data_list.append(data_dict_item)
        ii+=1
    tile_json["data"]=data_list
    return(tile_json)
Beispiel #3
0
def gen_json_for_bar_chart(data_in,tile_id,key_type):
    temps=current_date_time()
    tile_json={}
    tile_json["valid_time"]={
        "start_time": temps,
        "end_time": temps
    }
    tile_json["tile_id"] = tile_id
    tile_json["keys"] = []
    tile_json["cache_scope"] = "org"
    tile_json["key_type"] = key_type
    tile_json["period"] = "last_7_days"
    tile_json["observed_time"]= {
        "start_time": temps,
        "end_time": temps
    }    
    data_list=[]
    ii=0
    for item in data_in:
        print(cyan(item,bold=True)) 
        print(yellow(len(item),bold=True))
        data_dict_item={}
        data_dict_item["key"]=epoch_date(item[0])        
        url=item[1]
        i=0
        data_dict_item["values"]=[]
        for sub_item in item:
            print(red(i,bold=True))
            entry={}
            if i>1 and i<len(item):
                entry["key"]= item[i]
                entry["value"]= item[i+1]
                entry["tooltip"]= f"{item[i]} : {item[i+1]}"
                entry["link_uri"]= url                             
                data_dict_item["values"].append(entry)
                if ii==0:
                    new_key={}
                    new_key={"key": item[i],"label": item[i]}
                    tile_json["keys"].append(new_key)                
                i+=1
            i+=1            
        data_list.append(data_dict_item)
        ii+=1
    tile_json["data"]=data_list
    return(tile_json)
Beispiel #4
0
        def new_init__(self, data=None, data_type='python'):
            if data is None:
                data = {}

            self.dirty = False
            self.data_type = data_type

            if '_allowed_undefined' in attrs:
                self._allowed_undefined = attrs['_allowed_undefined']

            if '_atomic_changes' in attrs:
                self._atomic_changes = attrs['_atomic_changes']

            # the modified field is a microsecond later than the created
            # this is done for testing purposes
            modified = lambda: current_date_time(0.001)
            self.fields = _Fields({
                GIZMO_MODEL: String(get_qualified_instance_name(self),\
                    data_type=data_type, track_changes=False),
                GIZMO_CREATED: DateTime(value=current_date_time,\
                    data_type=data_type, set_max=1, track_changes=False),
                GIZMO_MODIFIED: DateTime(value=modified,\
                    data_type=data_type, track_changes=False),
                GIZMO_NODE_TYPE: String(self._node_type, data_type=data_type,\
                    track_changes=False),
                GIZMO_ID: String(data_type=data_type,\
                    track_changes=False),
            })

            if isinstance(self, Edge):
                if 'out_v' in data:
                    self.out_v = data['out_v']

                    del data['out_v']
                else:
                    self.out_v = None

                if '_outV' in data:
                    self.outV = data['_outV']

                    del data['_outV']
                else:
                    self.outV = None

                if 'in_v' in data:
                    self.in_v = data['in_v']

                    del data['in_v']

                if '_inV' in data:
                    self.inV = data['_inV']

                    del data['_inV']
                else:
                    self.inV = None

                label = data.get('label', None)

                if label is None:
                    label = self._node_type

                self.fields[GIZMO_LABEL] = String(value=label, data_type=data_type)

            """"
            build the properties for the instance
            ignore things that start with an underscore and methods
            this is done for all of the bases first, then the actual model
            """
            undefined = copy.deepcopy(data)

            def update_fields(obj):
                for name, field in obj.items():
                    if not name.startswith('_'):
                        if isinstance(field, Field):
                            value = field.value
                            if name == 'active':
                                import pudb; pu.db
                            if name in data:
                                value = data[name]
                                del(undefined[name])

                            if name not in DEFAULT_MODEL_FIELDS:
                                self.dirty = True

                            kwargs = {
                                'value': value,
                                'data_type': field.data_type,
                                'set_max': field.set_max,
                                'track_changes': field.track_changes,
                            }
                            instance = field.__class__(**kwargs)
                            self.fields[name] = instance
                        elif isfunction(field) == False:
                            setattr(self, name, field)

            for b in reversed(bases):
                update_fields(b.__dict__)
            
            update_fields(attrs)
            self.hydrate(undefined)

            if data is not None and GIZMO_ID in data:
                self.fields[GIZMO_ID].field_value = data[GIZMO_ID]