Suggestion on usability:
HORTON 2 had a custom logging class, that prints messages directly to stdout. It doesn't play nice if you want to silence it, or modify it, while using HORTON in your own code. Python has a standard logging module, https://docs.python.org/3/library/logging.html, for writing to stdout or stderr, and controlling the verbosity of your program. It would be nice to build the HORTON 3 logger using this standard module.