a5kin / xentica

GPU-accelerated engine for multi-dimensional cellular automata

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Initial version refactoring

a5kin opened this issue · comments

A collection of random issues coming to mind during code inspection.

  • Add abstract methods to Lattice base class
  • Add abstract methods to Neighborhood base class
  • Split Border into 2 abstract casses
  • Remove unused Property.declare_once() argument
  • Check the correctness of OrthogonalNeighborhood.neighbor_state
  • Move Lattice.is_off_board_code to Border
  • Merge core.base.topology.mixins and core.base.mixins

We've done a good job in refactoring, fixing most of pylint issues and making object model more consistent. Only 2 pylint categories were disabled in the process: 1) no-member, since it can not detect CellularAutomaton members generated by the metaclass, 2) too-few-public-methods, because experiment classes are holding "data" only, that's allowing them to be easily inherited.