stubgen failed to find function signature from native modules
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Python
- Estrellas
- 20.6k
- Forks
- 3.3k
- Métricas de merge de PR
- Métricas de PR pendientes
Descripción
Feature
I have written a native module with a hand-written docstring and signature.
The signature is available via
import inspect
import mymod
inspect.signature(mymod.MyClass.method1)
# or
help(mymod.MyClass)
# correctly prints (a,b,c)
However stubgen -p mymod generates .pyi with
class Myclass:
@classmethod
def __init__(cls, *args, **kwargs) -> None: ...
def method1(self, *args, **kwargs) -> Any: ...
filled with *args and **kwargs instead of correct signatures. (Worse, method1 is in fact staticmethod so vscode complains with this stub)
The binding is written with rust pyo3.
Since all inspect.signature, help, and IPython can read the signature, I think the problem is in stubgen.
I don't know the internals of stubgen, but would it help to use inspect.signature when other methods in generate_stub_for_c_module fail?
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Empieza leyendo la ruta stubgen's generate_stub_for_c_module y compara sus alternativas actuales para descubrir firmas con inspect.signature en el ejemplo de módulo nativo. Se considera completado cuando stubgen emite las firmas de parámetros documentadas y conserva tipos de método como staticmethod, en lugar de usar *args y **kwargs genéricos.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- python, rust
- Área
- tooling
- Tipo de issue
- Nueva funcionalidad
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 35/100