got logic separated into classes

This commit is contained in:
Brendan McDevitt 2022-08-20 14:25:26 -05:00
parent e358eef7ca
commit 14e7ef85ff

View file

@ -8,11 +8,11 @@ class UbuntuDistroLaunchpad:
of a target source_package_name + distro_series of a target source_package_name + distro_series
""" """
def __init__(self, source_package_name=None, distro_series=None, def __init__(self, source_package_name=None, distro_series=None,
version=None, debug=False): distro_version=None, debug=False):
self.source_package_name = source_package_name self.source_package_name = source_package_name
self.distro_series = distro_series self.distro_series = distro_series
self.version = version self.distro_version = distro_version
self.debug = debug self.debug = debug
self.launchpad = self.login() self.launchpad = self.login()
@ -39,12 +39,12 @@ class UbuntuDistroLaunchpad:
return self.ubuntu.getSeries(name_or_version=self.distro_series) return self.ubuntu.getSeries(name_or_version=self.distro_series)
def set_version(self): def set_version(self):
return self.ubuntu.getSeries(name_or_version=self.version) return self.ubuntu.getSeries(name_or_version=self.distro_version)
def set_distro(self): def set_distro(self):
if self.distro_series and self.version is None: if self.distro_series and self.distro_version is None:
return self.set_distro_series() return self.set_distro_series()
elif self.version and self.distro_series is None: elif self.distro_version and self.distro_series is None:
return self.set_version() return self.set_version()
class UbuntuPackageArchive: class UbuntuPackageArchive:
@ -53,13 +53,13 @@ class UbuntuPackageArchive:
i think is better for organization i think is better for organization
""" """
def __init__(self, archive): def __init__(self, archive='main'):
self.distro_launchpad = UbuntuDistroLaunchpad()
self.archive = archive self.archive = archive
self.ubuntu = self.set_ubuntu()
self.current_archive = self.set_archive() self.current_archive = self.set_archive()
# self.ubuntu isnt getting set properly so the setting archive methods
# arent working def set_ubuntu(self):
self.ubuntu = self.distro_launchpad.ubuntu return UbuntuDistroLaunchpad().ubuntu
def set_main_archive(self): def set_main_archive(self):
""" """
@ -91,16 +91,25 @@ class UbuntuPackageArchive:
return self.set_restricted_archive() return self.set_restricted_archive()
elif self.archive == 'universe': elif self.archive == 'universe':
return self.set_universe_archive() return self.set_universe_archive()
else:
print('Please set an archive value of main, multiverse, restricted, or universe')
return None
class UbuntuPackageHistory: class UbuntuPackageHistory:
def __init__(self, archive=None, source_package_name=None, def __init__(self, archive='main', source_package_name=None,
distro_version=None, distro_series=None): distro_version=None, distro_series=None):
self.archive = archive self.archive = archive
self.current_archive = UbuntuPackageArchive(archive) self.current_archive = UbuntuPackageArchive(archive).current_archive
self.source_package_name = source_package_name self.source_package_name = source_package_name
self.distro_version = distro_version self.distro_version = distro_version
self.distro_series = distro_series self.distro_series = distro_series
self.distro = UbuntuDistroLaunchpad(distro_series=distro_series).distro self.distro = self.set_distro()
def set_distro(self):
if self.distro_series and self.distro_version is None:
return UbuntuDistroLaunchpad(distro_series=self.distro_series).distro
elif self.distro_version and self.distro_series is None:
return UbuntuDistroLaunchpad(distro_version=self.distro_version).distro
def get_published_sources(self): def get_published_sources(self):
@ -115,8 +124,9 @@ class UbuntuPackageHistory:
# others. see the comment in the set_main_archive() function. # others. see the comment in the set_main_archive() function.
#archive = self.set_main_archive() #archive = self.set_main_archive()
#series = self.set_distro_series() #series = self.set_distro_series()
series = self.distro distro = self.distro
return self.archive.getPublishedSources(source_name=self.source_package_name, distro_series=series) published_sources = self.current_archive.getPublishedSources(source_name = self.source_package_name, distro_series=distro)
return published_sources
def source_package_version_history(self): def source_package_version_history(self):
sources = self.get_published_sources() sources = self.get_published_sources()
@ -133,8 +143,7 @@ class UbuntuPackageHistory:
return sorted(d.items()) return sorted(d.items())
if __name__ == '__main__': if __name__ == '__main__':
# example with python3.8, main archive, 20.04 for the distro
package_checker = UbuntuPackageHistory(archive='main',
source_package_name='python3.8', distro_series='20.04')
print(package_checker.source_package_version_history()) upa = UbuntuPackageArchive()
udl = UbuntuDistroLaunchpad()
uph = UbuntuPackageHistory()