Although the ETE library seems to be originally developed to work with Phylogenetic trees, it implements many general features to work with any type of hierarchical tree structures, including programmatic tree drawing and visualization.
There is a comprehensive tutorial and a reference guide, in case you want to explore it.