Skip to main content

Test

frozenjsondict

Inspired in https://github.com/slezica/python-frozendict, this variation takes it one step further and lets you build immutable JSON dictionaries that can be used as dictionary keys and set elements.

Its hash function uses JSON serialization, so you can use it as long as your data is JSON-serializable.

Example of usage:

from frozenjsondict import FrozenJsonDict

fjd_1 = FrozenJsonDict({"a": [1, 2, 3]})
fjd_2 = FrozenJsonDict({"b": [3, 4], "c": [6]})
fjd_3 = FrozenJsonDict({"c": [6], "b": [3, 4]})

# Support for common interfaces
"a" in fjd_1  # True
fjd_1["a"]  # [1, 2, 3]
fjd_1.a  # [1, 2, 3]
len(fjd_2)  # 2
fjd_2 == fjd_3  # True
for key, value in fjd_2.items():
    print(f"{key}: {value}")
    # b: [3, 4]
    # c: [6]

# Usage as dictionary key
fjd_dict = dict()
fjd_dict[fjd_1] = 1
fjd_dict[fjd_2] = 2
fjd_dict[fjd_3] = 3
print(fjd_dict)
# {<FrozenJsonDict {"a":[1,2,3]}>: 1, <FrozenJsonDict {"b":[3,4],"c":[6]}>: 3}

# Usage as set element
fjd_set = set()
fjd_set.add(fjd_1)
fjd_set.add(fjd_2)
fjd_set.add(fjd_3)
print(fjd_set)
# {<FrozenJsonDict {"a":[1,2,3]}>, <FrozenJsonDict {"b":[3,4],"c":[6]}>}

Metadata

Release files for frozenjsondict 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for frozenjsondict 1.0.0
File Size Uploaded
frozenjsondict-1.0.0.tar.gz 2.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for frozenjsondict 1.0.0
File Interpreter ABI Platform
frozenjsondict-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 6.0 kB

Release files / frozenjsondict-1.0.0.tar.gz

Download URL frozenjsondict-1.0.0.tar.gz
Size 2.8 kB
Tags Source
SHA-256 checksum
How to use checksums
ac92af929d7317f28cfacb4007fdd3960669ed2fd18009fc4c8d0cbc52454b09
BLAKE2b-256 checksum
How to use checksums
36cb75f9169c537660b53f46aa2636806a3b641b10dc17eb2c700fe69f0ef01e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.2

Release files / frozenjsondict-1.0.0-py3-none-any.whl

Download URL frozenjsondict-1.0.0-py3-none-any.whl
Size 3.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
62856957a4d94947cbe0e09959d415dc908b3d55a9a4525a683aabe926529afe
BLAKE2b-256 checksum
How to use checksums
5a8e1d7e98e4e5199c8c7f8ec59645b8a4da50832933a1eb6e5649e0ba96a9c7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.2

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page