mirror of
https://github.com/tfussell/xlnt.git
synced 2024-03-22 13:11:17 +08:00
set up directory structure
This commit is contained in:
parent
d7b5374614
commit
333e8c702f
25
contrib/xlnt-arrow/xlnt-arrow.cpp
Normal file
25
contrib/xlnt-arrow/xlnt-arrow.cpp
Normal file
|
@ -0,0 +1,25 @@
|
|||
#include "xlnt-arrow.h"
|
||||
|
||||
void xlsx2arrow(std::istream &s, arrow::Table &table)
|
||||
{
|
||||
xlnt::streaming_workbook_reader reader;
|
||||
reader.open(s);
|
||||
|
||||
reader.begin_worksheet();
|
||||
int first_row = 0;
|
||||
while (reader.has_cell())
|
||||
{
|
||||
auto cell = reader.read_cell();
|
||||
|
||||
if (first_row < 1)
|
||||
{
|
||||
first_row = cell.row();
|
||||
}
|
||||
}
|
||||
reader.end_worksheet();
|
||||
}
|
||||
|
||||
void arrow2xlsx(const arrow::Table &table, std::istream &s)
|
||||
{
|
||||
|
||||
}
|
5
contrib/xlnt-arrow/xlnt-arrow.hpp
Normal file
5
contrib/xlnt-arrow/xlnt-arrow.hpp
Normal file
|
@ -0,0 +1,5 @@
|
|||
#include <iostream>
|
||||
#include <arrow.h>
|
||||
|
||||
void xlsx2arrow(std::istream &s, arrow::Table &table);
|
||||
void arrow2xlsx(const arrow::Table &table, std::istream &s);
|
5
contrib/xlntpyarrow/setup.py
Normal file
5
contrib/xlntpyarrow/setup.py
Normal file
|
@ -0,0 +1,5 @@
|
|||
from distutils.core import setup, Extension
|
||||
|
||||
setup(
|
||||
ext_modules=[Extension("xlntpyarrow", ["xlntpyarrow.cpp"])]
|
||||
)
|
93
contrib/xlntpyarrow/xlntpyarrow.cpp
Normal file
93
contrib/xlntpyarrow/xlntpyarrow.cpp
Normal file
|
@ -0,0 +1,93 @@
|
|||
#include <iostream>
|
||||
#include <Python.h>
|
||||
|
||||
class abc {
|
||||
public:
|
||||
static void def()
|
||||
{
|
||||
std::cout << "abc" << std::endl;
|
||||
}
|
||||
};
|
||||
|
||||
extern "C" {
|
||||
|
||||
/*
|
||||
* Implements an example function.
|
||||
*/
|
||||
PyDoc_STRVAR(xlntpyarrow_example_doc, "example(obj, number)\
|
||||
\
|
||||
Example function");
|
||||
|
||||
PyObject *xlntpyarrow_example(PyObject *self, PyObject *args, PyObject *kwargs) {
|
||||
/* Shared references that do not need Py_DECREF before returning. */
|
||||
PyObject *obj = NULL;
|
||||
int number = 0;
|
||||
|
||||
abc::def();
|
||||
|
||||
/* Parse positional and keyword arguments */
|
||||
static char* keywords[] = { "obj", "number", NULL };
|
||||
if (!PyArg_ParseTupleAndKeywords(args, kwargs, "Oi", keywords, &obj, &number)) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* Function implementation starts here */
|
||||
|
||||
if (number < 0) {
|
||||
PyErr_SetObject(PyExc_ValueError, obj);
|
||||
return NULL; /* return NULL indicates error */
|
||||
}
|
||||
|
||||
Py_RETURN_NONE;
|
||||
}
|
||||
|
||||
/*
|
||||
* List of functions to add to xlntpyarrow in exec_xlntpyarrow().
|
||||
*/
|
||||
static PyMethodDef xlntpyarrow_functions[] = {
|
||||
{ "example", (PyCFunction)xlntpyarrow_example, METH_VARARGS | METH_KEYWORDS, xlntpyarrow_example_doc },
|
||||
{ NULL, NULL, 0, NULL } /* marks end of array */
|
||||
};
|
||||
|
||||
/*
|
||||
* Initialize xlntpyarrow. May be called multiple times, so avoid
|
||||
* using static state.
|
||||
*/
|
||||
int exec_xlntpyarrow(PyObject *module) {
|
||||
PyModule_AddFunctions(module, xlntpyarrow_functions);
|
||||
|
||||
PyModule_AddStringConstant(module, "__author__", "Thomas");
|
||||
PyModule_AddStringConstant(module, "__version__", "1.0.0");
|
||||
PyModule_AddIntConstant(module, "year", 2017);
|
||||
|
||||
return 0; /* success */
|
||||
}
|
||||
|
||||
/*
|
||||
* Documentation for xlntpyarrow.
|
||||
*/
|
||||
PyDoc_STRVAR(xlntpyarrow_doc, "The xlntpyarrow module");
|
||||
|
||||
|
||||
static PyModuleDef_Slot xlntpyarrow_slots[] = {
|
||||
{ Py_mod_exec, exec_xlntpyarrow },
|
||||
{ 0, NULL }
|
||||
};
|
||||
|
||||
static PyModuleDef xlntpyarrow_def = {
|
||||
PyModuleDef_HEAD_INIT,
|
||||
"xlntpyarrow",
|
||||
xlntpyarrow_doc,
|
||||
0, /* m_size */
|
||||
NULL, /* m_methods */
|
||||
xlntpyarrow_slots,
|
||||
NULL, /* m_traverse */
|
||||
NULL, /* m_clear */
|
||||
NULL, /* m_free */
|
||||
};
|
||||
|
||||
PyMODINIT_FUNC PyInit_xlntpyarrow() {
|
||||
return PyModuleDef_Init(&xlntpyarrow_def);
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue
Block a user