code: def read_file(self, filepath=None, filename=None):
          
          name = filename if filename else self.filename
          path = filepath if filepath else self.filepath
          name = self._ends_with(name, ".json")
          path = self._ends_with(path, os.path.sep)
  
          try:
              return self._read_json(path, name)
          except EnvironmentError as error:
              self.logger.error("Error while opening or reading the file: {}".format(error))
              raise
          except ValueError as error:
              self.logger.error("File contents cannot be decoded to JSON: {}".format(error))
              raise
docs: Tries to read JSON content from filename and convert it to a dict.
  
          :param filepath: Path where the file is
          :param filename: File name
          :return: Dictionary read from the file
          :raises EnvironmentError, ValueError