{"library":"ovld","title":"ovld: Overloading Python Functions","description":"Ovld is a Python library that provides fast and feature-rich multiple dispatch for functions using type annotations. Unlike Python's built-in `functools.singledispatch`, `ovld` supports dispatching on multiple arguments, custom predicates, and value-based dispatch. It aims to simplify code that would otherwise rely on complex `if-elif` chains or `isinstance` checks for different argument types. The library is actively maintained, with the current version being 0.5.15, and offers performance superior to other multiple dispatch libraries.","language":"python","status":"active","last_verified":"Sat May 16","install":{"commands":["pip install ovld"],"cli":null},"imports":["from ovld import ovld","from ovld import ovld, recurse","from ovld.dependent import Dependent","from typing import Literal"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"from ovld import ovld, recurse\nfrom typing import Literal\n\n@ovld\ndef process(x: str): \n    return f\"Processing string: {x!r}\"\n\n@ovld\ndef process(x: int):\n    return f\"Processing integer: {x}\"\n\n@ovld\ndef process(x: int, y: int):\n    return f\"Processing two integers: {x}, {y}\"\n\n@ovld\ndef process(x: Literal[0]):\n    return \"Special case: zero\"\n\n# Example of recursive overload\n@ovld\ndef add_nested(x: list, y: list):\n    return [recurse(a, b) for a, b in zip(x, y)]\n\n@ovld\ndef add_nested(x: int, y: int):\n    return x + y\n\nassert process(\"hello\") == \"Processing string: 'hello'\"\nassert process(10) == \"Processing integer: 10\"\nassert process(1, 2) == \"Processing two integers: 1, 2\"\nassert process(0) == \"Special case: zero\"\n\nassert add_nested([1, 2], [3, 4]) == [4, 6]\nassert add_nested([1, [2]], [3, [4]]) == [4, [6]]\n","lang":"python","description":"This quickstart demonstrates basic function overloading for different types and argument counts. It also includes an example of recursive dispatch using `recurse`, which is essential for ensuring that nested calls respect `ovld`'s dispatch mechanism and any defined variants.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-16","installed_version":"0.5.17","pypi_latest":"0.5.17","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":1.5,"avg_import_s":0.07,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"ovld","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.06,"mem_mb":2.3,"disk_size":"18.1M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"ovld","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.5,"import_time_s":0.03,"mem_mb":2.3,"disk_size":"19M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"ovld","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.09,"mem_mb":2.6,"disk_size":"20.0M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"ovld","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.5,"import_time_s":0.08,"mem_mb":2.6,"disk_size":"21M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"ovld","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.08,"mem_mb":2.6,"disk_size":"11.9M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"ovld","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.4,"import_time_s":0.09,"mem_mb":2.6,"disk_size":"12M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"ovld","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.07,"mem_mb":2.9,"disk_size":"11.6M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"ovld","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.4,"import_time_s":0.07,"mem_mb":2.7,"disk_size":"12M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"ovld","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.05,"mem_mb":2.2,"disk_size":"17.6M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"ovld","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.8,"import_time_s":0.04,"mem_mb":2.2,"disk_size":"18M"}]}}