rename directories
This commit is contained in:
41
cython/raw_eater.pxd
Normal file
41
cython/raw_eater.pxd
Normal file
@@ -0,0 +1,41 @@
|
||||
# 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
|
||||
|
||||
# to include implemenation/definition file
|
||||
#cdef extern from "raweat.cpp":
|
||||
# pass
|
||||
|
||||
# these method names have to match the C definitions of the methods!!
|
||||
#
|
||||
# for how to overload the constructor see
|
||||
# https://cython.readthedocs.io/en/latest/src/userguide/wrapping_CPlusPlus.html
|
||||
# and propagating exceptions from C++ to Python
|
||||
# http://docs.cython.org/en/latest/src/userguide/wrapping_CPlusPlus.html#exceptions
|
||||
|
||||
cdef extern from "../lib/raweat.hpp":
|
||||
cdef cppclass raw_eater:
|
||||
# constructor(s)
|
||||
raw_eater() except +
|
||||
raw_eater(string) except +
|
||||
# set new file for decoding
|
||||
void set_file(string)
|
||||
# perform conversion (pass any C++ exceptions to Python)
|
||||
void setup_and_conversion() 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)
|
58
cython/raw_eater.pyx
Normal file
58
cython/raw_eater.pyx
Normal file
@@ -0,0 +1,58 @@
|
||||
|
||||
from raw_eater cimport raweater
|
||||
import numpy as np
|
||||
import re
|
||||
import os
|
||||
|
||||
cdef class raweater:
|
||||
|
||||
# C++ instance of class => stack allocated (requires nullary constructor!)
|
||||
cdef raw_eater rawit
|
||||
|
||||
# pointer to C++ instance (if there's no nullary constructor)
|
||||
# cdef raw_eater *rawit
|
||||
|
||||
def __cinit__(self, string rawfile = b''):
|
||||
if rawfile.decode() == "":
|
||||
self.rawit = raw_eater()
|
||||
# self.rawit = new raw_eater()
|
||||
else:
|
||||
if not os.path.isfile(rawfile) :
|
||||
raise ValueError("'" + str(rawfile) + "' does not exist")
|
||||
self.rawit = raw_eater(rawfile)
|
||||
# self.rawit = new raw_eater(rawfile)
|
||||
|
||||
# def __dealloc__(self):
|
||||
# del self.rawit
|
||||
|
||||
def set_file(self, string rawfile):
|
||||
if not os.path.isfile(rawfile) :
|
||||
raise ValueError("'" + str(rawfile) + "' does not exist")
|
||||
self.rawit.set_file(rawfile)
|
||||
|
||||
def do_conversion(self):
|
||||
self.rawit.setup_and_conversion()
|
||||
|
||||
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):
|
||||
self.rawit.write_table(csvfile,delimiter)
|
37
cython/raw_meat.pxd
Normal file
37
cython/raw_meat.pxd
Normal file
@@ -0,0 +1,37 @@
|
||||
# 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)
|
||||
# add channel and try to merge it (pass C++ exceptions to Python)
|
||||
bool add_channel(string) except +
|
||||
# get total number of (added) channels
|
||||
int get_num_channels()
|
||||
# get list of channel names
|
||||
vector[string] get_channel_names()
|
||||
# get data of particular channel
|
||||
vector[double] get_channel(int)
|
||||
# get total merged time series
|
||||
vector[double] get_time_series()
|
||||
# dump all channels to .csv
|
||||
void write_table_all(const char*,char)
|
58
cython/raw_meat.pyx
Normal file
58
cython/raw_meat.pyx
Normal file
@@ -0,0 +1,58 @@
|
||||
|
||||
# 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)
|
||||
|
||||
def get_num_channels(self):
|
||||
return self.rawit.get_num_channels()
|
||||
|
||||
def get_channel_names(self):
|
||||
return self.rawit.get_channel_names()
|
||||
|
||||
def get_channel_by_index(self, int chidx):
|
||||
return self.rawit.get_channel(chidx)
|
||||
|
||||
def get_time_series(self):
|
||||
return self.rawit.get_time_series()
|
||||
|
||||
def write_table_all(self, const char* csvfile, char delimiter):
|
||||
return self.rawit.write_table_all(csvfile,delimiter)
|
20
cython/setup_raw_eater.py
Normal file
20
cython/setup_raw_eater.py
Normal file
@@ -0,0 +1,20 @@
|
||||
from distutils.core import setup
|
||||
from distutils.extension import Extension
|
||||
from Cython.Build import cythonize
|
||||
|
||||
extensions = Extension(
|
||||
name="raw_eater",
|
||||
sources=["cyt/raw_eater.pyx"],
|
||||
# libraries=[""],
|
||||
library_dirs=["src"],
|
||||
include_dirs=["src"],
|
||||
language='c++',
|
||||
extra_compile_args=['-std=c++11','-Wno-unused-variable'],
|
||||
extra_link_args=['-std=c++11'],
|
||||
#extra_objects=["lib/parquet/libarrow.so.200.0.0"],
|
||||
)
|
||||
|
||||
setup(
|
||||
name="raw_eater",
|
||||
ext_modules=cythonize(extensions)
|
||||
)
|
20
cython/setup_raw_meat.py
Normal file
20
cython/setup_raw_meat.py
Normal file
@@ -0,0 +1,20 @@
|
||||
from distutils.core import setup
|
||||
from distutils.extension import Extension
|
||||
from Cython.Build import cythonize
|
||||
|
||||
extensions = Extension(
|
||||
name="raw_meat",
|
||||
sources=["cyt/raw_meat.pyx"],
|
||||
# libraries=[""],
|
||||
library_dirs=["src"],
|
||||
include_dirs=["src"],
|
||||
language='c++',
|
||||
extra_compile_args=['-std=c++11','-Wno-unused-variable'],
|
||||
extra_link_args=['-std=c++11'],
|
||||
#extra_objects=["lib/parquet/libarrow.so.200.0.0"],
|
||||
)
|
||||
|
||||
setup(
|
||||
name="raw_meat",
|
||||
ext_modules=cythonize(extensions)
|
||||
)
|
Reference in New Issue
Block a user