Merge Pyglet and persistence from jeremy_merge into master
@Erik @florian Laurent
I've done a manual merge from the branch 223_UpdateEditor_55_notebooks into a copy of master called jeremy_merge with various stuff from the last few months plus your changes from master. I would like to merge this back into master.
I've run the training on the branch with the "small_v0" in Florian's rig and all seems well AFAICT. (https://app.wandb.ai/masterscrat/flatland/runs/38lr3gsv)
I've done the merge manually with BeyondCompare (side by side comparison tool) rather than cryptic git commands, so I bring each change across myself. (the commit log would be in the 223_UpdateEditor_55_notebooks branch)
- moved persistence calls to msgpack and pickle out of rail_env and generators (the "*_from_file" methods) into a separate module
flatland.envs.persistence(there was something a bit broken with the duplicated msgpack code)
This needed some cyclic imports (rail_env imports generators, generators import persistence, persistence imports rail_env) which meant I needed to change the import statements a bit (to import modules rather than objects / classes from modules)
- Ability to save episode agent positions and actions in the env file. (Useful for imitation learning saving the OR solutions, and reconstructing agent behaviours, etc)
I haven't fixed all the tests but I believe I haven't broken any more (12 fails).
I haven't updated the notebooks because they are too unfocussed and superseded.