classification
Title: inspect.signature throws RuntimeError on select.epoll.register
Type: Stage:
Components: Library (Lib) Versions:
process
Status: open Resolution:
Dependencies: Superseder:
Assigned To: Nosy List: hauntsaninja
Priority: normal Keywords:

Created on 2020-01-31 02:12 by hauntsaninja, last changed 2020-01-31 02:12 by hauntsaninja.

Messages (1)
msg361089 - (view) Author: Shantanu (hauntsaninja) * Date: 2020-01-31 02:12
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
```
History
Date User Action Args
2020-01-31 02:12:38hauntsaninjacreate