summaryrefslogtreecommitdiffstats
path: root/powerline/lint/selfcheck.py
blob: 06d1fbe233ea6641d966e49ecbfa509a59f09c2e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# vim:fileencoding=utf-8:noet
from __future__ import (unicode_literals, division, absolute_import, print_function)

from powerline.lib.unicode import unicode


def havemarks(*args, **kwargs):
	origin = kwargs.get('origin', '')
	for i, v in enumerate(args):
		if not hasattr(v, 'mark'):
			raise AssertionError('Value #{0}/{1} ({2!r}) has no attribute `mark`'.format(origin, i, v))
		if isinstance(v, dict):
			for key, val in v.items():
				havemarks(key, val, origin=(origin + '[' + unicode(i) + ']/' + unicode(key)))
		elif isinstance(v, list):
			havemarks(*v, origin=(origin + '[' + unicode(i) + ']'))