summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-05-31 03:41:19 +0000
committerCoprDistGit <infra@openeuler.org>2023-05-31 03:41:19 +0000
commitcdd134d615edf7e4f7f19ea279357e1e32f32262 (patch)
tree4d16249901d9f562bfe91bb2cad1c988d3272a66
parent33ad576ddb45c80115188969d10cf3062e012515 (diff)
automatic import of python-phevaluator
-rw-r--r--.gitignore1
-rw-r--r--python-phevaluator.spec277
-rw-r--r--sources1
3 files changed, 279 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..8a8ef9b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -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)
+[![GitHub Workflow Status](https://img.shields.io/github/workflow/status/HenryRLee/PokerHandEvaluator/CI?color=green&logo=github)](https://github.com/HenryRLee/PokerHandEvaluator/actions/workflows/ci.yml)
+[![PyPI version](https://badge.fury.io/py/phevaluator.svg)](https://badge.fury.io/py/phevaluator)
+[![PyPI downloads](https://img.shields.io/pypi/dm/phevaluator)](https://shields.io/category/downloads)
+[![Apache_2.0](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](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)
+[![GitHub Workflow Status](https://img.shields.io/github/workflow/status/HenryRLee/PokerHandEvaluator/CI?color=green&logo=github)](https://github.com/HenryRLee/PokerHandEvaluator/actions/workflows/ci.yml)
+[![PyPI version](https://badge.fury.io/py/phevaluator.svg)](https://badge.fury.io/py/phevaluator)
+[![PyPI downloads](https://img.shields.io/pypi/dm/phevaluator)](https://shields.io/category/downloads)
+[![Apache_2.0](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](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)
+[![GitHub Workflow Status](https://img.shields.io/github/workflow/status/HenryRLee/PokerHandEvaluator/CI?color=green&logo=github)](https://github.com/HenryRLee/PokerHandEvaluator/actions/workflows/ci.yml)
+[![PyPI version](https://badge.fury.io/py/phevaluator.svg)](https://badge.fury.io/py/phevaluator)
+[![PyPI downloads](https://img.shields.io/pypi/dm/phevaluator)](https://shields.io/category/downloads)
+[![Apache_2.0](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](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
diff --git a/sources b/sources
new file mode 100644
index 0000000..4482122
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+1b0adbe50dec4010ea4243f81f052df5 phevaluator-0.5.2.tar.gz