<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def run_details(self, run):
 """Retrieve sequencing run details as a dictionary. """

        run_data = dict(run=run)
        req = urllib.request.Request("%s/nglims/api_run_details" % self._base_url,
                urllib.parse.urlencode(run_data))
        response = urllib.request.urlopen(req)
        info = json.loads(response.read())
        if "error" in info:
            raise ValueError("Problem retrieving info: %s" % info["error"])
        else:
            return info["details"]