# mini_LiTOY
Minimalist approach to the [LiTOY task sorting algorithm](https://github.com/thiswillbeyourgithub/LiTOY-aka-List-that-Outlives-You) based on [ELO scores](https://en.wikipedia.org/wiki/Elo_rating_system).
# Features
* Minimalist
* Statically typed via typeguard
* Made to be extensible
* Supports callbacks
# FAQ
### What is LiTOY?
[LiTOY](https://github.com/thiswillbeyourgithub/LiTOY-aka-List-that-Outlives-You) was a personal project. The idea is to dump all your TODOs in one place, then rank them using the mean ELO scores of question answer. The default questions are `Which is more important to you?` and `Which takes the less time?` but you can use anything you like instead!
### Why make mini_LiTOY?
mini_LiTOY's idea is to keep the code idea but this time in a minimalist python script. As long as the user takes care of storing the tasks in a text files, the LiTOY algorithm will update an output json (or toml) based on the score. The first use for this will be to rank my [Omnivore](https://github.com/omnivore-app/omnivore) reading queue by downloading titles of articles to read via their API, then uploading the ELO score as a label. This can be found in the examples folder.
# Usage
* `python -m pip install mini_LiTOY` or `python -m pip install git+https://github.com/thiswillbeyourgithub/mini_LiTOY.git`
* Then you can either launch it with `python -m mini_LiTOY [ARGS]` or use the alias `mlitoy [ARGS]`
* `mlitoy --input_file my_text_file.txt --output_path output_file.json`
## Notes
* each new (nonempty nor commented) line in input_file will be added to the input_file.json with the default values. Each answer from the user will update the json file.
* In case anything goes wrong, you can see the recovery files and logs using --verbose.
* You can use toml file format instead of json. Just use an `output_path` that ends with ".toml" instead of ".json".
## Examples
* To sort the elements by ELO score: `cat output_file.json | jq 'sort_by(.ELO)'`
Raw data
{
"_id": null,
"home_page": "https://github.com/thiswillbeyourgithub/mini_LiTOY",
"name": "mini-LiTOY",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.11",
"maintainer_email": null,
"keywords": "tasks, sorting, ELO, scoring, organization, smart, tool, productivity, litoy, list, life, learning, optimization",
"author": null,
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/ee/e3/52ca9afa2293d74f46aef282e702f5a8cd59bff75c6ba1a3210c893a31e9/mini_litoy-0.1.5.tar.gz",
"platform": null,
"description": "# mini_LiTOY\nMinimalist approach to the [LiTOY task sorting algorithm](https://github.com/thiswillbeyourgithub/LiTOY-aka-List-that-Outlives-You) based on [ELO scores](https://en.wikipedia.org/wiki/Elo_rating_system).\n\n# Features\n* Minimalist\n* Statically typed via typeguard\n* Made to be extensible\n* Supports callbacks\n\n# FAQ\n\n### What is LiTOY?\n[LiTOY](https://github.com/thiswillbeyourgithub/LiTOY-aka-List-that-Outlives-You) was a personal project. The idea is to dump all your TODOs in one place, then rank them using the mean ELO scores of question answer. The default questions are `Which is more important to you?` and `Which takes the less time?` but you can use anything you like instead!\n\n### Why make mini_LiTOY?\nmini_LiTOY's idea is to keep the code idea but this time in a minimalist python script. As long as the user takes care of storing the tasks in a text files, the LiTOY algorithm will update an output json (or toml) based on the score. The first use for this will be to rank my [Omnivore](https://github.com/omnivore-app/omnivore) reading queue by downloading titles of articles to read via their API, then uploading the ELO score as a label. This can be found in the examples folder.\n\n# Usage\n* `python -m pip install mini_LiTOY` or `python -m pip install git+https://github.com/thiswillbeyourgithub/mini_LiTOY.git`\n* Then you can either launch it with `python -m mini_LiTOY [ARGS]` or use the alias `mlitoy [ARGS]`\n* `mlitoy --input_file my_text_file.txt --output_path output_file.json`\n## Notes\n* each new (nonempty nor commented) line in input_file will be added to the input_file.json with the default values. Each answer from the user will update the json file.\n* In case anything goes wrong, you can see the recovery files and logs using --verbose.\n* You can use toml file format instead of json. Just use an `output_path` that ends with \".toml\" instead of \".json\".\n\n## Examples\n* To sort the elements by ELO score: `cat output_file.json | jq 'sort_by(.ELO)'`\n",
"bugtrack_url": null,
"license": "GPLv3",
"summary": "Minimalist LiTOY task sorting algorithm based on ELO scores",
"version": "0.1.5",
"project_urls": {
"Homepage": "https://github.com/thiswillbeyourgithub/mini_LiTOY"
},
"split_keywords": [
"tasks",
" sorting",
" elo",
" scoring",
" organization",
" smart",
" tool",
" productivity",
" litoy",
" list",
" life",
" learning",
" optimization"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "6925bcdb9109daf8f4e569ac6124aa21741c9896ac0d31e93135af65dcbed621",
"md5": "ca284ee28681fa18e1cca426a67b0dde",
"sha256": "c58d723bb67fbd86aac5fb0b90e680f7f991aedc9519cbb8aa5eacacb269f3e1"
},
"downloads": -1,
"filename": "mini_LiTOY-0.1.5-py3-none-any.whl",
"has_sig": false,
"md5_digest": "ca284ee28681fa18e1cca426a67b0dde",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.11",
"size": 23388,
"upload_time": "2024-12-28T14:56:00",
"upload_time_iso_8601": "2024-12-28T14:56:00.562238Z",
"url": "https://files.pythonhosted.org/packages/69/25/bcdb9109daf8f4e569ac6124aa21741c9896ac0d31e93135af65dcbed621/mini_LiTOY-0.1.5-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "eee352ca9afa2293d74f46aef282e702f5a8cd59bff75c6ba1a3210c893a31e9",
"md5": "d6546bcd3979e84e7727bd6479b537cf",
"sha256": "82bea5fd58d0da052c463b7f2d27729057a1f35aa3ead792fd821ccdee802aa8"
},
"downloads": -1,
"filename": "mini_litoy-0.1.5.tar.gz",
"has_sig": false,
"md5_digest": "d6546bcd3979e84e7727bd6479b537cf",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.11",
"size": 23077,
"upload_time": "2024-12-28T14:56:03",
"upload_time_iso_8601": "2024-12-28T14:56:03.356273Z",
"url": "https://files.pythonhosted.org/packages/ee/e3/52ca9afa2293d74f46aef282e702f5a8cd59bff75c6ba1a3210c893a31e9/mini_litoy-0.1.5.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-12-28 14:56:03",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "thiswillbeyourgithub",
"github_project": "mini_LiTOY",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "mini-litoy"
}