Add type annotations to djblets.siteconfig.
Review Request #12702 — Created Oct. 28, 2022 and submitted — Latest diff uploaded
djblets.siteconfig
, andSiteConfiguration
in particular, is central
to much of the Djblets and Review Board codebases. This change
inrtoduces type annotations to most of the module, helping to make sure
call sites are passing in all the right information.Settings management in
SiteConfiguration
is all typed now, helping
callers ensure they're handling results correctly.Mappings between siteconfig and Django settings are typed with
structuredTypeDict
s, so we can avoid any issues with invalid keys or
values in those sometimes-complex mappings.This was fairly smooth, though it did uncover a couple code paths where
assumptions were incorrectly made. Unbound varibable issues were fixed
in the management commands
All unit tests pass for all supported versions of Python.
Mypy and pyright were largely happy. There's some work in related modules
that still need to be done.