<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def release(self, shortname):
 """ Get a specific release by its shortname. :param shortname: str, eg. "ceph-3-0" :returns: deferred that when fired returns a Release (Munch, dict-like) object representing this release. :raises: ReleaseNotFoundException if this release does not exist. """

        url = 'api/v6/releases/?shortname=%s' % shortname
        releases = yield self._get(url)
        # Note, even if this shortname does not exist, _get() will not errback
        # for this url. It simply returns an empty list. So check that here:
        if not releases:
            raise ReleaseNotFoundException('no release %s' % shortname)
        release = Release.fromDict(releases[0])
        release.connection = self
        defer.returnValue(release)