Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
187 commits
Select commit Hold shift + click to select a range
90a5e36
Create catalog dir and move one EFG and one NFG into it from contrib/…
edwardchalstrey1 Feb 3, 2026
83dd410
ignore catalog files copied into pygambit
edwardchalstrey1 Feb 3, 2026
7fc2199
add failing tests
edwardchalstrey1 Feb 3, 2026
3c53bea
improve tests
edwardchalstrey1 Feb 3, 2026
898a916
add pandas to pyproject.toml
edwardchalstrey1 Feb 3, 2026
8f916db
add test_catalog_load_invalid_slug
edwardchalstrey1 Feb 3, 2026
606dd8a
create load function
edwardchalstrey1 Feb 3, 2026
00beed3
add catalog to __init__
edwardchalstrey1 Feb 3, 2026
64eb310
add games() function
edwardchalstrey1 Feb 3, 2026
d24befd
refactor to define READERS once
edwardchalstrey1 Feb 3, 2026
72aade1
Big refactor to get catalog files from catalog dir external to pygambit
edwardchalstrey1 Feb 3, 2026
e7953e9
update Makefile.am for the 2 examples we moved into the catalog so far
edwardchalstrey1 Feb 3, 2026
7490ae6
update Game.comment to be Game.description in Python code
edwardchalstrey1 Feb 4, 2026
ebf6829
Revert "update Game.comment to be Game.description in Python code"
edwardchalstrey1 Feb 4, 2026
fbf6b89
Add initial update catalog script and RST page
edwardchalstrey1 Feb 4, 2026
1ca3461
rename table headers on output df from game() func
edwardchalstrey1 Feb 4, 2026
bd3c1f3
add generating the catalog csv for docs into GH actions
edwardchalstrey1 Feb 4, 2026
569148c
Revert "add generating the catalog csv for docs into GH actions"
edwardchalstrey1 Feb 4, 2026
8cf0396
refactor update script so its run from repo root
edwardchalstrey1 Feb 4, 2026
1b20438
update readthedocs to build the catalog csv before docs build
edwardchalstrey1 Feb 4, 2026
e977e64
add function which updates Makefile.am
edwardchalstrey1 Feb 4, 2026
af08d29
use a proper path for CATALOG_CSV
edwardchalstrey1 Feb 4, 2026
cd2ffc9
tidy update script
edwardchalstrey1 Feb 4, 2026
5675444
use explicit python executable from the virtualenv to create CSV for …
edwardchalstrey1 Feb 4, 2026
f574223
add developer doc for updating the catalog
edwardchalstrey1 Feb 4, 2026
5147278
Don't update Makefile.am by default
edwardchalstrey1 Feb 4, 2026
4b033c9
consistency in notebook comment
edwardchalstrey1 Feb 4, 2026
b14402a
demo loading from catalog in tutorial 1
edwardchalstrey1 Feb 4, 2026
264f7fb
load from catalog for game examples in advanced tutorials
edwardchalstrey1 Feb 4, 2026
0e268a2
Try using pip instead of setuptools to ensure pyproject.toml deps ins…
edwardchalstrey1 Feb 4, 2026
8649946
remove deleted contrib games from Makefile.am
edwardchalstrey1 Feb 4, 2026
adea4f2
add a warning about moving games from contrib
edwardchalstrey1 Feb 4, 2026
a72f7a2
check if pandas duplications error exists if we dont save outputs on …
edwardchalstrey1 Feb 4, 2026
57863d4
fix problem with print function
edwardchalstrey1 Feb 4, 2026
b687e20
resave notebook outputs
edwardchalstrey1 Feb 4, 2026
6562433
Update writer.cc
tturocy Feb 10, 2026
39fde9d
Merge branch 'master' into ehancement/731/take2
edwardchalstrey1 Feb 10, 2026
f84bcc8
move catalog update script into build support
edwardchalstrey1 Feb 10, 2026
d17f976
rename script
edwardchalstrey1 Feb 10, 2026
f07fdae
rename var
edwardchalstrey1 Feb 10, 2026
fd66e41
update path to catalog update script in readthedocs yml and docs page
edwardchalstrey1 Feb 10, 2026
bb1e920
move myserson fig into subfolder
edwardchalstrey1 Feb 10, 2026
5c7a60f
clarify script usage
edwardchalstrey1 Feb 10, 2026
dc7a373
add test_catalog_load_subdir_slug
edwardchalstrey1 Feb 10, 2026
7850585
update makefile
edwardchalstrey1 Feb 10, 2026
f6ea5df
update agent nb
edwardchalstrey1 Feb 10, 2026
f655645
add test for slug in subdir of catalog
edwardchalstrey1 Feb 10, 2026
56cd19a
update games func to list slugs correctly
edwardchalstrey1 Feb 10, 2026
6a4df8f
update test to avoid duplicates
edwardchalstrey1 Feb 10, 2026
886131c
fix code for handling slugs that duplicates of those in subfolders
edwardchalstrey1 Feb 10, 2026
68909b9
tidy the games() refactor
edwardchalstrey1 Feb 10, 2026
bb8f483
resave notebook
edwardchalstrey1 Feb 10, 2026
50e618b
strip nb outputs
edwardchalstrey1 Feb 10, 2026
67dedb2
remove modification to games() that was fixing a local issue
edwardchalstrey1 Feb 10, 2026
1794a83
fix the update script to get correct paths
edwardchalstrey1 Feb 10, 2026
079aacd
remove unused var
edwardchalstrey1 Feb 10, 2026
e57cfce
Add Windows handling
edwardchalstrey1 Feb 10, 2026
bdc5d3a
fix incorrect var name and make consistent
edwardchalstrey1 Feb 11, 2026
69d8cb9
use as_posix for slugs
edwardchalstrey1 Feb 11, 2026
b045083
move load and games functions from __init__.py to utils.py
edwardchalstrey1 Feb 13, 2026
d8ee58e
add families module
edwardchalstrey1 Feb 13, 2026
a0b66c0
add family games to games()
edwardchalstrey1 Feb 13, 2026
939a56f
update load function to look in family games
edwardchalstrey1 Feb 13, 2026
1df3db7
alternate titles in example game family
edwardchalstrey1 Feb 13, 2026
e0c4b7c
Add to developer doc page
edwardchalstrey1 Feb 13, 2026
5bea9ea
Bump clang-format-version to 18
edwardchalstrey1 Feb 16, 2026
b63291c
Revert "Bump clang-format-version to 18"
edwardchalstrey1 Feb 16, 2026
122c168
move utils.py and families.py back into __init__.py so linux installa…
edwardchalstrey1 Feb 17, 2026
6b863d7
add slug collision error
edwardchalstrey1 Feb 17, 2026
196b8d6
update doc to reflect move back to __init__.py
edwardchalstrey1 Feb 17, 2026
ed1db2e
Merge branch 'master' into catalog/758
edwardchalstrey1 Feb 18, 2026
82e5154
add tests for filtering options based on game object attributes
edwardchalstrey1 Feb 19, 2026
f9e0424
use a fixture for all_games
edwardchalstrey1 Feb 19, 2026
95ba60b
update tests to assume df always returned by games()
edwardchalstrey1 Feb 19, 2026
39f8c27
add check_filters
edwardchalstrey1 Feb 19, 2026
6196a0b
Fix filter names and rules
edwardchalstrey1 Feb 19, 2026
63f767f
comment out perfect recall test
edwardchalstrey1 Feb 19, 2026
87eb32d
Make sure tree specific filters handled correctly
edwardchalstrey1 Feb 19, 2026
a7d5fb8
Merge branch 'master' into catalog/758
edwardchalstrey1 Feb 26, 2026
d245e8f
remove notebook 1 changes
edwardchalstrey1 Feb 26, 2026
9579150
revert makefile changes
edwardchalstrey1 Feb 26, 2026
da8a4a1
remove catalog games added by merge
edwardchalstrey1 Feb 26, 2026
5e712af
and put them back in contrib
edwardchalstrey1 Feb 26, 2026
379461f
Merge branch 'catalog/759' into catalog/758
edwardchalstrey1 Feb 26, 2026
f39f34c
Add tests for games filtering
edwardchalstrey1 Feb 26, 2026
80930fb
Merge branch 'master' into catalog/758
edwardchalstrey1 Feb 26, 2026
fb4a90c
suppress is_tree test for now
edwardchalstrey1 Feb 26, 2026
de35e54
Merge branch 'master' into catalog/758
edwardchalstrey1 Feb 26, 2026
68965d1
remove doc duplication
edwardchalstrey1 Mar 2, 2026
97e015d
update docstring for games()
edwardchalstrey1 Mar 2, 2026
d424d7a
update tests to assume returned df from games() has slug strings, not…
edwardchalstrey1 Mar 2, 2026
900b3b8
Ensure games() always returns slug strings, not instantiated Game obj…
edwardchalstrey1 Mar 2, 2026
b6e371a
add valueerror for invalid kwargs
edwardchalstrey1 Mar 2, 2026
b20240a
switch kwargs for args in games()
edwardchalstrey1 Mar 2, 2026
ef7e446
Add catalog functions to API docs
edwardchalstrey1 Mar 2, 2026
e838f51
improve docstring of load
edwardchalstrey1 Mar 2, 2026
b385681
improve docstring for family_games
edwardchalstrey1 Mar 2, 2026
d1f4901
Add links from the main catalog page to API reference and developer docs
edwardchalstrey1 Mar 2, 2026
8820a4d
clarify docstring
edwardchalstrey1 Mar 2, 2026
8077cd6
update filter tests to assert the first game of the returned datafram…
edwardchalstrey1 Mar 2, 2026
09f2a33
Only assert the filter criteria when at least one game returned
edwardchalstrey1 Mar 2, 2026
0b30460
Catalog/761 (#793)
edwardchalstrey1 Mar 11, 2026
8c19a37
feat: Add sphinxcontrib.tikz extension to the documentation build con…
edwardchalstrey1 Mar 11, 2026
ce211bd
Add quotes
edwardchalstrey1 Mar 11, 2026
ef0ed7f
Merge branch 'dev-install-fix' into catalog/744
edwardchalstrey1 Mar 11, 2026
668d743
Add visualization column for tikz code
edwardchalstrey1 Mar 11, 2026
2868d5f
use gambit colour scheme
edwardchalstrey1 Mar 11, 2026
4393212
one column for game
edwardchalstrey1 Mar 11, 2026
f3f30ec
remove superfluous game slug line
edwardchalstrey1 Mar 11, 2026
329ce21
change dt settings
edwardchalstrey1 Mar 11, 2026
8f3ab62
fix rendering
edwardchalstrey1 Mar 11, 2026
d5ae404
combine description and download column
edwardchalstrey1 Mar 11, 2026
8ce94ec
move game slug above image
edwardchalstrey1 Mar 11, 2026
71813ac
Add TEX and PDF downloads
edwardchalstrey1 Mar 11, 2026
49dd5d9
make download links consistently named
edwardchalstrey1 Mar 11, 2026
46904af
Move description under download links
edwardchalstrey1 Mar 11, 2026
aabdee6
Add python code and download dropdown
edwardchalstrey1 Mar 11, 2026
862b891
update widths and table headers
edwardchalstrey1 Mar 11, 2026
72bae1f
long desc
edwardchalstrey1 Mar 11, 2026
346c67b
Make sure title displays properly
edwardchalstrey1 Mar 11, 2026
196b6bd
put code under a pygambit dropdown
edwardchalstrey1 Mar 11, 2026
b24208d
make game title bold
edwardchalstrey1 Mar 11, 2026
d953eb3
rename details and description
edwardchalstrey1 Mar 11, 2026
bc17cb0
update gitignore
edwardchalstrey1 Mar 11, 2026
1f72f48
Merge branch 'master' into catalog/758
edwardchalstrey1 Mar 11, 2026
45fb000
Merge branch 'master' into catalog/744
edwardchalstrey1 Mar 11, 2026
463eee3
Merge branch 'catalog/758' into catalog/744
edwardchalstrey1 Mar 11, 2026
b7e58ff
revert changes to update_makefile
edwardchalstrey1 Mar 11, 2026
82096e4
update gitignore
edwardchalstrey1 Mar 11, 2026
6805a4a
add generate_png
edwardchalstrey1 Mar 11, 2026
a7411ae
add imagemagick to rtd build
edwardchalstrey1 Mar 11, 2026
d20d5ae
update draw_tree version
edwardchalstrey1 Mar 11, 2026
d88816e
update comment
edwardchalstrey1 Mar 11, 2026
3da1207
single column table
edwardchalstrey1 Mar 12, 2026
abcf67f
feat: integrate game titles into open dropdowns and clarify PyGambit …
edwardchalstrey1 Mar 12, 2026
e090dc9
combine the description and pygambit code in one dropdown
edwardchalstrey1 Mar 12, 2026
d479b5c
one dropdown
edwardchalstrey1 Mar 12, 2026
fcd482a
finalise table structure and fix pygambit code
edwardchalstrey1 Mar 12, 2026
d2ca652
Consistent size catalog images
edwardchalstrey1 Mar 12, 2026
d7463ea
Align images and text to centre
edwardchalstrey1 Mar 12, 2026
55cbe39
keep text align left
edwardchalstrey1 Mar 12, 2026
dbd6b80
Refactor catalog update to conditionally generate game visualizations…
edwardchalstrey1 Mar 13, 2026
f556b2b
fix regex to extract tikz correctly
edwardchalstrey1 Mar 13, 2026
1551660
Pass `force_build` argument to `generate_rst_table` and add a print s…
edwardchalstrey1 Mar 13, 2026
ef1f8c8
Commit catalog images
edwardchalstrey1 Mar 13, 2026
66e0646
Allow ef download and commit ef files, update gitignore
edwardchalstrey1 Mar 13, 2026
bfb049c
Add key step to catalog update instructions
edwardchalstrey1 Mar 13, 2026
8fa24f6
Merge branch 'clarify-catalog-build-instructions' into catalog/744
edwardchalstrey1 Mar 13, 2026
c77efe0
Separate build and regenerate-images flags
edwardchalstrey1 Mar 13, 2026
8402abf
remove print statement
edwardchalstrey1 Mar 13, 2026
04e4656
move draw_tree_args out of func and document
edwardchalstrey1 Mar 13, 2026
244cf97
tidy
edwardchalstrey1 Mar 13, 2026
c94e408
use jupyter for rendering normal form games
edwardchalstrey1 Mar 13, 2026
0f84618
fix jupyter code indentation
edwardchalstrey1 Mar 13, 2026
4b7bd42
Separate extensive and strategic form games into different tables
edwardchalstrey1 Mar 13, 2026
4e43389
restore ef to download links
edwardchalstrey1 Mar 13, 2026
6d65ff4
remove title duplication
edwardchalstrey1 Mar 13, 2026
57fec10
Merge branch 'master' into catalog/758
edwardchalstrey1 Mar 19, 2026
d8129c5
complete merge for catalog tests
edwardchalstrey1 Mar 19, 2026
6342fe1
update test_catalog_games to check for family games
edwardchalstrey1 Mar 19, 2026
1cce1e3
Merge branch 'catalog/758' into catalog/744
edwardchalstrey1 Mar 19, 2026
c0ec606
update images
edwardchalstrey1 Mar 19, 2026
48dd30a
update biblio links in EFGs
edwardchalstrey1 Mar 19, 2026
67076e5
reference bibliography in updating the catalog
edwardchalstrey1 Mar 19, 2026
d557232
Merge branch 'catalog/758' into catalog/744
edwardchalstrey1 Mar 19, 2026
93cae0e
update bagwell biblio link
edwardchalstrey1 Mar 19, 2026
fb4ca19
Merge branch 'catalog/758' into catalog/744
edwardchalstrey1 Mar 19, 2026
da0f09b
remove redundant efg link
edwardchalstrey1 Mar 19, 2026
8faf7d0
Merge branch 'master' into catalog/758
edwardchalstrey1 Mar 19, 2026
457c307
Merge branch 'catalog/758' into catalog/744
edwardchalstrey1 Mar 19, 2026
9b89655
update biblio
edwardchalstrey1 Mar 19, 2026
ac15fb8
remove rogue underscores
edwardchalstrey1 Mar 19, 2026
485f9f9
Merge branch 'catalog/758' into catalog/744
edwardchalstrey1 Mar 19, 2026
07d6d5e
Merge branch 'master' into catalog/744
edwardchalstrey1 Mar 25, 2026
5efb7e2
remove one shot trust images
edwardchalstrey1 Mar 25, 2026
b29e00c
only show games from the catalog with descriptions
edwardchalstrey1 Mar 25, 2026
35ba3a6
comment out nfg parts for now
edwardchalstrey1 Mar 25, 2026
451b313
remove family games
edwardchalstrey1 Mar 25, 2026
9d83dde
remove duplicate
edwardchalstrey1 Mar 25, 2026
90d9297
remove coded games doc section
edwardchalstrey1 Mar 25, 2026
dc16106
Merge branch 'master' into catalog/744
edwardchalstrey1 Mar 25, 2026
386baa5
fix typo
edwardchalstrey1 Mar 25, 2026
cc23dcb
remove comitted images
edwardchalstrey1 Mar 25, 2026
bcc1bed
update gitignore
edwardchalstrey1 Mar 25, 2026
20b5219
add custom settings for catalog games
edwardchalstrey1 Mar 25, 2026
a1f1ede
have dropdown open by default
edwardchalstrey1 Mar 25, 2026
12c1161
update developer note
edwardchalstrey1 Mar 25, 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
9 changes: 5 additions & 4 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -41,14 +41,15 @@ dist
*.dmg
Gambit.app/*
*.so
doc/tutorials/games/*.nfg
doc/tutorials/games/*.efg
doc/tutorials/*.png
*.dmg
Gambit.app/*
*.ipynb_checkpoints
*.ef
doc/**/*.ef
build_support/msw/gambit.wxs
build_support/osx/Info.plist
src/pygambit/catalog
doc/catalog_table.rst
catalog/img/**/*.pdf
catalog/img/**/*.png
catalog/img/**/*.tex
catalog/img/**/*.ef
5 changes: 3 additions & 2 deletions .readthedocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,11 @@ build:
- libgmp-dev
- pandoc
- texlive-full
- imagemagick
jobs:
# Create CSV for catalog table in docs
# Create RST for catalog table in docs
post_install:
- $READTHEDOCS_VIRTUALENV_PATH/bin/python build_support/catalog/update.py
- $READTHEDOCS_VIRTUALENV_PATH/bin/python build_support/catalog/update.py --regenerate-images

python:
install:
Expand Down
57 changes: 50 additions & 7 deletions build_support/catalog/update.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
import argparse
import re
from pathlib import Path

import pandas as pd
from draw_tree import generate_pdf, generate_png, generate_tex

import pygambit as gbt

Expand All @@ -10,7 +12,19 @@
MAKEFILE_AM = Path(__file__).parent.parent.parent / "Makefile.am"


def _write_efg_table(df: pd.DataFrame, f):
def catalog_draw_tree_settings(slug: str) -> dict:
"""Return the draw_tree settings for a given catalog slug."""
settings = {"color_scheme": "gambit", "shared_terminal_depth": True, "sublevel_scaling": 0}
if slug == "bagwell1995" or "watson2013" in slug:
settings["sublevel_scaling"] = 1
elif slug == "myerson1991/fig2_1" or slug == "reiley2008/fig1":
settings["action_label_position"] = 0.4
elif "selten1975" in slug:
settings["shared_terminal_depth"] = False
return settings


def _write_efg_table(df: pd.DataFrame, f, tikz_re, regenerate_images: bool):
"""Write the EFG games list-table to file handle f."""
f.write(".. list-table::\n")
f.write(" :header-rows: 1\n")
Expand All @@ -24,12 +38,29 @@ def _write_efg_table(df: pd.DataFrame, f):
slug = row["Game"]
title = str(row.get("Title", "")).strip()
description = str(row.get("Description", "")).strip()
# Skip any games which lack a description
if description:
tex_path = CATALOG_DIR / "img" / f"{slug}.tex"
if regenerate_images or not tex_path.exists():
g = gbt.catalog.load(slug)
viz_path = CATALOG_DIR / "img" / f"{slug}"
viz_path.parent.mkdir(parents=True, exist_ok=True)
for func in [generate_tex, generate_png, generate_pdf]:
func(g, save_to=str(viz_path), **catalog_draw_tree_settings(slug))

with open(tex_path, encoding="utf-8") as tex_f:
tex_content = tex_f.read()
match = tikz_re.search(tex_content)
tikz = (
match.group(1).strip()
if match
else "% Could not extract tikzpicture from tex file"
)

# Main dropdown
f.write(f" * - .. dropdown:: {title}\n")
f.write(" :open:\n")
f.write(" \n")

for line in description.splitlines():
f.write(f" {line}\n")
f.write(" \n")
Expand All @@ -42,11 +73,21 @@ def _write_efg_table(df: pd.DataFrame, f):

# Download links (inside the dropdown)
download_links = [row["Download"]]
f.write(" **Download:**\n")
for ext in ["ef", "tex", "png", "pdf"]:
download_links.append(f":download:`{slug}.{ext} <../catalog/img/{slug}.{ext}>`")
f.write(" **Download game and image files:**\n")
f.write(" \n")
f.write(f" {' '.join(download_links)}\n")
f.write(" \n")

# TiKZ image (outside dropdown)
f.write(" .. tikz::\n")
f.write(" :align: center\n")
f.write(" \n")
for line in tikz.splitlines():
f.write(f" {line}\n")
f.write(" \n")


# def _write_nfg_table(df: pd.DataFrame, f):
# """Write the NFG games list-table to file handle f."""
Expand Down Expand Up @@ -77,8 +118,9 @@ def _write_efg_table(df: pd.DataFrame, f):
# f.write(" \n")


def generate_rst_table(df: pd.DataFrame, rst_path: Path):
def generate_rst_table(df: pd.DataFrame, rst_path: Path, regenerate_images: bool = False):
"""Generate RST output with two list-tables: one for EFG and one for NFG games."""
tikz_re = re.compile(r"\\begin\{document\}(.*?)\\end\{document\}", re.DOTALL)

with open(rst_path, "w", encoding="utf-8") as f:
# TOC linking to both sections
Expand All @@ -87,11 +129,11 @@ def generate_rst_table(df: pd.DataFrame, rst_path: Path):
# f.write(" :depth: 1\n")
# f.write("\n")

# EFG section
# # EFG section
# f.write("Extensive form games\n")
# f.write("--------------------\n")
# f.write("\n")
_write_efg_table(df, f)
_write_efg_table(df, f, tikz_re, regenerate_images)
# f.write("\n")

# # NFG section
Expand Down Expand Up @@ -155,11 +197,12 @@ def update_makefile():
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument("--build", action="store_true")
parser.add_argument("--regenerate-images", action="store_true")
args = parser.parse_args()

# Create RST list-table used by doc/catalog.rst
df = gbt.catalog.games(include_descriptions=True)
generate_rst_table(df, CATALOG_RST_TABLE)
generate_rst_table(df, CATALOG_RST_TABLE, regenerate_images=args.regenerate_images)
print(f"Generated {CATALOG_RST_TABLE} for use in local docs build. DO NOT COMMIT.")
if args.build:
# Update the Makefile.am with the current list of catalog files
Expand Down
Empty file added catalog/img/.gitkeep
Empty file.
22 changes: 22 additions & 0 deletions doc/_static/custom.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
/* Custom CSS for Gambit Documentation */
.tight-table .figure img {
max-height: 500px;
width: auto;
display: block;
margin-left: auto;
margin-right: auto;
}

table.tight-table th,
table.tight-table td {
text-align: center;
}

table.tight-table td .highlight pre,
table.tight-table td .highlight {
text-align: left;
}

table.tight-table td .sd-card-body {
text-align: left;
}
30 changes: 12 additions & 18 deletions doc/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@
"IPython.sphinxext.ipython_directive",
"sphinx_design",
"nbsphinx",
"sphinxcontrib.tikz",
"jupyter_sphinx",
]

