original_docstring: 
          Initializes a new instance of arrow according to given definition. The
          definition consists of the arrow type symbol surrounded by optional
          heads at both ends (e.g.'<->'). The arrow symbol must be an item from
          the pero.ARROW enum and it is required. The optional symbols for
          individual heads can be specified as an item from the pero.HEAD enum.
          
          Args:
              symbol: str
                  Arrow definition.
          
          Returns:
              pero.Arrow
                  Initialized arrow.
          
docstring: Initializes a new instance of arrow according to given definition. The
  definition consists of the arrow type symbol surrounded by optional
  heads at both ends . The arrow symbol must be an item from
  the pero.ARROW enum and it is required. The optional symbols for
  individual heads can be specified as an item from the pero.HEAD enum.
docstring_tokens: Initializes a new instance of arrow according to given definition . The definition consists of the arrow type symbol surrounded by optional heads at both ends . The arrow symbol must be an item from the pero . ARROW enum and it is required . The optional symbols for individual heads can be specified as an item from the pero . HEAD enum .
code: def create(symbol, **overrides):
          """
          Initializes a new instance of arrow according to given definition. The
          definition consists of the arrow type symbol surrounded by optional
          heads at both ends (e.g.'<->'). The arrow symbol must be an item from
          the pero.ARROW enum and it is required. The optional symbols for
          individual heads can be specified as an item from the pero.HEAD enum.
          
          Args:
              symbol: str
                  Arrow definition.
          
          Returns:
              pero.Arrow
                  Initialized arrow.
          """
          
          # get arrow type
          arrow_type = None
          for arrow in ARROW:
              if arrow in symbol:
                  arrow_type = arrow
                  break
          
          if arrow_type is None:
              raise ValueError("Unknown arrow style! -> '%s'" % symbol)
          
          # split symbol into heads
          start_head, end_head = symbol.split(arrow_type)
          
          # set heads
          if 'start_head' not in overrides:
              if start_head and start_head not in HEAD:
                  raise ValueError("Unknown start head! -> '%s'" % symbol)
              overrides['start_head'] = start_head or None
          
          if 'end_head' not in overrides:
              if end_head and end_head not in HEAD:
                  raise ValueError("Unknown end head! -> '%s'" % symbol)
              overrides['end_head'] = end_head or None
          
          # init arrow
          if arrow_type == ARROW_ARC:
              return ArcArrow(**overrides)
          
          elif arrow_type == ARROW_CONNECT_LINE:
              return ConnectorArrow(**overrides)
          
          elif arrow_type == ARROW_CONNECT_CURVE:
              if 'curve' not in overrides:
                  overrides['curve'] = .85
              return ConnectorArrow(**overrides)
          
          elif arrow_type == ARROW_CURVE:
              return CurveArrow(**overrides)
          
          elif arrow_type == ARROW_LINE:
              return LineArrow(**overrides)
          
          elif arrow_type == ARROW_BOW:
              return BowArrow(**overrides)
          
          elif arrow_type == ARROW_RAY:
              return RayArrow(**overrides)
code_tokens: def create ( symbol , ** overrides ) : arrow_type = None for arrow in ARROW : if arrow in symbol : arrow_type = arrow break if arrow_type is None : raise ValueError ( "Unknown arrow style! -> '%s'" % symbol ) start_head , end_head = symbol . split ( arrow_type ) if 'start_head' not in overrides : if start_head and start_head not in HEAD : raise ValueError ( "Unknown start head! -> '%s'" % symbol ) overrides [ 'start_head' ] = start_head or None if 'end_head' not in overrides : if end_head and end_head not in HEAD : raise ValueError ( "Unknown end head! -> '%s'" % symbol ) overrides [ 'end_head' ] = end_head or None if arrow_type == ARROW_ARC : return ArcArrow ( ** overrides ) elif arrow_type == ARROW_CONNECT_LINE : return ConnectorArrow ( ** overrides ) elif arrow_type == ARROW_CONNECT_CURVE : if 'curve' not in overrides : overrides [ 'curve' ] = .85 return ConnectorArrow ( ** overrides ) elif arrow_type == ARROW_CURVE : return CurveArrow ( ** overrides ) elif arrow_type == ARROW_LINE : return LineArrow ( ** overrides ) elif arrow_type == ARROW_BOW : return BowArrow ( ** overrides ) elif arrow_type == ARROW_RAY : return RayArrow ( ** overrides )
short_docstring: Initializes a new instance of arrow according to given definition.
short_docstring_tokens: Initializes a new instance of arrow according to given definition .
comment: """
          Initializes a new instance of arrow according to given definition. The
          definition consists of the arrow type symbol surrounded by optional
          heads at both ends (e.g.'<->'). The arrow symbol must be an item from
          the pero.ARROW enum and it is required. The optional symbols for
          individual heads can be specified as an item from the pero.HEAD enum.
          
          Args:
              symbol: str
                  Arrow definition.
          
          Returns:
              pero.Arrow
                  Initialized arrow.
          """$SEP$# get arrow type$SEP$# split symbol into heads$SEP$# set heads$SEP$# init arrow