Version cleanup
Suggested code changes to use AbstractVersion and its subclasses as designed.
common_constants moved to the Version specific classes that make the most use of them.
- could also have been moved to version_spin1.py version_spin2.py but the common usage would have been slower
Added version methods
- max_cores_per_router
- Do not use max_cores_per_chip as that could change based on a cfg setting
- max_links_per_router
- method created on the assumption the Spin2 value is not actually 6
- router_entry_class
The Version classes where not designed to default to any specific version or board type. The reasoning was
- For actual usage the cfg must specify the version to create the correct transceiver
- Test that depend on version should set it. Both as it is easy and clear that the test needs a version
If a default version is really desired (not recommended) change version_factory too default rather than error.
routing_entry_factory moved to router to avoid circular imports
set_config("Machine", "version" used instead of set_config("Machine", "versions" due to https://github.com/SpiNNakerManchester/SpiNNMachine/issues/310 and #3
Edited by Christian Brenninkmeijer