TYP/CLN: small cleanups from flake-pyi
Most of these changes are:

> Y041 Use "float" instead of "int | float" (see "The numeric tower" in PEP 484)

flake8-pyi would probably find similar issues in the in-line annotations but flake8-pyi does at the moment only support pyi files.
Hmm I understand from a typing cleanup and numeric inheritance perspective this makes sense, but I find this a little less explicit (especially if the typing is exposed in documentation(?)). 

For example, one might think they need to unnecessarily cast an int to float or it's less clear from the typing if a function only accepts a float.

I could be convinced otherwise. Just open to thoughts on those points. Maybe two reasons why it might be okay:

- the type annotations are not included in the doc-string (only myy&pyright see them)
- all of the type-stubs in typeshed do the same (flake8-pyi is developed by the "typeshe people") FWIW i just stumbled on this bc I saw "int" was missing from the annotation for validate_periods