Exemplo n.º 1
0
 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
Exemplo n.º 2
0
    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
Exemplo n.º 3
0
 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'
Exemplo n.º 4
0
 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'
Exemplo n.º 5
0
 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'
Exemplo n.º 6
0
 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'
Exemplo n.º 7
0
 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
Exemplo n.º 8
0
 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'
Exemplo n.º 9
0
 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')")
Exemplo n.º 11
0
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')")
Exemplo n.º 12
0
 def fset(self, arg):
     self._direction = \
         stringtools.arg_to_tridirectional_ordinal_constant(arg)