##// END OF EJS Templates
Few fixes to build on CentOS 7 and adds simple example of virtual product...
jeandet -
r1505:4bf34af32858
parent child
Show More
@@ -0,0 +1,38
1 import traceback
2 from SciQLopBindings import PyDataProvider, Product, VectorTimeSerie, ScalarTimeSerie, DataSeriesType
3 import numpy as np
4 from spwc.cache import _cache
5 from spwc.common.datetime_range import DateTimeRange
6 from datetime import datetime, timedelta, timezone
7 from spwc.common.variable import SpwcVariable
8 from spwc.amda import AMDA
9
10 amda = AMDA()
11
12
13 def vp_make_scalar(var=None):
14 if var is None:
15 return (((np.array([]), np.array([])), np.array([])), DataSeriesType.SCALAR)
16 else:
17 return (((var.time, np.array([])), var.data), DataSeriesType.SCALAR)
18
19 class DemoVP(PyDataProvider):
20 def __init__(self):
21 super().__init__()
22 self.register_products([Product("/VP/thb_fgm_gse_mod",[],{"type":"scalar"})])
23
24 def get_data(self,metadata,start,stop):
25 try:
26 tstart = datetime.fromtimestamp(start, tz=timezone.utc)
27 tend = datetime.fromtimestamp(stop, tz=timezone.utc)
28 thb_bs = amda.get_parameter(start_time=tstart, stop_time=tend, parameter_id='thb_bs', method="REST")
29 thb_bs.data = np.sqrt((thb_bs.data*thb_bs.data).sum(axis=1))
30 return vp_make_scalar(thb_bs)
31 except Exception as e:
32 print(traceback.format_exc())
33 print(f"Error in {__file__} ",str(e))
34 return (((np.array([]), np.array([])), np.array([])), ts_type)
35
36
37 t=DemoVP()
38
@@ -1,50 +1,55
1 1 shiboken2 = find_program('shiboken2')
2 2 qmake = find_program('qmake-qt5','qmake')
3 3
4 4 pymod = import('python')
5 5 python3 = pymod.find_installation('python3', modules:['PySide2','shiboken2', 'shiboken2_generator', 'numpy'])
6 6 python3_dep = python3.dependency(embed:true)
7 7 numpy_inc = run_command(python3, '-c', 'import numpy;print(numpy.get_include())').stdout().strip('\n')
8 8
9 9 qt5_modules = ['QtCore','QtGui','QtWidgets']
10 10
11 11 qt_headers_path = run_command(qmake, '-query', 'QT_INSTALL_HEADERS').stdout().strip('\n')
12 12 generated_srcs = run_command(python3, 'src_list.py', 'meson').stdout().split(';')
13 13
14 14 modules_arg = '--modules=@0@'.format(','.join(qt5_modules))
15 15
16 16 shiboken2_build_flags = run_command(python3, 'shiboken-helper.py', '--includes', modules_arg).stdout().strip('\n').split(' ')
17 17 shiboken2_link_flags = run_command(python3, 'shiboken-helper.py', '--libs', modules_arg).stdout().strip('\n').split(' ')
18 18 shiboken2_typesystem = run_command(python3, 'shiboken-helper.py', '--typesystem').stdout().strip('\n')
19 19
20 message('shiboken2_build_flags = @0@'.format(shiboken2_build_flags))
21 message('shiboken2_link_flags = @0@'.format(shiboken2_link_flags))
22 message('shiboken2_typesystem = @0@'.format(shiboken2_typesystem))
23
24
20 25 sciqlop_bindings_incs = shiboken2_build_flags + [
21 26 '-I'+meson.current_source_dir()+'/../../gui/include',
22 27 '-I'+meson.current_source_dir()+'/../../core/include',
23 28 '-I'+meson.current_source_dir()+'/../../subprojects/TimeSeries/include',
24 29 '-I'+meson.current_source_dir()+'/../../subprojects/cpp_utils/include',
25 30 '-I'+python3.get_path('include'),
26 31 '-I'+qt_headers_path,
27 32 '-I'+numpy_inc
28 33 ]
29 34
30 35 foreach mod:qt5_modules
31 36 sciqlop_bindings_incs += ['-I'+qt_headers_path+'/'+mod]
32 37 endforeach
33 38
34 39
35 40 sciqlop_bindings_src = files('bindings.h', 'PyDataProvider.h', 'numpy_wrappers.h', 'numpy_wrappers.cpp')
36 41
37 42 subdir('SciQLopBindings')
38 43 subdir('plugins')
39 44
40 45 shiboken_dep = declare_dependency(compile_args: shiboken2_build_flags, link_args: shiboken2_link_flags)
41 46
42 47 sciqlop_bindings = python3.extension_module('SciQLopBindings',sciqlop_bindings_src,shiboken2_generator_out,
43 48 dependencies : [sciqlop_app_dep, python3_dep, shiboken_dep, cpp_utils_dep],
44 49 include_directories : numpy_inc
45 50 )
46 51
47 52
48 53 configure_file(input:'main.py', output:'main.py', copy:true)
49 54
50 55 executable('sciqlop', 'main.cpp', dependencies :python3_dep)
@@ -1,3 +1,4
1 1
2 2 configure_file(input:'TestPlugin.py', output:'TestPlugin.py', copy:true)
3 3 configure_file(input:'SPWC-Amda.py', output:'SPWC-Amda.py', copy:true)
4 configure_file(input:'Demo-virtual-product.py', output:'Demo-virtual-product.py', copy:true)
@@ -1,46 +1,46
1 1 #!/bin/env python3
2 2
3 3 import os
4 4 import sys
5 5 import importlib
6 6 import argparse
7 7 from glob import glob
8 8
9 9
10 10 shiboken2_generator = importlib.import_module('shiboken2_generator')
11 11 shiboken2 = importlib.import_module('shiboken2')
12 12 PySide2 = importlib.import_module('PySide2')
13 13
14 14
15 15 parser = argparse.ArgumentParser(description='PySide2/shiboken2 ')
16 16 group = parser.add_mutually_exclusive_group()
17 17 group.add_argument('--libs',action='store_true')
18 18 group.add_argument('--includes',action='store_true')
19 19 parser.add_argument('--modules')
20 20 group.add_argument('--typesystem', action='store_true')
21 21 args = parser.parse_args()
22 22
23 23
24 24 def first_existing_path(path_list):
25 25 return next((path for path in path_list if os.path.exists(path)), None)
26 26
27 27
28 28 if shiboken2.__file__ and shiboken2_generator.__file__ and PySide2.__file__:
29 29 PySide2_inc = first_existing_path([PySide2.__path__[0]+'/include','/usr/include/PySide2'])
30 30 PySide2_typesys = first_existing_path([PySide2.__path__[0]+'/typesystems','/usr/share/PySide2/typesystems'])
31 31 PySide2_includes = first_existing_path([PySide2.__path__[0]+'/include','/usr/include/PySide2'])
32 shiboken2_includes = first_existing_path([shiboken2.__path__[0]+'/include','/usr/include/shiboken2'])
32 shiboken2_includes = first_existing_path([shiboken2.__path__[0]+'/include',shiboken2_generator.__path__[0]+'/include','/usr/include/shiboken2'])
33 33
34 34 if args.typesystem:
35 35 print(PySide2_typesys)
36 36 modules = args.modules.split(',')
37 37 if args.libs:
38 main_lib = (glob(shiboken2.__path__[0]+'/libshiboken2'+importlib.machinery.EXTENSION_SUFFIXES[0])+glob("/usr/lib64/"+'/libshiboken2'+importlib.machinery.EXTENSION_SUFFIXES[0]))[0]
39 main_lib += " "+(glob(PySide2.__path__[0]+'/libpyside2'+importlib.machinery.EXTENSION_SUFFIXES[0])+glob("/usr/lib64/"+'/libpyside2'+importlib.machinery.EXTENSION_SUFFIXES[0]))[0]
38 main_lib = (glob(shiboken2.__path__[0]+'/libshiboken2'+importlib.machinery.EXTENSION_SUFFIXES[0]+'*')+glob("/usr/lib64/"+'/libshiboken2'+importlib.machinery.EXTENSION_SUFFIXES[0]+'*'))[0]
39 main_lib += " "+(glob(PySide2.__path__[0]+'/libpyside2'+importlib.machinery.EXTENSION_SUFFIXES[0]+'*')+glob("/usr/lib64/"+'/libpyside2'+importlib.machinery.EXTENSION_SUFFIXES[0]+'*'))[0]
40 40 modules_libs = [importlib.import_module(f'PySide2.{module}').__file__ for module in modules]
41 41 print(" ".join([main_lib]+ modules_libs))
42 42 if args.includes:
43 43 modules_incs = [f"-I{PySide2_includes}/{module}" for module in modules]
44 44 print(" ".join([f"-I{PySide2_includes} -I{shiboken2_includes}"]+ modules_incs))
45 45
46 46
General Comments 0
You need to be logged in to leave comments. Login now