ntt / reverence

Python library for processing EVE Online cache and bulkdata.
Other
148 stars 36 forks source link

Reverence crashes on attempt to access values of mapSolarSystemContentCache table #24

Open DarkFenX opened 10 years ago

DarkFenX commented 10 years ago

This 'table' is FSD_MultiIndex which is fairly new to me; i tried to access it multiple ways:

1) .itervalues() 2) .iteritems() 3) various getters (Get, GetIfExists, get, [key])

All of them work, but once i get my hands on FSD_Object (e.g. the one keyed with 30000001 in this table), reverence crashes with following traceback:

Traceback (most recent call last):
  File "run_json.py", line 70, in <module>
    table_data = miner.get_table(table_name)
  File "/home/dfx/src/eve/phobos/miner/bulkdata.py", line 49, in get_table
    lines = EveNormalizer().run(bulk_table)
  File "/home/dfx/src/eve/phobos/miner/eve_normalize.py", line 36, in run
    data = self._route_object(eve_container)
  File "/home/dfx/src/eve/phobos/miner/eve_normalize.py", line 49, in _route_object
    return method(self, obj)
  File "/home/dfx/src/eve/phobos/miner/eve_normalize.py", line 147, in _tmp
    container[key] = self._route_object(value)
  File "/home/dfx/src/eve/phobos/miner/eve_normalize.py", line 49, in _route_object
    return method(self, obj)
  File "/home/dfx/src/eve/phobos/miner/eve_normalize.py", line 122, in _pythonize_fsdobj
    value = getattr(obj, key, None)
  File "/usr/local/lib/python2.7/dist-packages/reverence/fsd.py", line 745, in __getattr__
    return schema['loader'](self.__data__, self.__offset__ + off, schema)
  File "/usr/local/lib/python2.7/dist-packages/reverence/fsd.py", line 402, in __init__
    footerOffset = endOfFooter - _uint32(data, endOfFooter)
ValueError: _uint32_from requires a buffer of at least 4 bytes

Attempt to print object doesn't work either, although with different traceback.

ntt commented 10 years ago

yeah multi index is a bit.. yeaaaahh.. it'll probably take a while to fix this as they're complicated things.