Fuso is a tool for merging data structures in Python. It provides a simple and intuitive API for merging dictionaries, lists, and other data structures.
Project description
Fuso
fuso comes from the Italian word fusione, which translates to fusion. This is exactly what this library does; it creates a fusion between two dictionaries.
The goal of this library is to offer a customizable way of deeply merging dictionaries. In its simplest form, fuso offers an experience like other well-established dictionary merging libraries such as deepmerge, mergedeep.
However, where this library differs is that it allows the user to specify custom merge_functions that should be applied for specific dot paths.
For example, you may want to concatenate lists found at the dot path settings.plugins, but for other lists, you may want to replace them entirely. With fuso, this is possible.
Installation
You can install fuso via pip:
pip install fuso
Usage
Here's a basic example of how to use fuso to merge two dictionaries:
from fuso import merge
dict1 = {
"settings": {
"theme": "dark",
"plugins": ["plugin1", "plugin2"]
}
}
dict2 = {
"settings": {
"plugins": ["plugin3"],
"language": "en"
}
}
merged_dict = merge(dict1, dict2)
print(merged_dict)
# {
# "settings": {
# "theme": "dark",
# "plugins": ["plugin1", "plugin2", "plugin3"],
# "language": "en"
# }
Documentation
For more detailed documentation, including advanced usage and customization options, please visit the official documentation.
Contributing
Contributions are welcome! Please feel free to submit issues or pull requests on the GitHub repository.
License
This project is licensed under the MIT License. See the LICENSE file for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fuso-0.2.4.tar.gz.
File metadata
- Download URL: fuso-0.2.4.tar.gz
- Upload date:
- Size: 5.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.9.15 {"installer":{"name":"uv","version":"0.9.15","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ef3913d279c00cf1a0047792c24bb46d95dc8382a03e91ec8718e126ce5ad526
|
|
| MD5 |
8994a48da7069850d9d4786f8fa4d255
|
|
| BLAKE2b-256 |
cdbfd362277fa66fc73b3637318472100d84096be6bede4e62eb7549bb198743
|
File details
Details for the file fuso-0.2.4-py3-none-any.whl.
File metadata
- Download URL: fuso-0.2.4-py3-none-any.whl
- Upload date:
- Size: 7.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.9.15 {"installer":{"name":"uv","version":"0.9.15","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a98d391b22f4241eb643d177cf228bd53b2525990546d658db3bd9454d2bff64
|
|
| MD5 |
7263621d9af6ba0664e85139c65ff1ba
|
|
| BLAKE2b-256 |
222422d7c3cde9ee269532895fae80ce483139c18a4157cccb0b060c28516650
|