Skip to main content

Immutable JSON dictionary with hash functionality

Project description

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]}>}

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

frozenjsondict-1.0.0.tar.gz (2.8 kB view details)

Uploaded Source

Built Distribution

frozenjsondict-1.0.0-py3-none-any.whl (3.2 kB view details)

Uploaded Python 3

File details

Details for the file frozenjsondict-1.0.0.tar.gz.

File metadata

  • Download URL: frozenjsondict-1.0.0.tar.gz
  • Upload date:
  • Size: 2.8 kB
  • Tags: Source
  • Uploaded using 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

File hashes

Hashes for frozenjsondict-1.0.0.tar.gz
Algorithm Hash digest
SHA256 ac92af929d7317f28cfacb4007fdd3960669ed2fd18009fc4c8d0cbc52454b09
MD5 181a50e359abc87776e47ba44a9dc222
BLAKE2b-256 36cb75f9169c537660b53f46aa2636806a3b641b10dc17eb2c700fe69f0ef01e

See more details on using hashes here.

File details

Details for the file frozenjsondict-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: frozenjsondict-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 3.2 kB
  • Tags: Python 3
  • Uploaded using 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

File hashes

Hashes for frozenjsondict-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 62856957a4d94947cbe0e09959d415dc908b3d55a9a4525a683aabe926529afe
MD5 2f0275269d6c23c0a669f75586d0c182
BLAKE2b-256 5a8e1d7e98e4e5199c8c7f8ec59645b8a4da50832933a1eb6e5649e0ba96a9c7

See more details on using hashes here.

Supported by

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