Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
77 commits
Select commit Hold shift + click to select a range
90cb55f
Add generated build support files to .gitignore
edwardchalstrey1 Jan 7, 2026
6a70eeb
fix differing path
edwardchalstrey1 Jan 7, 2026
7d03a2c
mock up catalog section of tutorial
edwardchalstrey1 Jan 7, 2026
b65bf9c
move game files into catalog
edwardchalstrey1 Jan 7, 2026
4a66d92
rename gamefiles dir
edwardchalstrey1 Jan 7, 2026
c4fc3a8
initial catalog.py
edwardchalstrey1 Jan 7, 2026
c7deefc
move catalog into pygambit
edwardchalstrey1 Jan 7, 2026
07b1bee
enforce gamefile and gametype on subclasses
edwardchalstrey1 Jan 7, 2026
d11ada7
don't enforce game_type as this can be inferred from the file extension
edwardchalstrey1 Jan 7, 2026
828eabd
add a test game to the catalog defined directly in code
edwardchalstrey1 Jan 7, 2026
faeef27
enhance CatalogGame and CatalogGameFromFile to extract metadata witho…
edwardchalstrey1 Jan 7, 2026
8c49b31
refactor CatalogGame to extract metadata during subclass initialization
edwardchalstrey1 Jan 7, 2026
8cc6b5b
include metadata attributes for games
edwardchalstrey1 Jan 7, 2026
70f176f
don't allow None for CatalogGame attributes
edwardchalstrey1 Jan 7, 2026
f5b7fcb
organize catalog game classes with section headers for better readabi…
edwardchalstrey1 Jan 7, 2026
37b1e2b
implement gbt.catalog.games()
edwardchalstrey1 Jan 7, 2026
a9dc597
dynamically import all catalog games and update __all__ accordingly
edwardchalstrey1 Jan 7, 2026
a314e30
add filter for game type in catalog.games()
edwardchalstrey1 Jan 7, 2026
e176877
add filter for number of players
edwardchalstrey1 Jan 8, 2026
292a55d
move catalog gamefiles into top dir for now
edwardchalstrey1 Jan 8, 2026
6a2677a
move games back to contrib/games
edwardchalstrey1 Jan 8, 2026
a0533e5
create example fom test suite
edwardchalstrey1 Jan 8, 2026
5a9dce2
make it so each CatalogGame subclass implements _game() instead of __…
edwardchalstrey1 Jan 8, 2026
621242f
avoid redefining title
edwardchalstrey1 Jan 8, 2026
dbe751c
rename CatalogGameFromFile to CatalogGameFromContrib and update refer…
edwardchalstrey1 Jan 8, 2026
7ddd64b
loading from the catalog examples in tutorials
edwardchalstrey1 Jan 8, 2026
d84c304
fix: correct import path for Game, read_efg, and read_nfg to avoid ci…
edwardchalstrey1 Jan 8, 2026
4d46dd5
refactor: implement lazy loading for game classes in catalog to avoid…
edwardchalstrey1 Jan 8, 2026
c5b8dc5
Revert "refactor: implement lazy loading for game classes in catalog …
edwardchalstrey1 Jan 8, 2026
8fbe66f
Don't import catalog when importing pygambit to avoid circular imports
edwardchalstrey1 Jan 8, 2026
a871e3c
print description directly from catalog game
edwardchalstrey1 Jan 13, 2026
3e0e940
use docstrings as description fields
edwardchalstrey1 Jan 13, 2026
450d06c
don't instantiate game to get metadata
edwardchalstrey1 Jan 13, 2026
9d1cd75
simplify docstring retrieval
edwardchalstrey1 Jan 13, 2026
8a4c26b
simplify CatalogGameFromContrib
edwardchalstrey1 Jan 13, 2026
a8148c8
revoke need to import catalog separately
edwardchalstrey1 Jan 13, 2026
32ff307
test whether importing one at a time in __init__.py fixes circular im…
edwardchalstrey1 Jan 13, 2026
eedce0e
add a couple more example games and import all in __init__.py
edwardchalstrey1 Jan 14, 2026
e755911
add importability to init
edwardchalstrey1 Jan 14, 2026
2acb948
restore getting attributes from games
edwardchalstrey1 Jan 14, 2026
53a04b3
Merge branch 'enhancement/731-revert-to-metadata-gen' into enhancemen…
edwardchalstrey1 Jan 14, 2026
d88d469
finish merge
edwardchalstrey1 Jan 14, 2026
7ca3583
initial script for generating catalog from contrib
edwardchalstrey1 Jan 14, 2026
f0bbd32
fix output path
edwardchalstrey1 Jan 14, 2026
4dc7227
remove disclaimer line
edwardchalstrey1 Jan 14, 2026
3a8d265
avoid duplicates where EFG and NFG games have the same name
edwardchalstrey1 Jan 14, 2026
e481de1
Add all EFG and NFG games from contrib
edwardchalstrey1 Jan 14, 2026
391525a
remove generated file from git
edwardchalstrey1 Jan 14, 2026
5e99f3b
add generated_catalog_games.py to gitignore
edwardchalstrey1 Jan 14, 2026
b832ec4
create catalog.yml instead of directly creating classes
edwardchalstrey1 Jan 15, 2026
a058c3f
Dynamically generate CatalogGameFromContrib subclasses from YAML
edwardchalstrey1 Jan 15, 2026
ebf6981
remove src/pygambit/catalog/generated_catalog_games.py from gitignore
edwardchalstrey1 Jan 15, 2026
3a3f762
rename catalog gen script to update.py
edwardchalstrey1 Jan 15, 2026
2dac733
update the catalog instead of overwiting it
edwardchalstrey1 Jan 15, 2026
2a2cafd
write to catalog via dictionary
edwardchalstrey1 Jan 15, 2026
f31203b
refactor: update YAML handling with ruamel.yaml
edwardchalstrey1 Jan 15, 2026
2d3744f
ignore games that are marked as invalid in the catalog
edwardchalstrey1 Jan 15, 2026
50062a9
Add ability to filter catalog games by custom metadata fields
edwardchalstrey1 Jan 15, 2026
861da2c
initial catalog test ideas
edwardchalstrey1 Jan 16, 2026
8eefc52
add test_custom_game_instantiation
edwardchalstrey1 Jan 16, 2026
31e6e93
add test_catalog_py_game_with_parameters
edwardchalstrey1 Jan 16, 2026
37e37af
fix game caching in catalog
edwardchalstrey1 Jan 16, 2026
f80b33f
simplify game caching
edwardchalstrey1 Jan 16, 2026
608bd7f
simplify error handling
edwardchalstrey1 Jan 16, 2026
e1d7627
tidy _load_game func
edwardchalstrey1 Jan 16, 2026
8d57dd2
assert len(OneShotTrust.description) > 0
edwardchalstrey1 Jan 16, 2026
05226ef
replace OneShotTrust with TestGame in test_catalog.py
edwardchalstrey1 Jan 16, 2026
fb66b81
add test_catalog_game_not_instantiable
edwardchalstrey1 Jan 16, 2026
e6ae99b
test games function filtering on efg/nfg
edwardchalstrey1 Jan 16, 2026
b8219fd
add test_games_filter_by_num_players
edwardchalstrey1 Jan 16, 2026
173098f
add a test for custom metadata field in catalog games func
edwardchalstrey1 Jan 16, 2026
3f2303a
add test_games_excludes_base_classes
edwardchalstrey1 Jan 16, 2026
8fb4101
test exact description content
edwardchalstrey1 Jan 16, 2026
cc97d91
rename TestGame to ExampleGame
edwardchalstrey1 Jan 16, 2026
bf9f013
add initial API reference for catalog module
edwardchalstrey1 Jan 16, 2026
052014d
use update script to update api reference doc
edwardchalstrey1 Jan 16, 2026
510b135
ignore invalid games when updating API docs
edwardchalstrey1 Jan 16, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -48,3 +48,5 @@ doc/tutorials/*.png
Gambit.app/*
*.ipynb_checkpoints
*.ef
build_support/msw/gambit.wxs
build_support/osx/Info.plist
155 changes: 155 additions & 0 deletions doc/pygambit.api.rst
Original file line number Diff line number Diff line change
Expand Up @@ -325,3 +325,158 @@ Computation of quantal response equilibria
logit_estimate
LogitQREMixedStrategyFitResult
LogitQREMixedBehaviorFitResult


Game catalog
~~~~~~~~~~~~

.. currentmodule:: pygambit.catalog

.. autosummary::
:toctree: api/

games
Game2s2x2x2
Game2smp
Game2x2
Game2x2a
Game2x2const
Game2x2x2_nau
Game2x2x2
Game2x2x2NFG
Game2x2x2x2
Game2x2x2x2x2
Game3x3x3
Game4cards
Game5x4x3
Game8x2x2
Game8x8
Artist1
Artist2
Badgame1
Badgame2
Bagwell
Bayes1a
Bayes2a
Bcp2
Bcp3
Bcp4
Bhg1
Bhg2
Bhg3
Bhg4
Bhg5
Caro2
Cent2
Cent2NFG
Cent3
Cent4
Cent6
Centcs10
Centcs6
Condjury
Coord2
Coord2NFG
Coord2ts
Coord3
Coord3NFG
Coord333
Coord4
Coord4NFG
Cross
Cs
Csg1
Csg2
Csg3
Csg4
Deg1
Deg2
E01
E01NFG
E02
E02NFG
E03
E04
E04NFG
E05
E06
E07
E07NFG
E08
E09
E10
E10a
E13
E16
E17
E18
G1
G1NFG
G2
G2NFG
G3
G3NFG
Holdout
Hs1
Jury_mr
Jury_un
Km1
Km2
Km3
Km6
Loopback
Mixdom
Mixdom2
Montyhal
My_2_1
My_2_4
My_2_8
My_3_3a
My_3_3b
My_3_3c
My_3_3d
My_3_3e
My_3_4
Myerson
Myerson_fig_4_2
Nim
Nim7
Oneill
Palf
Palf2
Palf3
Pbride
PrisonersDilemma
Perfect1
Perfect2
Perfect3
Poker
PokerNFG
Poker2
Pvw
Pvw2
Sh3
Sh3NFG
Spence
Stengel
Sww1
Sww1NFG
Sww2
Sww3
Tim
Todd1
Todd2
Todd3
Ttt
Vd
VdNFG
W_ex1
W_ex2
Wilson1
Wink3
Winkels
Work1
Work2
Work3
Yamamoto
Zero
Loading
Loading