Skip to main content

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. Requires Python 3.11 or later.

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pious-0.0.0.dev13.tar.gz (7.2 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pious-0.0.0.dev13-py3-none-any.whl (7.6 MB view details)

Uploaded Python 3

File details

Details for the file pious-0.0.0.dev13.tar.gz.

File metadata

  • Download URL: pious-0.0.0.dev13.tar.gz
  • Upload date:
  • Size: 7.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.9

File hashes

Hashes for pious-0.0.0.dev13.tar.gz
Algorithm Hash digest
SHA256 e6a2b7845f15d239e3e378765bc536a9136b06d3d9e2a74b7f1371d9d38f8ef9
MD5 e7c7210e3b84bbbb890b7ee6858a0b1f
BLAKE2b-256 3ed0997a124afb2de44f5ac0e4767a4bcfaaa4b981f0275b888f36f9557bb879

See more details on using hashes here.

File details

Details for the file pious-0.0.0.dev13-py3-none-any.whl.

File metadata

  • Download URL: pious-0.0.0.dev13-py3-none-any.whl
  • Upload date:
  • Size: 7.6 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.9

File hashes

Hashes for pious-0.0.0.dev13-py3-none-any.whl
Algorithm Hash digest
SHA256 c5f8d693e059242816b3c2155576f529582cd3c88fb1e4c135a06e91a52b6b32
MD5 2407f303481abe5e2fb8b648bf9fd7d2
BLAKE2b-256 6d501a572c76c1a2ea8329dd87a8d48927e08087d44cc5d97042b61053e754f6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page