Skip to content

Commit de7ecb3

Browse files
committed
try fix
1 parent 2f06e88 commit de7ecb3

File tree

5 files changed

+77
-68
lines changed

5 files changed

+77
-68
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,3 +15,4 @@ docs/build/
1515
docs/jupyter_execute/
1616
docs/source/api/generated/
1717
docs/source/_static/thumbnails/
18+
# Note: thumbnails are generated during build (see .readthedocs.yaml)

.readthedocs.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@ build:
1414
# nodejs: "16"
1515
# rust: "1.55"
1616
# golang: "1.17"
17+
commands:
18+
# Generate gallery before building docs
19+
- python scripts/generate_gallery.py
1720

1821
# Build documentation in the docs/ directory with Sphinx
1922
sphinx:

docs/source/notebooks/index.md

Lines changed: 68 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
# Example Gallery
2-
## Regression Kink Design
2+
## ANCOVA
33
::::{grid} 1 2 3 3
44
:gutter: 3
55

6-
:::{grid-item-card} Regression kink design with `pymc` models
6+
:::{grid-item-card} ANCOVA for pre/post treatment nonequivalent group designs
77
:class-card: sd-card-h-100
8-
:img-top: ../_static/thumbnails/rkink_pymc.png
9-
:link: rkink_pymc
8+
:img-top: ../_static/thumbnails/ancova_pymc.png
9+
:link: ancova_pymc
1010
:link-type: doc
1111
:::
1212
::::
@@ -35,32 +35,74 @@
3535
:::
3636
::::
3737

38-
## Inverse Propensity Score Weighting
38+
## Interrupted Time Series
3939
::::{grid} 1 2 3 3
4040
:gutter: 3
4141

42-
:::{grid-item-card} The Paradox of Propensity Scores in Bayesian Inference
42+
:::{grid-item-card} Excess deaths due to COVID-19
4343
:class-card: sd-card-h-100
44-
:img-top: ../_static/thumbnails/inv_prop_latent.png
45-
:link: inv_prop_latent
44+
:img-top: ../_static/thumbnails/its_covid.png
45+
:link: its_covid
4646
:link-type: doc
4747
:::
48-
:::{grid-item-card} Inverse Propensity Score Weighting with `pymc`
48+
:::{grid-item-card} Bayesian Interrupted Time Series
4949
:class-card: sd-card-h-100
50-
:img-top: ../_static/thumbnails/inv_prop_pymc.png
51-
:link: inv_prop_pymc
50+
:img-top: ../_static/thumbnails/its_pymc.png
51+
:link: its_pymc
52+
:link-type: doc
53+
:::
54+
:::{grid-item-card} Interrupted Time Series (ITS) with scikit-learn models
55+
:class-card: sd-card-h-100
56+
:img-top: ../_static/thumbnails/its_skl.png
57+
:link: its_skl
5258
:link-type: doc
5359
:::
5460
::::
5561

56-
## ANCOVA
62+
## Geographical lift testing
5763
::::{grid} 1 2 3 3
5864
:gutter: 3
5965

60-
:::{grid-item-card} ANCOVA for pre/post treatment nonequivalent group designs
66+
:::{grid-item-card} Bayesian geolift with CausalPy
6167
:class-card: sd-card-h-100
62-
:img-top: ../_static/thumbnails/ancova_pymc.png
63-
:link: ancova_pymc
68+
:img-top: ../_static/thumbnails/geolift1.png
69+
:link: geolift1
70+
:link-type: doc
71+
:::
72+
:::{grid-item-card} Multi-cell geolift analysis
73+
:class-card: sd-card-h-100
74+
:img-top: ../_static/thumbnails/multi_cell_geolift.png
75+
:link: multi_cell_geolift
76+
:link-type: doc
77+
:::
78+
::::
79+
80+
## Regression Discontinuity
81+
::::{grid} 1 2 3 3
82+
:gutter: 3
83+
84+
:::{grid-item-card} Sharp regression discontinuity with `pymc` models
85+
:class-card: sd-card-h-100
86+
:img-top: ../_static/thumbnails/rd_pymc.png
87+
:link: rd_pymc
88+
:link-type: doc
89+
:::
90+
:::{grid-item-card} Drinking age - Bayesian analysis
91+
:class-card: sd-card-h-100
92+
:img-top: ../_static/thumbnails/rd_pymc_drinking.png
93+
:link: rd_pymc_drinking
94+
:link-type: doc
95+
:::
96+
:::{grid-item-card} Sharp regression discontinuity with scikit-learn models
97+
:class-card: sd-card-h-100
98+
:img-top: ../_static/thumbnails/rd_skl.png
99+
:link: rd_skl
100+
:link-type: doc
101+
:::
102+
:::{grid-item-card} Drinking age with a scikit-learn model
103+
:class-card: sd-card-h-100
104+
:img-top: ../_static/thumbnails/rd_skl_drinking.png
105+
:link: rd_skl_drinking
64106
:link-type: doc
65107
:::
66108
::::
@@ -83,26 +125,14 @@
83125
:::
84126
::::
85127

