[issue39504] inspect.signature throws RuntimeError on select.epoll.register

Shantanu report at bugs.python.org
Thu Jan 30 21:12:38 EST 2020


New submission from Shantanu <hauntsaninja at gmail.com>:

>From the documentation of `inspect.signature` it seems we should never have a RuntimeError:
```
Raises ValueError if no signature can be provided, and TypeError if that type of object is not supported.
```

The easiest thing to do is just turn the RuntimeError into a ValueError... but I'll take a deeper look and see if I can actually fix this.

Traceback below:
```
>>> import sys
>>> sys.version
'3.8.0 (default, Nov 14 2019, 22:29:45) \n[GCC 5.4.0 20160609]'
>>> import inspect
>>> import select
>>> inspect.signature(select.epoll.register)
Traceback (most recent call last):
  File "/usr/lib/python3.8/inspect.py", line 2004, in wrap_value
    value = eval(s, module_dict)
  File "<string>", line 1, in <module>
NameError: name 'EPOLLIN' is not defined
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/usr/lib/python3.8/inspect.py", line 2007, in wrap_value
    value = eval(s, sys_module_dict)
  File "<string>", line 1, in <module>
NameError: name 'EPOLLIN' is not defined
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3.8/inspect.py", line 3093, in signature
    return Signature.from_callable(obj, follow_wrapped=follow_wrapped)
  File "/usr/lib/python3.8/inspect.py", line 2842, in from_callable
    return _signature_from_callable(obj, sigcls=cls,
  File "/usr/lib/python3.8/inspect.py", line 2296, in _signature_from_callable
    return _signature_from_builtin(sigcls, obj,
  File "/usr/lib/python3.8/inspect.py", line 2109, in _signature_from_builtin
    return _signature_fromstr(cls, func, s, skip_bound_arg)
  File "/usr/lib/python3.8/inspect.py", line 2057, in _signature_fromstr
    p(name, default)
  File "/usr/lib/python3.8/inspect.py", line 2039, in p
    default_node = RewriteSymbolics().visit(default_node)
  File "/usr/lib/python3.8/ast.py", line 360, in visit
    return visitor(node)
  File "/usr/lib/python3.8/ast.py", line 445, in generic_visit
    new_node = self.visit(old_value)
  File "/usr/lib/python3.8/ast.py", line 360, in visit
    return visitor(node)
  File "/usr/lib/python3.8/ast.py", line 445, in generic_visit
    new_node = self.visit(old_value)
  File "/usr/lib/python3.8/ast.py", line 360, in visit
    return visitor(node)
  File "/usr/lib/python3.8/inspect.py", line 2031, in visit_Name
    return wrap_value(node.id)
  File "/usr/lib/python3.8/inspect.py", line 2009, in wrap_value
    raise RuntimeError()
RuntimeError
```

----------
components: Library (Lib)
messages: 361089
nosy: hauntsaninja
priority: normal
severity: normal
status: open
title: inspect.signature throws RuntimeError on select.epoll.register

_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue39504>
_______________________________________


More information about the Python-bugs-list mailing list