From 8b467fc2813673520afcb43c84bbebd5af5071c4 Mon Sep 17 00:00:00 2001 From: Mike Khiretskiy Date: Tue, 23 Jun 2015 14:35:56 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A1=D0=B1=D1=80=D0=BE=D1=81=20=D0=BA=D1=8D?= =?UTF-8?q?=D1=88=D0=B0=20=D0=B5=D1=81=D0=BB=D0=B8=20=D0=B2=20=D1=81=D0=BF?= =?UTF-8?q?=D0=B8=D1=81=D0=BA=D0=B5=20=D0=BF=D0=B0=D0=BA=D0=B5=D1=82=D0=BE?= =?UTF-8?q?=D0=B2=20=D0=B5=D1=81=D1=82=D1=8C=20blocks?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pym/update/emerge_parser.py | 4 ++++ pym/update/update.py | 3 +++ 2 files changed, 7 insertions(+) diff --git a/pym/update/emerge_parser.py b/pym/update/emerge_parser.py index 1cafe04..4f150a5 100644 --- a/pym/update/emerge_parser.py +++ b/pym/update/emerge_parser.py @@ -207,18 +207,22 @@ class InstallPackagesBlock(EmergeInformationBlock): """ list = PackageList([]) remove_list = PackageList([]) + block_packages = False _new_line = EmergeInformationBlock._new_line + _color_block = EmergeInformationBlock._color_block token = "\n[" end_token = ["\r\n\r", "\n\n"] re_block = re.compile(r"((?:^\[.*?{nl})+)".format(nl=_new_line), re.MULTILINE) + re_blocks = re.compile(r"\[{c}blocks{c} {c}b".format(c=_color_block)) def get_data(self, match): super(InstallPackagesBlock, self).get_data(match) list_block = XmlConverter().transform(self.result).split('\n') self.list = PackageList(map(EmergeUpdateInfo, list_block)) self.remove_list = PackageList(map(EmergeRemoveInfo, list_block)) + self.block_packages = any(self.re_blocks.search(x) for x in list_block) class UninstallPackagesBlock(EmergeInformationBlock): diff --git a/pym/update/update.py b/pym/update/update.py index aa81fc9..7dde4c7 100644 --- a/pym/update/update.py +++ b/pym/update/update.py @@ -728,6 +728,9 @@ class Update(object): if emerge.install_packages.remove_list: self.emerge_cache.drop_cache( "List has packages for remove") + elif emerge.install_packages.block_packages: + self.emerge_cache.drop_cache( + "List has block packages") else: self.updateCache(emerge.install_packages.list) if not emerge.install_packages.list: