New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
random.Random(False) weird error #84099
Comments
Python 3.8: >>> import random
>>> r = random.Random(False)
>>> r
<random.Random object at 0x5611716e8b00> Python 3.9 alpha 4: >>> import random
>>> r = random.Random(False)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib64/python3.9/random.py", line 100, in __init__
self.seed(x)
File "/usr/lib64/python3.9/random.py", line 163, in seed
super().seed(a)
TypeError: descriptor '__abs__' of 'int' object needs an argument This arose in the context of Fedora builds with python 3.9. The networkx project reversed two arguments, resulting in False being passed to random.Random instead of the intended seed value. I'm glad we noticed the problem with 3.9 so the intended value will now be used, but that TypeError message doesn't really indicate the nature of the problem. Could you arrange for a better message? |
Possibly related to https://bugs.python.org/issue32554 #15382 Deprecate hashing arbitrary types in random.seed() |
The lines here look odd to me: cpython/Modules/_randommodule.c Lines 290 to 291 in 363fab8
Should that 0 in the PyObject_Vectorcall be a 1 instead? |
Right. I proposed PR 18897 to fix it and add an unit test on seed(False). |
Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.
Show more details
GitHub fields:
bugs.python.org fields:
The text was updated successfully, but these errors were encountered: