The PioSOLVER Utility Suite
Project description
Pious: The Pio Utility Suite
Pious provide a Python wrapper for a PioSOLVER instance and provides convenience functions and abstractions to make working with PioSOLVER easier.
Warning: This library is still under construction. All interfaces, classes, files, etc. will be changed. I'm open sourcing this for feedback/collaboration.
Install
Install with pip install pious
Solver Interface
Pious provides pious.pio.solver.Solver
to wrap a PioSOLVER instance. This can
be constructed directly, but we recommend using pious.pio.util.make_solver()
:
# examples/load_tree.py
from pious.pio.util import make_solver
from pious.pio.resources import get_test_tree
solver = make_solver()
solver.load_tree(get_test_tree()) # Replace with your tree
solver.load_all_nodes() # Required for partial saves in Pio3
tree_info = solver.show_tree_info()
print(f"Board: {tree_info['Board']}")
print(f"Pot: {tree_info['Pot']}")
print(f"EffectiveStacks: {tree_info['EffectiveStacks']}")
lines = solver.show_all_lines()
print("Last 10 lines:", lines[-10:])
Configuration
By default make_solver
will try to invoke C:\PioSOLVER\PioSOLVER3-edge.exe
.
You can configure default behavior by placing a pious.toml
in your home
directory. Here is a sample pious.toml
:
[pio]
install_directory="C:\\PioSOLVER"
pio_version_no="2"
pio_version_type="pro"
Lines
PioSOLVER deals in lines (e.g., show_all_lines
), such as
r:0:c:c:b300:b850:c
. Pious provides a high-level wrapper, Line
, around
low-level Pio lines that gives many quality-of-life improvements. See
examples\line_example.py
for details:
from pious.pio.line import Line
# ...
line = Line("r:0:c:b12:c:c:b77:b221:c:c")
print("Line:", line)
print(" IP? ", line.is_ip())
print(" Current Street? ", line.current_street())
print(" Actions: ", line.actions)
print(" Streets as Actions: ", line.streets_as_actions)
print(" Streets as Lines: ", line.streets_as_lines)
print(" Facing Bet? ", line.is_facing_bet())
Aggregation Reports
To use the AggregationReport
, start a python
session from the python
directory, and import the aggregation report module. Then create a new
AggregationReport
by passing in the path to the folder containing the
AggregationReport
(and optionally including the path to the solve database
that you used to generate the aggregation report).
See examples\aggregation_example.py
for more info:
# Excerpt from examples\aggregation_example.py
from pious.pio.aggregation import AggregationReport
import pious.pio.resources as resources
report = AggregationReport(get_aggregation_root(), get_database_root())
print(report)
print(report.describe())
report.ioff() # turn off matplotlib's interactive mode
report.plot() # exit report to continue
report.filter("r1 == 14") # filter for ace high boards
report.plot()
report.reset()
report.filter("r1 < 14 and flushdraw") # non ace high AND flushdraw boards
report.plot()
You can run r.plot()
to get a nice visualization, r.filter()
to focus only
on boards you're interested in, and r.reset()
to start over again.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file pious-0.0.0.dev7.tar.gz
.
File metadata
- Download URL: pious-0.0.0.dev7.tar.gz
- Upload date:
- Size: 6.6 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4a94d7f63925ef34cf7bc614e926d101cfbc4a502129f070c59e19f4f932cc4d |
|
MD5 | f3edd097b3056d7d62f9a0605f181bda |
|
BLAKE2b-256 | 5957192ac2e20d604a9cf43bde892f0fbcec1da6a97bd48ff89de70df5fb9a5c |
File details
Details for the file pious-0.0.0.dev7-py3-none-any.whl
.
File metadata
- Download URL: pious-0.0.0.dev7-py3-none-any.whl
- Upload date:
- Size: 6.7 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1d011c24ba336ee9e0ccb9decdb116673407aeefe6c5c4745535196b4bea3047 |
|
MD5 | 1da48e3ef3b6f7627b8d1e8c6491e482 |
|
BLAKE2b-256 | cff18b9685381589d522e35a3e871cbeb53c38b863f334590d0acbc59d693141 |