import typing as tp => from typing import Union reduces acronyms reader needs to remmber
Backslashes are scary. Adding parentheses or in this case trusting the existing ones will be easier to read.
def summation(count: int, bottom_var: str, expression: str, precision: int = 10, \
decimal: bool = False) -> _num:
Again, backslashes are scary.