Zipline is difficult to modify and also the data management is very complicated. But I find the code very well written (Python only). Why do you think it is bad?
Well you gave the example yourself: zipline is difficult to modify. If code is difficult to modify, that's a strike against it. I've never met a "good" codebase that is difficult to modify. You should be able to sexually abuse good code and have it remain as pure as a virgin.