MappingTools
Do stuff with Mappings and more
This library provides utility functions for creating, manipulating, and transforming data structures, which have or include Mapping-like characteristics.
Including inverting dictionaries, converting class-like objects to dictionaries, creating nested defaultdicts, and unwrapping complex objects.
| Package |
|
| Code |
|
| Tools |
|
| CI/CD |
|
| Scans |
|
🚀 Why use MappingTools?
Built for developers who need more than just standard dictionaries.
| Problem | Solution |
|---|---|
| Boilerplate Reduction | Use Dictifier to broadcast method calls to a collection of objects (users.greet() instead of a for loop). |
| Deep JSON Diffing | Use flatten() to collapse nested JSON into single-layer paths for easy comparison. |
| Data Collisions | Use inverse() to swap keys/values without losing data (automatically creates sets for duplicates). |
| Slow Config Loading | Use MeteredDict to profile exactly how many times your app reads specific config keys. |
| Quick Serialization | Use simplify() to instantly convert Dataclasses, DateTime, and custom objects into pure Dicts. |
| Complex Grouping | Use reshape() to pivot lists of dicts into N-dimensional nested dictionaries (tensors). |
| Key Remapping | Use rename() or rekey() to transform dictionary keys using functions or maps. |
| Multi-Dimensional Counting | Use CategoryCollector to aggregate data into multiple buckets simultaneously (e.g., by type AND by status). |
| Safe Deep Modification | Use Lens to immutably update nested values without cloning the entire structure manually. |
Documentation
https://erivlis.github.io/mappingtools/
Development
Ruff
ruff check src
ruff check tests
Test
Standard terminal Coverage Report
python -m pytest tests --cov=src --cov-branch --doctest-modules --cov-report=term-missing
Standard (cobertura) XML Coverage Report
python -m pytest tests --cov=src --cov-branch --doctest-modules --cov-report=xml
HTML Coverage Report
python -m pytest tests --cov=src --cov-branch --doctest-modules --cov-report=html
Metadata
Release files for mappingtools 0.18.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| mappingtools-0.18.2.tar.gz | 749.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mappingtools-0.18.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 792.4 kB
Release files / mappingtools-0.18.2.tar.gz
| Download URL | mappingtools-0.18.2.tar.gz |
|---|---|
| Size | 749.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3b85207addd892077f518f89fa5621990e355603bccf3285c896982db1f6ad06
|
|
BLAKE2b-256 checksum How to use checksums |
f8dd06ab9213a99de60f1dcefd8e1c740926c3124b0c221a76bc63e1f085830d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Release files / mappingtools-0.18.2-py3-none-any.whl
| Download URL | mappingtools-0.18.2-py3-none-any.whl |
|---|---|
| Size | 42.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
aac2113258776f12b82794debe11208f5a77841ebe59e23272105406ca09df18
|
|
BLAKE2b-256 checksum How to use checksums |
a42ccc79fe0efe6624867170c624404472f8e24380ad3fc3b0f282304268e480
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|