Ну все входные данные для задач я так и храню, в py-файлах, вот, например. При старте кода, собираю готовый объект из таких пресетов и засылаю в библиотеку.
Для выходных данных, чуть расширил формат .npz, не ломая с ним совместимость (что впрочем так же не мешает его и для входных данных юзать).