Example #1
0
 def __call__(self, ts, container=None, **kwargs):
     '''Dump timeseries as a JSON string VBA-Excel friendly'''
     from ccy import date2juldate
     if istimeseries(ts):
         return list(tsiterator(ts, dateconverter=date2juldate, **kwargs))
     else:
         raise NotImplementedError()
Example #2
0
 def __call__(self, ts, container=None, **kwargs):
     '''Dump timeseries as a JSON string VBA-Excel friendly'''
     from ccy import date2juldate
     from dynts.utils.anyjson import JSONdatainfo
     if istimeseries(ts):
         return list(tsiterator(ts, dateconverter=date2juldate, **kwargs))
     else:
         raise NotImplementedError()
Example #3
0
 def _unwind(self):
     res = self.expression.unwind(self.data,self.backend)
     self._ts = None
     self._xy = None
     if istimeseries(res):
         self._ts = res
     elif res and isinstance(res,list):
         tss = []
         xys = []
         for v in res:
             if istimeseries(v):
                 tss.append(v)
             elif isxy(v):
                 xys.append(v)
         if tss:
             self._ts = merge(tss)
         if xys:
             self._xy = xys
     elif isxy(res):
         self._xy = res
Example #4
0
 def _unwind(self):
     res = self.expression.unwind(self.data, self.backend)
     self._ts = None
     self._xy = None
     if istimeseries(res):
         self._ts = res
     elif res and isinstance(res, list):
         tss = []
         xys = []
         for v in res:
             if istimeseries(v):
                 tss.append(v)
             elif isxy(v):
                 xys.append(v)
         if tss:
             self._ts = merge(tss)
         if xys:
             self._xy = xys
     elif isxy(res):
         self._xy = res
Example #5
0
 def dump(self, format, **kwargs):
     ts = self.ts()
     xy = self.xy()
     if istimeseries(ts):
         ts = ts.dump(format, **kwargs)
     else:
         ts = None
     if xy:
         if isxy(xy):
             xy = [xy]
         for el in xy:
             ts = el.dump(format, container = ts, **kwargs)
     return ts
Example #6
0
 def dump(self, format, **kwargs):
     ts = self.ts()
     xy = self.xy()
     if istimeseries(ts):
         ts = ts.dump(format, **kwargs)
     else:
         ts = None
     if xy:
         if isxy(xy):
             xy = [xy]
         for el in xy:
             ts = el.dump(format, container=ts, **kwargs)
     return ts
Example #7
0
 def __call__(self, ts, container = None, desc = False, **kwargs):
     '''Dump timeseries as a JSON string VBA-Excel friendly'''
     from ccy import date2juldate
     from dynts.utils.anyjson import JSONdatainfo
     if istimeseries(ts):
         return list(tsiterator(ts,
                                dateconverter=date2juldate,
                                desc = desc))
         #return JSONdatainfo(list(tsiterator(ts,
         #                                    dateconverter=date2juldate,
         #                                    desc = desc)),
         #                    info = ts.info)
     else:
         raise NotImplementedError
Example #8
0
    def __call__(self,
                 ts,
                 container=None,
                 desc=False,
                 series_info=None,
                 **kwargs):
        '''Dump timeseries as a JSON string compatible with ``flot``'''
        from dynts.web import flot
        from dynts.conf import settings

        pydate2flot = flot.pydate2flot
        result = container or flot.MultiPlot()
        df = {}
        series_info = series_info or df
        if istimeseries(ts):
            res = flot.Flot(ts.name, type='timeseries', **series_info)
            dates = asarray(ts.dates())
            missing = settings.ismissing
            for name, serie in zip(ts.names(), ts.series()):
                info = series_info.get(name, df)
                data = []
                append = data.append
                for dt, val in zip(dates, serie):
                    if not missing(val):
                        append([pydate2flot(dt), val])
                serie = flot.Serie(label=name, data=data, **info)
                res.add(serie)
        else:
            res = flot.Flot(ts.name)
            if ts.extratype:
                for name, serie in zip(ts.names(), ts.series()):
                    serie = flot.Serie(label=serie.name,
                                       data=serie.data,
                                       lines={'show': serie.lines},
                                       points={'show': True},
                                       scatter={
                                           'show': serie.points,
                                           'extratype': ts.extratype
                                       })
                    res.add(serie)
            else:
                for name, serie in zip(ts.names(), ts.series()):
                    serie = flot.Serie(label=serie.name,
                                       data=serie.data,
                                       lines={'show': serie.lines},
                                       points={'show': serie.points})
                    res.add(serie)
        result.add(res)
        return result
Example #9
0
 def __call__(self, ts, container = None, desc = False,
              series_info = None, **kwargs):
     '''Dump timeseries as a JSON string compatible with ``flot``'''
     from dynts.web import flot
     from dynts.conf import settings
     
     pydate2flot = flot.pydate2flot
     result = container or flot.MultiPlot()
     df = {}
     series_info = series_info or df
     if istimeseries(ts):
         res = flot.Flot(ts.name, type = 'timeseries', **series_info)
         dates  = asarray(ts.dates())
         missing = settings.ismissing
         for name,serie in zip(ts.names(),ts.series()):
             info = series_info.get(name,df) 
             data = []
             append = data.append
             for dt,val in zip(dates,serie):
                 if not missing(val):
                     append([pydate2flot(dt),val])
             serie = flot.Serie(label = name, data = data, **info)
             res.add(serie)
     else:
         res = flot.Flot(ts.name)
         if ts.extratype:
             for name,serie in zip(ts.names(),ts.series()):
                 serie = flot.Serie(label = serie.name,
                                    data = serie.data,
                                    lines = {'show':serie.lines},
                                    points = {'show':True},
                                    scatter = {'show':serie.points,
                                               'extratype':ts.extratype})
                 res.add(serie)
         else:
             for name,serie in zip(ts.names(),ts.series()):
                 serie = flot.Serie(label = serie.name,
                                    data = serie.data,
                                    lines = {'show':serie.lines},
                                    points = {'show':serie.points})
                 res.add(serie)
     result.add(res)
     return result