From 25734876dec3a8a6d3beee6977d9714fae939fc4 Mon Sep 17 00:00:00 2001 From: Evgeniy Alekseev Date: Sat, 9 Apr 2022 17:31:13 +0300 Subject: [PATCH] do not render failed packages in jinja (#57) basic templates require package info which is unavailable if package wasn't built --- package/archlinux/PKGBUILD | 2 +- package/share/ahriman/templates/telegram-index.jinja2 | 3 +-- src/ahriman/core/report/jinja_template.py | 2 +- src/ahriman/core/tree.py | 10 ++-------- src/ahriman/models/result.py | 7 ------- 5 files changed, 5 insertions(+), 19 deletions(-) diff --git a/package/archlinux/PKGBUILD b/package/archlinux/PKGBUILD index 1921b441..695affad 100644 --- a/package/archlinux/PKGBUILD +++ b/package/archlinux/PKGBUILD @@ -38,7 +38,7 @@ build() { package() { cd "$pkgname" - python -m installer --destdir="$pkgdir" dist/*.whl + python -m installer --destdir="$pkgdir" "dist/$pkgname-$pkgver-py3-none-any.whl" # python-installer actually thinks that you cannot just copy files to root # thus we need to copy them manually diff --git a/package/share/ahriman/templates/telegram-index.jinja2 b/package/share/ahriman/templates/telegram-index.jinja2 index 052e30e1..dff8b1fe 100644 --- a/package/share/ahriman/templates/telegram-index.jinja2 +++ b/package/share/ahriman/templates/telegram-index.jinja2 @@ -1,5 +1,4 @@ {#simplified version of full report#} {{ repository }} update {% for package in packages %} -{{ package.name }} {{ package.version }} at {{ package.build_date }} -{% endfor %} \ No newline at end of file +{{ package.name }} {{ package.version }}{% endfor %} \ No newline at end of file diff --git a/src/ahriman/core/report/jinja_template.py b/src/ahriman/core/report/jinja_template.py index 02e88556..d2823b65 100644 --- a/src/ahriman/core/report/jinja_template.py +++ b/src/ahriman/core/report/jinja_template.py @@ -101,7 +101,7 @@ class JinjaTemplate: "name": package, "url": properties.url or "", "version": base.version - } for base in result.updated for package, properties in base.packages.items() + } for base in result.success for package, properties in base.packages.items() ] comparator: Callable[[Dict[str, str]], str] = lambda item: item["filename"] diff --git a/src/ahriman/core/tree.py b/src/ahriman/core/tree.py index 33ccc0b2..21f18ca9 100644 --- a/src/ahriman/core/tree.py +++ b/src/ahriman/core/tree.py @@ -19,14 +19,11 @@ # from __future__ import annotations -import shutil -import tempfile - -from pathlib import Path from typing import Iterable, List, Set, Type from ahriman.core.build_tools.sources import Sources from ahriman.core.database.sqlite import SQLite +from ahriman.core.util import tmpdir from ahriman.models.package import Package @@ -61,12 +58,9 @@ class Leaf: :param database: database instance :return: loaded class """ - clone_dir = Path(tempfile.mkdtemp()) - try: + with tmpdir() as clone_dir: Sources.load(clone_dir, package.git_url, database.patches_get(package.base)) dependencies = Package.dependencies(clone_dir) - finally: - shutil.rmtree(clone_dir, ignore_errors=True) return cls(package, dependencies) def is_root(self, packages: Iterable[Leaf]) -> bool: diff --git a/src/ahriman/models/result.py b/src/ahriman/models/result.py index cd38ed65..3f1e443d 100644 --- a/src/ahriman/models/result.py +++ b/src/ahriman/models/result.py @@ -62,13 +62,6 @@ class Result: """ return list(self._success.values()) - @property - def updated(self) -> List[Package]: - """ - :return: list of updated packages inclding both success and failed - """ - return self.success + self.failed - def add_failed(self, package: Package) -> None: """ add new package to failed built