blob: 941e61bad50b58107d4c26de879788b73f93bf0e [file] [log] [blame]
#
# -*- coding: utf-8 -*-
#
# This file is part of reclass
#
from item import Item
class ScaItem(Item):
def __init__(self, value):
self._value = value
def contents(self):
return self._value
def merge_over(self, item, options):
from dictitem import DictItem
from listitem import ListItem
if isinstance(item, ScaItem):
return self
elif isinstance(item, ListItem):
if options.allow_scalar_over_list:
return self
else:
raise TypeError('allow scalar over list = False: cannot merge %s over %s' % (repr(self), repr(item)))
elif isinstance(item, DictItem):
if options.allow_scalar_over_dict:
return self
else:
raise TypeError('allow scalar over dict = False: cannot merge %s over %s' % (repr(self), repr(item)))
raise TypeError('Cannot merge %s over %s' % (repr(self), repr(item)))
def render(self, context, exports):
return self._value
def __repr__(self):
return 'ScaItem({0!r})'.format(self._value)