-
Notifications
You must be signed in to change notification settings - Fork 7
Open
Description
$python3
Python 3.6.7 (default, Oct 22 2018, 11:32:17)
[GCC 8.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import luadata
>>> data={'infinity':'string'}
int(dat>>> print(data)
{'infinity': 'string'}
>>> ser=luadata.serialize(data, form=False)
rint(ser)
deser=luadat>>> print(ser)
{infinity="string"}
a.unseri>>> deser=luadata.unserialize(ser)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/ivan/.local/lib/python3.6/site-packages/luadata/io/read.py", line 159, in unserialize
return StreamData(src_data, 0).read_item()
File "/home/ivan/.local/lib/python3.6/site-packages/luadata/io/read.py", line 140, in read_item
return self.read_table()
File "/home/ivan/.local/lib/python3.6/site-packages/luadata/io/read.py", line 99, in read_table
item = self.read_item()
File "/home/ivan/.local/lib/python3.6/site-packages/luadata/io/read.py", line 140, in read_item
return self.read_table()
File "/home/ivan/.local/lib/python3.6/site-packages/luadata/io/read.py", line 104, in read_table
table[StreamData.format_key(item)] = self.read_item()
File "/home/ivan/.local/lib/python3.6/site-packages/luadata/io/read.py", line 33, in format_key
if key[0] == '[':
TypeError: 'float' object is not subscriptable
>>>
$ python3 -m pip show luadata
Name: luadata
Version: 0.2.1
Summary: Serialize and unserialize Python list & dictionary between Lua table.
Home-page: https://github.com/leafvmaple/luadata
Author: Zohar Lee
Author-email: leafvmaple@gmail.com
License: BSD License
Location: /home/ivan/.local/lib/python3.6/site-packages
Requires:
The string value "infinity" appears to being recognized as a float by python.
https://github.com/leafvmaple/luadata/blob/v0.2.1/luadata/io/read.py#L14-L19
My local fix was to explicitly detect and avoid this explicit case.
@staticmethod
def isfloat(string):
+ if string == "infinity":
+ return False
try:
float(string)
except ValueError:
return False
return True
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels