code: def read_file(*components, **kwargs):
      
      must_exist = kwargs.get("must_exist", True)
  
      if must_exist:
          path = fs.must_exist(*components)
      else:
          path = fs.path(*components)
  
      try:
          with open(path) as infile:
              return loads(infile.read())
      except ValueError as e:
          raise ValueError(
              "malformed JSON file '{path}'. Message from parser: {err}"
              .format(path=fs.basename(path), err=str(e)))
      except IOError as e:
          if not must_exist:
              return {}
          else:
              return e
docs: Load a JSON data blob.
  
      Arguments:
          path (str): Path to file.
          must_exist (bool, otional): If False, return empty dict if file does
              not exist.
  
      Returns:
          array or dict: JSON data.
  
      Raises:
          File404: If path does not exist, and must_exist is True.
          InvalidFile: If JSON is malformed.