[issue42165] closed (reopen with other issue)

2020-10-27 Thread Ronald Oussoren


Change by Ronald Oussoren :


--
stage:  -> resolved
status: open -> closed

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue42165] closed (reopen with other issue)

2020-10-27 Thread Eric V. Smith


Eric V. Smith  added the comment:

To answer the question:

> "can anyone explain why "pickle.loads(np.float64(0.34104))" prints "True"

You can use pickletools.dis:

>>> bytes(np.float64(0.34104))
b'\x88.\xa8o\x99\xd3\xd5?'

>>> pickletools.dis(bytes(np.float64(0.34104)))
0: \x88 NEWTRUE
1: .STOP

Note that pickle ignores anything after the end of the pickle (the STOP 
opcode), so only the first 2 bytes are being used.

As Serhiy said, it's just chance that the bytes returned by numpy happen to be 
a valid pickle for some values. You should not be trying to .loads() something 
that isn't a valid pickle stream. It's not clear why you think a byte string 
returned by np.float64 would be a valid pickle.

--
nosy: +eric.smith
stage: resolved -> 
status: closed -> open

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue42165] closed (reopen with other issue)

2020-10-27 Thread hyoxt121


Change by hyoxt121 :


--
title: Question about converting numpy float to bytes (bug??) -> closed (reopen 
with other issue)

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com