Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

[Bug]: invalid signature of int.__new__ and missing signatures for __new__ dunders in extensions

Abierto
#1,192 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
48/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
python
Área
backend

Línea de trabajo

Start by reproducing the reported inspect.signature results for int.__new__ and gmp.mpz.__new__, then compare them with the expected CPython signatures. The issue does not name implementation files or tests, so locate the code and tests that determine signatures for built-in and extension __new__ methods. Done means both report the generic (*args, **kwargs) signature.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

bug
Describe the bug

In some sense it's a continuation of #998, but I think it deserves a separate issue.

GraalPy reports int.__new__() signature being <Signature (cls, x, /, base)>. That's just invalid, assuming e.g. that non keyword base argument is supported:

Python 3.13.14 (Thu Sep 17 18:51:21 UTC 2026)
[Graal, Oracle GraalVM, Java 25.0.4.1.1 (amd64)] on 'linux'
Type "help", "copyright", "credits" or "license" for more information.
>>> int('123', 16)
291

Also, in fact - default values for x and base are supported. Unfortunately, such methods can't be expressed by some targeted signature.

In CPython it is generic, <Signature (*args, **kwargs)>, and same for __new__() dunders in extensions (Here signatures in the GraalPy are missing.). Perhaps, GraalPy should do same. (Though note that PyPy3 has behavior similar to the GraalPy, but invalid signature here is <Signature (x=0, base=None, /)>.)

Operating system

Linux

CPU architecture

x86_64

GraalPy version

25.0.4.1.1

JDK version

No response

Context configuration

No response

Steps to reproduce
pip install python-gmp
Python 3.13.14 (Thu Sep 17 18:51:21 UTC 2026)
[Graal, Oracle GraalVM, Java 25.0.4.1.1 (amd64)] on 'linux'
Type "help", "copyright", "credits" or "license" for more information.
>>> import gmp, inspect
>>> inspect.signature(int.__new__)
<Signature (cls, x, /, base)>
>>> inspect.signature(gmp.mpz.__new__)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
    inspect.signature(gmp.mpz.__new__)
    ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
  File "/home/sk/graalpy3.13-25.4.4.1.1-linux-amd64/lib/python3.13/inspect.py", line 3399, in signature
    return Signature.from_callable(obj, follow_wrapped=follow_wrapped,
           ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                                   globals=globals, locals=locals, eval_str=eval_str)
                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/sk/graalpy3.13-25.4.4.1.1-linux-amd64/lib/python3.13/inspect.py", line 3122, in from_callable
    return _signature_from_callable(obj, sigcls=cls,
                                    follow_wrapper_chains=follow_wrapped,
                                    globals=globals, locals=locals, eval_str=eval_str)
  File "/home/sk/graalpy3.13-25.4.4.1.1-linux-amd64/lib/python3.13/inspect.py", line 2615, in _signature_from_callable
    return _signature_from_builtin(sigcls, obj,
                                   skip_bound_arg=skip_bound_arg)
  File "/home/sk/graalpy3.13-25.4.4.1.1-linux-amd64/lib/python3.13/inspect.py", line 2401, in _signature_from_builtin
    raise ValueError("no signature found for builtin {!r}".format(func))
ValueError: no signature found for builtin <built-in method __new__ of type object at 0x42603ed>
Expected behavior
Python 3.16.0a0 (heads/main:ee68f5f46a1, Aug 12 2026, 11:19:39) [GCC 14.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import gmp, inspect
>>> inspect.signature(int.__new__)
<Signature (*args, **kwargs)>
>>> inspect.signature(gmp.mpz.__new__)
<Signature (*args, **kwargs)>
Stack trace

Additional context

No response

Lenguaje dominante
Python
Estrellas
1.7k
Forks
155
Merge medio
6 h 26 min
PR fusionados (30 d)
53

Preparar el entorno

Abrir en Codespaces

Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de oracle/graalpython

Todos los issues de oracle/graalpython

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.