Adds a GUI. I've used the default white theme from dearpygui, which is not the prettiest, but I don't have time to work on making it more appealing atm.
Sample:
Some niceties:
It should be much harder to screw up the config for casual users
Added a check of CPU and RAM data at runtime to preload engine threads and hash with sensible defaults (half of the virtual cores, half of available RAM)
Reworded and extended some tips, in particular soundness limit, move loss limit, and ignore loss limit
Added some basic validation before starting the main logic, e.g. validate PGNs
There's a basic utility for displaying status to the end user - currently I use it only to display errors, what position the engine is evaluating, or that we are waiting due to Lichess rate limiting us
I fixed some tiny bugs and warnings suggested by PyCharm, and removed some unused fields and methods
I tried to leave the main logic as intact as possible, especially since this PR is already huge. Thus changes to existing files are mostly about passing new settings.
What I'd like help with:
Checking if I didn't say anything dumb or incorrect in the tooltips
Checking if the defaults for settings are sensible, in particular for move selection
Some basic testing - if you can generate a repertoire using your private settings and confirm that saving/loading settings from file works (those options are accessible under the Settings menu item) it should confirm everything works fine :)
Any feedback about the UX, I never work with UIs so some things are likely unintuitive (e.g. I hate the file picker, it looks too hackerish, but it's the only one built into dearpygui)
Adds a GUI. I've used the default white theme from dearpygui, which is not the prettiest, but I don't have time to work on making it more appealing atm.
Sample:
Some niceties:
I tried to leave the main logic as intact as possible, especially since this PR is already huge. Thus changes to existing files are mostly about passing new settings.
What I'd like help with: