Python port of Term::Detect::Software