"""Error handling"""

syntax_error = """

  File {filename}, line {lineno}
    {line}
    {pointer}

{error}: {msg}
"""

class DataShapeSyntaxError(SyntaxError):
    """
    Makes datashape parse errors look like Python SyntaxError.
    """
    def __init__(self, lexpos, filename, text, msg=None):
        self.lexpos = lexpos
        self.filename = filename
        self.text = text
        self.msg = msg or 'invalid syntax'
        self.lineno = text.count('\n', 0, lexpos) + 1
        # Get the extent of the line with the error
        linestart = text.rfind('\n', 0, lexpos)
        if linestart < 0:
            linestart = 0
        else:
            linestart = linestart + 1
        lineend = text.find('\n', lexpos)
        if lineend < 0:
            lineend = len(text)
        self.line = text[linestart:lineend]
        self.col_offset = lexpos - linestart

        print(str(self)) # REMOVEME

    def __str__(self):
        pointer = ' ' * self.col_offset + '^'

        return syntax_error.format(
            filename=self.filename,
            lineno=self.lineno,
            line=self.line,
            pointer=pointer,
            msg=self.msg,
            error=self.__class__.__name__,
        )

    def __repr__(self):
        return str(self)

"""Error handling"""

syntax_error = """

  File {filename}, line {lineno}
    {line}
    {pointer}

{error}: {msg}
"""

class DataShapeSyntaxError(SyntaxError):
    """
    Makes datashape parse errors look like Python SyntaxError.
    """
    def __init__(self, lexpos, filename, text, msg=None):
        self.lexpos = lexpos
        self.filename = filename
        self.text = text
        self.msg = msg or 'invalid syntax'
        self.lineno = text.count('\n', 0, lexpos) + 1
        # Get the extent of the line with the error
        linestart = text.rfind('\n', 0, lexpos)
        if linestart < 0:
            linestart = 0
        else:
            linestart = linestart + 1
        lineend = text.find('\n', lexpos)
        if lineend < 0:
            lineend = len(text)
        self.line = text[linestart:lineend]
        self.col_offset = lexpos - linestart

    def __str__(self):
        pointer = ' ' * self.col_offset + '^'

        return syntax_error.format(
            filename=self.filename,
            lineno=self.lineno,
            line=self.line,
            pointer=pointer,
            msg=self.msg,
            error=self.__class__.__name__,
        )

    def __repr__(self):
        return str(self)

Remove the print from datashape
Remove the print from datashape

  """Error handling"""
  
  syntax_error = """
  
    File {filename}, line {lineno}
      {line}
      {pointer}
  
  {error}: {msg}
  """
  
  class DataShapeSyntaxError(SyntaxError):
      """
      Makes datashape parse errors look like Python SyntaxError.
      """
      def __init__(self, lexpos, filename, text, msg=None):
          self.lexpos = lexpos
          self.filename = filename
          self.text = text
          self.msg = msg or 'invalid syntax'
          self.lineno = text.count('\n', 0, lexpos) + 1
          # Get the extent of the line with the error
          linestart = text.rfind('\n', 0, lexpos)
          if linestart < 0:
              linestart = 0
          else:
              linestart = linestart + 1
          lineend = text.find('\n', lexpos)
          if lineend < 0:
              lineend = len(text)
          self.line = text[linestart:lineend]
          self.col_offset = lexpos - linestart
  
-         print(str(self)) # REMOVEME
- 
      def __str__(self):
          pointer = ' ' * self.col_offset + '^'
  
          return syntax_error.format(
              filename=self.filename,
              lineno=self.lineno,
              line=self.line,
              pointer=pointer,
              msg=self.msg,
              error=self.__class__.__name__,
          )
  
      def __repr__(self):
          return str(self)
  
Remove the print from datashape
## Code Before:
"""Error handling"""

syntax_error = """

  File {filename}, line {lineno}
    {line}
    {pointer}

{error}: {msg}
"""

class DataShapeSyntaxError(SyntaxError):
    """
    Makes datashape parse errors look like Python SyntaxError.
    """
    def __init__(self, lexpos, filename, text, msg=None):
        self.lexpos = lexpos
        self.filename = filename
        self.text = text
        self.msg = msg or 'invalid syntax'
        self.lineno = text.count('\n', 0, lexpos) + 1
        # Get the extent of the line with the error
        linestart = text.rfind('\n', 0, lexpos)
        if linestart < 0:
            linestart = 0
        else:
            linestart = linestart + 1
        lineend = text.find('\n', lexpos)
        if lineend < 0:
            lineend = len(text)
        self.line = text[linestart:lineend]
        self.col_offset = lexpos - linestart

        print(str(self)) # REMOVEME

    def __str__(self):
        pointer = ' ' * self.col_offset + '^'

        return syntax_error.format(
            filename=self.filename,
            lineno=self.lineno,
            line=self.line,
            pointer=pointer,
            msg=self.msg,
            error=self.__class__.__name__,
        )

    def __repr__(self):
        return str(self)

## Instruction:
Remove the print from datashape
## Code After:
"""Error handling"""

syntax_error = """

  File {filename}, line {lineno}
    {line}
    {pointer}

{error}: {msg}
"""

class DataShapeSyntaxError(SyntaxError):
    """
    Makes datashape parse errors look like Python SyntaxError.
    """
    def __init__(self, lexpos, filename, text, msg=None):
        self.lexpos = lexpos
        self.filename = filename
        self.text = text
        self.msg = msg or 'invalid syntax'
        self.lineno = text.count('\n', 0, lexpos) + 1
        # Get the extent of the line with the error
        linestart = text.rfind('\n', 0, lexpos)
        if linestart < 0:
            linestart = 0
        else:
            linestart = linestart + 1
        lineend = text.find('\n', lexpos)
        if lineend < 0:
            lineend = len(text)
        self.line = text[linestart:lineend]
        self.col_offset = lexpos - linestart

    def __str__(self):
        pointer = ' ' * self.col_offset + '^'

        return syntax_error.format(
            filename=self.filename,
            lineno=self.lineno,
            line=self.line,
            pointer=pointer,
            msg=self.msg,
            error=self.__class__.__name__,
        )

    def __repr__(self):
        return str(self)
