Skip to content

Commit a03afaa

Browse files
rename contrib/games to catalog_game_files
1 parent 7606fef commit a03afaa

File tree

154 files changed

+164
-164
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

154 files changed

+164
-164
lines changed

Makefile.am

Lines changed: 145 additions & 145 deletions
Original file line numberDiff line numberDiff line change
@@ -101,151 +101,151 @@ EXTRA_DIST = \
101101
src/gui/bitmaps/zoom1.xpm \
102102
src/gui/bitmaps/gambitrc.rc \
103103
src/README.rst \
104-
src/pygambit/contrib/games/2s2x2x2.efg \
105-
src/pygambit/contrib/games/2smp.efg \
106-
src/pygambit/contrib/games/2x2.nfg \
107-
src/pygambit/contrib/games/2x2a.nfg \
108-
src/pygambit/contrib/games/2x2const.nfg \
109-
src/pygambit/contrib/games/2x2x2-nau.nfg \
110-
src/pygambit/contrib/games/2x2x2.efg \
111-
src/pygambit/contrib/games/2x2x2.nfg \
112-
src/pygambit/contrib/games/2x2x2x2.nfg \
113-
src/pygambit/contrib/games/2x2x2x2x2.nfg \
114-
src/pygambit/contrib/games/3x3x3.nfg \
115-
src/pygambit/contrib/games/4cards.efg \
116-
src/pygambit/contrib/games/5x4x3.nfg \
117-
src/pygambit/contrib/games/8x2x2.nfg \
118-
src/pygambit/contrib/games/8x8.nfg \
119-
src/pygambit/contrib/games/artist1.efg \
120-
src/pygambit/contrib/games/artist2.efg \
121-
src/pygambit/contrib/games/badgame1.efg \
122-
src/pygambit/contrib/games/badgame2.efg \
123-
src/pygambit/contrib/games/bagwell.efg \
124-
src/pygambit/contrib/games/bayes1a.efg \
125-
src/pygambit/contrib/games/bayes2a.efg \
126-
src/pygambit/contrib/games/bcp2.efg \
127-
src/pygambit/contrib/games/bcp3.efg \
128-
src/pygambit/contrib/games/bcp4.efg \
129-
src/pygambit/contrib/games/bhg1.efg \
130-
src/pygambit/contrib/games/bhg2.efg \
131-
src/pygambit/contrib/games/bhg3.efg \
132-
src/pygambit/contrib/games/bhg4.efg \
133-
src/pygambit/contrib/games/bhg5.efg \
134-
src/pygambit/contrib/games/caro2.efg \
135-
src/pygambit/contrib/games/cent2.efg \
136-
src/pygambit/contrib/games/cent2.nfg \
137-
src/pygambit/contrib/games/cent3.efg \
138-
src/pygambit/contrib/games/cent4.efg \
139-
src/pygambit/contrib/games/cent6.efg \
140-
src/pygambit/contrib/games/centcs10.efg \
141-
src/pygambit/contrib/games/centcs6.efg \
142-
src/pygambit/contrib/games/condjury.efg \
143-
src/pygambit/contrib/games/coord2.efg \
144-
src/pygambit/contrib/games/coord2.nfg \
145-
src/pygambit/contrib/games/coord2ts.efg \
146-
src/pygambit/contrib/games/coord3.efg \
147-
src/pygambit/contrib/games/coord3.nfg \
148-
src/pygambit/contrib/games/coord333.nfg \
149-
src/pygambit/contrib/games/coord4.efg \
150-
src/pygambit/contrib/games/coord4.nfg \
151-
src/pygambit/contrib/games/cross.efg \
152-
src/pygambit/contrib/games/cs.efg \
153-
src/pygambit/contrib/games/csg1.nfg \
154-
src/pygambit/contrib/games/csg2.nfg \
155-
src/pygambit/contrib/games/csg3.nfg \
156-
src/pygambit/contrib/games/csg4.nfg \
157-
src/pygambit/contrib/games/deg1.nfg \
158-
src/pygambit/contrib/games/deg2.nfg \
159-
src/pygambit/contrib/games/e01.efg \
160-
src/pygambit/contrib/games/e01.nfg \
161-
src/pygambit/contrib/games/e02.efg \
162-
src/pygambit/contrib/games/e02.nfg \
163-
src/pygambit/contrib/games/e03.efg \
164-
src/pygambit/contrib/games/e04.efg \
165-
src/pygambit/contrib/games/e04.nfg \
166-
src/pygambit/contrib/games/e05.efg \
167-
src/pygambit/contrib/games/e06.efg \
168-
src/pygambit/contrib/games/e07.efg \
169-
src/pygambit/contrib/games/e07.nfg \
170-
src/pygambit/contrib/games/e08.efg \
171-
src/pygambit/contrib/games/e09.efg \
172-
src/pygambit/contrib/games/e10.efg \
173-
src/pygambit/contrib/games/e10a.efg \
174-
src/pygambit/contrib/games/e13.efg \
175-
src/pygambit/contrib/games/e16.efg \
176-
src/pygambit/contrib/games/e17.efg \
177-
src/pygambit/contrib/games/e18.efg \
178-
src/pygambit/contrib/games/g1.efg \
179-
src/pygambit/contrib/games/g1.nfg \
180-
src/pygambit/contrib/games/g2.efg \
181-
src/pygambit/contrib/games/g2.nfg \
182-
src/pygambit/contrib/games/g3.efg \
183-
src/pygambit/contrib/games/g3.nfg \
184-
src/pygambit/contrib/games/holdout.efg \
185-
src/pygambit/contrib/games/holdout7.efg \
186-
src/pygambit/contrib/games/hs1.efg \
187-
src/pygambit/contrib/games/jury_mr.efg \
188-
src/pygambit/contrib/games/jury_un.efg \
189-
src/pygambit/contrib/games/km1.efg \
190-
src/pygambit/contrib/games/km2.efg \
191-
src/pygambit/contrib/games/km3.efg \
192-
src/pygambit/contrib/games/km6.efg \
193-
src/pygambit/contrib/games/loopback.nfg \
194-
src/pygambit/contrib/games/mixdom.nfg \
195-
src/pygambit/contrib/games/mixdom2.nfg \
196-
src/pygambit/contrib/games/montyhal.efg \
197-
src/pygambit/contrib/games/my_2-1.efg \
198-
src/pygambit/contrib/games/my_2-4.efg \
199-
src/pygambit/contrib/games/my_2-8.efg \
200-
src/pygambit/contrib/games/my_3-3a.efg \
201-
src/pygambit/contrib/games/my_3-3b.efg \
202-
src/pygambit/contrib/games/my_3-3c.efg \
203-
src/pygambit/contrib/games/my_3-3d.efg \
204-
src/pygambit/contrib/games/my_3-3e.efg \
205-
src/pygambit/contrib/games/my_3-4.efg \
206-
src/pygambit/contrib/games/myerson.efg \
207-
src/pygambit/contrib/games/myerson_fig_4_2.efg \
208-
src/pygambit/contrib/games/nim.efg \
209-
src/pygambit/contrib/games/nim7.efg \
210-
src/pygambit/contrib/games/oneill.nfg \
211-
src/pygambit/contrib/games/palf.efg \
212-
src/pygambit/contrib/games/palf2.efg \
213-
src/pygambit/contrib/games/palf3.efg \
214-
src/pygambit/contrib/games/pbride.efg \
215-
src/pygambit/contrib/games/pd.nfg \
216-
src/pygambit/contrib/games/perfect1.nfg \
217-
src/pygambit/contrib/games/perfect2.nfg \
218-
src/pygambit/contrib/games/perfect3.nfg \
219-
src/pygambit/contrib/games/poker.efg \
220-
src/pygambit/contrib/games/poker.nfg \
221-
src/pygambit/contrib/games/poker2.efg \
222-
src/pygambit/contrib/games/pvw.efg \
223-
src/pygambit/contrib/games/pvw2.efg \
224-
src/pygambit/contrib/games/sh3.efg \
225-
src/pygambit/contrib/games/sh3.nfg \
226-
src/pygambit/contrib/games/spence.efg \
227-
src/pygambit/contrib/games/stengel.nfg \
228-
src/pygambit/contrib/games/sww1.efg \
229-
src/pygambit/contrib/games/sww1.nfg \
230-
src/pygambit/contrib/games/sww2.efg \
231-
src/pygambit/contrib/games/sww3.efg \
232-
src/pygambit/contrib/games/tim.efg \
233-
src/pygambit/contrib/games/todd1.nfg \
234-
src/pygambit/contrib/games/todd2.nfg \
235-
src/pygambit/contrib/games/todd3.nfg \
236-
src/pygambit/contrib/games/ttt.efg \
237-
src/pygambit/contrib/games/vd.efg \
238-
src/pygambit/contrib/games/vd.nfg \
239-
src/pygambit/contrib/games/w_ex1.efg \
240-
src/pygambit/contrib/games/w_ex2.efg \
241-
src/pygambit/contrib/games/wilson1.efg \
242-
src/pygambit/contrib/games/wink3.nfg \
243-
src/pygambit/contrib/games/winkels.nfg \
244-
src/pygambit/contrib/games/work1.efg \
245-
src/pygambit/contrib/games/work2.efg \
246-
src/pygambit/contrib/games/work3.efg \
247-
src/pygambit/contrib/games/yamamoto.nfg \
248-
src/pygambit/contrib/games/zero.nfg
104+
src/pygambit/catalog_game_files/2s2x2x2.efg \
105+
src/pygambit/catalog_game_files/2smp.efg \
106+
src/pygambit/catalog_game_files/2x2.nfg \
107+
src/pygambit/catalog_game_files/2x2a.nfg \
108+
src/pygambit/catalog_game_files/2x2const.nfg \
109+
src/pygambit/catalog_game_files/2x2x2-nau.nfg \
110+
src/pygambit/catalog_game_files/2x2x2.efg \
111+
src/pygambit/catalog_game_files/2x2x2.nfg \
112+
src/pygambit/catalog_game_files/2x2x2x2.nfg \
113+
src/pygambit/catalog_game_files/2x2x2x2x2.nfg \
114+
src/pygambit/catalog_game_files/3x3x3.nfg \
115+
src/pygambit/catalog_game_files/4cards.efg \
116+
src/pygambit/catalog_game_files/5x4x3.nfg \
117+
src/pygambit/catalog_game_files/8x2x2.nfg \
118+
src/pygambit/catalog_game_files/8x8.nfg \
119+
src/pygambit/catalog_game_files/artist1.efg \
120+
src/pygambit/catalog_game_files/artist2.efg \
121+
src/pygambit/catalog_game_files/badgame1.efg \
122+
src/pygambit/catalog_game_files/badgame2.efg \
123+
src/pygambit/catalog_game_files/bagwell.efg \
124+
src/pygambit/catalog_game_files/bayes1a.efg \
125+
src/pygambit/catalog_game_files/bayes2a.efg \
126+
src/pygambit/catalog_game_files/bcp2.efg \
127+
src/pygambit/catalog_game_files/bcp3.efg \
128+
src/pygambit/catalog_game_files/bcp4.efg \
129+
src/pygambit/catalog_game_files/bhg1.efg \
130+
src/pygambit/catalog_game_files/bhg2.efg \
131+
src/pygambit/catalog_game_files/bhg3.efg \
132+
src/pygambit/catalog_game_files/bhg4.efg \
133+
src/pygambit/catalog_game_files/bhg5.efg \
134+
src/pygambit/catalog_game_files/caro2.efg \
135+
src/pygambit/catalog_game_files/cent2.efg \
136+
src/pygambit/catalog_game_files/cent2.nfg \
137+
src/pygambit/catalog_game_files/cent3.efg \
138+
src/pygambit/catalog_game_files/cent4.efg \
139+
src/pygambit/catalog_game_files/cent6.efg \
140+
src/pygambit/catalog_game_files/centcs10.efg \
141+
src/pygambit/catalog_game_files/centcs6.efg \
142+
src/pygambit/catalog_game_files/condjury.efg \
143+
src/pygambit/catalog_game_files/coord2.efg \
144+
src/pygambit/catalog_game_files/coord2.nfg \
145+
src/pygambit/catalog_game_files/coord2ts.efg \
146+
src/pygambit/catalog_game_files/coord3.efg \
147+
src/pygambit/catalog_game_files/coord3.nfg \
148+
src/pygambit/catalog_game_files/coord333.nfg \
149+
src/pygambit/catalog_game_files/coord4.efg \
150+
src/pygambit/catalog_game_files/coord4.nfg \
151+
src/pygambit/catalog_game_files/cross.efg \
152+
src/pygambit/catalog_game_files/cs.efg \
153+
src/pygambit/catalog_game_files/csg1.nfg \
154+
src/pygambit/catalog_game_files/csg2.nfg \
155+
src/pygambit/catalog_game_files/csg3.nfg \
156+
src/pygambit/catalog_game_files/csg4.nfg \
157+
src/pygambit/catalog_game_files/deg1.nfg \
158+
src/pygambit/catalog_game_files/deg2.nfg \
159+
src/pygambit/catalog_game_files/e01.efg \
160+
src/pygambit/catalog_game_files/e01.nfg \
161+
src/pygambit/catalog_game_files/e02.efg \
162+
src/pygambit/catalog_game_files/e02.nfg \
163+
src/pygambit/catalog_game_files/e03.efg \
164+
src/pygambit/catalog_game_files/e04.efg \
165+
src/pygambit/catalog_game_files/e04.nfg \
166+
src/pygambit/catalog_game_files/e05.efg \
167+
src/pygambit/catalog_game_files/e06.efg \
168+
src/pygambit/catalog_game_files/e07.efg \
169+
src/pygambit/catalog_game_files/e07.nfg \
170+
src/pygambit/catalog_game_files/e08.efg \
171+
src/pygambit/catalog_game_files/e09.efg \
172+
src/pygambit/catalog_game_files/e10.efg \
173+
src/pygambit/catalog_game_files/e10a.efg \
174+
src/pygambit/catalog_game_files/e13.efg \
175+
src/pygambit/catalog_game_files/e16.efg \
176+
src/pygambit/catalog_game_files/e17.efg \
177+
src/pygambit/catalog_game_files/e18.efg \
178+
src/pygambit/catalog_game_files/g1.efg \
179+
src/pygambit/catalog_game_files/g1.nfg \
180+
src/pygambit/catalog_game_files/g2.efg \
181+
src/pygambit/catalog_game_files/g2.nfg \
182+
src/pygambit/catalog_game_files/g3.efg \
183+
src/pygambit/catalog_game_files/g3.nfg \
184+
src/pygambit/catalog_game_files/holdout.efg \
185+
src/pygambit/catalog_game_files/holdout7.efg \
186+
src/pygambit/catalog_game_files/hs1.efg \
187+
src/pygambit/catalog_game_files/jury_mr.efg \
188+
src/pygambit/catalog_game_files/jury_un.efg \
189+
src/pygambit/catalog_game_files/km1.efg \
190+
src/pygambit/catalog_game_files/km2.efg \
191+
src/pygambit/catalog_game_files/km3.efg \
192+
src/pygambit/catalog_game_files/km6.efg \
193+
src/pygambit/catalog_game_files/loopback.nfg \
194+
src/pygambit/catalog_game_files/mixdom.nfg \
195+
src/pygambit/catalog_game_files/mixdom2.nfg \
196+
src/pygambit/catalog_game_files/montyhal.efg \
197+
src/pygambit/catalog_game_files/my_2-1.efg \
198+
src/pygambit/catalog_game_files/my_2-4.efg \
199+
src/pygambit/catalog_game_files/my_2-8.efg \
200+
src/pygambit/catalog_game_files/my_3-3a.efg \
201+
src/pygambit/catalog_game_files/my_3-3b.efg \
202+
src/pygambit/catalog_game_files/my_3-3c.efg \
203+
src/pygambit/catalog_game_files/my_3-3d.efg \
204+
src/pygambit/catalog_game_files/my_3-3e.efg \
205+
src/pygambit/catalog_game_files/my_3-4.efg \
206+
src/pygambit/catalog_game_files/myerson.efg \
207+
src/pygambit/catalog_game_files/myerson_fig_4_2.efg \
208+
src/pygambit/catalog_game_files/nim.efg \
209+
src/pygambit/catalog_game_files/nim7.efg \
210+
src/pygambit/catalog_game_files/oneill.nfg \
211+
src/pygambit/catalog_game_files/palf.efg \
212+
src/pygambit/catalog_game_files/palf2.efg \
213+
src/pygambit/catalog_game_files/palf3.efg \
214+
src/pygambit/catalog_game_files/pbride.efg \
215+
src/pygambit/catalog_game_files/pd.nfg \
216+
src/pygambit/catalog_game_files/perfect1.nfg \
217+
src/pygambit/catalog_game_files/perfect2.nfg \
218+
src/pygambit/catalog_game_files/perfect3.nfg \
219+
src/pygambit/catalog_game_files/poker.efg \
220+
src/pygambit/catalog_game_files/poker.nfg \
221+
src/pygambit/catalog_game_files/poker2.efg \
222+
src/pygambit/catalog_game_files/pvw.efg \
223+
src/pygambit/catalog_game_files/pvw2.efg \
224+
src/pygambit/catalog_game_files/sh3.efg \
225+
src/pygambit/catalog_game_files/sh3.nfg \
226+
src/pygambit/catalog_game_files/spence.efg \
227+
src/pygambit/catalog_game_files/stengel.nfg \
228+
src/pygambit/catalog_game_files/sww1.efg \
229+
src/pygambit/catalog_game_files/sww1.nfg \
230+
src/pygambit/catalog_game_files/sww2.efg \
231+
src/pygambit/catalog_game_files/sww3.efg \
232+
src/pygambit/catalog_game_files/tim.efg \
233+
src/pygambit/catalog_game_files/todd1.nfg \
234+
src/pygambit/catalog_game_files/todd2.nfg \
235+
src/pygambit/catalog_game_files/todd3.nfg \
236+
src/pygambit/catalog_game_files/ttt.efg \
237+
src/pygambit/catalog_game_files/vd.efg \
238+
src/pygambit/catalog_game_files/vd.nfg \
239+
src/pygambit/catalog_game_files/w_ex1.efg \
240+
src/pygambit/catalog_game_files/w_ex2.efg \
241+
src/pygambit/catalog_game_files/wilson1.efg \
242+
src/pygambit/catalog_game_files/wink3.nfg \
243+
src/pygambit/catalog_game_files/winkels.nfg \
244+
src/pygambit/catalog_game_files/work1.efg \
245+
src/pygambit/catalog_game_files/work2.efg \
246+
src/pygambit/catalog_game_files/work3.efg \
247+
src/pygambit/catalog_game_files/yamamoto.nfg \
248+
src/pygambit/catalog_game_files/zero.nfg
249249

