chesshound 0.1.0

A library for supporting statistical analysis of sets of chess games.
Documentation
# Chesshound

Chesshound is a rust library and cli tool that is intended for analyzing player patterns within any set of games. Its main goals include:

- "At a glance" analysis of player mistakes through the use of opening statistics and blunder patterns.
- Easy scraping of player games from chess.com or lichess.org based on useful criteria such as time period.
- Comparison of user statistics to players at a similar rating level.
- Preprocessing of game data such as annotating with engine analysis.
- Identification of the most important areas of improvement for rating increases.

Thus, the currently planned features are:

- [x] Opening explorer that works with arbitrary sets of games, rather than all games within the account as with chess.com
- [ ] An accessible wrapper around the chess.com and lichess APIs for gathering player game data
- [ ] Sampling functions that allow the user to collect data from a wider variety of players
- [ ] Functions to take useful statistics on sets of games, such as win rate, average accuracy, etc.
- [ ] An API to compare user statistics with players of similar rating level, and integration of this API within the Chesshound CLI.
- [ ] A rating forecaster to let users know where they currently stand against players at their level.
- [ ] Engine annotation of games, and the ability to turn annotated game sets into analysis friendly formats such as CSVs.
- [ ] Rating prediction with recently played games as input.
- [ ] Annotating engine decisions with explanations.
- [ ] Causal modeling between explained engine decisions and rating.

Farther down the road is a goal to make the application more accessible by:

- Creating a python wrapper around library functionality.
- Using the python library to implement a GraphQL service for the application.
- Designing a ReactJS frontend for end users who wish to analyze their games or use the service to extract game data.

## Contributing

The project will be open to contributions once it has reached the 1.0.0 release.