summaryrefslogtreecommitdiffstats
path: root/pym/portage/elog/filtering.py
blob: d4d405347d9eaa2c5db72729a69ffdab6aaff44f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# elog/messages.py - elog core functions
# Copyright 2006-2007 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$

from portage.const import EBUILD_PHASES

def filter_loglevels(logentries, loglevels):
	# remove unwanted entries from all logentries
	rValue = {}
	loglevels = [x.upper() for x in loglevels]
	for phase in logentries:
		for msgtype, msgcontent in logentries[phase]:
			if msgtype.upper() in loglevels or "*" in loglevels:
				if phase not in rValue:
					rValue[phase] = []
				rValue[phase].append((msgtype, msgcontent))
	return rValue
	
def filter_phases(logentries, phases):
	rValue1 = {}
	rValue2 = {}
	phases = [x.lower() for x in phases]
	for phase in logentries:
		if phase in phases:
			rValue1[phase] = logentries[phase]
		else:
			rValue2[phase] = logentries[phase]
	return (rValue1, rValue2)

def filter_mergephases(logentries):
	myphases = EBUILD_PHASES[:]
	myphases.remove("prerm")
	myphases.remove("postrm")
	return filter_phases(logentries, myphases)

def filter_unmergephases(logentries):
	return filter_phases(logentries, ["prerm", "postrm", "other"])