250250
core_SOURCES = \
251251
src/core/core.h \

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ include-package-data = true
9191
[tool.setuptools.package-data]
9292
pygambit = [
9393
"catalog.yml",
94-
"contrib/games/*",
94+
"catalog_game_files/*",
9595
]
9696

9797
[tool.setuptools.dynamic]

src/pygambit/catalog.py

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
import pygambit as gbt
88

9-
_GAMEFILES_DIR = files(__package__) / "contrib" / "games"
9+
_GAMEFILES_DIR = files(__package__) / "catalog_game_files"
1010

1111

1212
class CatalogGame:
@@ -47,24 +47,24 @@ def __init_subclass__(cls, **kwargs):
4747
"""Extract metadata when subclass is defined (if not a file-based game)."""
4848
super().__init_subclass__(**kwargs)
4949

50-
# Skip if this is CatalogGameFromContrib or its subclasses
51-
if cls.__name__ == "CatalogGameFromContrib" or issubclass(cls, CatalogGameFromContrib):
50+
# Skip if this is CatalogGameFromFile or its subclasses
51+
if cls.__name__ == "CatalogGameFromFile" or issubclass(cls, CatalogGameFromFile):
5252
return
5353

5454
# Load game and extract metadata immediately when class is defined
5555
cls.game = cls._game()
5656
cls._extract_description(cls.game)
5757

