Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
850 changes: 850 additions & 0 deletions .basedpyright/baseline.json

Large diffs are not rendered by default.

1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,5 @@ old
output
node_modules
.pytest_cache
.mypy_cache
.task
.env
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ Validate the site pages contents for valid content and front matter information.

The following tools run on every PR and must succeed before a branch can be merged to `main`.

- `ruff` & `mypy` are run to validate code quality.
- `ruff` & `basedpyright` are run to validate code quality.
- Unit tests are run with `pytest`.
- The `weaving validate` command is run to check page front matter.
- Markdown content is validated by `markdownlint` — install Node.js dependencies for this tool.
Expand Down
10 changes: 5 additions & 5 deletions Taskfile.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ tasks:
cmds:
- task: ruff:check
- task: pytest
- task: mypy
- task: basedpyright
- task: mdlint
- task: build
- task: validate:links
Expand All @@ -30,10 +30,10 @@ tasks:
- uv run ruff check --fix {{.CLI_ARGS}} .
- uv run ruff format {{.CLI_ARGS}} .

mypy:
desc: Run python/mypy Python type checking tool
basedpyright:
desc: Check Python type annotations with `detachhead/basedpyright`
cmds:
- uv run mypy {{.CLI_ARGS}} ./weaving
- uv run basedpyright {{.CLI_ARGS}}

pytest:
desc: Run unit tests via pytest-dev/pytest
Expand All @@ -43,7 +43,7 @@ tasks:
mdlint:
desc: Lint markdown sources with DavidAnson/markdownlint
cmds:
- npx markdownlint '**/*.md' {{.CLI_ARGS}} --ignore node_modules --ignore .mypy_cache --ignore .pytest_cache --ignore-path 'pages/debug/markdown.md'
- npx markdownlint {{.CLI_ARGS}} --ignore node_modules --ignore .pytest_cache --ignore 'pages/debug/*.md' '**/*.md'

dev:
desc: Run weaving in local dev mode
Expand Down
14 changes: 8 additions & 6 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

50 changes: 50 additions & 0 deletions pages/img/dj_howard.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
---
title: DJ Howard Images
subtitle: Secret page listing all the DJ Howard images
date: 2026-03-31
---

<!-- This list maintained manually, please sort alphabetically. -->

- [albo_falls.webp](/img/dj_howard/albo_falls.webp)
- [albo_lick.webp](/img/dj_howard/albo_lick.webp)
- [albo_plane.webp](/img/dj_howard/albo_plane.webp)
- [albo_rage.webp](/img/dj_howard/albo_rage.webp)
- [albo_yes.webp](/img/dj_howard/albo_yes.webp)
- [bercow_flamingo.webp](/img/dj_howard/bercow_flamingo.webp)
- [cone_of_shame.webp](/img/dj_howard/cone_of_shame.webp)
- [democracy_manifest.webp](/img/dj_howard/democracy_manifest.webp)
- [dj_albo_avatar.png](/img/dj_howard/dj_albo_avatar.png)
- [dj_albo.webp](/img/dj_howard/dj_albo.webp)
- [dj_howard_christmas.jpg](/img/dj_howard/dj_howard_christmas.jpg)
- [dj_howard_party.jpg](/img/dj_howard/dj_howard_party.jpg)
- [dj_howard_regular_1.jpg](/img/dj_howard/dj_howard_regular_1.jpg)
- [dj_howard_regular_2.jpg](/img/dj_howard/dj_howard_regular_2.jpg)
- [dj_howard_regular_3.jpg](/img/dj_howard/dj_howard_regular_3.jpg)
- [dj_howard.jpg](/img/dj_howard/dj_howard.jpg)
- [get_your_hands_off_my_penis.webp](/img/dj_howard/get_your_hands_off_my_penis.webp)
- [ghostbusters_whaddya_want.webp](/img/dj_howard/ghostbusters_whaddya_want.webp)
- [hors_doeuvres.webp](/img/dj_howard/hors_doeuvres.webp)
- [howard_award.webp](/img/dj_howard/howard_award.webp)
- [howard_basketball.webp](/img/dj_howard/howard_basketball.webp)
- [howard_bowling.webp](/img/dj_howard/howard_bowling.webp)
- [howard_butt_bump.webp](/img/dj_howard/howard_butt_bump.webp)
- [howard_catching.webp](/img/dj_howard/howard_catching.webp)
- [howard_cheers.webp](/img/dj_howard/howard_cheers.webp)
- [howard_duck.webp](/img/dj_howard/howard_duck.webp)
- [howard_face_zoom.webp](/img/dj_howard/howard_face_zoom.webp)
- [howard_golf.webp](/img/dj_howard/howard_golf.webp)
- [howard_indecision.webp](/img/dj_howard/howard_indecision.webp)
- [howard_stairs.webp](/img/dj_howard/howard_stairs.webp)
- [howard_stumbles.webp](/img/dj_howard/howard_stumbles.webp)
- [howard_waving.webp](/img/dj_howard/howard_waving.webp)
- [judge_judy_facepalm.webp](/img/dj_howard/judge_judy_facepalm.webp)
- [keating_bubbles.webp](/img/dj_howard/keating_bubbles.webp)
- [latham_howard_handshake.webp](/img/dj_howard/latham_howard_handshake.webp)
- [limp_penis.webp](/img/dj_howard/limp_penis.webp)
- [meryl_streep_boo.webp](/img/dj_howard/meryl_streep_boo.webp)
- [morrison_very_nice.webp](/img/dj_howard/morrison_very_nice.webp)
- [succulent_chinese_meal.webp](/img/dj_howard/succulent_chinese_meal.webp)
- [the_ayes_have_it.webp](/img/dj_howard/the_ayes_have_it.webp)
- [the_noes_have_it.webp](/img/dj_howard/the_noes_have_it.webp)
- [xkcd_nginx_404.png](/img/dj_howard/xkcd_nginx_404.png)
16 changes: 8 additions & 8 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ dependencies = [

[dependency-groups]
dev = [
"basedmypy>=2.10.0",
"basedpyright>=1.38.4",
"cfn-lint>=1.34.0",
"isort>=6.0.1",
"pytest>=8.3.5",
Expand Down Expand Up @@ -97,11 +97,11 @@ lint.ignore = [
convention = "google"


[tool.mypy]
show_error_codes = true
pretty = true
strict = true
[tool.basedpyright]
include = ["weaving"]

# These rules make it a massive PITA to do anything as `Any` kinda shows up everywhere
disallow_any_expr = false
disable_error_code = "explicit-any,decorated-any"
# Leave this to the linter
reportUnusedCallResult = false
reportUnusedParameter = false
reportUnusedVariable = false
reportImplicitStringConcatenation = false
56 changes: 22 additions & 34 deletions uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading