{"library":"pydantic-function-models","title":"pydantic-function-models","description":"A library designed to model Python function signatures using Pydantic, offering a modern alternative to the now-deprecated `ValidatedFunction` from Pydantic v1. It facilitates the validation of function arguments based on type hints, bridging compatibility gaps between Pydantic v1 and v2. The library is currently at version 0.1.11, with updates reflecting ongoing maintenance.","language":"python","status":"active","last_verified":"Sun May 17","install":{"commands":["pip install pydantic-function-models"],"cli":null},"imports":["from pydantic_function_models import ValidatedFunction"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"from pydantic_function_models import ValidatedFunction\n\ndef add(a: int, b: int) -> int:\n    return a + b\n\nvf = ValidatedFunction(add)\n\n# Example of validating arguments\nargs_to_validate = (1,)\nkwargs_to_validate = {\"b\": 2}\n\n# The library builds an internal Pydantic model for validation\n# You need to map positional/keyword args to model fields\nvalidated_data = vf.model.model_validate({\n    \"a\": args_to_validate[0],\n    \"b\": kwargs_to_validate[\"b\"]\n})\n\nresult = add(**validated_data.model_dump(exclude_unset=True))\nprint(f\"Result: {result}\")\n\n# Example of invalid input\ntry:\n    invalid_data = vf.model.model_validate({\"a\": \"one\", \"b\": 2})\nexcept Exception as e:\n    print(f\"Validation error caught: {e}\")","lang":"python","description":"This example demonstrates how to wrap a Python function with `ValidatedFunction` to enable Pydantic-style argument validation. It shows both successful validation and how `ValidationError` is raised for invalid inputs.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-17","installed_version":"0.1.10","pypi_latest":"0.1.12","is_stale":true,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":3.1,"avg_import_s":0.52,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"pydantic-function-models","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.41,"mem_mb":11.1,"disk_size":"27.9M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"pydantic-function-models","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":3.6,"import_time_s":0.29,"mem_mb":11.1,"disk_size":"28M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"pydantic-function-models","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.6,"mem_mb":12.3,"disk_size":"30.5M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"pydantic-function-models","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.8,"import_time_s":0.55,"mem_mb":12.3,"disk_size":"30M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"pydantic-function-models","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.81,"mem_mb":12.2,"disk_size":"22.2M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"pydantic-function-models","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.4,"import_time_s":0.77,"mem_mb":12.2,"disk_size":"22M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"pydantic-function-models","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.37,"mem_mb":8.6,"disk_size":"22.0M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"pydantic-function-models","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.6,"import_time_s":0.35,"mem_mb":8.6,"disk_size":"22M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"pydantic-function-models","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"27.4M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"pydantic-function-models","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":4.1,"import_time_s":null,"mem_mb":null,"disk_size":"27M"}]}}