def METHOD_NAME(
    self,
    carrier: textmap.CarrierT,
    context: Optional[Context] = None,
    getter: textmap.Getter[textmap.CarrierT] = textmap.default_getter,
) -> Context:
    """Extract Baggage from the carrier.
    See
    `opentelemetry.propagators.textmap.TextMapPropagator.extract`
    """
    if context is None:
        context = get_current()
    header = _extract_first_element(
        getter.get(carrier, self._BAGGAGE_HEADER_NAME)
    )
    if not header:
        return context
    if len(header) > self._MAX_HEADER_LENGTH:
        _logger.warning(
            "Baggage header `%s` exceeded the maximum number of bytes per baggage-string",
            header,
        )
        return context
    baggage_entries: List[str] = split(_DELIMITER_PATTERN, header)
    total_baggage_entries = self._MAX_PAIRS
    if len(baggage_entries) > self._MAX_PAIRS:
        _logger.warning(
            "Baggage header `%s` exceeded the maximum number of list-members",
            header,
        )
    for entry in baggage_entries:
        if len(entry) > self._MAX_PAIR_LENGTH:
            _logger.warning(
                "Baggage entry `%s` exceeded the maximum number of bytes per list-member",
                entry,
            )
            continue
        if not entry:  # empty string
            continue
        try:
            name, value = entry.split("=", 1)
        except Exception:  # pylint: disable=broad-except
            _logger.warning(
                "Baggage list-member `%s` doesn't match the format", entry
            )
            continue
        if not _is_valid_pair(name, value):
            _logger.warning("Invalid baggage entry: `%s`", entry)
            continue
        name = unquote_plus(name).strip()
        value = unquote_plus(value).strip()
        context = set_baggage(
            name,
            value,
            context=context,
        )
        total_baggage_entries -= 1
        if total_baggage_entries == 0:
            break
    return context