- For consistency of return value, accessing `Puzzle.my_stats` will still raise `PuzzleUnsolvedError` unless you have solved *both* parts a and b.
0.8.4
- added `Puzzle.view()` method (opens detail page in webbrowser) - added experimental `Puzzle.my_stats` attribute (shows your completion time, rank, score)
0.8.3
- Improved the output look of the runner cosmetically
0.8.2
- better logging for users working with multiple auth tokens
0.8.1
- change tz provider from pytz to dateutil.tz https://blog.ganssle.io/articles/2018/03/pytz-fastest-footgun.html
0.8.0
- restructure single .py module into package distribution - added OOP-style interfaces for getting data and posting answers - add plugin support and aoc runner script