Fix CI: Update type declaration and value assignments

This commit is contained in:
erik 2023-04-19 15:26:17 +02:00
parent 10e7deb74b
commit 420030fa0a

View file

@ -2,11 +2,15 @@ import json
import re import re
import subprocess as sub import subprocess as sub
from abc import ABC, abstractmethod from abc import ABC, abstractmethod
from typing import Optional, Union
from pathlib import Path from pathlib import Path
from os import environ from os import environ
# TODO: jem, zam - 2023_04_18: Discuss if we can move more functionality to domain? # TODO: jem, zam - 2023_04_18: Discuss if we can move more functionality to domain?
class FileHandler(ABC): class FileHandler(ABC):
def __init__(self) -> None:
self.config_file_path: Optional[Path | None] = None
self.config_file_type: Optional[Path | None] = None
@classmethod @classmethod
def from_file_path(cls, file_path): def from_file_path(cls, file_path):
@ -40,6 +44,8 @@ class FileHandler(ABC):
class JsonFileHandler(FileHandler): class JsonFileHandler(FileHandler):
def parse(self) -> tuple[list[int], bool]: def parse(self) -> tuple[list[int], bool]:
if self.config_file_path is None:
raise ValueError("No file name given.")
with open(self.config_file_path, 'r') as json_file: with open(self.config_file_path, 'r') as json_file:
json_version = json.load(json_file)['version'] json_version = json.load(json_file)['version']
is_snapshot = False is_snapshot = False
@ -61,6 +67,8 @@ class JsonFileHandler(FileHandler):
class GradleFileHandler(FileHandler): class GradleFileHandler(FileHandler):
def parse(self) -> tuple[list[int], bool]: def parse(self) -> tuple[list[int], bool]:
if self.config_file_path is None:
raise ValueError("No file name given.")
with open(self.config_file_path, 'r') as gradle_file: with open(self.config_file_path, 'r') as gradle_file:
contents = gradle_file.read() contents = gradle_file.read()
version_line = re.search("\nversion = .*", contents) version_line = re.search("\nversion = .*", contents)
@ -68,19 +76,19 @@ class GradleFileHandler(FileHandler):
if version_line is None: if version_line is None:
raise exception raise exception
version_line = version_line.group() version_line_group = version_line.group()
version_string = re.search( version_string = re.search(
'[0-9]*\\.[0-9]*\\.[0-9]*(-SNAPSHOT)?', version_line) '[0-9]*\\.[0-9]*\\.[0-9]*(-SNAPSHOT)?', version_line_group)
if version_string is None: if version_string is None:
raise exception raise exception
version_string = version_string.group() version_string_group = version_string.group()
is_snapshot = False is_snapshot = False
if '-SNAPSHOT' in version_string: if '-SNAPSHOT' in version_string_group:
is_snapshot = True is_snapshot = True
version_string = version_string.replace('-SNAPSHOT', '') version_string_group = version_string_group.replace('-SNAPSHOT', '')
version = [int(x) for x in version_string.split('.')] version = [int(x) for x in version_string_group.split('.')]
return version, is_snapshot return version, is_snapshot
@ -97,6 +105,8 @@ class GradleFileHandler(FileHandler):
class PythonFileHandler(FileHandler): class PythonFileHandler(FileHandler):
def parse(self) -> tuple[list[int], bool]: def parse(self) -> tuple[list[int], bool]:
if self.config_file_path is None:
raise ValueError("No file name given.")
with open(self.config_file_path, 'r') as python_file: with open(self.config_file_path, 'r') as python_file:
contents = python_file.read() contents = python_file.read()
version_line = re.search("\nversion = .*\n", contents) version_line = re.search("\nversion = .*\n", contents)
@ -104,19 +114,19 @@ class PythonFileHandler(FileHandler):
if version_line is None: if version_line is None:
raise exception raise exception
version_line = version_line.group() version_line_group = version_line.group()
version_string = re.search( version_string = re.search(
'[0-9]*\\.[0-9]*\\.[0-9]*(-SNAPSHOT)?', version_line) '[0-9]*\\.[0-9]*\\.[0-9]*(-SNAPSHOT)?', version_line_group)
if version_string is None: if version_string is None:
raise exception raise exception
version_string = version_string.group() version_string_group = version_string.group()
is_snapshot = False is_snapshot = False
if '-SNAPSHOT' in version_string: if '-SNAPSHOT' in version_string_group:
is_snapshot = True is_snapshot = True
version_string = version_string.replace('-SNAPSHOT', '') version_string_group = version_string_group.replace('-SNAPSHOT', '')
version = [int(x) for x in version_string.split('.')] version = [int(x) for x in version_string_group.split('.')]
return version, is_snapshot return version, is_snapshot
@ -133,6 +143,8 @@ class PythonFileHandler(FileHandler):
class ClojureFileHandler(FileHandler): class ClojureFileHandler(FileHandler):
def parse(self) -> tuple[list[int], bool]: def parse(self) -> tuple[list[int], bool]:
if self.config_file_path is None:
raise ValueError("No file name given.")
with open(self.config_file_path, 'r') as clj_file: with open(self.config_file_path, 'r') as clj_file:
contents = clj_file.read() contents = clj_file.read()
version_line = re.search("^\\(defproject .*\n", contents) version_line = re.search("^\\(defproject .*\n", contents)
@ -140,19 +152,19 @@ class ClojureFileHandler(FileHandler):
if version_line is None: if version_line is None:
raise exception raise exception
version_line = version_line.group() version_line_group = version_line.group()
version_string = re.search( version_string = re.search(
'[0-9]*\\.[0-9]*\\.[0-9]*(-SNAPSHOT)?', version_line) '[0-9]*\\.[0-9]*\\.[0-9]*(-SNAPSHOT)?', version_line_group)
if version_string is None: if version_string is None:
raise exception raise exception
version_string = version_string.group() version_string_group = version_string.group()
is_snapshot = False is_snapshot = False
if '-SNAPSHOT' in version_string: if '-SNAPSHOT' in version_string_group:
is_snapshot = True is_snapshot = True
version_string = version_string.replace('-SNAPSHOT', '') version_string_group = version_string_group.replace('-SNAPSHOT', '')
version = [int(x) for x in version_string.split('.')] version = [int(x) for x in version_string_group.split('.')]
return version, is_snapshot return version, is_snapshot
@ -185,8 +197,14 @@ class SystemApi():
stderr=sub.PIPE, stderr=sub.PIPE,
text=True, text=True,
encoding="UTF-8") encoding="UTF-8")
if stream.stdout is not None:
self.stdout = stream.stdout.readlines() self.stdout = stream.stdout.readlines()
else:
self.stdout = None
if stream.stderr is not None:
self.stderr = stream.stderr.readlines() self.stderr = stream.stderr.readlines()
else:
self.stderr = None
def run_checked(self, *args): def run_checked(self, *args):
self.run(args) self.run(args)