setroubleshoot is using sesearch to look for types that domains can access. For example if I setup apache to bind to port 81, it will generate an AVC that states apache is not allowed to name_bind to port_t. We want to have setroubleshoot state that it can bind to ports named http_port_t ... Then the instruct the admin to execute semanage port -a -t http_port_t -P tcp 81 Similarly if we have a domain that tries to read files labeled default_t, we could come up with a list of domains that the domain can read and tell the user to change the type to one of the domains. We developed a python binding for sesearch to be able to give us this data. Similarly system-config-selinux/polgengui present data to the user in a gui that needs information that seinfo can provide. What are the permissive domains, What types are domains, what types are file_types, what domains are user domains ... Rather then trying to scrape this data from the seinfo command, we wanted to add a python binding.