diff --git a/src/stubgen.py b/src/stubgen.py index 5bb9bf3b..32f9566a 100755 --- a/src/stubgen.py +++ b/src/stubgen.py @@ -428,7 +428,17 @@ def put_function(self, fn: Callable[..., Any], name: Optional[str] = None, paren overload = self.import_object("typing", "overload") self.write_ln(f"@{overload}") - sig_str = f"{name}{self.signature_str(signature(fno))}" + try: + sig = signature(fno) + except ValueError: + sig = None + + if sig is not None: + sig_str = f"{name}{self.signature_str(sig)}" + else: + # If inspect.signature fails, use a maximally permissive type. + any_type = self.import_object("typing", "Any") + sig_str = f"{name}(*args, **kwargs) -> {any_type}" # Potentially copy docstring from the implementation function docstr = fno.__doc__