Gets the value currently published at an IPNS name.

        IPNS is a PKI namespace, where names are the hashes of public keys, and
        the private key enables publishing new (signed) values. In resolve, the
        default value of ``name`` is your own identity public key.

        .. code-block:: python

            >>> c.name_resolve()
            {'Path': '/ipfs/QmfZY61ukoQuCX8e5Pt7v8pRfhkyxwZKZMTodAtmvyGZ5d'}

        Parameters
        ----------
        name : str
            The IPNS name to resolve (defaults to the connected node)
        recursive : bool
            Resolve until the result is not an IPFS name (default: false)
        nocache : bool
            Do not use cached entries (default: false)

        Returns
        -------
            dict : The IPFS path the IPNS hash points at

def name_resolve(self, name=None, recursive=False,
                     nocache=False, **kwargs):
        """Gets the value currently published at an IPNS name.

        IPNS is a PKI namespace, where names are the hashes of public keys, and
        the private key enables publishing new (signed) values. In resolve, the
        default value of ``name`` is your own identity public key.

        .. code-block:: python

            >>> c.name_resolve()
            {'Path': '/ipfs/QmfZY61ukoQuCX8e5Pt7v8pRfhkyxwZKZMTodAtmvyGZ5d'}

        Parameters
        ----------
        name : str
            The IPNS name to resolve (defaults to the connected node)
        recursive : bool
            Resolve until the result is not an IPFS name (default: false)
        nocache : bool
            Do not use cached entries (default: false)

        Returns
        -------
            dict : The IPFS path the IPNS hash points at
        """
        kwargs.setdefault("opts", {"recursive": recursive,
                                   "nocache": nocache})
        args = (name,) if name is not None else ()
        return self._client.request('/name/resolve', args,
                                    decoder='json', **kwargs)