##// END OF EJS Templates
Minor AppImage and Meson fixes...
Minor AppImage and Meson fixes Signed-off-by: Alexis Jeandet <alexis.jeandet@member.fsf.org>

File last commit:

r1440:824c70b31e8a
r1443:0b787f764159
Show More
test.py
87 lines | 3.1 KiB | text/x-python | PythonLexer
Amda, cdaweb and test python are now fully embedded in SciQLop...
r1440 import traceback
import pandas as pds
WIP Multicomponent TS...
r1431 import PythonProviders
import pysciqlopcore
import numpy as np
Few fixes with merging empty csv files from Web Services...
r1433 import math
Better AMDA tree and test data cat also go through cache...
r1439 from spwc.cache import _cache
from spwc.common.datetime_range import DateTimeRange
from functools import partial
from datetime import datetime, timedelta, timezone
WIP Multicomponent TS...
r1431
someglobal = 1
MultiComponent TS almost complete...
r1432 def make_scalar(x):
WIP Multicomponent TS...
r1431 y = np.cos(x/10.)
Better AMDA tree and test data cat also go through cache...
r1439 return pds.DataFrame(index=[datetime.fromtimestamp(t, tz=timezone.utc) for t in x], data=y)
WIP Multicomponent TS...
r1431
MultiComponent TS almost complete...
r1432 def make_vector(x):
Implemented MultiComponent TS initial plot auto-scale...
r1436 v=np.ones((len(x),3))
MultiComponent TS almost complete...
r1432 for i in range(3):
Better AMDA tree and test data cat also go through cache...
r1439 v.transpose()[:][i] = np.cos(x/10. + float(i)) + (100. * np.cos(x/10000. + float(i)))
return pds.DataFrame(index=[datetime.fromtimestamp(t, tz=timezone.utc) for t in x], data=v)
MultiComponent TS almost complete...
r1432
def make_multicomponent(x):
Implemented MultiComponent TS initial plot auto-scale...
r1436 v=np.ones((len(x),4))
MultiComponent TS almost complete...
r1432 for i in range(4):
Implemented MultiComponent TS initial plot auto-scale...
r1436 v.transpose()[:][i] = float(i+1) * np.cos(x/10. + float(i))
Better AMDA tree and test data cat also go through cache...
r1439 return pds.DataFrame(index=[datetime.fromtimestamp(t, tz=timezone.utc) for t in x], data=v)
MultiComponent TS almost complete...
r1432
Better AMDA tree and test data cat also go through cache...
r1439 def _get_data(p_type, start, stop):
if type(start) is datetime:
start = start.timestamp()
stop = stop.timestamp()
Few fixes with merging empty csv files from Web Services...
r1433 x = np.arange(math.ceil(start), math.floor(stop))
Better AMDA tree and test data cat also go through cache...
r1439 if p_type == 'scalar':
return make_scalar(x)
if p_type == 'vector':
return make_vector(x)
if p_type == 'multicomponent':
return make_multicomponent(x)
return None
MultiComponent TS almost complete...
r1432
Better AMDA tree and test data cat also go through cache...
r1439 def get_data(metadata,start,stop):
ts_type = pysciqlopcore.ScalarTimeSerie
default_ctor_args = 1
use_cache = False
p_type = 'scalar'
try:
for key,value in metadata:
if key == 'type':
p_type = value
if value == 'vector':
ts_type = pysciqlopcore.VectorTimeSerie
elif value == 'multicomponent':
ts_type = pysciqlopcore.MultiComponentTimeSerie
default_ctor_args = (0,2)
if key == 'cache' and value == 'true':
use_cache = True
if use_cache:
cache_product = f"tests/{p_type}"
df = _cache.get_data(cache_product, DateTimeRange(datetime.fromtimestamp(start, tz=timezone.utc), datetime.fromtimestamp(stop, tz=timezone.utc)),
partial(_get_data, p_type),
fragment_hours=24)
else:
print("No Cache")
df = _get_data(p_type, start, stop)
t = np.array([d.timestamp() for d in df.index])
values = df.values
return ts_type(t,values)
except Exception as e:
print(traceback.format_exc())
print("Error in test.py ",str(e))
return ts_type(default_ctor_args)
WIP Multicomponent TS...
r1431
Better AMDA tree and test data cat also go through cache...
r1439 products = [
("/tests/without_cache/scalar",[],[("type","scalar")]),
("/tests/without_cache/vector",[],[("type","vector")]),
("/tests/without_cache/multicomponent",[],[("type","multicomponent"),('size','4')]),
("/tests/with_cache/scalar",[],[("type","scalar"), ("cache","true")]),
("/tests/with_cache/vector",[],[("type","vector"), ("cache","true")]),
("/tests/with_cache/multicomponent",[],[("type","multicomponent"),('size','4'), ("cache","true")])
]
WIP Multicomponent TS...
r1431
Better AMDA tree and test data cat also go through cache...
r1439 PythonProviders.register_product(products ,get_data)