# IPython directive configuration
Expand Down Expand Up @@ -116,22 +118,10 @@
# documentation.
html_theme_options = {
"external_links": [
{
"name": "GitHub",
"url": "https://github.com/gambitproject/gambit"
},
{
"name": "Releases",
"url": "https://github.com/gambitproject/gambit/releases"
},
{
"name": "Older releases",
"url": "https://sourceforge.net/projects/gambit/files/"
},
{
"name": "Cite Gambit",
"url": "https://www.gambit-project.org/cite/"
}
{"name": "GitHub", "url": "https://github.com/gambitproject/gambit"},
{"name": "Releases", "url": "https://github.com/gambitproject/gambit/releases"},
{"name": "Older releases", "url": "https://sourceforge.net/projects/gambit/files/"},
{"name": "Cite Gambit", "url": "https://www.gambit-project.org/cite/"},
],
"navbar_end": ["theme-switcher", "navbar-icon-links"],
"icon_links": [
Expand Down Expand Up @@ -168,6 +158,11 @@
# so a file named "default.css" will overwrite the builtin "default.css".
html_static_path = ["_static"]

# Custom CSS files
html_css_files = [
"custom.css",
]

# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
# using the given strftime format.
# html_last_updated_fmt = '%b %d, %Y'
Expand Down Expand Up @@ -217,8 +212,7 @@
# Grouping the document tree into LaTeX files. List of tuples
# (source start file, target name, title, author, documentclass [howto/manual]).
latex_documents = [
("index", "Gambit.tex", "Gambit Documentation",
"The Gambit Project", "manual"),
("index", "Gambit.tex", "Gambit Documentation", "The Gambit Project", "manual"),
]

# The name of an image file (relative to this directory) to place at the top of
Expand Down
7 changes: 6 additions & 1 deletion doc/developer.catalog.rst
Original file line number Diff line number Diff line change
Expand Up @@ -30,13 +30,18 @@ Currently supported representations are:
3. **Update the catalog:**

Reinstall the package to pick up the new game file(s) in the ``pygambit.catalog`` module.
Then use the ``update.py`` script to update Gambit's documentation & build files.
Then use the ``update.py`` script to update Gambit's documentation & build files, as well as generating images for the new game(s).

.. code-block:: bash

pip install .
python build_support/catalog/update.py --build

.. note::

Update the ``catalog_draw_tree_settings`` in ``build_support/catalog/update.py`` to change the default visualization parameters for your game(s).
You can use the ``--regenerate-images`` flag when building the docs locally (readthedocs does this by default).

.. warning::

Running the script with the ``--build`` flag updates `Makefile.am`. If you moved games that were previously in `contrib/games` you'll need to also manually remove those files from `EXTRA_DIST`.
Expand Down
4 changes: 3 additions & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,9 @@ doc = [
"pickleshare",
"jupyter",
"open_spiel; sys_platform != 'win32'",
"draw-tree @ git+https://github.com/gambitproject/draw_tree.git@v0.4.0"
"draw-tree @ git+https://github.com/gambitproject/draw_tree.git@v0.4.1",
"sphinxcontrib-tikz",
"jupyter_sphinx",
]

[project.urls]
Expand Down
Loading