Parse a String and return the data

    :param f: The file to read
    :type f: file/str
    :returns: A dictionary object containing the parsed data from f
    :raises: SyntaxError - An error occured reading the data.

def read(f):
    """
    Parse a String and return the data

    :param f: The file to read
    :type f: file/str
    :returns: A dictionary object containing the parsed data from f
    :raises: SyntaxError - An error occured reading the data.
    """
    try:
      return PyVDF.reads(f.read())
    except AttributeError:
      pass

    try:
      with open(f, 'r') as filec:
        data = PyVDF.reads(filec.read())
        filec.close()
        return data
    except IOError as e:
      print("Could not open '" + f + "' for reading.")
      print("Ignore this if you are creating a new file.")

    return PyVDF.__UseDict()