initialize cython interface for tdm_reaper
This commit is contained in:
parent
529b80f4f9
commit
1ec81cafe6
@ -3,17 +3,17 @@ from distutils.extension import Extension
|
|||||||
from Cython.Build import cythonize
|
from Cython.Build import cythonize
|
||||||
|
|
||||||
extensions = Extension(
|
extensions = Extension(
|
||||||
name="tdm_ripper",
|
name="tdm_reaper",
|
||||||
sources=["pytdm_ripper.pyx"],
|
sources=["cython/tdm_reaper.pyx"],
|
||||||
# libraries=[""],
|
# libraries=[""],
|
||||||
library_dirs=["lib"],
|
library_dirs=["lib"],
|
||||||
include_dirs=["lib"],
|
include_dirs=["lib"],
|
||||||
language='c++',
|
language='c++',
|
||||||
extra_compile_args=['-std=c++11','-Wno-unused-variable'],
|
extra_compile_args=['-std=c++17','-Wno-unused-variable'],
|
||||||
extra_link_args=['-std=c++11'],
|
extra_link_args=['-std=c++17'],
|
||||||
)
|
)
|
||||||
|
|
||||||
setup(
|
setup(
|
||||||
name="tdm_ripper",
|
name="tdm_reaper",
|
||||||
ext_modules=cythonize(extensions)
|
ext_modules=cythonize(extensions)
|
||||||
)
|
)
|
||||||
|
29
cython/tdm_reaper.pxd
Normal file
29
cython/tdm_reaper.pxd
Normal 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 "../lib/tdm_reaper.hpp":
|
||||||
|
cdef cppclass raw_eater:
|
||||||
|
# constructor(s)
|
||||||
|
raw_eater() 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)
|
46
cython/tdm_reaper.pyx
Normal file
46
cython/tdm_reaper.pyx
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
|
||||||
|
from tdm_reaper cimport tdmreaper
|
||||||
|
import numpy as np
|
||||||
|
import re
|
||||||
|
import os
|
||||||
|
|
||||||
|
cdef class tdmripper:
|
||||||
|
|
||||||
|
# C++ instance of class => stack allocated (requires nullary constructor!)
|
||||||
|
cdef tdm_reaper tdminst
|
||||||
|
|
||||||
|
# constructor
|
||||||
|
def __cinit__(self):
|
||||||
|
self.tdminst = tdm_reaper()
|
||||||
|
|
||||||
|
# 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)
|
Loading…
x
Reference in New Issue
Block a user