Adapter example:

class TargetInterface:
    def prepare_report(self):
        pass

class SomeReporter:
    def report(self):
        print("Raport z SomeReporter.")

class ReporterAdapter(TargetInterface):
    def __init__(self, reporter: SomeReporter):
        self.reporter = reporter

    def prepare_report(self):
        self.reporter.report()

# Client uses abstraction TargetInterface (compliant with DIP)
def client_code(reporter: TargetInterface):
    reporter.prepare_report()

some_reporter = SomeReporter()
adapter = ReporterAdapter(some_reporter)
client_code(adapter)