pyfa-org / eos

Eos - library for modeling EVE online ship fits
GNU Lesser General Public License v3.0
60 stars 19 forks source link

Structures Not Supported by Eos #19

Open DarkFenX opened 8 years ago

DarkFenX commented 8 years ago

Posted by @Ebag333

Eos does not like citadels.

Keepstar: fit.ship = Ship(35834)

Since Citadels are essentially ships in game, and use the same fitting tool, can we just treat them like ships? Seems like that path of least resistance to me.

Connected to pydev debugger (build 162.1967.10)
Traceback (most recent call last):
  File "C:\Python34\lib\site-packages\eos\data\cache_handler\json_cache_handler.py", line 89, in get_type
    type_ = self.__type_obj_cache[type_id]
  File "C:\Python34\lib\weakref.py", line 131, in __getitem__
    o = self.data[key]()
KeyError: 35834

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Python34\lib\site-packages\eos\data\cache_handler\json_cache_handler.py", line 95, in get_type
    type_data = self.__type_data_cache[json_type_id]
KeyError: '35834'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\Program Files (x86)\JetBrains\PyCharm Community Edition 2016.2.3\helpers\pydev\pydevd.py", line 1580, in <module>
    globals = debugger.run(setup['file'], None, None, is_module)
  File "C:\Program Files (x86)\JetBrains\PyCharm Community Edition 2016.2.3\helpers\pydev\pydevd.py", line 964, in run
    pydev_imports.execfile(file, globals, locals)  # execute the script
  File "C:\Program Files (x86)\JetBrains\PyCharm Community Edition 2016.2.3\helpers\pydev\_pydev_imps\_pydev_execfile.py", line 18, in execfile
    exec(compile(contents+"\n", file, 'exec'), glob, loc)
  File "C:/Users/Ebag333/Documents/GitHub/pyfa-ng/pyfa.py", line 17, in <module>
    fit.ship = Ship(35834)  # Navy Typhoon
  File "C:\Python34\lib\site-packages\eos\fit\holder\container\single_onfit.py", line 57, in __set__
    instance._add_holder(new_holder)
  File "C:\Python34\lib\site-packages\eos\fit\fit.py", line 113, in _add_holder
    holder._fit = self
  File "C:\Python34\lib\site-packages\eos\fit\holder\mixin\holder\holder.py", line 59, in _fit
    self._refresh_source()
  File "C:\Python34\lib\site-packages\eos\fit\holder\mixin\holder\holder.py", line 78, in _refresh_source
    self.item = type_getter(self._type_id)
  File "C:\Python34\lib\site-packages\eos\data\cache_handler\json_cache_handler.py", line 97, in get_type
    raise TypeFetchError(type_id) from e
eos.data.cache_handler.exception.TypeFetchError: 35834
DarkFenX commented 8 years ago

Posted by @Ebag333

So it looks like for Citadels the type data being stripped out is the cause of this particular error.