With more looking around, I came across more controllers. This time at a higher level of abstraction. Not just working with flows inside of individual switches, but with the capability of defining rules for a network of switches: and applying switching/routing/security on a network side abstraction basis.
frenetic github appears to be frequently updated and maintained. The programmer's guide is well done and has much detail to get one started.
The documentation references networkx which is another active repository which "is a Python package for the creation, manipulation, and study of the structure, dynamics, and functions of complex networks". Frenetic uses it for calculating paths and layouts.
On the Frenetic page, there is a reference to Merlin. But there is no reference to code. I did finally find the code at merlin-lang on github. A research paper talks about Merlin's capability in depth. The primary author indicates that there isn't in commercial use. I wonder what is holding it back. I will need to check it out.