Your example notebooks import stuff from utils and import core as scLVM
that’s unnecessary if you import only the useful stuff in __init__.py.
then users can simply do
from scLVM import load_data, scLVM, ...
# or
import scLVM
d = scLVM.load_data(...)