<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def marker(self, marker_name=None, label=None, color=None, retina=False):
 """Returns a single marker image without any background map. Parameters marker_name : str The marker's shape and size. label : str, optional The marker's alphanumeric label. Options are a through z, 0 through 99, or the name of a valid Maki icon. color : str, optional The marker's color. Options are three- or six-digit hexadecimal color codes. retina : bool, optional The marker's scale, where True indicates Retina scale (double scale) and False indicates regular scale. The default value is false. Returns ------- request.Response The response object with the specified marker. """


        # Check for marker_name.

        if marker_name is None:
            raise ValidationError(
                "marker_name is a required argument"
            )

        # Validate marker_name and retina.

        marker_name = self._validate_marker_name(marker_name)
        retina = self._validate_retina(retina)

        # Create dict and start building URI resource path.

        path_values = dict(
            marker_name=marker_name
        )

        path_part = "/marker/{marker_name}"

        # Validate label, update dict,
        # and continue building URI resource path.

        if label is not None:
            label = self._validate_label(label)
            path_values["label"] = label
            path_part += "-{label}"

        # Validate color, update dict,
        # and continue building URI resource path.

        if color is not None:
            color = self._validate_color(color)
            path_values["color"] = color
            path_part += "+{color}"

        uri = URITemplate(self.base_uri + path_part).expand(**path_values)

        # Finish building URI resource path.

        path_part = "{}.png".format(retina)
        uri += path_part

        # Send HTTP GET request.

        response = self.session.get(uri)
        self.handle_http_error(response)

        return response