Skip to main content

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

uv Ruff License: MIT Download/Month PyPI Version Read the Docs

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.

Changes

To see changes by version check the changelog.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fuso-0.3.4.tar.gz (4.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fuso-0.3.4-py3-none-any.whl (5.5 kB view details)

Uploaded Python 3

File details

Details for the file fuso-0.3.4.tar.gz.

File metadata

  • Download URL: fuso-0.3.4.tar.gz
  • Upload date:
  • Size: 4.9 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

Hashes for fuso-0.3.4.tar.gz
Algorithm Hash digest
SHA256 e9dbfe0fbee6a8ab218f1726b72682694dd3d1d6f21d184dd4e2941c10de32b5
MD5 073867a035e27e928f67a333244bd387
BLAKE2b-256 36c3140956c1fbd8aabf5a0a1cf045b3260f2550fa3f928729c29e4193dfc561

See more details on using hashes here.

File details

Details for the file fuso-0.3.4-py3-none-any.whl.

File metadata

  • Download URL: fuso-0.3.4-py3-none-any.whl
  • Upload date:
  • Size: 5.5 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

Hashes for fuso-0.3.4-py3-none-any.whl
Algorithm Hash digest
SHA256 b00dd104d29029a20abf241a2f2c06fc6c8a2f0c66c1c7cda3f52a6c2d6c3966
MD5 38f15b8a3f6eb305c4d9292f0b2232cc
BLAKE2b-256 3e02ec36841c78474fe5432cbdd0dce7663eb0d47718d18fda3e829ab529b4b2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page