Currently, the PackageData class wraps a package_data dict as required by setup.py. Various information is then derived by transforming the package names, i.e. the dict keys. It would be cleaner to have a PackageInfo structure wrapping all information about a single package and have PackageData wrap a list of that. package_data can then be generated when needed.