{"categories":[{"label":"Quality Assurance","url":"https://skillfed.io/packages/category/software-development-quality-assurance/4"}],"enrichment":{"capability":"Enforces type annotations at runtime by wrapping function calls and constructors with automatic type-checking, raising TypeError when arguments don't match their declared types.","skillfed_tags":["type-checking","data-validation","json-deserialization"],"use_cases":["Safely deserialize JSON responses into typed dataclasses without manual validation boilerplate","Validate HTTP request arguments in Flask/FastAPI handlers where query params arrive as strings","Catch type mismatches early when integrating with untyped or dynamically-typed libraries","Enforce type contracts on constructor calls when unpacking dictionaries from external sources","Reduce repetitive isinstance() checks in data validation code by deriving checks from annotations"],"what_it_does":"Undictify is a runtime type-checking library that automatically validates function arguments and constructor parameters against their type annotations. It solves the problem of untyped or loosely-typed data (from JSON, external APIs, or dynamic sources) flowing into functions that expect specific types\u2014catching type mismatches at runtime rather than letting them propagate as silent bugs or cryptic errors downstream.\n\nThe library provides two main decorators: `@type_checked_call()` for functions and `@type_checked_constructor()` for class constructors. It's particularly useful for deserializing JSON into typed dataclasses or NamedTuples, where you can unpack a dictionary directly into a constructor and let undictify validate all fields match their declared types. It supports optional parameters, type conversions, and selective field skipping, making it practical for web handlers and data ingestion pipelines.","worth_installing":"Yes, if you work with untyped data sources (JSON, APIs, user input) and want runtime type safety without manual validation code. The low install friction and permissive license make it a low-risk addition. However, note that maintenance is dormant (last release 2022-08-12); verify compatibility with your Python version and consider whether the package's scope matches your needs before adopting it for new projects."},"id":"undictify","links":{"html":"https://skillfed.io/packages/undictify","md":"https://skillfed.io/packages/undictify.md","pypi":"https://pypi.org/project/undictify/"},"maintenance":{"status":"dormant"},"meta":{"latest_release":"2022-08-12","license_spdx":null,"license_treatment":"permissive","name":"undictify","python_support":"unspecified","summary":"Type-checked function calls at runtime"},"popularity":{"monthly_downloads":89815,"position":13634,"tier":"top_15000"},"security":{"n_vulnerabilities":0},"version":"0.11.3"}
