def get_shipping_methods(self, basket, shipping_addr=None, **kwargs):
        if not basket.is_shipping_required():
            # Special case! Baskets that don't require shipping get a special
            # shipping method.
            return [shipping_methods.NoShippingRequired()]

        methods = self.get_available_shipping_methods(
            basket=basket, shipping_addr=shipping_addr, **kwargs)
        if basket.has_shipping_discounts:
            methods = self.apply_shipping_offers(basket, methods)
        return methods
Return a list of all applicable shipping method instances for a given
dataset/ETHPy150Open django-oscar/django-oscar/src/oscar/apps/shipping/repository.py/Repository.get_shipping_methods