Name | anki_poker_master JSON |
Version |
0.2.0
JSON |
| download |
home_page | |
Summary | |
upload_time | 2024-03-04 11:48:40 |
maintainer | |
docs_url | None |
author | Omar Kohl |
requires_python | >=3.8,<4.0 |
license | |
keywords |
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# AnkiPokerMaster
Python tool to generate one or multiple Anki decks for memorizing Texas Hold'em
Poker preflop ranges.
Anki is a powerful tool to learn and memorize useful information. It is
available for Windows, Linux, macOS, Android and iOS. [Official
website](https://apps.ankiweb.net/) and [inspiring
examples](https://augmentingcognition.com/ltm.html) of the power of Anki.
You can read some more about Poker preflop ranges
[here](https://www.splitsuit.com/poker-ranges-reading) and
[here](https://pokertrainer.se/preflop-introduction/).
## Usage
Write a YAML file to define all scenarios (situations) you want to memorize,
for example "Opening as Button in a 100BB Cash game". AnkiPokerMaster will
generate Anki decks based solely on this scenario.yml file and you will get
Anki cards like the screenshots below.
```yaml
- game: "Cash 100BB 6P"
position: "LJ"
scenario: "Opening"
ranges:
Raise: "A2s+, K5s+, Q9s+, JTs, T9s, ATo+, KJo+, QJo+, 77+"
source: pokertrainer.se
```
See a more complex example here:
[example_scenarios.yml](https://github.com/omarkohl/anki-poker-master/blob/main/example_scenarios.yml)
Execute `anki-poker-master --help` to see usage information.
### Ranges
Some examples for how ranges can be specified:
* **77+** (All pairs 77 and up i.e. 77, 88, 99, ...)
* **77-** (All pairs 77 and below i.e. 77, 66, 55, ...)
* **A2s+** (A2 suited and up excluding pairs i.e. A2s, A3s, A4s, ...)
* **KT+** (KT and up both suited and offsuit excluding pairs i.e. KTs, KJs, KQs,
KTo, KJo and KQo)
* **23s** (A specific hand i.e. 23s)
* **95s-98s** (Hands between i.e. 95s, 96s, 97s and 98s)
* Combining any of the above separated by commas
### Screenshots
When opening as the small blind, how should you play King Three offsuit?
<img src="https://github.com/omarkohl/anki-poker-master/blob/main/screenshots/k3_q.jpg?raw=true" width="200">
Answer:
<img src="https://github.com/omarkohl/anki-poker-master/blob/main/screenshots/k3_a.jpg?raw=true" width="200">
When opening as Lojack, how should you play Jack and another suited card?
<img src="https://github.com/omarkohl/anki-poker-master/blob/main/screenshots/jx_q.jpg?raw=true" width="200">
Answer:
<img src="https://github.com/omarkohl/anki-poker-master/blob/main/screenshots/jx_a.jpg?raw=true" width="200">
What table position does the following range table correspond to? (this question is a memorization aid)
<img src="https://github.com/omarkohl/anki-poker-master/blob/main/screenshots/position_q.jpg?raw=true" width="200">
Answer:
<img src="https://github.com/omarkohl/anki-poker-master/blob/main/screenshots/position_a.jpg?raw=true" width="200">
Fill in the blank cells in this range table.
<img src="https://github.com/omarkohl/anki-poker-master/blob/main/screenshots/quadrant_q.jpg?raw=true" width="200">
Note that here it's possible to mark cells using the mouse or finger
(touchscreen) as a memory aid before flipping to the answer side.
<img src="https://github.com/omarkohl/anki-poker-master/blob/main/screenshots/quadrant_q_marking.jpg?raw=true" width="200">
Answer:
<img src="https://github.com/omarkohl/anki-poker-master/blob/main/screenshots/quadrant_a.jpg?raw=true" width="200">
Of course also with dark mode: How should you open with QQ as Hijack?
<img src="https://github.com/omarkohl/anki-poker-master/blob/main/screenshots/qq_q.jpg?raw=true" width="200">
Answer:
<img src="https://github.com/omarkohl/anki-poker-master/blob/main/screenshots/qq_a.jpg?raw=true" width="200">
## Develop
Check the repository on GitHub: https://github.com/omarkohl/anki-poker-master
```bash
poetry install
poetry run anki-poker-master
# poetry shell
```
## Tests
```bash
poetry run pytest
```
Most of the tests generate output that is compared with golden files (i.e.
files containing the expected output). This has the big advantage that you can
look at these files easily to see what the functions actually generate. Looking
at the HTML files in a browser gives you the full experience.
If you modify the code instead of having to manually fix all golden files you
can run the following command to overwrite them all. Obviously you should only
do this if you understand what you are changing.
```bash
poetry run pytest --update-golden
```
Occasionally you should delete all golden files and re-generate them to make
sure there are no orphaned files lying around because a test was renamed or
deleted:
```bash
rm -rf tests/golden
poetry run pytest --update-golden
```
### Manual tests
Currently some tests are not automated because they would require programatically
evaluating Anki decks. For now doing it manually is simpler. The tests will
interactively guide you.
```bash
APM_MANUAL_TESTS=true poetry run pytest tests/test_manual.py -s
```
## Support
Raise any issues on [GitHub](https://github.com/omarkohl/anki-poker-master/issues/new/choose).
## License
Unless otherwise specified, the code is under the [MIT license](https://github.com/omarkohl/anki-poker-master/blob/main/LICENSE) and
the card images are published under
[LGPL 3.0](https://www.gnu.org/licenses/lgpl-3.0.html.en) (see below for original
source of the card images).
## Credits
### Playing Cards
Slightly modified (see list of changes in
[playing-cards.svg](https://github.com/omarkohl/anki-poker-master/blob/main/playing-cards.svg)) from original source:
Vector Playing Cards 3.2
https://totalnonsense.com/open-source-vector-playing-cards/
Copyright 2011,2021 – Chris Aguilar – conjurenation@gmail.com
Licensed under: LGPL 3.0 - https://www.gnu.org/licenses/lgpl-3.0.html
### Inspiration
* https://github.com/TheJakeSchmidt/anki-poker-generator
* https://pokercoaching.com/range-analyzer/
Raw data
{
"_id": null,
"home_page": "",
"name": "anki_poker_master",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.8,<4.0",
"maintainer_email": "",
"keywords": "",
"author": "Omar Kohl",
"author_email": "omarkohl@posteo.net",
"download_url": "https://files.pythonhosted.org/packages/a4/ad/e94f18d929283e72b73123e616074288d32a1545d1181b74c068f3ddf137/anki_poker_master-0.2.0.tar.gz",
"platform": null,
"description": "# AnkiPokerMaster\n\nPython tool to generate one or multiple Anki decks for memorizing Texas Hold'em\nPoker preflop ranges.\n\nAnki is a powerful tool to learn and memorize useful information. It is\navailable for Windows, Linux, macOS, Android and iOS. [Official\nwebsite](https://apps.ankiweb.net/) and [inspiring\nexamples](https://augmentingcognition.com/ltm.html) of the power of Anki.\n\nYou can read some more about Poker preflop ranges\n[here](https://www.splitsuit.com/poker-ranges-reading) and\n[here](https://pokertrainer.se/preflop-introduction/).\n\n\n## Usage\n\nWrite a YAML file to define all scenarios (situations) you want to memorize,\nfor example \"Opening as Button in a 100BB Cash game\". AnkiPokerMaster will\ngenerate Anki decks based solely on this scenario.yml file and you will get\nAnki cards like the screenshots below.\n\n```yaml\n- game: \"Cash 100BB 6P\"\n position: \"LJ\"\n scenario: \"Opening\"\n ranges:\n Raise: \"A2s+, K5s+, Q9s+, JTs, T9s, ATo+, KJo+, QJo+, 77+\"\n source: pokertrainer.se\n```\n\nSee a more complex example here:\n[example_scenarios.yml](https://github.com/omarkohl/anki-poker-master/blob/main/example_scenarios.yml)\n\nExecute `anki-poker-master --help` to see usage information.\n\n\n### Ranges\n\nSome examples for how ranges can be specified:\n\n* **77+** (All pairs 77 and up i.e. 77, 88, 99, ...)\n* **77-** (All pairs 77 and below i.e. 77, 66, 55, ...)\n* **A2s+** (A2 suited and up excluding pairs i.e. A2s, A3s, A4s, ...)\n* **KT+** (KT and up both suited and offsuit excluding pairs i.e. KTs, KJs, KQs,\n KTo, KJo and KQo)\n* **23s** (A specific hand i.e. 23s)\n* **95s-98s** (Hands between i.e. 95s, 96s, 97s and 98s)\n* Combining any of the above separated by commas\n\n\n### Screenshots\n\nWhen opening as the small blind, how should you play King Three offsuit?\n\n<img src=\"https://github.com/omarkohl/anki-poker-master/blob/main/screenshots/k3_q.jpg?raw=true\" width=\"200\">\n\nAnswer:\n\n<img src=\"https://github.com/omarkohl/anki-poker-master/blob/main/screenshots/k3_a.jpg?raw=true\" width=\"200\">\n\nWhen opening as Lojack, how should you play Jack and another suited card?\n\n<img src=\"https://github.com/omarkohl/anki-poker-master/blob/main/screenshots/jx_q.jpg?raw=true\" width=\"200\">\n\nAnswer:\n\n<img src=\"https://github.com/omarkohl/anki-poker-master/blob/main/screenshots/jx_a.jpg?raw=true\" width=\"200\">\n\nWhat table position does the following range table correspond to? (this question is a memorization aid)\n\n<img src=\"https://github.com/omarkohl/anki-poker-master/blob/main/screenshots/position_q.jpg?raw=true\" width=\"200\">\n\nAnswer:\n\n<img src=\"https://github.com/omarkohl/anki-poker-master/blob/main/screenshots/position_a.jpg?raw=true\" width=\"200\">\n\nFill in the blank cells in this range table.\n\n<img src=\"https://github.com/omarkohl/anki-poker-master/blob/main/screenshots/quadrant_q.jpg?raw=true\" width=\"200\">\n\nNote that here it's possible to mark cells using the mouse or finger\n(touchscreen) as a memory aid before flipping to the answer side.\n\n<img src=\"https://github.com/omarkohl/anki-poker-master/blob/main/screenshots/quadrant_q_marking.jpg?raw=true\" width=\"200\">\n\nAnswer:\n\n<img src=\"https://github.com/omarkohl/anki-poker-master/blob/main/screenshots/quadrant_a.jpg?raw=true\" width=\"200\">\n\n\nOf course also with dark mode: How should you open with QQ as Hijack?\n\n<img src=\"https://github.com/omarkohl/anki-poker-master/blob/main/screenshots/qq_q.jpg?raw=true\" width=\"200\">\n\nAnswer:\n\n<img src=\"https://github.com/omarkohl/anki-poker-master/blob/main/screenshots/qq_a.jpg?raw=true\" width=\"200\">\n\n\n## Develop\n\nCheck the repository on GitHub: https://github.com/omarkohl/anki-poker-master\n\n```bash\npoetry install\npoetry run anki-poker-master\n# poetry shell\n```\n\n## Tests\n\n```bash\npoetry run pytest\n```\n\nMost of the tests generate output that is compared with golden files (i.e.\nfiles containing the expected output). This has the big advantage that you can\nlook at these files easily to see what the functions actually generate. Looking\nat the HTML files in a browser gives you the full experience.\n\nIf you modify the code instead of having to manually fix all golden files you\ncan run the following command to overwrite them all. Obviously you should only\ndo this if you understand what you are changing.\n\n```bash\npoetry run pytest --update-golden\n```\n\nOccasionally you should delete all golden files and re-generate them to make\nsure there are no orphaned files lying around because a test was renamed or\ndeleted:\n\n```bash\nrm -rf tests/golden\npoetry run pytest --update-golden\n```\n\n\n### Manual tests\n\nCurrently some tests are not automated because they would require programatically\nevaluating Anki decks. For now doing it manually is simpler. The tests will\ninteractively guide you.\n\n```bash\nAPM_MANUAL_TESTS=true poetry run pytest tests/test_manual.py -s\n```\n\n\n## Support\n\nRaise any issues on [GitHub](https://github.com/omarkohl/anki-poker-master/issues/new/choose).\n\n\n## License\n\nUnless otherwise specified, the code is under the [MIT license](https://github.com/omarkohl/anki-poker-master/blob/main/LICENSE) and\nthe card images are published under\n[LGPL 3.0](https://www.gnu.org/licenses/lgpl-3.0.html.en) (see below for original\nsource of the card images).\n\n\n## Credits\n\n### Playing Cards\n\nSlightly modified (see list of changes in\n[playing-cards.svg](https://github.com/omarkohl/anki-poker-master/blob/main/playing-cards.svg)) from original source:\n\nVector Playing Cards 3.2 \nhttps://totalnonsense.com/open-source-vector-playing-cards/ \nCopyright 2011,2021 \u2013 Chris Aguilar \u2013 conjurenation@gmail.com \nLicensed under: LGPL 3.0 - https://www.gnu.org/licenses/lgpl-3.0.html\n\n\n### Inspiration\n\n* https://github.com/TheJakeSchmidt/anki-poker-generator\n* https://pokercoaching.com/range-analyzer/\n",
"bugtrack_url": null,
"license": "",
"summary": "",
"version": "0.2.0",
"project_urls": null,
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "260cdb81aca03617061a5b245b8bd7dd5ed395275751c432ad06f34029102f40",
"md5": "96e4c10c43c531cc2202941b49945c96",
"sha256": "5c4a0828142d484ee17ac283955e920857f3c3c1609b09d9990baa43f11d056a"
},
"downloads": -1,
"filename": "anki_poker_master-0.2.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "96e4c10c43c531cc2202941b49945c96",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8,<4.0",
"size": 1277178,
"upload_time": "2024-03-04T11:48:36",
"upload_time_iso_8601": "2024-03-04T11:48:36.865270Z",
"url": "https://files.pythonhosted.org/packages/26/0c/db81aca03617061a5b245b8bd7dd5ed395275751c432ad06f34029102f40/anki_poker_master-0.2.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "a4ade94f18d929283e72b73123e616074288d32a1545d1181b74c068f3ddf137",
"md5": "6ecfc9f464d772891e8a1a033b6c31e1",
"sha256": "a3e08c8148a349bd25824e6accd885b74c121053b6fbbef3f64dc936d68666ee"
},
"downloads": -1,
"filename": "anki_poker_master-0.2.0.tar.gz",
"has_sig": false,
"md5_digest": "6ecfc9f464d772891e8a1a033b6c31e1",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8,<4.0",
"size": 1253957,
"upload_time": "2024-03-04T11:48:40",
"upload_time_iso_8601": "2024-03-04T11:48:40.426124Z",
"url": "https://files.pythonhosted.org/packages/a4/ad/e94f18d929283e72b73123e616074288d32a1545d1181b74c068f3ddf137/anki_poker_master-0.2.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-03-04 11:48:40",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "anki_poker_master"
}