brentp / fishers_exact_test

Fishers Exact Test for Python (Cython)
BSD 3-Clause "New" or "Revised" License
62 stars 21 forks source link

Fails to install on Python 3.10 #36

Closed MrTomRod closed 2 years ago

MrTomRod commented 2 years ago
$ pip install fisher
Collecting fisher
  Using cached fisher-0.1.9.tar.gz (145 kB)
  Preparing metadata (setup.py): started
  Preparing metadata (setup.py): finished with status 'done'
Building wheels for collected packages: fisher
  Building wheel for fisher (setup.py): started
  Building wheel for fisher (setup.py): finished with status 'error'
  ERROR: Command errored out with exit status 1:
   command: /venv/bin/python -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-oxhp9jm6/fisher_a55285e909b64f45b9765a29a397a526/setup.py'"'"'; __file__='"'"'/tmp/pip-install-oxhp9jm6/fisher_a55285e909b64f45b9765a29a397a526/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-hegaom_w
       cwd: /tmp/pip-install-oxhp9jm6/fisher_a55285e909b64f45b9765a29a397a526/
  Complete output (166 lines):
  /venv/lib/python3.10/site-packages/setuptools/dist.py:484: UserWarning: Normalizing 'v0.1.9' to '0.1.9'
    warnings.warn(tmpl.format(**locals()))
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build/lib.linux-x86_64-3.10
  creating build/lib.linux-x86_64-3.10/fisher
  copying fisher/tableprinter.py -> build/lib.linux-x86_64-3.10/fisher
  copying fisher/_version.py -> build/lib.linux-x86_64-3.10/fisher
  copying fisher/__init__.py -> build/lib.linux-x86_64-3.10/fisher
  UPDATING build/lib.linux-x86_64-3.10/fisher/_version.py
  set build/lib.linux-x86_64-3.10/fisher/_version.py to 'v0.1.9'
  running build_ext
  building 'fisher.cfisher' extension
  creating build/temp.linux-x86_64-3.10
  creating build/temp.linux-x86_64-3.10/src
  gcc -Wno-unused-result -Wsign-compare -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -fPIC -fwrapv -fPIC -I/venv/include -I/usr/include/python3.10 -I/venv/lib64/python3.10/site-packages/numpy/core/include -c src/cfisher.c -o build/temp.linux-x86_64-3.10/src/cfisher.o -O3
  In file included from /venv/lib64/python3.10/site-packages/numpy/core/include/numpy/ndarraytypes.h:1960,
                   from /venv/lib64/python3.10/site-packages/numpy/core/include/numpy/ndarrayobject.h:12,
                   from /venv/lib64/python3.10/site-packages/numpy/core/include/numpy/arrayobject.h:5,
                   from src/cfisher.c:598:
  /venv/lib64/python3.10/site-packages/numpy/core/include/numpy/npy_1_7_deprecated_api.h:17:2: warning: #warning "Using deprecated NumPy API, disable it with " "#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-Wcpp]
     17 | #warning "Using deprecated NumPy API, disable it with " \
        |  ^~~~~~~
  src/cfisher.c: In function ‘__pyx_tp_dealloc_array’:
  src/cfisher.c:19787:5: error: lvalue required as increment operand
  19787 |     ++Py_REFCNT(o);
        |     ^~
  src/cfisher.c:19789:5: error: lvalue required as decrement operand
  19789 |     --Py_REFCNT(o);
        |     ^~
  src/cfisher.c: In function ‘__pyx_tp_dealloc_memoryview’:
  src/cfisher.c:20082:5: error: lvalue required as increment operand
  20082 |     ++Py_REFCNT(o);
        |     ^~
  src/cfisher.c:20084:5: error: lvalue required as decrement operand
  20084 |     --Py_REFCNT(o);
        |     ^~
  src/cfisher.c: In function ‘__pyx_tp_dealloc__memoryviewslice’:
  src/cfisher.c:20324:5: error: lvalue required as increment operand
  20324 |     ++Py_REFCNT(o);
        |     ^~
  src/cfisher.c:20326:5: error: lvalue required as decrement operand
  20326 |     --Py_REFCNT(o);
        |     ^~
  src/cfisher.c: In function ‘__Pyx_ParseOptionalKeywords’:
  src/cfisher.c:21924:21: warning: ‘_PyUnicode_get_wstr_length’ is deprecated [-Wdeprecated-declarations]
  21924 |                     (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 :
        |                     ^
  In file included from /usr/include/python3.10/unicodeobject.h:1046,
                   from /usr/include/python3.10/Python.h:83,
                   from src/cfisher.c:4:
  /usr/include/python3.10/cpython/unicodeobject.h:446:26: note: declared here
    446 | static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) {
        |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~
  src/cfisher.c:21924:21: warning: ‘PyUnicode_AsUnicode’ is deprecated [-Wdeprecated-declarations]
  21924 |                     (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 :
        |                     ^
  In file included from /usr/include/python3.10/unicodeobject.h:1046,
                   from /usr/include/python3.10/Python.h:83,
                   from src/cfisher.c:4:
  /usr/include/python3.10/cpython/unicodeobject.h:580:45: note: declared here
    580 | Py_DEPRECATED(3.3) PyAPI_FUNC(Py_UNICODE *) PyUnicode_AsUnicode(
        |                                             ^~~~~~~~~~~~~~~~~~~
  src/cfisher.c:21924:21: warning: ‘_PyUnicode_get_wstr_length’ is deprecated [-Wdeprecated-declarations]
  21924 |                     (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 :
        |                     ^
  In file included from /usr/include/python3.10/unicodeobject.h:1046,
                   from /usr/include/python3.10/Python.h:83,
                   from src/cfisher.c:4:
  /usr/include/python3.10/cpython/unicodeobject.h:446:26: note: declared here
    446 | static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) {
        |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~
  src/cfisher.c:21924:21: warning: ‘_PyUnicode_get_wstr_length’ is deprecated [-Wdeprecated-declarations]
  21924 |                     (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 :
        |                     ^
  In file included from /usr/include/python3.10/unicodeobject.h:1046,
                   from /usr/include/python3.10/Python.h:83,
                   from src/cfisher.c:4:
  /usr/include/python3.10/cpython/unicodeobject.h:446:26: note: declared here
    446 | static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) {
        |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~
  src/cfisher.c:21924:21: warning: ‘PyUnicode_AsUnicode’ is deprecated [-Wdeprecated-declarations]
  21924 |                     (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 :
        |                     ^
  In file included from /usr/include/python3.10/unicodeobject.h:1046,
                   from /usr/include/python3.10/Python.h:83,
                   from src/cfisher.c:4:
  /usr/include/python3.10/cpython/unicodeobject.h:580:45: note: declared here
    580 | Py_DEPRECATED(3.3) PyAPI_FUNC(Py_UNICODE *) PyUnicode_AsUnicode(
        |                                             ^~~~~~~~~~~~~~~~~~~
  src/cfisher.c:21924:21: warning: ‘_PyUnicode_get_wstr_length’ is deprecated [-Wdeprecated-declarations]
  21924 |                     (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 :
        |                     ^
  In file included from /usr/include/python3.10/unicodeobject.h:1046,
                   from /usr/include/python3.10/Python.h:83,
                   from src/cfisher.c:4:
  /usr/include/python3.10/cpython/unicodeobject.h:446:26: note: declared here
    446 | static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) {
        |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~
  src/cfisher.c:21940:25: warning: ‘_PyUnicode_get_wstr_length’ is deprecated [-Wdeprecated-declarations]
  21940 |                         (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 :
        |                         ^
  In file included from /usr/include/python3.10/unicodeobject.h:1046,
                   from /usr/include/python3.10/Python.h:83,
                   from src/cfisher.c:4:
  /usr/include/python3.10/cpython/unicodeobject.h:446:26: note: declared here
    446 | static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) {
        |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~
  src/cfisher.c:21940:25: warning: ‘PyUnicode_AsUnicode’ is deprecated [-Wdeprecated-declarations]
  21940 |                         (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 :
        |                         ^
  In file included from /usr/include/python3.10/unicodeobject.h:1046,
                   from /usr/include/python3.10/Python.h:83,
                   from src/cfisher.c:4:
  /usr/include/python3.10/cpython/unicodeobject.h:580:45: note: declared here
    580 | Py_DEPRECATED(3.3) PyAPI_FUNC(Py_UNICODE *) PyUnicode_AsUnicode(
        |                                             ^~~~~~~~~~~~~~~~~~~
  src/cfisher.c:21940:25: warning: ‘_PyUnicode_get_wstr_length’ is deprecated [-Wdeprecated-declarations]
  21940 |                         (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 :
        |                         ^
  In file included from /usr/include/python3.10/unicodeobject.h:1046,
                   from /usr/include/python3.10/Python.h:83,
                   from src/cfisher.c:4:
  /usr/include/python3.10/cpython/unicodeobject.h:446:26: note: declared here
    446 | static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) {
        |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~
  src/cfisher.c:21940:25: warning: ‘_PyUnicode_get_wstr_length’ is deprecated [-Wdeprecated-declarations]
  21940 |                         (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 :
        |                         ^
  In file included from /usr/include/python3.10/unicodeobject.h:1046,
                   from /usr/include/python3.10/Python.h:83,
                   from src/cfisher.c:4:
  /usr/include/python3.10/cpython/unicodeobject.h:446:26: note: declared here
    446 | static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) {
        |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~
  src/cfisher.c:21940:25: warning: ‘PyUnicode_AsUnicode’ is deprecated [-Wdeprecated-declarations]
  21940 |                         (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 :
        |                         ^
  In file included from /usr/include/python3.10/unicodeobject.h:1046,
                   from /usr/include/python3.10/Python.h:83,
                   from src/cfisher.c:4:
  /usr/include/python3.10/cpython/unicodeobject.h:580:45: note: declared here
    580 | Py_DEPRECATED(3.3) PyAPI_FUNC(Py_UNICODE *) PyUnicode_AsUnicode(
        |                                             ^~~~~~~~~~~~~~~~~~~
  src/cfisher.c:21940:25: warning: ‘_PyUnicode_get_wstr_length’ is deprecated [-Wdeprecated-declarations]
  21940 |                         (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 :
        |                         ^
  In file included from /usr/include/python3.10/unicodeobject.h:1046,
                   from /usr/include/python3.10/Python.h:83,
                   from src/cfisher.c:4:
  /usr/include/python3.10/cpython/unicodeobject.h:446:26: note: declared here
    446 | static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) {
        |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~
  src/cfisher.c: In function ‘__Pyx_decode_c_string’:
  src/cfisher.c:23549:9: warning: ‘PyUnicode_FromUnicode’ is deprecated [-Wdeprecated-declarations]
  23549 |         return PyUnicode_FromUnicode(NULL, 0);
        |         ^~~~~~
  In file included from /usr/include/python3.10/unicodeobject.h:1046,
                   from /usr/include/python3.10/Python.h:83,
                   from src/cfisher.c:4:
  /usr/include/python3.10/cpython/unicodeobject.h:551:42: note: declared here
    551 | Py_DEPRECATED(3.3) PyAPI_FUNC(PyObject*) PyUnicode_FromUnicode(
        |                                          ^~~~~~~~~~~~~~~~~~~~~
  error: command '/usr/bin/gcc' failed with exit code 1
  ----------------------------------------
  ERROR: Failed building wheel for fisher
  Running setup.py clean for fisher
Failed to build fisher
Installing collected packages: fisher
    Running setup.py install for fisher: started
    Running setup.py install for fisher: finished with status 'error'
    ERROR: Command errored out with exit status 1:
     command: /venv/bin/python -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-oxhp9jm6/fisher_a55285e909b64f45b9765a29a397a526/setup.py'"'"'; __file__='"'"'/tmp/pip-install-oxhp9jm6/fisher_a55285e909b64f45b9765a29a397a526/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-sxrzxb23/install-record.txt --single-version-externally-managed --compile --install-headers /venv/include/site/python3.10/fisher
         cwd: /tmp/pip-install-oxhp9jm6/fisher_a55285e909b64f45b9765a29a397a526/
    Complete output (166 lines):
    /venv/lib/python3.10/site-packages/setuptools/dist.py:484: UserWarning: Normalizing 'v0.1.9' to '0.1.9'
      warnings.warn(tmpl.format(**locals()))
    running install
    running build
    running build_py
    creating build
    creating build/lib.linux-x86_64-3.10
    creating build/lib.linux-x86_64-3.10/fisher
    copying fisher/tableprinter.py -> build/lib.linux-x86_64-3.10/fisher
    copying fisher/_version.py -> build/lib.linux-x86_64-3.10/fisher
    copying fisher/__init__.py -> build/lib.linux-x86_64-3.10/fisher
    UPDATING build/lib.linux-x86_64-3.10/fisher/_version.py
    set build/lib.linux-x86_64-3.10/fisher/_version.py to 'v0.1.9'
    running build_ext
    building 'fisher.cfisher' extension
    creating build/temp.linux-x86_64-3.10
    creating build/temp.linux-x86_64-3.10/src
    gcc -Wno-unused-result -Wsign-compare -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -fPIC -fwrapv -fPIC -I/venv/include -I/usr/include/python3.10 -I/venv/lib64/python3.10/site-packages/numpy/core/include -c src/cfisher.c -o build/temp.linux-x86_64-3.10/src/cfisher.o -O3
    In file included from /venv/lib64/python3.10/site-packages/numpy/core/include/numpy/ndarraytypes.h:1960,
                     from /venv/lib64/python3.10/site-packages/numpy/core/include/numpy/ndarrayobject.h:12,
                     from /venv/lib64/python3.10/site-packages/numpy/core/include/numpy/arrayobject.h:5,
                     from src/cfisher.c:598:
    /venv/lib64/python3.10/site-packages/numpy/core/include/numpy/npy_1_7_deprecated_api.h:17:2: warning: #warning "Using deprecated NumPy API, disable it with " "#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-Wcpp]
       17 | #warning "Using deprecated NumPy API, disable it with " \
          |  ^~~~~~~
    src/cfisher.c: In function ‘__pyx_tp_dealloc_array’:
    src/cfisher.c:19787:5: error: lvalue required as increment operand
    19787 |     ++Py_REFCNT(o);
          |     ^~
    src/cfisher.c:19789:5: error: lvalue required as decrement operand
    19789 |     --Py_REFCNT(o);
          |     ^~
    src/cfisher.c: In function ‘__pyx_tp_dealloc_memoryview’:
    src/cfisher.c:20082:5: error: lvalue required as increment operand
    20082 |     ++Py_REFCNT(o);
          |     ^~
    src/cfisher.c:20084:5: error: lvalue required as decrement operand
    20084 |     --Py_REFCNT(o);
          |     ^~
    src/cfisher.c: In function ‘__pyx_tp_dealloc__memoryviewslice’:
    src/cfisher.c:20324:5: error: lvalue required as increment operand
    20324 |     ++Py_REFCNT(o);
          |     ^~
    src/cfisher.c:20326:5: error: lvalue required as decrement operand
    20326 |     --Py_REFCNT(o);
          |     ^~
    src/cfisher.c: In function ‘__Pyx_ParseOptionalKeywords’:
    src/cfisher.c:21924:21: warning: ‘_PyUnicode_get_wstr_length’ is deprecated [-Wdeprecated-declarations]
    21924 |                     (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 :
          |                     ^
    In file included from /usr/include/python3.10/unicodeobject.h:1046,
                     from /usr/include/python3.10/Python.h:83,
                     from src/cfisher.c:4:
    /usr/include/python3.10/cpython/unicodeobject.h:446:26: note: declared here
      446 | static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) {
          |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~
    src/cfisher.c:21924:21: warning: ‘PyUnicode_AsUnicode’ is deprecated [-Wdeprecated-declarations]
    21924 |                     (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 :
          |                     ^
    In file included from /usr/include/python3.10/unicodeobject.h:1046,
                     from /usr/include/python3.10/Python.h:83,
                     from src/cfisher.c:4:
    /usr/include/python3.10/cpython/unicodeobject.h:580:45: note: declared here
      580 | Py_DEPRECATED(3.3) PyAPI_FUNC(Py_UNICODE *) PyUnicode_AsUnicode(
          |                                             ^~~~~~~~~~~~~~~~~~~
    src/cfisher.c:21924:21: warning: ‘_PyUnicode_get_wstr_length’ is deprecated [-Wdeprecated-declarations]
    21924 |                     (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 :
          |                     ^
    In file included from /usr/include/python3.10/unicodeobject.h:1046,
                     from /usr/include/python3.10/Python.h:83,
                     from src/cfisher.c:4:
    /usr/include/python3.10/cpython/unicodeobject.h:446:26: note: declared here
      446 | static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) {
          |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~
    src/cfisher.c:21924:21: warning: ‘_PyUnicode_get_wstr_length’ is deprecated [-Wdeprecated-declarations]
    21924 |                     (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 :
          |                     ^
    In file included from /usr/include/python3.10/unicodeobject.h:1046,
                     from /usr/include/python3.10/Python.h:83,
                     from src/cfisher.c:4:
    /usr/include/python3.10/cpython/unicodeobject.h:446:26: note: declared here
      446 | static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) {
          |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~
    src/cfisher.c:21924:21: warning: ‘PyUnicode_AsUnicode’ is deprecated [-Wdeprecated-declarations]
    21924 |                     (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 :
          |                     ^
    In file included from /usr/include/python3.10/unicodeobject.h:1046,
                     from /usr/include/python3.10/Python.h:83,
                     from src/cfisher.c:4:
    /usr/include/python3.10/cpython/unicodeobject.h:580:45: note: declared here
      580 | Py_DEPRECATED(3.3) PyAPI_FUNC(Py_UNICODE *) PyUnicode_AsUnicode(
          |                                             ^~~~~~~~~~~~~~~~~~~
    src/cfisher.c:21924:21: warning: ‘_PyUnicode_get_wstr_length’ is deprecated [-Wdeprecated-declarations]
    21924 |                     (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 :
          |                     ^
    In file included from /usr/include/python3.10/unicodeobject.h:1046,
                     from /usr/include/python3.10/Python.h:83,
                     from src/cfisher.c:4:
    /usr/include/python3.10/cpython/unicodeobject.h:446:26: note: declared here
      446 | static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) {
          |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~
    src/cfisher.c:21940:25: warning: ‘_PyUnicode_get_wstr_length’ is deprecated [-Wdeprecated-declarations]
    21940 |                         (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 :
          |                         ^
    In file included from /usr/include/python3.10/unicodeobject.h:1046,
                     from /usr/include/python3.10/Python.h:83,
                     from src/cfisher.c:4:
    /usr/include/python3.10/cpython/unicodeobject.h:446:26: note: declared here
      446 | static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) {
          |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~
    src/cfisher.c:21940:25: warning: ‘PyUnicode_AsUnicode’ is deprecated [-Wdeprecated-declarations]
    21940 |                         (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 :
          |                         ^
    In file included from /usr/include/python3.10/unicodeobject.h:1046,
                     from /usr/include/python3.10/Python.h:83,
                     from src/cfisher.c:4:
    /usr/include/python3.10/cpython/unicodeobject.h:580:45: note: declared here
      580 | Py_DEPRECATED(3.3) PyAPI_FUNC(Py_UNICODE *) PyUnicode_AsUnicode(
          |                                             ^~~~~~~~~~~~~~~~~~~
    src/cfisher.c:21940:25: warning: ‘_PyUnicode_get_wstr_length’ is deprecated [-Wdeprecated-declarations]
    21940 |                         (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 :
          |                         ^
    In file included from /usr/include/python3.10/unicodeobject.h:1046,
                     from /usr/include/python3.10/Python.h:83,
                     from src/cfisher.c:4:
    /usr/include/python3.10/cpython/unicodeobject.h:446:26: note: declared here
      446 | static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) {
          |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~
    src/cfisher.c:21940:25: warning: ‘_PyUnicode_get_wstr_length’ is deprecated [-Wdeprecated-declarations]
    21940 |                         (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 :
          |                         ^
    In file included from /usr/include/python3.10/unicodeobject.h:1046,
                     from /usr/include/python3.10/Python.h:83,
                     from src/cfisher.c:4:
    /usr/include/python3.10/cpython/unicodeobject.h:446:26: note: declared here
      446 | static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) {
          |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~
    src/cfisher.c:21940:25: warning: ‘PyUnicode_AsUnicode’ is deprecated [-Wdeprecated-declarations]
    21940 |                         (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 :
          |                         ^
    In file included from /usr/include/python3.10/unicodeobject.h:1046,
                     from /usr/include/python3.10/Python.h:83,
                     from src/cfisher.c:4:
    /usr/include/python3.10/cpython/unicodeobject.h:580:45: note: declared here
      580 | Py_DEPRECATED(3.3) PyAPI_FUNC(Py_UNICODE *) PyUnicode_AsUnicode(
          |                                             ^~~~~~~~~~~~~~~~~~~
    src/cfisher.c:21940:25: warning: ‘_PyUnicode_get_wstr_length’ is deprecated [-Wdeprecated-declarations]
    21940 |                         (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 :
          |                         ^
    In file included from /usr/include/python3.10/unicodeobject.h:1046,
                     from /usr/include/python3.10/Python.h:83,
                     from src/cfisher.c:4:
    /usr/include/python3.10/cpython/unicodeobject.h:446:26: note: declared here
      446 | static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) {
          |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~
    src/cfisher.c: In function ‘__Pyx_decode_c_string’:
    src/cfisher.c:23549:9: warning: ‘PyUnicode_FromUnicode’ is deprecated [-Wdeprecated-declarations]
    23549 |         return PyUnicode_FromUnicode(NULL, 0);
          |         ^~~~~~
    In file included from /usr/include/python3.10/unicodeobject.h:1046,
                     from /usr/include/python3.10/Python.h:83,
                     from src/cfisher.c:4:
    /usr/include/python3.10/cpython/unicodeobject.h:551:42: note: declared here
      551 | Py_DEPRECATED(3.3) PyAPI_FUNC(PyObject*) PyUnicode_FromUnicode(
          |                                          ^~~~~~~~~~~~~~~~~~~~~
    error: command '/usr/bin/gcc' failed with exit code 1
    ----------------------------------------
ERROR: Command errored out with exit status 1: /venv/bin/python -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-oxhp9jm6/fisher_a55285e909b64f45b9765a29a397a526/setup.py'"'"'; __file__='"'"'/tmp/pip-install-oxhp9jm6/fisher_a55285e909b64f45b9765a29a397a526/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-sxrzxb23/install-record.txt --single-version-externally-managed --compile --install-headers /venv/include/site/python3.10/fisher Check the logs for full command output.
althonos commented 2 years ago

The cfisher.c file is outdated, but this builds after running cythonize.

@MrTomRod : you can use the following package to install (fisher-0.1.9+1.g4bee476.dirty.tar.gz). I rebuilt the cfisher.c file, and it builds fine with Python 3.10..

brentp commented 2 years ago

so IIUC, all that's required is to re cythonize cfisher.pyx with python 3.10 and it will resolve this issue (and still work on older versions) is that correct?

althonos commented 2 years ago

@brentp : exactly, just cythonizing cfisher.pyx will work! (at least on supported Python versions, so 3.6+ I guess)

Otherwise, if you want, I can open a PR to generate the cfisher.c file whenever someone installs the package (that's what i'm doing for instance in here) so that this issue doesn't appear again.

brentp commented 2 years ago

A PR that optionally cythonizes would be great! For cyvcf2, we use the env var as e.g.: CYTHONIZE=1 python setup.py install

see here that would be ideal, I think.

althonos commented 2 years ago

Okay, I'll get that working then :+1:

althonos commented 2 years ago

Actually, you can make the cythonization mandatory if you add a pyproject.toml file that list Cython as a build dependency: in that case, you can assume Cython is alway present, cythonize all the time, and only distribute the pyx file.

If you make the cythonization optional, any future version that breaks will need to be installed manually with CYTHONIZE=1 pip install fisher, which is probably going to get you more errors in here :smiley:

brentp commented 2 years ago

@tanghaibao what do you think? Make cython mandatory?

tanghaibao commented 2 years ago

I am personally in favor of reducing one dependency by not including cython there - yes I understand that it is a hassle when there are major python API changes but hopefully not too frequent and can usually be fixed right away like this one.

tanghaibao commented 2 years ago

Oh is the issue in deployment as to what to include in pip install when we have a conflicting .c file to ship? In that case, I think shipping only the .pyx file and making cython mandatory may be the easiest here.

In fact, I just found that I did that for one of the packages that we had as well:

https://github.com/tanghaibao/jcvi/blob/main/setup.py

brentp commented 2 years ago

ok. so ok to simply require cython then, @althonos

brentp commented 2 years ago

thanks @tanghaibao

MrTomRod commented 2 years ago

That fixed it! Fyi, I benchmarked your code against painyeph's/my hybrid code if you're interested:

https://github.com/MrTomRod/fast-fisher