def METHOD_NAME(
    names: pd.Index,
    data_index: pd.Index,
    obs_keys: List[str],
    index_lists: List[List[Union[int, datetime]]],
) -> "npt.NDArray[np.bool_]":
    conditions = []
    for obs_key, index_list in zip(obs_keys, index_lists):
        if index_list is not None:
            index_cond = [data_index == index for index in index_list]
            index_cond = np.logical_or.reduce(index_cond)
            conditions.append(np.logical_and(index_cond, (names == obs_key)))
    return np.logical_or.reduce(conditions)