On 2/15/21 1:25 PM, Eric Blake wrote:
-BlockBitmapMapping = List[Dict[str, Union[str, List[Dict[str, str]]]]]
+BlockBitmapMapping = List[Dict[str,
+ Union[str,
+ List[Dict[str,
+ Union[str, Dict[str,
bool]]]]]]]
That looks *very* beefy.
Is the Union because that union is valid for every key, or because every
key has a potentially different value that is specific to that key?
if it's the latter, I'd ditch the Union and just go with:
Dict[str, object], or
Dict[str, Any]
object: will allow any type, but keeps strict checking enabled. If you
try to use that value later on without a cast, mypy will warn you if you
are using it in a manner not guaranteed by the "object" type. Can be
useful if you are passing values to a function that already does RTTI to
determine behavior.
Any: Also allows any type, but enables gradual typing. If you later
"assume" the type of this value, mypy will say nothing. Can be useful
when you've just got a job to do and the right tool would have been a
recursive type or a TypedDict (unavailable in Python 3.6.)
--js