skillfed

prodict

Prodict = Pro Dictionary with IDE friendly(auto code completion), dot-accessible attributes and more.

prodict v0.8.22 102.8K downloads/30d#12,846 on PyPI152
Permissive license MIT AGING released

What it is and what it does

Prodict is a dictionary subclass that lets you access keys as dot-notation attributes instead of bracket notation, with built-in IDE autocompletion support through type hints. It is a true dict subclass, so it behaves like a regular dictionary while adding the convenience of attribute access and automatic nested object instantiation.

The main use case is simplifying interaction with JSON data from REST APIs. Instead of manually constructing nested class hierarchies to deserialize JSON responses, you define Prodict subclasses with type annotations and call from_dict() on the JSON payload—the package automatically converts nested dicts to typed instances and performs type coercion on primitive fields. This eliminates boilerplate deserialization code and enables IDE autocompletion on the resulting objects.

Use it for:

  • Deserialize JSON API responses into typed Python objects with one line, avoiding manual class construction and nested dict unpacking.
  • Access deeply nested JSON data using dot notation instead of bracket chains like d['key1']['key2']['key3'].
  • Add dynamic attributes to dict-like objects at runtime while retaining IDE autocompletion for declared fields.
  • Convert REST service responses with inconsistent types into correctly typed Python objects automatically.
  • Build lightweight data containers that behave like dicts but provide attribute access without defining full classes.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Prodict wraps Python dictionaries to allow dot-notation attribute access and IDE autocompletion, with optional type hints for automatic nested object instantiation and type conversion.

Yes, if you work frequently with JSON APIs and want to reduce deserialization boilerplate while gaining IDE autocompletion. The package is stable, permissively licensed, and has no dependencies. However, maintenance is aging (last update 304 days ago), so evaluate whether the lack of recent activity poses a risk for your use case.

Install

prodict on PyPI

pip

pip install prodict

uv

uv add prodict

poetry

poetry add prodict

Installing prodict

Before you install

Low install friction with no runtime dependencies. Maintenance is aging—last commit was 2025-10-14 and the package has not been updated for 304 days, though the repository remains active and not archived.

License in practice

MIT license permits unrestricted use, modification, and distribution with minimal legal friction.

Quickstart

from prodict import Prodict

class User(Prodict):
    user_id: int
    name: str

user = User(user_id="1", name="Ramazan")
print(user.user_id)  # 1 (converted to int)

Verify before relying

  • Whether automatic type conversion handles edge cases like custom types or complex nested structures beyond built-in types.
  • Performance characteristics when working with very large or deeply nested dictionary structures.
  • Compatibility with all Python versions between 3.7 and current, beyond the stated 3.12 classifier.

Package facts

License MIT (permissive)
Python support supports the current Python release (>=3.7)
Install friction low — pure-Python wheel
Runtime dependencies none
Maintenance aging — 304 days since the last release
Last repo commit
First released
Downloads 102,817/month — #12,846 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: prodict-0.8.22-py3-none-any.whl

Keywords: auto-code-complete, auto-complete, dict, dictionary, dynamic-props, prodict, python3, typehinting

Development Status :: 4 - BetaIntended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseProgramming Language :: Python :: 3.12Topic :: Software Development :: Libraries :: Python Modules

Tags

dict with dot notation accessdictionary attribute accessIDE autocompletion for dictstyped dictionary wrapperJSON to typed objectsnested dict instantiationdict with type hints
json-deserializationtype-hintsdict-wrapper

More Python Modules packages