prodict
Prodict = Pro Dictionary with IDE friendly(auto code completion), dot-accessible attributes and more.
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 prodictuv
uv add prodictpoetry
poetry add prodictInstalling 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
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
mo-dotsProvides null-safe dot-notation access to…
copyleft · top 15,000 on PyPI
multi_key_dictA dictionary that maps multiple keys to the…
permissive · top 5,000 on PyPI
super-collectionsConverts nested JSON and YAML data into Python…
permissive · top 5,000 on PyPI
python-boxBox wraps Python dictionaries to enable…
permissive · top 5,000 on PyPI
jsonasobj2Converts JSON data into Python objects with…
permissive · top 15,000 on PyPI
easydictEasyDict wraps Python dictionaries to allow…
copyleft · top 5,000 on PyPI
flatdictFlattens nested dictionaries into single-level…
permissive · top 5,000 on PyPI
type-enforcedEnforces Python type annotations at runtime…
permissive · top 15,000 on PyPI
schemaValidates Python data structures (dicts, lists,…
permissive · top 1,000 on PyPI