def _deep_update_subnode(node: BaseContainer, key: Any, value_type_hint: Any) -> None:
    'Get node[key] and ensure it is compatible with value_type_hint, mutating if necessary.'
    subnode = node._get_node(key)
    assert isinstance(subnode, Node)
    if _is_special(subnode):
        node._wrap_value_and_set(key, subnode._value(), value_type_hint)
        subnode = node._get_node(key)
        assert isinstance(subnode, Node)
    _deep_update_type_hint(subnode, value_type_hint)
Get node[key] and ensure it is compatible with value_type_hint, mutating if necessary.
def _deep_update_subnode(node: BaseContainer, key: Any, value_type_hint: Any) -> None:
    
    subnode = node._get_node(key)
    assert isinstance(subnode, Node)
    if _is_special(subnode):
        node._wrap_value_and_set(key, subnode._value(), value_type_hint)
        subnode = node._get_node(key)
        assert isinstance(subnode, Node)
    _deep_update_type_hint(subnode, value_type_hint)