[Python-modules-commits] [python-feather-format] 02/04: Import python-feather-format_0.1.1.orig.tar.gz
ChangZhuo Chen
czchen at moszumanska.debian.org
Tue Apr 5 06:23:21 UTC 2016
This is an automated email from the git hooks/post-receive script.
czchen pushed a commit to tag debian/0.1.1-1
in repository python-feather-format.
commit fc565f435b03af10c04dee6eaf1865a509fdbc90
Author: ChangZhuo Chen (陳昌倬) <czchen at debian.org>
Date: Tue Apr 5 14:13:00 2016 +0800
Import python-feather-format_0.1.1.orig.tar.gz
---
PKG-INFO | 30 ++++-
README.md | 28 +++++
feather/api.py | 4 +-
feather/ext.cpp | 209 +++++++++++++++----------------
feather/ext.pyx | 1 -
feather/interop.h | 8 +-
feather/tests/test_reader.py | 4 +
feather/version.py | 2 +-
feather_format.egg-info/PKG-INFO | 30 ++++-
feather_format.egg-info/SOURCES.txt | 11 +-
setup.py | 2 +-
src/feather/CMakeLists.txt | 8 +-
src/feather/buffer.h | 13 +-
src/feather/io.cc | 13 +-
src/feather/metadata.cc | 4 +-
src/feather/metadata.h | 7 +-
src/feather/mman.h | 201 +++++++++++++++++++++++++++++
src/feather/reader.cc | 13 +-
src/feather/reader.h | 14 +--
src/feather/status.h | 11 --
src/feather/{ => tests}/io-test.cc | 22 +++-
src/feather/{ => tests}/metadata-test.cc | 0
src/feather/{ => tests}/test-common.h | 0
src/feather/{ => tests}/test_main.cc | 0
src/feather/{ => tests}/writer-test.cc | 2 +-
25 files changed, 474 insertions(+), 163 deletions(-)
diff --git a/PKG-INFO b/PKG-INFO
index 0882418..2c5d6f3 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: feather-format
-Version: 0.1.0
+Version: 0.1.1
Summary: Python interface to the Apache Arrow-based Feather File Format
Home-page: http://github.com/wesm/feather
Author: Wes McKinney
@@ -16,6 +16,34 @@ Description: ## Python interface to the Apache Arrow-based Feather File Format
to include libfeather (the C++ core library) to be built statically as part of
the Python extension build, but this may change in the future.
+ ### Static builds for easier packaging
+
+ At the moment, the libfeather sources are being built and linked with the
+ Cython extension, rather than building the `libfeather` shared library and
+ linking to that.
+
+ While we continue to do this, building from source requires you to symlink (or
+ copy) the C++ sources. See:
+
+ ```shell
+ # Symlink the C++ library for the static build
+ ln -s ../cpp/src src
+ python setup.py build
+
+ # To install it locally
+ python setup.py install
+
+ # Source distribution
+ python setup.py sdist
+ ```
+
+ To change this and instead link to an installed `libfeather.so`, look in
+ `setup.py` and make the following change:
+
+ ```python
+ FEATHER_STATIC_BUILD = False
+ ```
+
## Limitations
Some features of pandas are not supported in Feather:
diff --git a/README.md b/README.md
index 748c548..dd9a748 100644
--- a/README.md
+++ b/README.md
@@ -8,6 +8,34 @@ Building Feather requires a C++11 compiler. We've simplified the PyPI packaging
to include libfeather (the C++ core library) to be built statically as part of
the Python extension build, but this may change in the future.
+### Static builds for easier packaging
+
+At the moment, the libfeather sources are being built and linked with the
+Cython extension, rather than building the `libfeather` shared library and
+linking to that.
+
+While we continue to do this, building from source requires you to symlink (or
+copy) the C++ sources. See:
+
+```shell
+# Symlink the C++ library for the static build
+ln -s ../cpp/src src
+python setup.py build
+
+# To install it locally
+python setup.py install
+
+# Source distribution
+python setup.py sdist
+```
+
+To change this and instead link to an installed `libfeather.so`, look in
+`setup.py` and make the following change:
+
+```python
+FEATHER_STATIC_BUILD = False
+```
+
## Limitations
Some features of pandas are not supported in Feather:
diff --git a/feather/api.py b/feather/api.py
index aae595e..95ea54e 100644
--- a/feather/api.py
+++ b/feather/api.py
@@ -13,8 +13,10 @@
# limitations under the License.
import six
-
+from distutils.version import LooseVersion
import pandas as pd
+if LooseVersion(pd.__version__) < '0.17.0':
+ raise ImportError("feather requires pandas >= 0.17.0")
import feather.ext as ext
diff --git a/feather/ext.cpp b/feather/ext.cpp
index 15b12fb..58e70a5 100644
--- a/feather/ext.cpp
+++ b/feather/ext.cpp
@@ -18,10 +18,7 @@
"/home/wesm/anaconda3/envs/py27/lib/python2.7/site-packages/numpy/core/include",
"/home/wesm/code/feather/python/src"
],
- "language": "c++",
- "libraries": [
- "feather"
- ]
+ "language": "c++"
}
}
END: Cython Metadata */
@@ -3226,8 +3223,8 @@ static PyObject *__pyx_pf_7feather_3ext_13FeatherReader_2read_array(struct __pyx
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("read_array", 0);
- /* "feather/ext.pyx":175
- * CategoryColumn* cat
+ /* "feather/ext.pyx":174
+ * Column* cp
*
* if i < 0 or i >= self.num_columns: # <<<<<<<<<<<<<<
* raise IndexError(i)
@@ -3239,42 +3236,42 @@ static PyObject *__pyx_pf_7feather_3ext_13FeatherReader_2read_array(struct __pyx
__pyx_t_1 = __pyx_t_2;
goto __pyx_L4_bool_binop_done;
}
- __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_i); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_i); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 174; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_num_columns); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_num_columns); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 174; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
- __pyx_t_5 = PyObject_RichCompare(__pyx_t_3, __pyx_t_4, Py_GE); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = PyObject_RichCompare(__pyx_t_3, __pyx_t_4, Py_GE); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 174; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 174; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_1 = __pyx_t_2;
__pyx_L4_bool_binop_done:;
if (__pyx_t_1) {
- /* "feather/ext.pyx":176
+ /* "feather/ext.pyx":175
*
* if i < 0 or i >= self.num_columns:
* raise IndexError(i) # <<<<<<<<<<<<<<
*
* check_status(self.reader.get().GetColumn(i, &col))
*/
- __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_i); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_i); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
- __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
__Pyx_GIVEREF(__pyx_t_5);
PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5);
__pyx_t_5 = 0;
- __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_IndexError, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_IndexError, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_Raise(__pyx_t_5, 0, 0, 0);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
- {__pyx_filename = __pyx_f[0]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ {__pyx_filename = __pyx_f[0]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- /* "feather/ext.pyx":175
- * CategoryColumn* cat
+ /* "feather/ext.pyx":174
+ * Column* cp
*
* if i < 0 or i >= self.num_columns: # <<<<<<<<<<<<<<
* raise IndexError(i)
@@ -3282,18 +3279,18 @@ static PyObject *__pyx_pf_7feather_3ext_13FeatherReader_2read_array(struct __pyx
*/
}
- /* "feather/ext.pyx":178
+ /* "feather/ext.pyx":177
* raise IndexError(i)
*
* check_status(self.reader.get().GetColumn(i, &col)) # <<<<<<<<<<<<<<
*
* cp = col.get()
*/
- __pyx_t_5 = __pyx_f_7feather_3ext_check_status(__pyx_v_self->reader.get()->GetColumn(__pyx_v_i, (&__pyx_v_col))); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 178; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __pyx_f_7feather_3ext_check_status(__pyx_v_self->reader.get()->GetColumn(__pyx_v_i, (&__pyx_v_col))); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 177; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
- /* "feather/ext.pyx":180
+ /* "feather/ext.pyx":179
* check_status(self.reader.get().GetColumn(i, &col))
*
* cp = col.get() # <<<<<<<<<<<<<<
@@ -3302,7 +3299,7 @@ static PyObject *__pyx_pf_7feather_3ext_13FeatherReader_2read_array(struct __pyx
*/
__pyx_v_cp = __pyx_v_col.get();
- /* "feather/ext.pyx":182
+ /* "feather/ext.pyx":181
* cp = col.get()
*
* if cp.type() == ColumnType_PRIMITIVE: # <<<<<<<<<<<<<<
@@ -3312,19 +3309,19 @@ static PyObject *__pyx_pf_7feather_3ext_13FeatherReader_2read_array(struct __pyx
__pyx_t_1 = ((__pyx_v_cp->type() == feather::ColumnType::PRIMITIVE) != 0);
if (__pyx_t_1) {
- /* "feather/ext.pyx":183
+ /* "feather/ext.pyx":182
*
* if cp.type() == ColumnType_PRIMITIVE:
* values = primitive_to_pandas(cp.values()) # <<<<<<<<<<<<<<
* elif cp.type() == ColumnType_CATEGORY:
* values = category_to_pandas(cp)
*/
- __pyx_t_5 = feather::py::primitive_to_pandas(__pyx_v_cp->values()); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 183; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = feather::py::primitive_to_pandas(__pyx_v_cp->values()); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 182; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
__pyx_v_values = __pyx_t_5;
__pyx_t_5 = 0;
- /* "feather/ext.pyx":182
+ /* "feather/ext.pyx":181
* cp = col.get()
*
* if cp.type() == ColumnType_PRIMITIVE: # <<<<<<<<<<<<<<
@@ -3334,7 +3331,7 @@ static PyObject *__pyx_pf_7feather_3ext_13FeatherReader_2read_array(struct __pyx
goto __pyx_L6;
}
- /* "feather/ext.pyx":184
+ /* "feather/ext.pyx":183
* if cp.type() == ColumnType_PRIMITIVE:
* values = primitive_to_pandas(cp.values())
* elif cp.type() == ColumnType_CATEGORY: # <<<<<<<<<<<<<<
@@ -3344,19 +3341,19 @@ static PyObject *__pyx_pf_7feather_3ext_13FeatherReader_2read_array(struct __pyx
__pyx_t_1 = ((__pyx_v_cp->type() == feather::ColumnType::CATEGORY) != 0);
if (__pyx_t_1) {
- /* "feather/ext.pyx":185
+ /* "feather/ext.pyx":184
* values = primitive_to_pandas(cp.values())
* elif cp.type() == ColumnType_CATEGORY:
* values = category_to_pandas(cp) # <<<<<<<<<<<<<<
* elif cp.type() == ColumnType_TIMESTAMP:
* values = timestamp_to_pandas(cp)
*/
- __pyx_t_5 = __pyx_f_7feather_3ext_category_to_pandas(__pyx_v_cp); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __pyx_f_7feather_3ext_category_to_pandas(__pyx_v_cp); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
__pyx_v_values = __pyx_t_5;
__pyx_t_5 = 0;
- /* "feather/ext.pyx":184
+ /* "feather/ext.pyx":183
* if cp.type() == ColumnType_PRIMITIVE:
* values = primitive_to_pandas(cp.values())
* elif cp.type() == ColumnType_CATEGORY: # <<<<<<<<<<<<<<
@@ -3366,7 +3363,7 @@ static PyObject *__pyx_pf_7feather_3ext_13FeatherReader_2read_array(struct __pyx
goto __pyx_L6;
}
- /* "feather/ext.pyx":186
+ /* "feather/ext.pyx":185
* elif cp.type() == ColumnType_CATEGORY:
* values = category_to_pandas(cp)
* elif cp.type() == ColumnType_TIMESTAMP: # <<<<<<<<<<<<<<
@@ -3376,19 +3373,19 @@ static PyObject *__pyx_pf_7feather_3ext_13FeatherReader_2read_array(struct __pyx
__pyx_t_1 = ((__pyx_v_cp->type() == feather::ColumnType::TIMESTAMP) != 0);
if (__pyx_t_1) {
- /* "feather/ext.pyx":187
+ /* "feather/ext.pyx":186
* values = category_to_pandas(cp)
* elif cp.type() == ColumnType_TIMESTAMP:
* values = timestamp_to_pandas(cp) # <<<<<<<<<<<<<<
* else:
* raise NotImplementedError(cp.type())
*/
- __pyx_t_5 = __pyx_f_7feather_3ext_timestamp_to_pandas(__pyx_v_cp); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 187; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __pyx_f_7feather_3ext_timestamp_to_pandas(__pyx_v_cp); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 186; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
__pyx_v_values = __pyx_t_5;
__pyx_t_5 = 0;
- /* "feather/ext.pyx":186
+ /* "feather/ext.pyx":185
* elif cp.type() == ColumnType_CATEGORY:
* values = category_to_pandas(cp)
* elif cp.type() == ColumnType_TIMESTAMP: # <<<<<<<<<<<<<<
@@ -3398,7 +3395,7 @@ static PyObject *__pyx_pf_7feather_3ext_13FeatherReader_2read_array(struct __pyx
goto __pyx_L6;
}
- /* "feather/ext.pyx":189
+ /* "feather/ext.pyx":188
* values = timestamp_to_pandas(cp)
* else:
* raise NotImplementedError(cp.type()) # <<<<<<<<<<<<<<
@@ -3406,23 +3403,23 @@ static PyObject *__pyx_pf_7feather_3ext_13FeatherReader_2read_array(struct __pyx
* return frombytes(cp.name()), values
*/
/*else*/ {
- __pyx_t_5 = __Pyx_PyInt_From_enum____feather_3a__3a_ColumnType_3a__3a_type(__pyx_v_cp->type()); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 189; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_PyInt_From_enum____feather_3a__3a_ColumnType_3a__3a_type(__pyx_v_cp->type()); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 188; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
- __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 189; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 188; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
__Pyx_GIVEREF(__pyx_t_5);
PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5);
__pyx_t_5 = 0;
- __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_NotImplementedError, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 189; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_NotImplementedError, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 188; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_Raise(__pyx_t_5, 0, 0, 0);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
- {__pyx_filename = __pyx_f[0]; __pyx_lineno = 189; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ {__pyx_filename = __pyx_f[0]; __pyx_lineno = 188; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
__pyx_L6:;
- /* "feather/ext.pyx":191
+ /* "feather/ext.pyx":190
* raise NotImplementedError(cp.type())
*
* return frombytes(cp.name()), values # <<<<<<<<<<<<<<
@@ -3430,9 +3427,9 @@ static PyObject *__pyx_pf_7feather_3ext_13FeatherReader_2read_array(struct __pyx
*
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_frombytes); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 191; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_frombytes); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
- __pyx_t_3 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_cp->name()); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 191; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_cp->name()); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_6 = NULL;
if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) {
@@ -3445,22 +3442,22 @@ static PyObject *__pyx_pf_7feather_3ext_13FeatherReader_2read_array(struct __pyx
}
}
if (!__pyx_t_6) {
- __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 191; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_GOTREF(__pyx_t_5);
} else {
- __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 191; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
__Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6); __pyx_t_6 = NULL;
__Pyx_GIVEREF(__pyx_t_3);
PyTuple_SET_ITEM(__pyx_t_7, 0+1, __pyx_t_3);
__pyx_t_3 = 0;
- __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 191; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 191; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
__Pyx_GIVEREF(__pyx_t_5);
PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5);
@@ -3496,7 +3493,7 @@ static PyObject *__pyx_pf_7feather_3ext_13FeatherReader_2read_array(struct __pyx
return __pyx_r;
}
-/* "feather/ext.pyx":194
+/* "feather/ext.pyx":193
*
*
* cdef category_to_pandas(Column* col): # <<<<<<<<<<<<<<
@@ -3519,7 +3516,7 @@ static PyObject *__pyx_f_7feather_3ext_category_to_pandas(feather::Column *__pyx
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("category_to_pandas", 0);
- /* "feather/ext.pyx":195
+ /* "feather/ext.pyx":194
*
* cdef category_to_pandas(Column* col):
* cdef CategoryColumn* cat = <CategoryColumn*>(col) # <<<<<<<<<<<<<<
@@ -3528,31 +3525,31 @@ static PyObject *__pyx_f_7feather_3ext_category_to_pandas(feather::Column *__pyx
*/
__pyx_v_cat = ((feather::CategoryColumn *)__pyx_v_col);
- /* "feather/ext.pyx":197
+ /* "feather/ext.pyx":196
* cdef CategoryColumn* cat = <CategoryColumn*>(col)
*
* values = primitive_to_pandas(cat.values()) # <<<<<<<<<<<<<<
* levels = primitive_to_pandas(cat.levels())
*
*/
- __pyx_t_1 = feather::py::primitive_to_pandas(__pyx_v_cat->values()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = feather::py::primitive_to_pandas(__pyx_v_cat->values()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 196; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_values = __pyx_t_1;
__pyx_t_1 = 0;
- /* "feather/ext.pyx":198
+ /* "feather/ext.pyx":197
*
* values = primitive_to_pandas(cat.values())
* levels = primitive_to_pandas(cat.levels()) # <<<<<<<<<<<<<<
*
* return pd.Categorical(values, categories=levels,
*/
- __pyx_t_1 = feather::py::primitive_to_pandas(__pyx_v_cat->levels()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 198; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = feather::py::primitive_to_pandas(__pyx_v_cat->levels()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_levels = __pyx_t_1;
__pyx_t_1 = 0;
- /* "feather/ext.pyx":200
+ /* "feather/ext.pyx":199
* levels = primitive_to_pandas(cat.levels())
*
* return pd.Categorical(values, categories=levels, # <<<<<<<<<<<<<<
@@ -3560,37 +3557,37 @@ static PyObject *__pyx_f_7feather_3ext_category_to_pandas(feather::Column *__pyx
*
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_pd); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_pd); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 199; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_Categorical); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_Categorical); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 199; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 199; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__Pyx_INCREF(__pyx_v_values);
__Pyx_GIVEREF(__pyx_v_values);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_values);
- __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 199; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
- if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_categories, __pyx_v_levels) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_categories, __pyx_v_levels) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 199; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- /* "feather/ext.pyx":201
+ /* "feather/ext.pyx":200
*
* return pd.Categorical(values, categories=levels,
* fastpath=True) # <<<<<<<<<<<<<<
*
* cdef timestamp_to_pandas(Column* col):
*/
- if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_fastpath, Py_True) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_fastpath, Py_True) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 199; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- /* "feather/ext.pyx":200
+ /* "feather/ext.pyx":199
* levels = primitive_to_pandas(cat.levels())
*
* return pd.Categorical(values, categories=levels, # <<<<<<<<<<<<<<
* fastpath=True)
*
*/
- __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 199; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
@@ -3599,7 +3596,7 @@ static PyObject *__pyx_f_7feather_3ext_category_to_pandas(feather::Column *__pyx
__pyx_t_4 = 0;
goto __pyx_L0;
- /* "feather/ext.pyx":194
+ /* "feather/ext.pyx":193
*
*
* cdef category_to_pandas(Column* col): # <<<<<<<<<<<<<<
@@ -3623,7 +3620,7 @@ static PyObject *__pyx_f_7feather_3ext_category_to_pandas(feather::Column *__pyx
return __pyx_r;
}
-/* "feather/ext.pyx":203
+/* "feather/ext.pyx":202
* fastpath=True)
*
* cdef timestamp_to_pandas(Column* col): # <<<<<<<<<<<<<<
@@ -3649,7 +3646,7 @@ static PyObject *__pyx_f_7feather_3ext_timestamp_to_pandas(feather::Column *__py
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("timestamp_to_pandas", 0);
- /* "feather/ext.pyx":204
+ /* "feather/ext.pyx":203
*
* cdef timestamp_to_pandas(Column* col):
* cdef TimestampColumn* cat = <TimestampColumn*>(col) # <<<<<<<<<<<<<<
@@ -3658,28 +3655,28 @@ static PyObject *__pyx_f_7feather_3ext_timestamp_to_pandas(feather::Column *__py
*/
__pyx_v_cat = ((feather::TimestampColumn *)__pyx_v_col);
- /* "feather/ext.pyx":206
+ /* "feather/ext.pyx":205
* cdef TimestampColumn* cat = <TimestampColumn*>(col)
*
* values = primitive_to_pandas(cat.values()) # <<<<<<<<<<<<<<
*
* tz = frombytes(cat.timezone())
*/
- __pyx_t_1 = feather::py::primitive_to_pandas(__pyx_v_cat->values()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 206; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = feather::py::primitive_to_pandas(__pyx_v_cat->values()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 205; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_values = __pyx_t_1;
__pyx_t_1 = 0;
- /* "feather/ext.pyx":208
+ /* "feather/ext.pyx":207
* values = primitive_to_pandas(cat.values())
*
* tz = frombytes(cat.timezone()) # <<<<<<<<<<<<<<
* if tz:
* values = (pd.DatetimeIndex(values).tz_localize('utc')
*/
- __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_frombytes); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 208; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_frombytes); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 207; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_3 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_cat->timezone()); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 208; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_cat->timezone()); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 207; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_4 = NULL;
if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_2))) {
@@ -3692,17 +3689,17 @@ static PyObject *__pyx_f_7feather_3ext_timestamp_to_pandas(feather::Column *__py
}
}
if (!__pyx_t_4) {
- __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 208; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 207; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_GOTREF(__pyx_t_1);
} else {
- __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 208; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 207; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
__Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4); __pyx_t_4 = NULL;
__Pyx_GIVEREF(__pyx_t_3);
PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_t_3);
__pyx_t_3 = 0;
- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 208; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 207; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
}
@@ -3710,26 +3707,26 @@ static PyObject *__pyx_f_7feather_3ext_timestamp_to_pandas(feather::Column *__py
__pyx_v_tz = __pyx_t_1;
__pyx_t_1 = 0;
- /* "feather/ext.pyx":209
+ /* "feather/ext.pyx":208
*
* tz = frombytes(cat.timezone())
* if tz: # <<<<<<<<<<<<<<
* values = (pd.DatetimeIndex(values).tz_localize('utc')
* .tz_convert(tz))
*/
- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_tz); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_tz); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 208; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
if (__pyx_t_6) {
- /* "feather/ext.pyx":210
+ /* "feather/ext.pyx":209
* tz = frombytes(cat.timezone())
* if tz:
* values = (pd.DatetimeIndex(values).tz_localize('utc') # <<<<<<<<<<<<<<
* .tz_convert(tz))
* result = pd.Series(values)
*/
- __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_pd); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_pd); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_DatetimeIndex); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_DatetimeIndex); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_5 = NULL;
@@ -3743,35 +3740,35 @@ static PyObject *__pyx_f_7feather_3ext_timestamp_to_pandas(feather::Column *__py
}
}
if (!__pyx_t_5) {
- __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_values); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_values); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
} else {
- __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
__Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5); __pyx_t_5 = NULL;
__Pyx_INCREF(__pyx_v_values);
__Pyx_GIVEREF(__pyx_v_values);
PyTuple_SET_ITEM(__pyx_t_4, 0+1, __pyx_v_values);
- __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_tz_localize); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_tz_localize); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- /* "feather/ext.pyx":211
+ /* "feather/ext.pyx":210
* if tz:
* values = (pd.DatetimeIndex(values).tz_localize('utc')
* .tz_convert(tz)) # <<<<<<<<<<<<<<
* result = pd.Series(values)
* else:
*/
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_tz_convert); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_tz_convert); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = NULL;
@@ -3785,16 +3782,16 @@ static PyObject *__pyx_f_7feather_3ext_timestamp_to_pandas(feather::Column *__py
}
}
if (!__pyx_t_2) {
- __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_tz); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_tz); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
} else {
- __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
__Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __pyx_t_2 = NULL;
__Pyx_INCREF(__pyx_v_tz);
__Pyx_GIVEREF(__pyx_v_tz);
PyTuple_SET_ITEM(__pyx_t_4, 0+1, __pyx_v_tz);
- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
}
@@ -3802,16 +3799,16 @@ static PyObject *__pyx_f_7feather_3ext_timestamp_to_pandas(feather::Column *__py
__Pyx_DECREF_SET(__pyx_v_values, __pyx_t_1);
__pyx_t_1 = 0;
- /* "feather/ext.pyx":212
+ /* "feather/ext.pyx":211
* values = (pd.DatetimeIndex(values).tz_localize('utc')
* .tz_convert(tz))
* result = pd.Series(values) # <<<<<<<<<<<<<<
* else:
* result = pd.Series(values, dtype='M8[ns]')
*/
- __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_pd); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 212; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_pd); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_Series); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 212; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_Series); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = NULL;
@@ -3825,16 +3822,16 @@ static PyObject *__pyx_f_7feather_3ext_timestamp_to_pandas(feather::Column *__py
}
}
if (!__pyx_t_3) {
- __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_values); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 212; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_values); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
} else {
- __pyx_t_2 = PyTuple_New(1+1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 212; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyTuple_New(1+1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3); __pyx_t_3 = NULL;
__Pyx_INCREF(__pyx_v_values);
__Pyx_GIVEREF(__pyx_v_values);
PyTuple_SET_ITEM(__pyx_t_2, 0+1, __pyx_v_values);
- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 212; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
}
@@ -3842,7 +3839,7 @@ static PyObject *__pyx_f_7feather_3ext_timestamp_to_pandas(feather::Column *__py
__pyx_v_result = __pyx_t_1;
__pyx_t_1 = 0;
- /* "feather/ext.pyx":209
+ /* "feather/ext.pyx":208
*
* tz = frombytes(cat.timezone())
* if tz: # <<<<<<<<<<<<<<
@@ -3852,7 +3849,7 @@ static PyObject *__pyx_f_7feather_3ext_timestamp_to_pandas(feather::Column *__py
goto __pyx_L3;
}
- /* "feather/ext.pyx":214
+ /* "feather/ext.pyx":213
* result = pd.Series(values)
* else:
* result = pd.Series(values, dtype='M8[ns]') # <<<<<<<<<<<<<<
@@ -3860,20 +3857,20 @@ static PyObject *__pyx_f_7feather_3ext_timestamp_to_pandas(feather::Column *__py
* return result
*/
/*else*/ {
- __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_pd); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_pd); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_Series); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_Series); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__Pyx_INCREF(__pyx_v_values);
__Pyx_GIVEREF(__pyx_v_values);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_values);
- __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
- if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_kp_s_M8_ns) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_kp_s_M8_ns) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
@@ -3883,7 +3880,7 @@ static PyObject *__pyx_f_7feather_3ext_timestamp_to_pandas(feather::Column *__py
}
__pyx_L3:;
- /* "feather/ext.pyx":216
+ /* "feather/ext.pyx":215
* result = pd.Series(values, dtype='M8[ns]')
*
* return result # <<<<<<<<<<<<<<
@@ -3893,7 +3890,7 @@ static PyObject *__pyx_f_7feather_3ext_timestamp_to_pandas(feather::Column *__py
__pyx_r = __pyx_v_result;
goto __pyx_L0;
- /* "feather/ext.pyx":203
+ /* "feather/ext.pyx":202
* fastpath=True)
*
* cdef timestamp_to_pandas(Column* col): # <<<<<<<<<<<<<<
@@ -6654,8 +6651,8 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = {
static int __Pyx_InitCachedBuiltins(void) {
__pyx_builtin_Exception = __Pyx_GetBuiltinName(__pyx_n_s_Exception); if (!__pyx_builtin_Exception) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_builtin_IndexError = __Pyx_GetBuiltinName(__pyx_n_s_IndexError); if (!__pyx_builtin_IndexError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_builtin_NotImplementedError = __Pyx_GetBuiltinName(__pyx_n_s_NotImplementedError); if (!__pyx_builtin_NotImplementedError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 189; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_builtin_IndexError = __Pyx_GetBuiltinName(__pyx_n_s_IndexError); if (!__pyx_builtin_IndexError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_builtin_NotImplementedError = __Pyx_GetBuiltinName(__pyx_n_s_NotImplementedError); if (!__pyx_builtin_NotImplementedError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 188; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 231; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_builtin_RuntimeError = __Pyx_GetBuiltinName(__pyx_n_s_RuntimeError); if (!__pyx_builtin_RuntimeError) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 799; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
return 0;
@@ -6689,14 +6686,14 @@ static int __Pyx_InitCachedConstants(void) {
__Pyx_GOTREF(__pyx_tuple__2);
__Pyx_GIVEREF(__pyx_tuple__2);
- /* "feather/ext.pyx":210
+ /* "feather/ext.pyx":209
* tz = frombytes(cat.timezone())
* if tz:
* values = (pd.DatetimeIndex(values).tz_localize('utc') # <<<<<<<<<<<<<<
* .tz_convert(tz))
* result = pd.Series(values)
*/
- __pyx_tuple__4 = PyTuple_Pack(1, __pyx_n_s_utc); if (unlikely(!__pyx_tuple__4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_tuple__4 = PyTuple_Pack(1, __pyx_n_s_utc); if (unlikely(!__pyx_tuple__4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_tuple__4);
__Pyx_GIVEREF(__pyx_tuple__4);
diff --git a/feather/ext.pyx b/feather/ext.pyx
index 5d211db..d7952ff 100644
--- a/feather/ext.pyx
+++ b/feather/ext.pyx
@@ -170,7 +170,6 @@ cdef class FeatherReader:
cdef:
shared_ptr[Column] col
Column* cp
- CategoryColumn* cat
if i < 0 or i >= self.num_columns:
raise IndexError(i)
diff --git a/feather/interop.h b/feather/interop.h
index cb5b64c..74f0ab2 100644
--- a/feather/interop.h
+++ b/feather/interop.h
@@ -527,7 +527,7 @@ class FeatherDeserializer {
ConvertValues() {
typedef typename feather_traits<T2>::T T;
- npy_intp dims[1] = {arr_->length};
+ npy_intp dims[1] = {static_cast<npy_intp>(arr_->length)};
out_ = PyArray_SimpleNew(1, dims, feather_traits<T2>::npy_type);
if (out_ == NULL) {
@@ -553,7 +553,7 @@ class FeatherDeserializer {
ConvertValues() {
typedef typename feather_traits<T2>::T T;
- npy_intp dims[1] = {arr_->length};
+ npy_intp dims[1] = {static_cast<npy_intp>(arr_->length)};
if (arr_->null_count > 0) {
out_ = PyArray_SimpleNew(1, dims, NPY_FLOAT64);
if (out_ == NULL) return;
@@ -575,7 +575,7 @@ class FeatherDeserializer {
template <int T2>
inline typename std::enable_if<feather_traits<T2>::is_boolean, void>::type
ConvertValues() {
- npy_intp dims[1] = {arr_->length};
+ npy_intp dims[1] = {static_cast<npy_intp>(arr_->length)};
if (arr_->null_count > 0) {
out_ = PyArray_SimpleNew(1, dims, NPY_OBJECT);
if (out_ == NULL) return;
@@ -609,7 +609,7 @@ class FeatherDeserializer {
template <int T2>
inline typename std::enable_if<T2 == PrimitiveType::UTF8, void>::type
ConvertValues() {
- npy_intp dims[1] = {arr_->length};
+ npy_intp dims[1] = {static_cast<npy_intp>(arr_->length)};
out_ = PyArray_SimpleNew(1, dims, NPY_OBJECT);
if (out_ == NULL) return;
PyObject** out_values = reinterpret_cast<PyObject**>(PyArray_DATA(out_));
diff --git a/feather/tests/test_reader.py b/feather/tests/test_reader.py
index 0d0eb11..7ec585d 100644
--- a/feather/tests/test_reader.py
+++ b/feather/tests/test_reader.py
@@ -204,6 +204,10 @@ class TestFeatherReader(unittest.TestCase):
expected = pd.DataFrame({'strings': values * repeats})
self._check_pandas_roundtrip(df, expected)
+ def test_empty_strings(self):
+ df = pd.DataFrame({'strings': [''] * 10})
+ self._check_pandas_roundtrip(df)
+
def test_nan_as_null(self):
# Create a nan that is not numpy.nan
values = np.array(['foo', np.nan, np.nan * 2, 'bar'] * 10)
diff --git a/feather/version.py b/feather/version.py
index 65c2a72..5e2655d 100644
--- a/feather/version.py
+++ b/feather/version.py
@@ -1,4 +1,4 @@
# THIS FILE IS GENERATED FROM SETUP.PY
-version = '0.1.0'
+version = '0.1.1'
isrelease = 'True'
\ No newline at end of file
diff --git a/feather_format.egg-info/PKG-INFO b/feather_format.egg-info/PKG-INFO
index 0882418..2c5d6f3 100644
--- a/feather_format.egg-info/PKG-INFO
+++ b/feather_format.egg-info/PKG-INFO
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: feather-format
-Version: 0.1.0
+Version: 0.1.1
Summary: Python interface to the Apache Arrow-based Feather File Format
Home-page: http://github.com/wesm/feather
Author: Wes McKinney
@@ -16,6 +16,34 @@ Description: ## Python interface to the Apache Arrow-based Feather File Format
to include libfeather (the C++ core library) to be built statically as part of
the Python extension build, but this may change in the future.
+ ### Static builds for easier packaging
+
+ At the moment, the libfeather sources are being built and linked with the
+ Cython extension, rather than building the `libfeather` shared library and
+ linking to that.
+
+ While we continue to do this, building from source requires you to symlink (or
+ copy) the C++ sources. See:
+
+ ```shell
+ # Symlink the C++ library for the static build
+ ln -s ../cpp/src src
+ python setup.py build
+
+ # To install it locally
+ python setup.py install
+
+ # Source distribution
+ python setup.py sdist
+ ```
+
+ To change this and instead link to an installed `libfeather.so`, look in
+ `setup.py` and make the following change:
+
+ ```python
+ FEATHER_STATIC_BUILD = False
+ ```
+
## Limitations
Some features of pandas are not supported in Feather:
diff --git a/feather_format.egg-info/SOURCES.txt b/feather_format.egg-info/SOURCES.txt
index 293392d..249f79e 100644
--- a/feather_format.egg-info/SOURCES.txt
+++ b/feather_format.egg-info/SOURCES.txt
@@ -22,23 +22,24 @@ src/feather/api.h
src/feather/buffer.cc
src/feather/buffer.h
src/feather/common.h
-src/feather/io-test.cc
src/feather/io.cc
src/feather/io.h
-src/feather/metadata-test.cc
src/feather/metadata.cc
src/feather/metadata.fbs
src/feather/metadata.h
src/feather/metadata_generated.h
+src/feather/mman.h
src/feather/reader.cc
src/feather/reader.h
src/feather/status.cc
src/feather/status.h
-src/feather/test-common.h
-src/feather/test_main.cc
src/feather/types.cc
src/feather/types.h
-src/feather/writer-test.cc
src/feather/writer.cc
src/feather/writer.h
+src/feather/tests/io-test.cc
+src/feather/tests/metadata-test.cc
+src/feather/tests/test-common.h
+src/feather/tests/test_main.cc
+src/feather/tests/writer-test.cc
src/flatbuffers/flatbuffers.h
\ No newline at end of file
diff --git a/setup.py b/setup.py
index 9a99ff9..099bf9b 100644
--- a/setup.py
+++ b/setup.py
@@ -34,7 +34,7 @@ if Cython.__version__ < '0.19.1':
MAJOR = 0
MINOR = 1
-MICRO = 0
+MICRO = 1
VERSION = '%d.%d.%d' % (MAJOR, MINOR, MICRO)
ISRELEASED = True
diff --git a/src/feather/CMakeLists.txt b/src/feather/CMakeLists.txt
index 457d306..42dc584 100644
--- a/src/feather/CMakeLists.txt
+++ b/src/feather/CMakeLists.txt
@@ -43,7 +43,7 @@ if(APPLE)
endif()
... 531 lines suppressed ...
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/python-modules/packages/python-feather-format.git
More information about the Python-modules-commits
mailing list