python: add type hints

This commit is contained in:
Max Kellermann
2023-09-16 23:23:18 +02:00
parent dd89ea4505
commit 3f2016e552
9 changed files with 68 additions and 54 deletions

@ -1,15 +1,16 @@
import subprocess, multiprocessing
from typing import Optional
from build.project import Project
class MakeProject(Project):
def __init__(self, url, md5, installed,
install_target='install',
def __init__(self, url: str, md5: str, installed: str,
install_target: str='install',
**kwargs):
Project.__init__(self, url, md5, installed, **kwargs)
self.install_target = install_target
def get_simultaneous_jobs(self):
def get_simultaneous_jobs(self) -> int:
try:
# use twice as many simultaneous jobs as we have CPU cores
return multiprocessing.cpu_count() * 2
@ -17,17 +18,17 @@ class MakeProject(Project):
# default to 12, if multiprocessing.cpu_count() is not implemented
return 12
def get_make_args(self, toolchain):
def get_make_args(self, toolchain) -> list[str]:
return ['--quiet', '-j' + str(self.get_simultaneous_jobs())]
def get_make_install_args(self, toolchain):
def get_make_install_args(self, toolchain) -> list[str]:
return ['--quiet', self.install_target]
def make(self, toolchain, wd, args):
def make(self, toolchain, wd: str, args: list[str]) -> None:
subprocess.check_call(['make'] + args,
cwd=wd, env=toolchain.env)
def build_make(self, toolchain, wd, install=True):
def build_make(self, toolchain, wd: str, install: bool=True) -> None:
self.make(toolchain, wd, self.get_make_args(toolchain))
if install:
self.make(toolchain, wd, self.get_make_install_args(toolchain))