%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 - 0.5.2-1 - Package Spec generated