Skip to main content

Making Python's `dict` easier to work with by adding object notation and grouping

Project description

EZDict

Making Python's dict easier to work with by adding object notation and grouping.

  1. Allows keys to be accessed as attributes, so ezdict.attr can be used instead of ezdict["attr"]. Note, this only works with string keys. Additionally, any keys that overlap with method names will be shadowed, so to access the key keys, use ezdict["keys"] instead of ezdict.keys.
  2. Provide two methods, incrementer and appender, to support the common operations of counting the occurrences of a key and grouping values by a key, respectively.

Installation

pip install ezdict

Import

from ezdict import EZDict

Usage

Accessing Keys as Attributes

from ezdict import EZDict

ez = EZDict({
    "id": "5e2797c05aa0585816ce8b8c",
    "title": "EZDict",
    "description": "Super cool Python package",
    "author": "Jacob Morris (BlendingJake)",
    "meta": {
        "created": "March 27th, 2020"
    }
})

print(ez.title)  # >>> "EZDict"
print(ez.meta.created)  # >>> "March 27th, 2020"

Grouping/Counting Like a Pro

from ezdict import EZDict

# tried of this?
iterable = [ ... ]
grouped = {}
for item in iterable:
    if item["key"] in grouped:
        grouped[item["key"]] += 1
        # OR grouped[item["key"]].append(item)
    else:
        grouped[item["key"]] = 1
        # OR grouped[item["key"]] = [item]

# do this instead
iterable = [ ... ]
grouped = EZDict()
for item in iterable:
    grouped.incrementer(item["key"])
    # OR grouped.appender(item["key"], item)

incrementer(key, increment=1)

Increment key by increment if the key has already been seen. Otherwise, set the key equal to increment.

appender(key, value)

Append value to the list of values associated with key if that key was already been seen. Otherwise, set the key equal to [value].

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

ezdict-1.0.0.tar.gz (2.9 kB view details)

Uploaded Source

Built Distribution

ezdict-1.0.0-py3-none-any.whl (15.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: ezdict-1.0.0.tar.gz
  • Upload date:
  • Size: 2.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.19.1 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.7.0

File hashes

Hashes for ezdict-1.0.0.tar.gz
Algorithm Hash digest
SHA256 98f5574c2b82108d9bb8852724d6d4188e2670e0857628f523b6c267480b3e1d
MD5 59324143c4564a78bbb3967a2d0fb5eb
BLAKE2b-256 d686aef76cb5409fc47324b5fc9cbab748a3b00b3abba4af9d5c932d27738698

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ezdict-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 15.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.19.1 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.7.0

File hashes

Hashes for ezdict-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 34e92c3cd28143251ab767d5a02b6cd1fb2d2133b7effa603a0941c705367c09
MD5 f7ede3b0ce941b1a9ed6dd4657a998b2
BLAKE2b-256 35777efaa4fb3d488c164e14ed8f9ba0bb7a3cc00f4d823d141a9d1d59f106aa

See more details on using hashes here.

Supported by

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