hacking on sanitizing the lines now in the release file
This commit is contained in:
parent
5f00b4e581
commit
f6b42a71ce
1 changed files with 48 additions and 11 deletions
|
@ -6,7 +6,7 @@ import json
|
||||||
from meta_release import SourceMetaRelease, MetaRelease
|
from meta_release import SourceMetaRelease, MetaRelease
|
||||||
|
|
||||||
|
|
||||||
RELEASE_WORD_MATCHER = r'(^\Origin\:\s|Label:\s|Suite:\s|Version:\s|Codename:\s|Date:\s|Architecture:\s|Components:\s|Description\:\s|MD5Sum:\s)'
|
RELEASE_WORD_MATCHER = r'(^\Origin\:\s|Label:\s|Suite:\s|Version:\s|Codename:\s|Date:\s|Architecture:\s|Components:\s|Description:\s|MD5Sum:\s|SHA256:\s|Aquire\-By\-Hash:\s)'
|
||||||
|
|
||||||
class Release:
|
class Release:
|
||||||
def __init__(self, distro_codename):
|
def __init__(self, distro_codename):
|
||||||
|
@ -24,19 +24,52 @@ class Release:
|
||||||
|
|
||||||
for d in self.meta_release:
|
for d in self.meta_release:
|
||||||
meta_release_obj = MetaRelease(d)
|
meta_release_obj = MetaRelease(d)
|
||||||
dist_and_release_file_url = { meta_release_obj.dist, meta_release_obj.release_file }
|
dist_and_release_file_url = { meta_release_obj.dist: meta_release_obj.release_file }
|
||||||
print(type(dist_and_release_file_url))
|
|
||||||
meta_release_objects.append(dist_and_release_file_url)
|
meta_release_objects.append(dist_and_release_file_url)
|
||||||
|
|
||||||
return meta_release_objects
|
return meta_release_objects
|
||||||
|
|
||||||
|
def line_format(self, line):
|
||||||
|
""" Use this method for cleaning the line, especially the one with the md5
|
||||||
|
and shasums in them. """
|
||||||
|
try:
|
||||||
|
#cleaned_line = re.split(RELEASE_WORD_MATCHER, line)
|
||||||
|
cleaned_line = line
|
||||||
|
return cleaned_line
|
||||||
|
except Exception as e:
|
||||||
|
print('failed to clean')
|
||||||
|
print(e.message)
|
||||||
|
|
||||||
|
def validate_parse(self):
|
||||||
|
""" Use this method for validating the entire returned dictionary. make
|
||||||
|
sure it has the expected keys we want/expect. """
|
||||||
|
return
|
||||||
|
|
||||||
|
def md5_from_line(line):
|
||||||
|
return
|
||||||
|
|
||||||
|
def sha256_from_line(line):
|
||||||
|
return
|
||||||
|
|
||||||
def release_file_parse(self, release_file_url):
|
def release_file_parse(self, release_file_url):
|
||||||
""" Returns the meta_release_file parsed as a list of dicts """
|
""" Returns the parsed_release_file parsed as a list of dicts """
|
||||||
with request.urlopen(f'{release_file_url}') as response:
|
with request.urlopen(f'{release_file_url}') as response:
|
||||||
index_counter = 0
|
index_counter = 0
|
||||||
lines = TextIOWrapper(response, encoding='utf-8')
|
lines = TextIOWrapper(response, encoding='utf-8')
|
||||||
|
|
||||||
|
cleaned_lines = []
|
||||||
|
|
||||||
|
for l in lines:
|
||||||
|
cleaned_line = self.line_format(l)
|
||||||
|
cleaned_lines.append(cleaned_line)
|
||||||
|
print(cleaned_line)
|
||||||
|
|
||||||
|
return cleaned_lines
|
||||||
|
#return parsed_release_file
|
||||||
|
|
||||||
|
"""
|
||||||
stripped_lines = [
|
stripped_lines = [
|
||||||
re.split(RELEASE_WORD_MATCHER, l.strip()) for l in
|
re.split(RELEASE_WORD_MATCHER, l.strip()[::1]) for l in
|
||||||
lines ]
|
lines ]
|
||||||
print(stripped_lines)
|
print(stripped_lines)
|
||||||
grouped_lines = [list(group) for key, group in
|
grouped_lines = [list(group) for key, group in
|
||||||
|
@ -57,6 +90,7 @@ class Release:
|
||||||
list_of_dicts.append(d) if arr_per_group == len(d.keys()) else None
|
list_of_dicts.append(d) if arr_per_group == len(d.keys()) else None
|
||||||
|
|
||||||
return list_of_dicts
|
return list_of_dicts
|
||||||
|
"""
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
# testing
|
# testing
|
||||||
|
@ -64,10 +98,13 @@ if __name__ == '__main__':
|
||||||
r = Release('focal')
|
r = Release('focal')
|
||||||
release_file_urls = r.distro_release_file_urls()
|
release_file_urls = r.distro_release_file_urls()
|
||||||
|
|
||||||
for meta_release in release_file_urls:
|
for meta_release_dict in release_file_urls:
|
||||||
print(meta_release)
|
keys = meta_release_dict.keys()
|
||||||
#keys = meta_release.keys()
|
for distro in keys:
|
||||||
#for distro in keys:
|
url = meta_release_dict[distro]
|
||||||
# url = meta_release[distro]
|
try:
|
||||||
# print(url)
|
results = r.release_file_parse(url)
|
||||||
|
except Exception as e:
|
||||||
|
print(e.__doc__)
|
||||||
|
print(e.message)
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue