Add comprehensive type annotations

- mypy.ini: expanded configuration with module-specific settings
- hookspecs.py: type annotations for hook functions
- plugins.py: typed get_plugins() return value
- recipes.py: full type annotations for parsedate, parsedatetime, jsonsplit
- utils.py: extensive type annotations including Row type alias,
  TypeTracker, ValueTracker, and all utility functions
- db.py: type annotations for Database methods (__exit__,
  ensure_autocommit_off, tracer, register_function, etc.) and
  Queryable class methods
- tests/test_docs.py: updated to match new signature display format

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Simon Willison 2025-12-16 21:31:36 -08:00
commit d833a5c812
7 changed files with 232 additions and 117 deletions

View file

@ -41,9 +41,9 @@ def test_convert_help():
result = CliRunner().invoke(cli.cli, ["convert", "--help"])
assert result.exit_code == 0
for expected in (
"r.jsonsplit(value, ",
"r.parsedate(value, ",
"r.parsedatetime(value, ",
"r.jsonsplit(value:",
"r.parsedate(value:",
"r.parsedatetime(value:",
):
assert expected in result.output
@ -54,7 +54,7 @@ def test_convert_help():
n
for n in dir(recipes)
if not n.startswith("_")
and n not in ("json", "parser")
and n not in ("json", "parser", "Callable", "Optional")
and callable(getattr(recipes, n))
],
)