diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 51f0952..c50edb2 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -3,7 +3,7 @@ repos: rev: 23.9.1 hooks: - id: black - language_version: python3.11 + language_version: python3.9 - repo: https://github.com/PyCQA/flake8 rev: 6.1.0 hooks: diff --git a/run.py b/run.py index 8636c1c..c9d5e57 100644 --- a/run.py +++ b/run.py @@ -7,6 +7,7 @@ try: import config as cfg except ImportError: + class cfg(object): slots_to_check = StatusChecker.slots_to_check platforms_to_check = StatusChecker.platforms_to_check @@ -136,28 +137,36 @@ def mkconfig(date, slots, platforms, projects): project_names=projects, ) slots_list = [sn for sn in checker._slots.keys()] - miss_slots = [sn for sn in StatusChecker.slots_to_check - if sn not in slots_list] + miss_slots = [ + sn for sn in StatusChecker.slots_to_check if sn not in slots_list + ] if len(miss_slots) > 0: - logging.warning("Hardcoded default slots {} not found in Nightly page." - " Maybe update package!".format(', '.join(miss_slots))) + logging.warning( + "Hardcoded default slots {} not found in Nightly page." + " Maybe update package!".format(", ".join(miss_slots)) + ) for slot, build in checker._slots.items(): r = checker._get_Platforms_Projects_for_slot(slot, build) project_list += [pn for pn in r[1] if pn not in project_list] platform_list += [pn for pn in r[0] if pn not in platform_list] - slots_str = pretty_sep.join(['"{}"'.format(ss) - for ss in slots_list]) - projects_str = pretty_sep.join(['"{}"'.format(ss) - for ss in project_list]) - platforms_str = pretty_sep.join(['"{}"'.format(ss) - for ss in platform_list]) - with open("config.py", 'w', encoding='utf-8') as fp: - fp.write(cfg_code.format(slots_list=slots_str, - project_list=projects_str, - platform_list=platforms_str)) + slots_str = pretty_sep.join(['"{}"'.format(ss) for ss in slots_list]) + projects_str = pretty_sep.join(['"{}"'.format(ss) for ss in project_list]) + platforms_str = pretty_sep.join( + ['"{}"'.format(ss) for ss in platform_list] + ) + with open("config.py", "w", encoding="utf-8") as fp: + fp.write( + cfg_code.format( + slots_list=slots_str, + project_list=projects_str, + platform_list=platforms_str, + ) + ) fp.flush() - logging.info("'config.py' file written to disk. " - "Edit accordingly and run script again for desired function.") + logging.info( + "'config.py' file written to disk. " + "Edit accordingly and run script again for desired function." + ) cli.add_command(current_status) diff --git a/status_checker.py b/status_checker.py index cbd1336..93ca873 100644 --- a/status_checker.py +++ b/status_checker.py @@ -18,13 +18,15 @@ def tokenizePlatforms(plist): tree = {} for pp in set(plist): - toks = pp.split('-', 3) + toks = pp.split("-", 3) for i in range(0, 4): - tk = '-'.join(toks[0:i]) + tk = "-".join(toks[0:i]) if tk in tree: tree[tk].append(pp) else: - tree[tk] = [pp, ] + tree[tk] = [ + pp, + ] return tree @@ -130,8 +132,8 @@ def get_current_builds(self): logging.debug(f"Found build ids: {dict(self._slots)}.") def _get_short_platforms( - self, - plist: [], + self, + plist: [], ) -> []: """Return list of short platform names to check in results. Replace common prefixes by * w.r.t. previous platform considered.""" @@ -150,14 +152,14 @@ def _get_short_platforms( ret.append(pc) else: ss = slice(len(pk), len(pc)) - ret.append('*' + pc[ss]) + ret.append("*" + pc[ss]) pp = pc return ret def _get_Platforms_Projects_for_slot( - self, - slot: str, - build_id: int, + self, + slot: str, + build_id: int, ) -> ([], []): response = requests.get(f"{self.api_page}/{slot}/{build_id}/summary") response.raise_for_status() @@ -166,11 +168,12 @@ def _get_Platforms_Projects_for_slot( projects = [] if parsed["aborted"]: return platforms, projects - if 'platforms' in parsed: - platforms = parsed['platforms'] - if 'projects' in parsed: - projects = [pdic['name'] for pdic in parsed['projects'] - if pdic['enabled']] + if "platforms" in parsed: + platforms = parsed["platforms"] + if "projects" in parsed: + projects = [ + pdic["name"] for pdic in parsed["projects"] if pdic["enabled"] + ] return platforms, projects def _fetch_build_info( @@ -194,8 +197,11 @@ def _fetch_build_info( and project["enabled"] ): if df.empty: - long_platforms = [pn for pn in self.platforms_to_check - if pn in project['results']] + long_platforms = [ + pn + for pn in self.platforms_to_check + if pn in project["results"] + ] long_platforms.sort(reverse=True) short_platforms = self._get_short_platforms(long_platforms) # short_platforms = [ @@ -204,17 +210,21 @@ def _fetch_build_info( # for platform in self.platforms_to_check # if platform in project["results"] # ] - # make short platform names unique for PANDA (add +1,+2, ... to same names in list) + # make short platform names unique for PANDA + # (add +1,+2, ... to same names in list) ssplatforms = set(short_platforms) if len(ssplatforms) < len(short_platforms): for pn in ssplatforms: - if not pn.startswith('*') or short_platforms.count(pn) == 1: + if ( + not pn.startswith("*") + or short_platforms.count(pn) == 1 + ): continue pc = 1 while True: try: ip = short_platforms.index(pn) - short_platforms[ip] += '!{}'.format(pc) + short_platforms[ip] += "!{}".format(pc) pc += 1 except ValueError: break