Currently API is not considered to be final (read as, what you see is stub for testing). Currently you can use engine following way: ------------------------------------------------------------------------------- from eos import * from eos.data.dataHandler.jsonDataHandler import JsonDataHandler dataHandler = JsonDataHandler('/path/to/phobos/data/dump/') engine = Eos(dataHandler, storagePath='~/path/to/logs/and/cache/', makeDefault=True) fit = Fit() fit.ship = Ship(11176) # Crow for skillId in skills: fit.skills.add(Skill(skillId, level=5)) fit.modules.high.equip(Module(13926, state=State.active, charge=Charge(27365))) # DG light missile launcher with DG scourge ammo fit.modules.high.equip(Module(13926, state=State.active, charge=Charge(27365))) # DG light missile launcher with DG scourge ammo fit.modules.high.equip(Module(13926, state=State.active, charge=Charge(27365))) # DG light missile launcher with DG scourge ammo fit.modules.med.equip(Module(19349, state=State.active)) # Gistii A-Type MWD fit.modules.med.equip(Module(14268, state=State.active)) # TS Web fit.modules.med.equip(Module(14244, state=State.active)) # Domi disruptor fit.modules.low.equip(Module(13937, state=State.online)) # DG ballistic control fit.modules.low.equip(Module(13937, state=State.online)) # DG ballistic control fit.modules.low.equip(Module(14127, state=State.online)) # Domi nanofiber fit.rigs.equip(Rig(31650)) # t2 rigor fit.rigs.equip(Rig(31650)) # t2 rigor fit.implants.add(Implant(19540)) # Snake Alpha fit.implants.add(Implant(19551)) # Snake Beta fit.implants.add(Implant(19553)) # Snake Gamma fit.implants.add(Implant(19554)) # Snake Delta fit.implants.add(Implant(19555)) # Snake Epsilon fit.implants.add(Implant(19556)) # Snake Omega fit.implants.add(Implant(3095)) # Agility hardwiring fit.implants.add(Implant(24663)) # Zor Hyper-Link fit.implants.add(Implant(3172)) # Light Missile damage hardwiring fit.implants.add(Implant(3140)) # Missile launcher rof hardwiring fit.boosters.add(Booster(3898)) # Quafe Zero fit.boosters.add(Booster(28672)) # Synth Crash fit.validate() ------------------------------------------------------------------------------- Attributes of any item are accessible via dictionary-like objects like crow.attributes, e.g.: >>fit.ship.attributes[37] # maxVelocity 5759.988204454497 Fit validation method currently raises exception if any fit check fails, its argument contains dictionary which explains what is wrong. If we replace domi nanofiber in above example with yet another BCS, following data will be returned: {<eos.fit.item.module.Module object at 0x432ba10>: {1: ResourceErrorData(output=187.5, totalUsage=200.535, holderConsumption=19.845000000000002)}, <eos.fit.item.module.Module object at 0x4331050>: {1: ResourceErrorData(output=187.5, totalUsage=200.535, holderConsumption=24.0)}, <eos.fit.item.module.Module object at 0x4331410>: {1: ResourceErrorData(output=187.5, totalUsage=200.535, holderConsumption=24.0)}, <eos.fit.item.module.Module object at 0x432bcb0>: {1: ResourceErrorData(output=187.5, totalUsage=200.535, holderConsumption=25.0)}, <eos.fit.item.module.Module object at 0x432b4d0>: {1: ResourceErrorData(output=187.5, totalUsage=200.535, holderConsumption=19.845000000000002)}, <eos.fit.item.module.Module object at 0x432bd10>: {1: ResourceErrorData(output=187.5, totalUsage=200.535, holderConsumption=25.0)}, <eos.fit.item.module.Module object at 0x432b950>: {1: ResourceErrorData(output=187.5, totalUsage=200.535, holderConsumption=19.845000000000002)}, <eos.fit.item.module.Module object at 0x4331170>: {1: ResourceErrorData(output=187.5, totalUsage=200.535, holderConsumption=24.0)}, <eos.fit.item.module.Module object at 0x432bfb0>: {1: ResourceErrorData(output=187.5, totalUsage=200.535, holderConsumption=19.0)}} Keys of dictionary are problematic modules (in this case, all CPU consumers on ship), values are dictionaries too, which list problems with given module. Keys of this dictionary are restriction IDs (eos.Restriction object), with 1 being CPU restriction; values contain detailed data about problem, in this case it's named tuple which shows ship CPU output, total CPU consumption and CPU use by current module. Different resstrictions contain different data, but in general format stays the same.