Install & Compatibility
Where this runs
tested against v0.14.2 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
muslpy 3.10–3.95 runs
installs and imports cleanly · install 0.0s · import 0.076s · 18.8MB
glibcpy 3.10–3.95 runs
installs and imports cleanly · install 1.6s · import 0.062s · 19MB
17MB installed
● package 17MB
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
DictWalker
✓ from dictknife import DictWalker
Main class for walking nested dicts.
deep_merge
✓ from dictknife import deep_merge
✗ from dictknife.deep_merge import deep_merge
deep_merge is a top-level function.
load_csv
✓ from dictknife import load_csv
✗ from dictknife.csv import load_csv
load_csv is a top-level function.
Demonstrates deep_merge and DictWalker.
from dictknife import deep_merge, DictWalker
d1 = {'a': 1, 'b': {'x': 10}}
d2 = {'b': {'y': 20}, 'c': 3}
merged = deep_merge(d1, d2)
print(merged)
# {'a': 1, 'b': {'x': 10, 'y': 20}, 'c': 3}
walker = DictWalker(d1)
for path, value in walker.walk():
print(path, value)
Errors
Common errors & fixes
ImportError: cannot import name 'deep_merge' from 'dictknife'
Old version of dictknife (<0.9) had deep_merge under a different name or not available.
fixUpgrade dictknife to latest: pip install --upgrade dictknife
TypeError: deep_merge() got an unexpected keyword argument 'conflict'
Previously deep_merge accepted a 'conflict' argument to resolve conflicts, removed in v0.14.
fixRemove the 'conflict' argument; merge now always overwrites. See docs for custom conflict resolution.
ModuleNotFoundError: No module named 'dictknife.csv'
Submodule csv was removed in v0.14.0.
fixUse top-level import: from dictknife import load_csv
Upgrade
Version history
0.14.2latest on PyPI · released Jul 5, 2025
Audit
Dependencies
No dependency data recorded yet.