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