def __init__(self, contents=None, direction=None, markup_name=None): from abjad.tools import lilypondparsertools from abjad.tools import markuptools if contents is None: new_contents = ('',) elif isinstance(contents, str): to_parse = r'\markup {{ {} }}'.format(contents) parsed = lilypondparsertools.LilyPondParser()(to_parse) if all(isinstance(x, str) for x in parsed.contents): new_contents = (' '.join(parsed.contents),) else: new_contents = tuple(parsed.contents) elif isinstance(contents, markuptools.MarkupCommand): new_contents = (contents,) elif isinstance(contents, type(self)): direction = direction or contents._direction markup_name = markup_name or contents._markup_name new_contents = tuple(contents._contents) elif isinstance(contents, (list, tuple)) and 0 < len(contents): new_contents = [] for arg in contents: if isinstance(arg, (str, markuptools.MarkupCommand)): new_contents.append(arg) else: new_contents.append(str(arg)) new_contents = tuple(new_contents) else: new_contents = (str(contents),) self._contents = new_contents self._format_slot = 'right' self._markup_name = markup_name direction = \ stringtools.arg_to_tridirectional_ordinal_constant(direction) self._direction = direction
def __init__(self, contents=None, direction=None, stack_priority=0): from abjad.tools import lilypondparsertools from abjad.tools import markuptools if contents is None: new_contents = ("",) elif isinstance(contents, str): to_parse = r"\markup {{ {} }}".format(contents) parsed = lilypondparsertools.LilyPondParser()(to_parse) if all(isinstance(x, str) for x in parsed.contents): new_contents = (" ".join(parsed.contents),) else: new_contents = tuple(parsed.contents) elif isinstance(contents, markuptools.MarkupCommand): new_contents = (contents,) elif isinstance(contents, type(self)): direction = direction or contents._direction new_contents = tuple(contents._contents) elif isinstance(contents, (list, tuple)) and 0 < len(contents): new_contents = [] for arg in contents: if isinstance(arg, (str, markuptools.MarkupCommand)): new_contents.append(arg) else: new_contents.append(str(arg)) new_contents = tuple(new_contents) else: new_contents = (str(contents),) self._contents = new_contents self._format_slot = "right" direction = stringtools.arg_to_tridirectional_ordinal_constant(direction) self._direction = direction assert isinstance(stack_priority, int), repr(stack_priority) self._stack_priority = stack_priority
def __init__(self, name=None, direction=None): if isinstance(name, type(self)): expr = name name = expr.name direction = direction or expr.direction name = str(name) if '\\' in name: direction, name = name.split('\\') direction = direction.strip() name = name.strip() direction = \ stringtools.arg_to_tridirectional_ordinal_constant(direction) self._name = name self._direction = direction self._format_slot = 'right'
def __init__(self, name=None, direction=None): if isinstance(name, type(self)): expr = name name = expr.name direction = direction or expr.direction name = str(name) if '\\' in name: direction, name = name.split('\\') direction = direction.strip() name = name.strip() direction = \ stringtools.arg_to_tridirectional_ordinal_constant(direction) self._name = name self._direction = direction self._format_slot = 'right'
def __init__(self, name=None, direction=None): self._default_scope = None if isinstance(name, type(self)): expr = name name = expr.name direction = direction or expr.direction name = str(name) if '\\' in name: direction, name = name.split('\\') direction = direction.strip() name = name.strip() direction = \ stringtools.arg_to_tridirectional_ordinal_constant(direction) directions = (Up, Down, Center, None) assert direction in directions, repr(direction) self._name = name self._direction = direction self._format_slot = 'right'
def __init__(self, name=None, direction=None): self._default_scope = None if isinstance(name, type(self)): expr = name name = expr.name direction = direction or expr.direction name = str(name) if '\\' in name: direction, name = name.split('\\') direction = direction.strip() name = name.strip() direction = \ stringtools.arg_to_tridirectional_ordinal_constant(direction) directions = (Up, Down, Center, None) assert direction in directions, repr(direction) self._name = name self._direction = direction self._format_slot = 'right'
def __init__( self, contents=None, direction=None, stack_priority=0, ): from abjad.tools import lilypondparsertools from abjad.tools import markuptools if contents is None: new_contents = ('', ) elif isinstance(contents, str): to_parse = r'\markup {{ {} }}'.format(contents) parsed = lilypondparsertools.LilyPondParser()(to_parse) if all(isinstance(x, str) for x in parsed.contents): new_contents = (' '.join(parsed.contents), ) else: new_contents = tuple(parsed.contents) elif isinstance(contents, markuptools.MarkupCommand): new_contents = (contents, ) elif isinstance(contents, type(self)): direction = direction or contents._direction new_contents = tuple(contents._contents) elif isinstance(contents, (list, tuple)) and 0 < len(contents): new_contents = [] for arg in contents: if isinstance(arg, (str, markuptools.MarkupCommand)): new_contents.append(arg) else: new_contents.append(str(arg)) new_contents = tuple(new_contents) else: new_contents = (str(contents), ) self._contents = new_contents self._format_slot = 'right' direction = \ stringtools.arg_to_tridirectional_ordinal_constant(direction) self._direction = direction assert isinstance(stack_priority, int), repr(stack_priority) self._stack_priority = stack_priority
def __init__(self, *args): from abjad.tools import datastructuretools assert len(args) in range(3), repr(args) if 2 <= len(args): assert isinstance(args[0], (str, type(None))), repr(args[0]) assert isinstance(args[1], (str, type(None), datastructuretools.OrdinalConstant)), \ repr(args[1]) name, direction = args elif len(args) == 1 and isinstance(args[0], type(self)): name = args[0].name direction = args[0].direction elif len(args) == 1: assert isinstance(args[0], (str, type(None), datastructuretools.OrdinalConstant)), \ repr(args[0]) if args[0]: splits = args[0].split('\\') assert len(splits) in (1, 2), repr(splits) if len(splits) == 1: name, direction = args[0], None elif len(splits) == 2: name = splits[1] if splits[0]: direction = splits[0] else: direction = None else: name, direction = None, None else: name, direction = None, None self._name = name direction = \ stringtools.arg_to_tridirectional_ordinal_constant(direction) self._direction = direction self._format_slot = 'right'
def __init__(self, *args): from abjad.tools import datastructuretools assert len(args) in range(3), repr(args) if 2 <= len(args): assert isinstance(args[0], (str, type(None))), repr(args[0]) assert isinstance(args[1], (str, type(None), datastructuretools.OrdinalConstant)), \ repr(args[1]) name, direction = args elif len(args) == 1 and isinstance(args[0], type(self)): name = args[0].name direction = args[0].direction elif len(args) == 1: assert isinstance(args[0], (str, type(None), datastructuretools.OrdinalConstant)), \ repr(args[0]) if args[0]: splits = args[0].split('\\') assert len(splits) in (1, 2), repr(splits) if len(splits) == 1: name, direction = args[0], None elif len(splits) == 2: name = splits[1] if splits[0]: direction = splits[0] else: direction = None else: name, direction = None, None else: name, direction = None, None self._name = name direction = \ stringtools.arg_to_tridirectional_ordinal_constant(direction) self._direction = direction self._format_slot = 'right'
def test_arg_to_tridirectional_ordinal_constant_01(): assert stringtools.arg_to_tridirectional_ordinal_constant('^') == Up assert stringtools.arg_to_tridirectional_ordinal_constant('-') == Center assert stringtools.arg_to_tridirectional_ordinal_constant('_') == Down assert stringtools.arg_to_tridirectional_ordinal_constant(Up) == Up assert stringtools.arg_to_tridirectional_ordinal_constant('default') == Center assert stringtools.arg_to_tridirectional_ordinal_constant('neutral') == Center assert stringtools.arg_to_tridirectional_ordinal_constant(Down) == Down assert stringtools.arg_to_tridirectional_ordinal_constant(1) == Up assert stringtools.arg_to_tridirectional_ordinal_constant(0) == Center assert stringtools.arg_to_tridirectional_ordinal_constant(-1) == Down assert stringtools.arg_to_tridirectional_ordinal_constant(None) is None assert pytest.raises(ValueError, "stringtools.arg_to_tridirectional_ordinal_constant('foo')")
def test_arg_to_tridirectional_ordinal_constant_01(): assert stringtools.arg_to_tridirectional_ordinal_constant('^') == Up assert stringtools.arg_to_tridirectional_ordinal_constant('-') == Center assert stringtools.arg_to_tridirectional_ordinal_constant('_') == Down assert stringtools.arg_to_tridirectional_ordinal_constant(Up) == Up assert stringtools.arg_to_tridirectional_ordinal_constant( 'default') == Center assert stringtools.arg_to_tridirectional_ordinal_constant( 'neutral') == Center assert stringtools.arg_to_tridirectional_ordinal_constant(Down) == Down assert stringtools.arg_to_tridirectional_ordinal_constant(1) == Up assert stringtools.arg_to_tridirectional_ordinal_constant(0) == Center assert stringtools.arg_to_tridirectional_ordinal_constant(-1) == Down assert stringtools.arg_to_tridirectional_ordinal_constant(None) is None assert pytest.raises( ValueError, "stringtools.arg_to_tridirectional_ordinal_constant('foo')")
def fset(self, arg): self._direction = \ stringtools.arg_to_tridirectional_ordinal_constant(arg)