google / go-jsonnet

Apache License 2.0
1.63k stars 235 forks source link

python 3.13: PyEval_CallObject is gone #775

Open asottile-sentry opened 4 weeks ago

asottile-sentry commented 4 weeks ago

output from python3.13 -m pip wheel gojsonnet:

Processing /var/folders/q5/6nls1_g145s2fl1lbvx2zby40000gn/T/tmppzk6cukh/sdist/gojsonnet-0.20.0.tar.gz
  Preparing metadata (setup.py): started
  Preparing metadata (setup.py): finished with status 'done'
Building wheels for collected packages: gojsonnet
  Building wheel for gojsonnet (setup.py): started
  Building wheel for gojsonnet (setup.py): finished with status 'error'
  error: subprocess-exited-with-error

  × python setup.py bdist_wheel did not run successfully.
  │ exit code: 1
  ╰─> [24 lines of output]
      running bdist_wheel
      running build
      running build_ext
      go: downloading sigs.k8s.io/yaml v1.1.0
      go: downloading gopkg.in/yaml.v2 v2.2.7
      building '_gojsonnet' extension
      creating build
      creating build/temp.macosx-11.0-arm64-cpython-313
      creating build/temp.macosx-11.0-arm64-cpython-313/python
      clang -fno-strict-overflow -Wsign-compare -Wunreachable-code -DNDEBUG -g -O3 -Wall -mmacosx-version-min=11.0 -Wno-nullability-completeness -Wno-expansion-to-defined -Wno-undef-prefix -isysroot /Applications/Xcode_15.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.2.sdk -fPIC -Werror=unguarded-availability-new -I/opt/homebrew/opt/go/include -Icpp-jsonnet/include -I/Users/runner/work/pypi/pypi/venv/include -I/Users/runner/work/pypi/pypi/pythons/cp313-cp313/include/python3.13 -c python/_jsonnet.c -o build/temp.macosx-11.0-arm64-cpython-313/python/_jsonnet.o
      python/_jsonnet.c:189:14: error: call to undeclared function 'PyEval_CallObject'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
          result = PyEval_CallObject(ctx->callback, arglist);
                   ^
      python/_jsonnet.c:189:12: error: incompatible integer to pointer conversion assigning to 'PyObject *' (aka 'struct _object *') from 'int' [-Wint-conversion]
          result = PyEval_CallObject(ctx->callback, arglist);
                 ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      python/_jsonnet.c:229:14: error: call to undeclared function 'PyEval_CallObject'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
          result = PyEval_CallObject(ctx->callback, arglist);
                   ^
      python/_jsonnet.c:229:12: error: incompatible integer to pointer conversion assigning to 'PyObject *' (aka 'struct _object *') from 'int' [-Wint-conversion]
          result = PyEval_CallObject(ctx->callback, arglist);
                 ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      4 errors generated.
      error: command '/usr/bin/clang' failed with exit code 1
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for gojsonnet
  Running setup.py clean for gojsonnet
Failed to build gojsonnet

seems like this should be easy to replace with PyObject_CallObject(...)