5858

59-
class CatalogGameFromContrib(CatalogGame):
59+
class CatalogGameFromFile(CatalogGame):
6060
"""
6161
Base class for catalog games loaded from files.
6262
This class serves as a template for specific games in the catalog.
6363
Calling any subclass will return an instance of the corresponding game.
6464
"""
6565

6666
game_file: str
67-
"""Filename of the game file in contrib/games directory."""
67+
"""Filename of the game file in catalog_game_files directory."""
6868

6969
def __new__(cls) -> gbt.Game:
7070
if getattr(cls, "game", None) is None:
@@ -167,8 +167,8 @@ def get_all_subclasses(cls):
167167
all_subclasses = []
168168
for subclass in cls.__subclasses__():
169169

170-
# Don't include CatalogGameFromContrib in result
171-
if subclass.__name__ in ["CatalogGameFromContrib"]:
170+
# Don't include CatalogGameFromFile in result
171+
if subclass.__name__ in ["CatalogGameFromFile"]:
172172
all_subclasses.extend(get_all_subclasses(subclass))
173173
continue
174174

@@ -261,9 +261,9 @@ def _load_catalog_from_yaml() -> dict[str, dict]:
261261
return yaml.safe_load(f) or {}
262262

263263

264-
def _generate_contrib_game_classes(catalog: dict[str, dict]) -> None:
264+
def _generate_game_classes_from_catalog(catalog: dict[str, dict]) -> None:
265265
"""
266-
Dynamically generate CatalogGameFromContrib subclasses from YAML
266+
Dynamically generate CatalogGameFromFile subclasses from YAML
267267
and attach them to this module's namespace.
268268
"""
269269
module = sys.modules[__name__]
@@ -292,7 +292,7 @@ def _generate_contrib_game_classes(catalog: dict[str, dict]) -> None:
292292

293293
cls = type(
294294
class_name,
295-
(CatalogGameFromContrib,),
295+
(CatalogGameFromFile,),
296296
class_attrs,
297297
)
298298

@@ -313,4 +313,4 @@ def load_coded_games():
313313

314314
# Generate classes at import time
315315
_catalog_data = _load_catalog_from_yaml()
316-
_generate_contrib_game_classes(_catalog_data)
316+
_generate_game_classes_from_catalog(_catalog_data)
File renamed without changes.
File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)