<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def design_list(self):
 """ List all design documents for the current bucket. :return: A :class:`~couchbase.result.HttpResult` containing a dict, with keys being the ID of the design document. .. note:: This information is derived using the ``pools/default/buckets/<bucket>ddocs`` endpoint, but the return value has been modified to match that of :meth:`design_get`. .. note:: This function returns both 'production' and 'development' mode views. These two can be distinguished by the name of the design document being prefixed with the ``dev_`` identifier. The keys of the dict in ``value`` will be of the form ``_design/<VIEWNAME>`` where ``VIEWNAME`` may either be e.g. ``foo`` or ``dev_foo`` depending on whether ``foo`` is a production or development mode view. :: for name, ddoc in mgr.design_list().value.items():
 if name.startswith('_design/dev_'):
 print "Development view!" else: print "Production view!" Example:: for name, ddoc in mgr.design_list().value.items():
 print 'Design name {0}. Contents {1}'.format(name, ddoc) .. seealso:: :meth:`design_get` """

        ret = self._http_request(
            type=_LCB.LCB_HTTP_TYPE_MANAGEMENT,
            path="/pools/default/buckets/{0}/ddocs".format(self._cb.bucket),
            method=_LCB.LCB_HTTP_METHOD_GET)

        real_rows = {}
        for r in ret.value['rows']:
            real_rows[r['doc']['meta']['id']] = r['doc']['json']

        # Can't use normal assignment because 'value' is read-only
        ret.value.clear()
        ret.value.update(real_rows)
        return ret