jianlins / PyRuSH

init
MIT License
11 stars 9 forks source link

Not compatible with Python 3.12 #11

Open ghisvail opened 3 months ago

ghisvail commented 3 months ago

I tried installing a project (medkit-lib) which depends on pyrush in a Python 3.12 environment.

Installation fails with the following output:

Building wheel for pyrush (pyproject.toml) ... error
  error: subprocess-exited-with-error

  × Building wheel for pyrush (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [247 lines of output]
      ['Cython>=0.25,<3.0', 'setuptools', 'numpy', 'spacy>=3.0.0', 'PyFastNER>=1.0.8', 'quicksectx>=0.3.5']
      /tmp/pip-build-env-7zr5a7rl/overlay/lib/python3.12/site-packages/setuptools/_distutils/dist.py:268: UserWarning: Unknown distribution option: 'tests_require'
        warnings.warn(msg)
      /tmp/pip-build-env-7zr5a7rl/overlay/lib/python3.12/site-packages/setuptools/dist.py:447: SetuptoolsDeprecationWarning: Invalid dash-separated options
      !!

              ********************************************************************************
              Usage of dash-separated 'python-tag' will not be supported in future
              versions. Please use the underscore name 'python_tag' instead.

              By 2024-Sep-26, you need to update your project and remove deprecated calls
              or your builds will no longer be supported.

              See https://setuptools.pypa.io/en/latest/userguide/declarative_config.html for details.
              ********************************************************************************

      !!
        opt = self.warn_dash_deprecation(opt, section)
      running bdist_wheel
      running build
      running build_py
      creating build
      creating build/lib.linux-x86_64-cpython-312
      creating build/lib.linux-x86_64-cpython-312/PyRuSH
      copying PyRuSH/__init__.py -> build/lib.linux-x86_64-cpython-312/PyRuSH
      copying PyRuSH/version.py -> build/lib.linux-x86_64-cpython-312/PyRuSH
      copying PyRuSH/PyRuSHSentencizer.py -> build/lib.linux-x86_64-cpython-312/PyRuSH
      copying PyRuSH/RuSH.py -> build/lib.linux-x86_64-cpython-312/PyRuSH
      running egg_info
      writing PyRuSH.egg-info/PKG-INFO
      writing dependency_links to PyRuSH.egg-info/dependency_links.txt
      writing requirements to PyRuSH.egg-info/requires.txt
      writing top-level names to PyRuSH.egg-info/top_level.txt
      reading manifest file 'PyRuSH.egg-info/SOURCES.txt'
      reading manifest template 'MANIFEST.in'
      writing manifest file 'PyRuSH.egg-info/SOURCES.txt'
      copying PyRuSH/StaticSentencizerFun.cpp -> build/lib.linux-x86_64-cpython-312/PyRuSH
      copying PyRuSH/StaticSentencizerFun.pyx -> build/lib.linux-x86_64-cpython-312/PyRuSH
      copying PyRuSH/../requirements.txt -> build/lib.linux-x86_64-cpython-312/PyRuSH/..
      creating build/lib.linux-x86_64-cpython-312/conf
      copying PyRuSH/../conf/rush_rules.tsv -> build/lib.linux-x86_64-cpython-312/PyRuSH/../conf
      running build_ext
      building 'PyRuSH.StaticSentencizerFun' extension
      creating build/temp.linux-x86_64-cpython-312
      creating build/temp.linux-x86_64-cpython-312/PyRuSH
      gcc -pthread -B /home/ghvailla/.local/micromamba/envs/medkit-py312/compiler_compat -fno-strict-overflow -DNDEBUG -O2 -Wall -fPIC -O2 -isystem /home/ghvailla/.local/micromamba/envs/medkit-py312/include -fPIC -O2 -isystem /home/ghvailla/.local/micromamba/envs/medkit-py312/include -fPIC -I/tmp/pip-install-sea7kpte/pyrush_0638fc6ad3fc4dfb993fb30b3348bcd0/PyRuSH -I/tmp/pip-install-sea7kpte/pyrush_0638fc6ad3fc4dfb993fb30b3348bcd0 -I/tmp/pip-build-env-7zr5a7rl/overlay/lib/python3.12/site-packages/numpy/core/include -I/tmp/pip-build-env-7zr5a7rl/overlay/lib/python3.12/site-packages/spacy -I/tmp/pip-build-env-7zr5a7rl/overlay/lib/python3.12/site-packages/cymem -I/tmp/pip-build-env-7zr5a7rl/overlay/lib/python3.12/site-packages/preshed -I/home/ghvailla/.local/micromamba/envs/medkit-py312/include/python3.12 -c PyRuSH/StaticSentencizerFun.cpp -o build/temp.linux-x86_64-cpython-312/PyRuSH/StaticSentencizerFun.o -std=c++11
      PyRuSH/StaticSentencizerFun.cpp: In function ‘PyObject* __Pyx_PyInt_AddObjC(PyObject*, PyObject*, long int, int, int)’:
      PyRuSH/StaticSentencizerFun.cpp:3405:53: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’
       3405 |         const digit* digits = ((PyLongObject*)op1)->ob_digit;
            |                                                     ^~~~~~~~
      PyRuSH/StaticSentencizerFun.cpp: In function ‘uint64_t __Pyx_get_tp_dict_version(PyObject*)’:
      PyRuSH/StaticSentencizerFun.cpp:1234:65: warning: ‘PyDictObject::ma_version_tag’ is deprecated [-Wdeprecated-declarations]
       1234 | #define __PYX_GET_DICT_VERSION(dict)  (((PyDictObject*)(dict))->ma_version_tag)
            |                                                                 ^~~~~~~~~~~~~~
      PyRuSH/StaticSentencizerFun.cpp:3552:27: note: in expansion of macro ‘__PYX_GET_DICT_VERSION’
       3552 |     return likely(dict) ? __PYX_GET_DICT_VERSION(dict) : 0;
            |                           ^~~~~~~~~~~~~~~~~~~~~~
      In file included from /home/ghvailla/.local/micromamba/envs/medkit-py312/include/python3.12/dictobject.h:90,
                       from /home/ghvailla/.local/micromamba/envs/medkit-py312/include/python3.12/Python.h:64,
                       from PyRuSH/StaticSentencizerFun.cpp:30:
      /home/ghvailla/.local/micromamba/envs/medkit-py312/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      PyRuSH/StaticSentencizerFun.cpp:1234:65: warning: ‘PyDictObject::ma_version_tag’ is deprecated [-Wdeprecated-declarations]
       1234 | #define __PYX_GET_DICT_VERSION(dict)  (((PyDictObject*)(dict))->ma_version_tag)
            |                                                                 ^~~~~~~~~~~~~~
      PyRuSH/StaticSentencizerFun.cpp:3552:27: note: in expansion of macro ‘__PYX_GET_DICT_VERSION’
       3552 |     return likely(dict) ? __PYX_GET_DICT_VERSION(dict) : 0;
            |                           ^~~~~~~~~~~~~~~~~~~~~~
      /home/ghvailla/.local/micromamba/envs/medkit-py312/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      PyRuSH/StaticSentencizerFun.cpp:1234:65: warning: ‘PyDictObject::ma_version_tag’ is deprecated [-Wdeprecated-declarations]
       1234 | #define __PYX_GET_DICT_VERSION(dict)  (((PyDictObject*)(dict))->ma_version_tag)
            |                                                                 ^~~~~~~~~~~~~~
      PyRuSH/StaticSentencizerFun.cpp:3552:27: note: in expansion of macro ‘__PYX_GET_DICT_VERSION’
       3552 |     return likely(dict) ? __PYX_GET_DICT_VERSION(dict) : 0;
            |                           ^~~~~~~~~~~~~~~~~~~~~~
      /home/ghvailla/.local/micromamba/envs/medkit-py312/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      PyRuSH/StaticSentencizerFun.cpp: In function ‘uint64_t __Pyx_get_object_dict_version(PyObject*)’:
      PyRuSH/StaticSentencizerFun.cpp:1234:65: warning: ‘PyDictObject::ma_version_tag’ is deprecated [-Wdeprecated-declarations]
       1234 | #define __PYX_GET_DICT_VERSION(dict)  (((PyDictObject*)(dict))->ma_version_tag)
            |                                                                 ^~~~~~~~~~~~~~
      PyRuSH/StaticSentencizerFun.cpp:3564:36: note: in expansion of macro ‘__PYX_GET_DICT_VERSION’
       3564 |     return (dictptr && *dictptr) ? __PYX_GET_DICT_VERSION(*dictptr) : 0;
            |                                    ^~~~~~~~~~~~~~~~~~~~~~
      /home/ghvailla/.local/micromamba/envs/medkit-py312/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      PyRuSH/StaticSentencizerFun.cpp:1234:65: warning: ‘PyDictObject::ma_version_tag’ is deprecated [-Wdeprecated-declarations]
       1234 | #define __PYX_GET_DICT_VERSION(dict)  (((PyDictObject*)(dict))->ma_version_tag)
            |                                                                 ^~~~~~~~~~~~~~
      PyRuSH/StaticSentencizerFun.cpp:3564:36: note: in expansion of macro ‘__PYX_GET_DICT_VERSION’
       3564 |     return (dictptr && *dictptr) ? __PYX_GET_DICT_VERSION(*dictptr) : 0;
            |                                    ^~~~~~~~~~~~~~~~~~~~~~
      /home/ghvailla/.local/micromamba/envs/medkit-py312/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      PyRuSH/StaticSentencizerFun.cpp:1234:65: warning: ‘PyDictObject::ma_version_tag’ is deprecated [-Wdeprecated-declarations]
       1234 | #define __PYX_GET_DICT_VERSION(dict)  (((PyDictObject*)(dict))->ma_version_tag)
            |                                                                 ^~~~~~~~~~~~~~
      PyRuSH/StaticSentencizerFun.cpp:3564:36: note: in expansion of macro ‘__PYX_GET_DICT_VERSION’
       3564 |     return (dictptr && *dictptr) ? __PYX_GET_DICT_VERSION(*dictptr) : 0;
            |                                    ^~~~~~~~~~~~~~~~~~~~~~
      /home/ghvailla/.local/micromamba/envs/medkit-py312/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      PyRuSH/StaticSentencizerFun.cpp: In function ‘int __Pyx_object_dict_version_matches(PyObject*, uint64_t, uint64_t)’:
      PyRuSH/StaticSentencizerFun.cpp:1234:65: warning: ‘PyDictObject::ma_version_tag’ is deprecated [-Wdeprecated-declarations]
       1234 | #define __PYX_GET_DICT_VERSION(dict)  (((PyDictObject*)(dict))->ma_version_tag)
            |                                                                 ^~~~~~~~~~~~~~
      PyRuSH/StaticSentencizerFun.cpp:970:43: note: in definition of macro ‘unlikely’
        970 |   #define unlikely(x) __builtin_expect(!!(x), 0)
            |                                           ^
      PyRuSH/StaticSentencizerFun.cpp:3568:56: note: in expansion of macro ‘__PYX_GET_DICT_VERSION’
       3568 |     if (unlikely(!dict) || unlikely(tp_dict_version != __PYX_GET_DICT_VERSION(dict)))
            |                                                        ^~~~~~~~~~~~~~~~~~~~~~
      /home/ghvailla/.local/micromamba/envs/medkit-py312/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      PyRuSH/StaticSentencizerFun.cpp:1234:65: warning: ‘PyDictObject::ma_version_tag’ is deprecated [-Wdeprecated-declarations]
       1234 | #define __PYX_GET_DICT_VERSION(dict)  (((PyDictObject*)(dict))->ma_version_tag)
            |                                                                 ^~~~~~~~~~~~~~
      PyRuSH/StaticSentencizerFun.cpp:970:43: note: in definition of macro ‘unlikely’
        970 |   #define unlikely(x) __builtin_expect(!!(x), 0)
            |                                           ^
      PyRuSH/StaticSentencizerFun.cpp:3568:56: note: in expansion of macro ‘__PYX_GET_DICT_VERSION’
       3568 |     if (unlikely(!dict) || unlikely(tp_dict_version != __PYX_GET_DICT_VERSION(dict)))
            |                                                        ^~~~~~~~~~~~~~~~~~~~~~
      /home/ghvailla/.local/micromamba/envs/medkit-py312/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      PyRuSH/StaticSentencizerFun.cpp:1234:65: warning: ‘PyDictObject::ma_version_tag’ is deprecated [-Wdeprecated-declarations]
       1234 | #define __PYX_GET_DICT_VERSION(dict)  (((PyDictObject*)(dict))->ma_version_tag)
            |                                                                 ^~~~~~~~~~~~~~
      PyRuSH/StaticSentencizerFun.cpp:970:43: note: in definition of macro ‘unlikely’
        970 |   #define unlikely(x) __builtin_expect(!!(x), 0)
            |                                           ^
      PyRuSH/StaticSentencizerFun.cpp:3568:56: note: in expansion of macro ‘__PYX_GET_DICT_VERSION’
       3568 |     if (unlikely(!dict) || unlikely(tp_dict_version != __PYX_GET_DICT_VERSION(dict)))
            |                                                        ^~~~~~~~~~~~~~~~~~~~~~
      /home/ghvailla/.local/micromamba/envs/medkit-py312/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      PyRuSH/StaticSentencizerFun.cpp: In function ‘int __Pyx_CLineForTraceback(PyThreadState*, int)’:
      PyRuSH/StaticSentencizerFun.cpp:1234:65: warning: ‘PyDictObject::ma_version_tag’ is deprecated [-Wdeprecated-declarations]
       1234 | #define __PYX_GET_DICT_VERSION(dict)  (((PyDictObject*)(dict))->ma_version_tag)
            |                                                                 ^~~~~~~~~~~~~~
      PyRuSH/StaticSentencizerFun.cpp:969:43: note: in definition of macro ‘likely’
        969 |   #define likely(x)   __builtin_expect(!!(x), 1)
            |                                           ^
      PyRuSH/StaticSentencizerFun.cpp:1241:16: note: in expansion of macro ‘__PYX_GET_DICT_VERSION’
       1241 |     if (likely(__PYX_GET_DICT_VERSION(DICT) == __pyx_dict_version)) {\
            |                ^~~~~~~~~~~~~~~~~~~~~~
      PyRuSH/StaticSentencizerFun.cpp:3613:9: note: in expansion of macro ‘__PYX_PY_DICT_LOOKUP_IF_MODIFIED’
       3613 |         __PYX_PY_DICT_LOOKUP_IF_MODIFIED(
            |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      /home/ghvailla/.local/micromamba/envs/medkit-py312/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      PyRuSH/StaticSentencizerFun.cpp:1234:65: warning: ‘PyDictObject::ma_version_tag’ is deprecated [-Wdeprecated-declarations]
       1234 | #define __PYX_GET_DICT_VERSION(dict)  (((PyDictObject*)(dict))->ma_version_tag)
            |                                                                 ^~~~~~~~~~~~~~
      PyRuSH/StaticSentencizerFun.cpp:969:43: note: in definition of macro ‘likely’
        969 |   #define likely(x)   __builtin_expect(!!(x), 1)
            |                                           ^
      PyRuSH/StaticSentencizerFun.cpp:1241:16: note: in expansion of macro ‘__PYX_GET_DICT_VERSION’
       1241 |     if (likely(__PYX_GET_DICT_VERSION(DICT) == __pyx_dict_version)) {\
            |                ^~~~~~~~~~~~~~~~~~~~~~
      PyRuSH/StaticSentencizerFun.cpp:3613:9: note: in expansion of macro ‘__PYX_PY_DICT_LOOKUP_IF_MODIFIED’
       3613 |         __PYX_PY_DICT_LOOKUP_IF_MODIFIED(
            |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      /home/ghvailla/.local/micromamba/envs/medkit-py312/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      PyRuSH/StaticSentencizerFun.cpp:1234:65: warning: ‘PyDictObject::ma_version_tag’ is deprecated [-Wdeprecated-declarations]
       1234 | #define __PYX_GET_DICT_VERSION(dict)  (((PyDictObject*)(dict))->ma_version_tag)
            |                                                                 ^~~~~~~~~~~~~~
      PyRuSH/StaticSentencizerFun.cpp:969:43: note: in definition of macro ‘likely’
        969 |   #define likely(x)   __builtin_expect(!!(x), 1)
            |                                           ^
      PyRuSH/StaticSentencizerFun.cpp:1241:16: note: in expansion of macro ‘__PYX_GET_DICT_VERSION’
       1241 |     if (likely(__PYX_GET_DICT_VERSION(DICT) == __pyx_dict_version)) {\
            |                ^~~~~~~~~~~~~~~~~~~~~~
      PyRuSH/StaticSentencizerFun.cpp:3613:9: note: in expansion of macro ‘__PYX_PY_DICT_LOOKUP_IF_MODIFIED’
       3613 |         __PYX_PY_DICT_LOOKUP_IF_MODIFIED(
            |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      /home/ghvailla/.local/micromamba/envs/medkit-py312/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      PyRuSH/StaticSentencizerFun.cpp:1234:65: warning: ‘PyDictObject::ma_version_tag’ is deprecated [-Wdeprecated-declarations]
       1234 | #define __PYX_GET_DICT_VERSION(dict)  (((PyDictObject*)(dict))->ma_version_tag)
            |                                                                 ^~~~~~~~~~~~~~
      PyRuSH/StaticSentencizerFun.cpp:1245:30: note: in expansion of macro ‘__PYX_GET_DICT_VERSION’
       1245 |         __pyx_dict_version = __PYX_GET_DICT_VERSION(DICT);\
            |                              ^~~~~~~~~~~~~~~~~~~~~~
      PyRuSH/StaticSentencizerFun.cpp:3613:9: note: in expansion of macro ‘__PYX_PY_DICT_LOOKUP_IF_MODIFIED’
       3613 |         __PYX_PY_DICT_LOOKUP_IF_MODIFIED(
            |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      /home/ghvailla/.local/micromamba/envs/medkit-py312/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      PyRuSH/StaticSentencizerFun.cpp:1234:65: warning: ‘PyDictObject::ma_version_tag’ is deprecated [-Wdeprecated-declarations]
       1234 | #define __PYX_GET_DICT_VERSION(dict)  (((PyDictObject*)(dict))->ma_version_tag)
            |                                                                 ^~~~~~~~~~~~~~
      PyRuSH/StaticSentencizerFun.cpp:1245:30: note: in expansion of macro ‘__PYX_GET_DICT_VERSION’
       1245 |         __pyx_dict_version = __PYX_GET_DICT_VERSION(DICT);\
            |                              ^~~~~~~~~~~~~~~~~~~~~~
      PyRuSH/StaticSentencizerFun.cpp:3613:9: note: in expansion of macro ‘__PYX_PY_DICT_LOOKUP_IF_MODIFIED’
       3613 |         __PYX_PY_DICT_LOOKUP_IF_MODIFIED(
            |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      /home/ghvailla/.local/micromamba/envs/medkit-py312/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      PyRuSH/StaticSentencizerFun.cpp:1234:65: warning: ‘PyDictObject::ma_version_tag’ is deprecated [-Wdeprecated-declarations]
       1234 | #define __PYX_GET_DICT_VERSION(dict)  (((PyDictObject*)(dict))->ma_version_tag)
            |                                                                 ^~~~~~~~~~~~~~
      PyRuSH/StaticSentencizerFun.cpp:1245:30: note: in expansion of macro ‘__PYX_GET_DICT_VERSION’
       1245 |         __pyx_dict_version = __PYX_GET_DICT_VERSION(DICT);\
            |                              ^~~~~~~~~~~~~~~~~~~~~~
      PyRuSH/StaticSentencizerFun.cpp:3613:9: note: in expansion of macro ‘__PYX_PY_DICT_LOOKUP_IF_MODIFIED’
       3613 |         __PYX_PY_DICT_LOOKUP_IF_MODIFIED(
            |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      /home/ghvailla/.local/micromamba/envs/medkit-py312/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      PyRuSH/StaticSentencizerFun.cpp: In function ‘long int __Pyx_PyInt_As_long(PyObject*)’:
      PyRuSH/StaticSentencizerFun.cpp:3952:55: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’
       3952 |             const digit* digits = ((PyLongObject*)x)->ob_digit;
            |                                                       ^~~~~~~~
      PyRuSH/StaticSentencizerFun.cpp:4007:55: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’
       4007 |             const digit* digits = ((PyLongObject*)x)->ob_digit;
            |                                                       ^~~~~~~~
      PyRuSH/StaticSentencizerFun.cpp: In function ‘int __Pyx_PyInt_As_int(PyObject*)’:
      PyRuSH/StaticSentencizerFun.cpp:4148:55: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’
       4148 |             const digit* digits = ((PyLongObject*)x)->ob_digit;
            |                                                       ^~~~~~~~
      PyRuSH/StaticSentencizerFun.cpp:4203:55: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’
       4203 |             const digit* digits = ((PyLongObject*)x)->ob_digit;
            |                                                       ^~~~~~~~
      PyRuSH/StaticSentencizerFun.cpp: In function ‘Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*)’:
      PyRuSH/StaticSentencizerFun.cpp:4654:47: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’
       4654 |     const digit* digits = ((PyLongObject*)b)->ob_digit;
            |                                               ^~~~~~~~
      error: command '/usr/bin/gcc' failed with exit code 1
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
ghisvail commented 3 months ago

I have seen the first error error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’ before, and is due to an ABI change introduced in Python 3.12.