ops<=2.12 wrongly has self.config[x] typed as str, when actually it could be an int, float, bool, or str, depending on the config type. We're fixing this in ops:#1183, but that will break static checking that currently assumes that the config is a str (because ops doesn't validate the schema, so all options will be bool|int|float|str).
Solution
Five typing.cast calls where the config values are loaded and used where the type should be str.
Context
Covered above.
Testing Instructions
Run tox -e static-charm with/without the PR with ops 2.12 and with either the PR branch linked above or once that's merged ops main/2.13.
Issue
ops<=2.12 wrongly has
self.config[x]
typed asstr
, when actually it could be an int, float, bool, or str, depending on the config type. We're fixing this in ops:#1183, but that will break static checking that currently assumes that the config is a str (because ops doesn't validate the schema, so all options will be bool|int|float|str).Solution
Five
typing.cast
calls where the config values are loaded and used where the type should be str.Context
Covered above.
Testing Instructions
Run
tox -e static-charm
with/without the PR with ops 2.12 and with either the PR branch linked above or once that's merged ops main/2.13.Upgrade Notes
N/A