<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def sample_unif(args):
 """ Evaluate a new point sampled uniformly from a bounding proposal distribution. Parameters are zipped within `args` to utilize `pool.map`-style functions. Parameters u : `~numpy.ndarray` with shape (npdim,) Position of the initial sample. loglstar : float Ln(likelihood) bound. **Not applicable here.** axes : `~numpy.ndarray` with shape (ndim, ndim) Axes used to propose new points. **Not applicable here.** scale : float Value used to scale the provided axes. **Not applicable here.** prior_transform : function Function transforming a sample from the a unit cube to the parameter space of interest according to the prior. loglikelihood : function Function returning ln(likelihood) given parameters as a 1-d `~numpy` array of length `ndim`. kwargs : dict A dictionary of additional method-specific parameters. **Not applicable here.** Returns ------- u : `~numpy.ndarray` with shape (npdim,) Position of the final proposed point within the unit cube. **For uniform sampling this is the same as the initial input position.** v : `~numpy.ndarray` with shape (ndim,) Position of the final proposed point in the target parameter space. logl : float Ln(likelihood) of the final proposed point. nc : int Number of function calls used to generate the sample. For uniform sampling this is `1` by construction. blob : dict Collection of ancillary quantities used to tune :data:`scale`. **Not applicable for uniform sampling.** """


    # Unzipping.
    (u, loglstar, axes, scale,
     prior_transform, loglikelihood, kwargs) = args

    # Evaluate.
    v = prior_transform(np.array(u))
    logl = loglikelihood(np.array(v))
    nc = 1
    blob = None

    return u, v, logl, nc, blob