From d568d6b364e8992fbd66bb90e24dce529c6ef1ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=B0lker=20O=C4=9Fulcan=20Say=C4=B1n?= <47698920+iosayin@users.noreply.github.com> Date: Tue, 6 Oct 2026 21:03:44 +0300 Subject: [PATCH] refactor(sorts): make odd_even_transposition_parallel sort any comparable items --- sorts/odd_even_transposition_parallel.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/sorts/odd_even_transposition_parallel.py b/sorts/odd_even_transposition_parallel.py index 747899725094..7671328c0aa8 100644 --- a/sorts/odd_even_transposition_parallel.py +++ b/sorts/odd_even_transposition_parallel.py @@ -12,6 +12,12 @@ """ import multiprocessing as mp +from typing import Any, Protocol + + +class Comparable(Protocol): + def __lt__(self, other: Any, /) -> bool: ... + # lock used to ensure that two processes do not access a pipe at the same time # NOTE This breaks testing on build runner. May work better locally @@ -78,7 +84,7 @@ def oe_process( """ -def odd_even_transposition(arr): +def odd_even_transposition[T: Comparable](arr: list[T]) -> list[T]: """ >>> odd_even_transposition(list(range(10)[::-1])) == sorted(list(range(10)[::-1])) True