$npx skillfedfor your agent

undictify

Type-checked function calls at runtime

With conditionsPyPI Quality AssuranceReleased Aug 202289.8K downloads / mopermissive licensePure Python

Decision gist · record as of 2026-08-14

pure-Python wheel — undictify-0.11.3-py3-none-any.whl
v0.11.3 · released 2022-08-12

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.AI-flagged interpretation of the facts on this page — verify before relying

Before you install

  • Low install friction; pure Python wheel with no runtime dependencies.
  • Maintenance is dormant—last release was 2022-08-12, over 1463 days ago, though the repository remains active and unarchived.

License · maintenance · safety

permissive license (permissive) — MIT license (permissive); you can use, modify, and distribute this package freely with minimal restrictions.

last release 2022-08-12 (1463 days) · last repo commit 2024-08-27 · 98 stars

0 known vulnerabilities (OSV.dev, 2026-08-14) · 89,815 downloads/mo, #13,634 on PyPI

Verify before relying

from undictify import type_checked_call

@type_checked_call()
def times_two(value: int) -> int:
    return 2 * value

result = times_two(3)  # works
times_two('3')  # raises TypeError at runtime
  • Whether the package works correctly with Python versions beyond 3.9 (classifiers list only 3.7, 3.8, 3.9)
  • Current compatibility with modern type annotation syntax (e.g., PEP 604 union syntax, PEP 585 generics)
  • Performance overhead of runtime type-checking on high-frequency function calls
Same gist for agents: .md · .json

What it is and 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—catching type mismatches at runtime rather than letting them propagate as silent bugs or cryptic errors downstream.

The 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.

Use it for

  • 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

Worth the install?

AI-flagged interpretation of the facts on this page. Verify before relying on it.

With conditions

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.

Install

undictify on PyPI

Before you install

Low install friction; pure Python wheel with no runtime dependencies. Maintenance is dormant—last release was 2022-08-12, over 1463 days ago, though the repository remains active and unarchived.

License in practice

MIT license (permissive); you can use, modify, and distribute this package freely with minimal restrictions.

Quickstart

from undictify import type_checked_call

@type_checked_call()
def times_two(value: int) -> int:
    return 2 * value

result = times_two(3)  # works
times_two('3')  # raises TypeError at runtime

Verify before relying

  • Whether the package works correctly with Python versions beyond 3.9 (classifiers list only 3.7, 3.8, 3.9)
  • Current compatibility with modern type annotation syntax (e.g., PEP 604 union syntax, PEP 585 generics)
  • Performance overhead of runtime type-checking on high-frequency function calls

Package facts

Licensepermissive license permissive
Python supportNot specified
Install frictionLow. Pure-Python wheel
Runtime dependenciesNone
MaintenanceDormant 1,463 days since the last release
Last repo commit
First released
Downloads89,815 / month, #13,634 on PyPI 30-day window, as of 2026-08-14
Known vulnerabilitiesNone known OSV.dev, checked 2026-08-14
Classifiers
License :: OSI Approved :: MIT LicenseOperating System :: OS IndependentProgramming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9

Evidence: undictify-0.11.3-py3-none-any.whl

Tags

Capabilities
runtime type checkingtype-checked function callsvalidate function argumentsenforce type annotationsJSON deserialization validationdataclass type validationdictionary unpacking with types
Topics
type-checkingdata-validationjson-deserialization

Let your AI agent find packages like this

Example. Real query, live index.

You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.

wish › “type-checked function calls”

  • undictifyEnforces type annotations at runtime by wrapping function calls and…
  • cel-expr-pythonA Python wrapper for the CEL C++ implementation that compiles and…
  • thincThinc is a lightweight deep learning library offering a…

Give your agent the search over MCP, or paste the wish link into any chat.

More Quality Assurance packages

coverage Worth it
PyPI · Testing · released Aug 2026

Coverage.py measures which lines of Python code are executed during test runs, reporting coverage percentages and identifying untested code paths.

Install it if you want to measure test completeness or enforce coverage thresholds in your project.

permissive licensepure Python · 3.10+
335.8Mdownloads / mo
ruff Worth it
PyPI · Python Modules · released Aug 2026

Ruff is a Python linter and code formatter written in Rust that combines linting, formatting, and code fixing into a single tool, replacing Flake8, Black, isort, and related utilities.

MITcompiled wheel · 3.7+
316.1Mdownloads / mo
pexpect With conditions
PyPI · Software Development · released Nov 2023

Pexpect spawns and controls interactive console applications by sending input and matching output patterns, automating tasks that would otherwise require manual interaction.

ISCpure Pythonaging
200.8Mdownloads / mo
black Worth it
PyPI · Python Modules · released May 2026

Black reformats Python source code to a consistent style by parsing entire files and rewriting them according to an opinionated, deterministic set of rules, eliminating manual formatting decisions.

MITpure Python · 3.10+
179.9Mdownloads / mo
pytest-xdist Worth it
PyPI · Utilities · released Jul 2025

pytest-xdist distributes pytest tests across multiple CPU cores or machines to speed up test execution, with the simplest usage being `pytest -n auto` to spawn workers equal to available CPUs.

Install it if your test suite takes long enough that parallelization would save meaningful time.

MITpure Python · 3.9+
177.1Mdownloads / mo
cfn-lint Worth it
PyPI · Quality Assurance · released Aug 2026

Validates AWS CloudFormation templates in YAML or JSON format against resource provider schemas and best practices, checking property values and configuration correctness.

Install it if you work with CloudFormation templates.

MIT-0pure Python
114.9Mdownloads / mo

See also runtype · typing-json · typed-json-dataclass · decopatch · databind.json · typedload · wraps · vkbottle-types · datetype · empty-files