86-
## Interrupted Time Series
128+
## Regression Kink Design
87129
::::{grid} 1 2 3 3
88130
:gutter: 3
89131

90-
:::{grid-item-card} Excess deaths due to COVID-19
91-
:class-card: sd-card-h-100
92-
:img-top: ../_static/thumbnails/its_covid.png
93-
:link: its_covid
94-
:link-type: doc
95-
:::
96-
:::{grid-item-card} Bayesian Interrupted Time Series
97-
:class-card: sd-card-h-100
98-
:img-top: ../_static/thumbnails/its_pymc.png
99-
:link: its_pymc
100-
:link-type: doc
101-
:::
102-
:::{grid-item-card} Interrupted Time Series (ITS) with scikit-learn models
132+
:::{grid-item-card} Regression kink design with `pymc` models
103133
:class-card: sd-card-h-100
104-
:img-top: ../_static/thumbnails/its_skl.png
105-
:link: its_skl
134+
:img-top: ../_static/thumbnails/rkink_pymc.png
135+
:link: rkink_pymc
106136
:link-type: doc
107137
:::
108138
::::
@@ -131,50 +161,20 @@
131161
:::
132162
::::
133163

134-
## Regression Discontinuity
135-
::::{grid} 1 2 3 3
136-
:gutter: 3
137-
138-
:::{grid-item-card} Sharp regression discontinuity with `pymc` models
139-
:class-card: sd-card-h-100
140-
:img-top: ../_static/thumbnails/rd_pymc.png
141-
:link: rd_pymc
142-
:link-type: doc
143-
:::
144-
:::{grid-item-card} Drinking age - Bayesian analysis
145-
:class-card: sd-card-h-100
146-
:img-top: ../_static/thumbnails/rd_pymc_drinking.png
147-
:link: rd_pymc_drinking
148-
:link-type: doc
149-
:::
150-
:::{grid-item-card} Sharp regression discontinuity with scikit-learn models
151-
:class-card: sd-card-h-100
152-
:img-top: ../_static/thumbnails/rd_skl.png
153-
:link: rd_skl
154-
:link-type: doc
155-
:::
156-
:::{grid-item-card} Drinking age with a scikit-learn model
157-
:class-card: sd-card-h-100
158-
:img-top: ../_static/thumbnails/rd_skl_drinking.png
159-
:link: rd_skl_drinking
160-
:link-type: doc
161-
:::
162-
::::
163-
164-
## Geographical lift testing
164+
## Inverse Propensity Score Weighting
165165
::::{grid} 1 2 3 3
166166
:gutter: 3
167167

168-
:::{grid-item-card} Bayesian geolift with CausalPy
168+
:::{grid-item-card} The Paradox of Propensity Scores in Bayesian Inference
169169
:class-card: sd-card-h-100
170-
:img-top: ../_static/thumbnails/geolift1.png
171-
:link: geolift1
170+
:img-top: ../_static/thumbnails/inv_prop_latent.png
171+
:link: inv_prop_latent
172172
:link-type: doc
173173
:::
174-
:::{grid-item-card} Multi-cell geolift analysis
174+
:::{grid-item-card} Inverse Propensity Score Weighting with `pymc`
175175
:class-card: sd-card-h-100
176-
:img-top: ../_static/thumbnails/multi_cell_geolift.png
177-
:link: multi_cell_geolift
176+
:img-top: ../_static/thumbnails/inv_prop_pymc.png
177+
:link: inv_prop_pymc
178178
:link-type: doc
179179
:::
180180
::::

pyproject.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,9 @@ docs = [
7878
"ipywidgets",
7979
"sphinx-design",
8080
"sphinx-togglebutton",
81+
"nbformat",
82+
"nbconvert",
83+
"Pillow",
8184
]
8285
lint = ["interrogate", "pre-commit", "ruff", "mypy"]
8386
test = ["pytest", "pytest-cov", "codespell", "nbformat", "nbconvert"]

scripts/generate_gallery.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,8 @@ def _save_thumbnail(
153153
)
154154
new_img.save(thumbnail_path)
155155

156+
# Path relative to document location (notebooks/)
157+
# Need to go up one level to source/, then into _static/thumbnails/
156158
return f"../_static/thumbnails/{thumbnail_name}"
157159
except Exception as e:
158160
print(f"Warning: Could not save thumbnail for {notebook_path.name}: {e}")

0 commit comments

Comments
 (0)