I finally mustered up some motivation to make some improvements, though. I spent the last week straight overhauling the codebase. I unit tested all the major non-UI modules and while I was at it I refactored all the code for sanity and for PEP styling issues. This took way, way longer than adding new features (not surprising).
Since it's been a year I figured why not do this in style and make this a milestone 1.0.0 release.
- Unit tests (hopefully less bugs and less breaks in the future)
- Display transfer rates and total copy progress
- It's a little rough, and transfer rates are calculated in a very naive way, but it's better than nothing
- Warn users when a backup is going to delete old files from any backup drives
- Proper threading model
- Previously threads were killed on demand via a nasty kill/hack and it did not ensure consistent data, etc
- New model nicely requests thread death and long running thread processes have been refactored to comply
- Code clean up, PEP style conventions
- Migrate from Pyro3 -> Pyro4
- Pyro4 has async calls which is needed for the proper threading model mentioned above