diff options
| author | CoprDistGit <infra@openeuler.org> | 2023-05-31 03:41:19 +0000 |
|---|---|---|
| committer | CoprDistGit <infra@openeuler.org> | 2023-05-31 03:41:19 +0000 |
| commit | cdd134d615edf7e4f7f19ea279357e1e32f32262 (patch) | |
| tree | 4d16249901d9f562bfe91bb2cad1c988d3272a66 | |
| parent | 33ad576ddb45c80115188969d10cf3062e012515 (diff) | |
automatic import of python-phevaluator
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | python-phevaluator.spec | 277 | ||||
| -rw-r--r-- | sources | 1 |
3 files changed, 279 insertions, 0 deletions
@@ -0,0 +1 @@ +/phevaluator-0.5.2.tar.gz diff --git a/python-phevaluator.spec b/python-phevaluator.spec new file mode 100644 index 0000000..767a6cd --- /dev/null +++ b/python-phevaluator.spec @@ -0,0 +1,277 @@ +%global _empty_manifest_terminate_build 0 +Name: python-phevaluator +Version: 0.5.2 +Release: 1 +Summary: PH Evaluator - an efficient Poker Hand Evaluator based on a Perfect Hash algorithm +License: Apache License, Version 2.0 +URL: https://github.com/HenryRLee/PokerHandEvaluator/ +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/a9/69/73f3f88cb529b8774a62488dcc4b2ae5e75871957a859e2fd80dacbbf81e/phevaluator-0.5.2.tar.gz +BuildArch: noarch + +Requires: python3-numpy + +%description +# PH Evaluator Python package (phevaluator) +[](https://github.com/HenryRLee/PokerHandEvaluator/actions/workflows/ci.yml) +[](https://badge.fury.io/py/phevaluator) +[](https://shields.io/category/downloads) +[](https://github.com/HenryRLee/PokerHandEvaluator/blob/master/python/LICENSE) + +## Description + +[PH Evaluator](https://github.com/HenryRLee/PokerHandEvaluator) is designed +for evaluating poker hands with more than 5 cards. Instead of traversing all +the combinations, it uses a perfect hash algorithm to get the hand strength +from a pre-computed hash table, which only costs very few CPU cycles and +considerably small memory (~100kb for the 7 card evaluation). With slight +modification, the same algorithm can be also applied to evaluating Omaha +poker hands. + +## Installation +The library requires Python 3. +- from release on PyPI + ```shell + pip install phevaluator + ``` +- from source code + ```shell + pip install . + ``` + +## Using the library +The main function is the `evaluate_cards` function. +```python +from phevaluator import evaluate_cards + +p1 = evaluate_cards("9c", "4c", "4s", "9d", "4h", "Qc", "6c") +p2 = evaluate_cards("9c", "4c", "4s", "9d", "4h", "2c", "9h") + +# Player 2 has a stronger hand +print(f"The rank of the hand in player 1 is {p1}") # 292 +print(f"The rank of the hand in player 2 is {p2}") # 236 +``` +The function can take both numbers and card strings (with a format like: 'Ah' or '2C'). Usage examples can be seen in `examples.py`. + +## Test +- The pre-calculated tables (`phevaluator.tables`) are tested by comparing them with the tables generated by test codes. +- The functionality of the evaluators is tested by comparing with the JSON files generated by the original C++ evaluator. +- The functionality of the other modules is tested by its purposes. + +```shell +python3 -m unittest discover -v +``` + +## Development +- install from source code with `editable mode` + ```shell + pip install -e . + ``` + The installed package reflects changes to files inside the `phevaluator` folder automatically. + +- recommended to format with [`black`](https://github.com/psf/black) before commit + + check where to correct (without formatting) + ```shell + black . --diff --color + ``` + format all + ```shell + black . + ``` + + + +%package -n python3-phevaluator +Summary: PH Evaluator - an efficient Poker Hand Evaluator based on a Perfect Hash algorithm +Provides: python-phevaluator +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-phevaluator +# PH Evaluator Python package (phevaluator) +[](https://github.com/HenryRLee/PokerHandEvaluator/actions/workflows/ci.yml) +[](https://badge.fury.io/py/phevaluator) +[](https://shields.io/category/downloads) +[](https://github.com/HenryRLee/PokerHandEvaluator/blob/master/python/LICENSE) + +## Description + +[PH Evaluator](https://github.com/HenryRLee/PokerHandEvaluator) is designed +for evaluating poker hands with more than 5 cards. Instead of traversing all +the combinations, it uses a perfect hash algorithm to get the hand strength +from a pre-computed hash table, which only costs very few CPU cycles and +considerably small memory (~100kb for the 7 card evaluation). With slight +modification, the same algorithm can be also applied to evaluating Omaha +poker hands. + +## Installation +The library requires Python 3. +- from release on PyPI + ```shell + pip install phevaluator + ``` +- from source code + ```shell + pip install . + ``` + +## Using the library +The main function is the `evaluate_cards` function. +```python +from phevaluator import evaluate_cards + +p1 = evaluate_cards("9c", "4c", "4s", "9d", "4h", "Qc", "6c") +p2 = evaluate_cards("9c", "4c", "4s", "9d", "4h", "2c", "9h") + +# Player 2 has a stronger hand +print(f"The rank of the hand in player 1 is {p1}") # 292 +print(f"The rank of the hand in player 2 is {p2}") # 236 +``` +The function can take both numbers and card strings (with a format like: 'Ah' or '2C'). Usage examples can be seen in `examples.py`. + +## Test +- The pre-calculated tables (`phevaluator.tables`) are tested by comparing them with the tables generated by test codes. +- The functionality of the evaluators is tested by comparing with the JSON files generated by the original C++ evaluator. +- The functionality of the other modules is tested by its purposes. + +```shell +python3 -m unittest discover -v +``` + +## Development +- install from source code with `editable mode` + ```shell + pip install -e . + ``` + The installed package reflects changes to files inside the `phevaluator` folder automatically. + +- recommended to format with [`black`](https://github.com/psf/black) before commit + + check where to correct (without formatting) + ```shell + black . --diff --color + ``` + format all + ```shell + black . + ``` + + + +%package help +Summary: Development documents and examples for phevaluator +Provides: python3-phevaluator-doc +%description help +# PH Evaluator Python package (phevaluator) +[](https://github.com/HenryRLee/PokerHandEvaluator/actions/workflows/ci.yml) +[](https://badge.fury.io/py/phevaluator) +[](https://shields.io/category/downloads) +[](https://github.com/HenryRLee/PokerHandEvaluator/blob/master/python/LICENSE) + +## Description + +[PH Evaluator](https://github.com/HenryRLee/PokerHandEvaluator) is designed +for evaluating poker hands with more than 5 cards. Instead of traversing all +the combinations, it uses a perfect hash algorithm to get the hand strength +from a pre-computed hash table, which only costs very few CPU cycles and +considerably small memory (~100kb for the 7 card evaluation). With slight +modification, the same algorithm can be also applied to evaluating Omaha +poker hands. + +## Installation +The library requires Python 3. +- from release on PyPI + ```shell + pip install phevaluator + ``` +- from source code + ```shell + pip install . + ``` + +## Using the library +The main function is the `evaluate_cards` function. +```python +from phevaluator import evaluate_cards + +p1 = evaluate_cards("9c", "4c", "4s", "9d", "4h", "Qc", "6c") +p2 = evaluate_cards("9c", "4c", "4s", "9d", "4h", "2c", "9h") + +# Player 2 has a stronger hand +print(f"The rank of the hand in player 1 is {p1}") # 292 +print(f"The rank of the hand in player 2 is {p2}") # 236 +``` +The function can take both numbers and card strings (with a format like: 'Ah' or '2C'). Usage examples can be seen in `examples.py`. + +## Test +- The pre-calculated tables (`phevaluator.tables`) are tested by comparing them with the tables generated by test codes. +- The functionality of the evaluators is tested by comparing with the JSON files generated by the original C++ evaluator. +- The functionality of the other modules is tested by its purposes. + +```shell +python3 -m unittest discover -v +``` + +## Development +- install from source code with `editable mode` + ```shell + pip install -e . + ``` + The installed package reflects changes to files inside the `phevaluator` folder automatically. + +- recommended to format with [`black`](https://github.com/psf/black) before commit + + check where to correct (without formatting) + ```shell + black . --diff --color + ``` + format all + ```shell + black . + ``` + + + +%prep +%autosetup -n phevaluator-0.5.2 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-phevaluator -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Wed May 31 2023 Python_Bot <Python_Bot@openeuler.org> - 0.5.2-1 +- Package Spec generated @@ -0,0 +1 @@ +1b0adbe50dec4010ea4243f81f052df5 phevaluator-0.5.2.tar.gz |
