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 hashes)

Uploaded Source

Built Distribution

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

Uploaded Python 3

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