Skip to content

Not compatible with Python 3.13 due to old version of pyodbc #49

Description

@LostInDarkMath

Hi there,
your lib is based on pyodbc~=4.0.34 which seems to be not compatible with Python 3.13:

Backend subprocess exited when trying to invoke build_wheel

    | Command '['/tmp/tmpwy63g_at/.venv/bin/python', '/home/wsontopski/.local/share/pypoetry/venv/lib/python3.12/site-packages/pyproject_hooks/_in_process/_in_process.py', 'build_wheel', '/tmp/tmpppmx1bgj']' returned non-zero exit status 1.
    | 
    | <string>:242: DeprecationWarning: The 'u' type code is deprecated and will be removed in Python 3.16
    | WARNING: '' not a valid package name; please use only .-separated package names in setup.py
    | /tmp/tmpwy63g_at/.venv/lib/python3.13/site-packages/setuptools/dist.py:759: SetuptoolsDeprecationWarning: License classifiers are deprecated.
    | !!
    | 
    |         ********************************************************************************
    |         Please consider removing the following classifiers in favor of a SPDX license expression:
    | 
    |         License :: OSI Approved :: MIT License
    | 
    |         See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details.
    |         ********************************************************************************
    | 
    | !!
    |   self._finalize_license_expression()
    | running bdist_wheel
    | running build
    | running build_py
    | creating build/lib.linux-x86_64-cpython-313
    | copying src/pyodbc.pyi -> build/lib.linux-x86_64-cpython-313
    | running build_ext
    | building 'pyodbc' extension
    | creating build/temp.linux-x86_64-cpython-313/src
    | x86_64-linux-gnu-g++ -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O2 -Wall -g -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -g -fwrapv -O2 -fPIC -DPYODBC_VERSION=4.0.39 -I/tmp/tmpwy63g_at/.venv/include -I/usr/include/python3.13 -c src/buffer.cpp -o build/temp.linux-x86_64-cpython-313/src/buffer.o -Wno-write-strings
    | In file included from src/pyodbc.h:172,
    |                  from src/buffer.cpp:12:
    | src/pyodbccompat.h: In function ‘PyObject* Text_New(Py_ssize_t)’:
    | src/pyodbccompat.h:75:12: error: ‘PyUnicode_FromUnicode’ was not declared in this scope; did you mean ‘PyUnicode_FromString’?
    |    75 |     return PyUnicode_FromUnicode(0, length);
    |       |            ^~~~~~~~~~~~~~~~~~~~~
    |       |            PyUnicode_FromString
    | src/pyodbccompat.h: At global scope:
    | src/pyodbccompat.h:79:39: warning: ‘Py_UNICODE’ is deprecated [-Wdeprecated-declarations]
    |    79 | inline TEXT_T* Text_Buffer(PyObject* o)
    |       |                                       ^
    | In file included from /usr/include/python3.13/unicodeobject.h:1014,
    |                  from /usr/include/python3.13/Python.h:79,
    |                  from src/pyodbc.h:45:
    | /usr/include/python3.13/cpython/unicodeobject.h:10:37: note: declared here
    |    10 | Py_DEPRECATED(3.13) typedef wchar_t Py_UNICODE;
    |       |                                     ^~~~~~~~~~
    | src/pyodbccompat.h: In function ‘Py_UNICODE* Text_Buffer(PyObject*)’:
    | src/pyodbccompat.h:86:12: error: ‘PyUnicode_AS_UNICODE’ was not declared in this scope; did you mean ‘PyUnicode_AsUCS4’?
    |    86 |     return PyUnicode_AS_UNICODE(o);
    |       |            ^~~~~~~~~~~~~~~~~~~~
    |       |            PyUnicode_AsUCS4
    | src/pyodbccompat.h: In function ‘Py_ssize_t Text_Size(PyObject*)’:
    | src/pyodbccompat.h:126:40: error: ‘PyUnicode_GET_SIZE’ was not declared in this scope; did you mean ‘PyDict_GET_SIZE’?
    |   126 |     return (o && PyUnicode_Check(o)) ? PyUnicode_GET_SIZE(o) : 0;
    |       |                                        ^~~~~~~~~~~~~~~~~~
    |       |                                        PyDict_GET_SIZE
    | src/pyodbccompat.h: At global scope:
    | src/pyodbccompat.h:129:68: warning: ‘Py_UNICODE’ is deprecated [-Wdeprecated-declarations]
    |   129 | inline Py_ssize_t TextCopyToUnicode(Py_UNICODE* buffer, PyObject* o)
    |       |                                                                    ^
    | /usr/include/python3.13/cpython/unicodeobject.h:10:37: note: declared here
    |    10 | Py_DEPRECATED(3.13) typedef wchar_t Py_UNICODE;
    |       |                                     ^~~~~~~~~~
    | src/pyodbccompat.h: In function ‘Py_ssize_t TextCopyToUnicode(Py_UNICODE*, PyObject*)’:
    | src/pyodbccompat.h:146:26: error: ‘PyUnicode_GET_SIZE’ was not declared in this scope; did you mean ‘PyDict_GET_SIZE’?
    |   146 |         Py_ssize_t cch = PyUnicode_GET_SIZE(o);
    |       |                          ^~~~~~~~~~~~~~~~~~
    |       |                          PyDict_GET_SIZE
    | src/pyodbccompat.h:147:24: error: ‘PyUnicode_AS_UNICODE’ was not declared in this scope; did you mean ‘PyUnicode_AsUCS4’?
    |   147 |         memcpy(buffer, PyUnicode_AS_UNICODE(o), cch * sizeof(Py_UNICODE));
    |       |                        ^~~~~~~~~~~~~~~~~~~~
    |       |                        PyUnicode_AsUCS4
    | src/pyodbccompat.h:147:62: warning: ‘Py_UNICODE’ is deprecated [-Wdeprecated-declarations]
    |   147 |         memcpy(buffer, PyUnicode_AS_UNICODE(o), cch * sizeof(Py_UNICODE));
    |       |                                                              ^~~~~~~~~~
    | /usr/include/python3.13/cpython/unicodeobject.h:10:37: note: declared here
    |    10 | Py_DEPRECATED(3.13) typedef wchar_t Py_UNICODE;
    |       |                                     ^~~~~~~~~~
    | error: command '/usr/bin/x86_64-linux-gnu-g++' failed with exit code 1

Therefore, your lib does not work with Python 3.13. Could you please fix this?

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions