initialize new cython module raw_meat

This commit is contained in:
Mario Fink
2020-08-10 12:03:35 +02:00
parent ecd364d482
commit f8dcc6493f
59 changed files with 174 additions and 16 deletions

29
cyt/raw_eater.pxd Normal file
View File

@@ -0,0 +1,29 @@
# cython: language_level = 3
# distutils: language = c++
# use some C++ STL libraries
from libcpp.string cimport string
from libcpp.vector cimport vector
from libcpp cimport bool
#cdef extern from "raweat.hpp":
# pass
# these method names have to match the C definitions of the methods!!
cdef extern from "../lib/raweat.hpp":
cdef cppclass raw_eater:
raw_eater(string) except +
# get validity of data format
bool get_valid()
# get channel name and unit
string get_name()
string get_unit()
# get time step and time unit
double get_dt()
string get_temp_unit()
# get data array of time and measured quantity's channel
vector[double] get_time()
vector[double] get_data()
# dump all data to .csv
void write_table(const char*,char delimiter)

39
cyt/raw_eater.pyx Normal file
View File

@@ -0,0 +1,39 @@
from raw_eater cimport raweater
import numpy as np
import re
cdef class raweater:
# pointer to C++ instance (since there's no nullary constructor)
cdef raw_eater *rawit
def __cinit__(self, string rawfile):
self.rawit = new raw_eater(rawfile)
def __dealloc__(self):
del self.rawit
def validity(self):
return self.rawit.get_valid()
def channel_name(self):
return self.rawit.get_name()
def unit(self):
return self.rawit.get_unit()
def dt(self):
return self.rawit.get_dt()
def time_unit(self):
return self.rawit.get_temp_unit()
def get_time(self):
return self.rawit.get_time()
def get_channel(self):
return self.rawit.get_data()
def write_table(self, const char* csvfile, char delimiter):
return self.rawit.write_table(csvfile,delimiter)

27
cyt/raw_meat.pxd Normal file
View File

@@ -0,0 +1,27 @@
# cython: language_level = 3
# distutils: language = c++
# use some C++ STL libraries
from libcpp.string cimport string
from libcpp.vector cimport vector
from libcpp cimport bool
# these method names have to match the C++ definitions of the methods!!
cdef extern from "../lib/rawmerge.hpp":
cdef cppclass raw_merger:
raw_merger(string) except +
# get validity of data format
bool get_valid()
# get channel name and unit
string get_name()
string get_unit()
# get time step and time unit
double get_dt()
string get_temp_unit()
# get data array of time and measured quantity's channel
vector[double] get_time()
vector[double] get_data()
# dump all data to .csv
void write_table(const char*,char delimiter)
# add channel and try to merge it
bool add_channel(string)

43
cyt/raw_meat.pyx Normal file
View File

@@ -0,0 +1,43 @@
# from <raw_meat> has to match name of .pxd file and cimport name of class defined in .pxd
from raw_meat cimport raw_merger
import numpy as np
import re
cdef class rawmerger:
# pointer to C++ instance (since there's no nullary constructor)
cdef raw_merger *rawit
def __cinit__(self, string rawfile):
self.rawit = new raw_merger(rawfile)
def __dealloc__(self):
del self.rawit
def validity(self):
return self.rawit.get_valid()
def channel_name(self):
return self.rawit.get_name()
def unit(self):
return self.rawit.get_unit()
def dt(self):
return self.rawit.get_dt()
def time_unit(self):
return self.rawit.get_temp_unit()
def get_time(self):
return self.rawit.get_time()
def get_channel(self):
return self.rawit.get_data()
def write_table(self, const char* csvfile, char delimiter):
return self.rawit.write_table(csvfile,delimiter)
def add_channel(self, string rawfile):
return self.rawit.add_channel(rawfile)