Skip to main content

SickDict

An IDE friendly (auto-completion) python dictionary with dot-accessible attributes.

Why?

  • The pythonic way to access the dictionary d['key'] is prone to errors and honestly, pretty ugly.
  • The case becomes worse when the dictionary is a nested one d['key1]['key2']. Now obviously d.key1.key2.key3 is much better.
  • Default python dictionary does not support auto-completion in almost all the IDE's, but SickDict will.

How to use it?

  1. Install the package:
pip install sick-dict
  1. Import the package:
from sick_dict import SickDict

Features

  1. Create a dictionary without defining it keys beforehand
sd = SickDict()
sd.hello = "world"
  1. Pass a dictionary and all the keys in dictionary will become properties
d = {'hello': 'world'}
sd = SickDict(d)
print(sd.hello)     # world
  1. Pass keyword arguments and all the arguments will become properties
sd = SickDict(hello="world", this_is="awesome")
print(sd.hello)     # world
print(sd.this_is)     # awesome
  1. Pass both dictionary and keyword arguments
d = {'hello': 'world'}
sd = SickDict(d, this_is="awesome")
print(sd.hello)     # world
print(sd.this_is)     # awesome
  1. Pass a nested dictionary with a list
foo = {
    "bar" : {
        "baz" : [{"boo" : "hoo"}, {"baba" : "loo"}]
    }
}
sd = SickDict(foo)
print(sd.bar.baz[0].boo)     # hoo
  1. Use del keyword to remove a key
sd = SickDict(hello="world", this_is="awesome")
del sd.hello
print(sd.hello)     # Key
  1. Use + operator to combine two instances of SickDict
sd1 = SickDict(hello="world")
print(sd1)      # SickDict({'hello': 'world'})

sd2 = SickDict(this_is="awesome")
print(sd2)      # SickDict({'this_is': 'awesome'})

print(sd1 + sd2)    # SickDict({'hello': 'world', 'this_is': 'awesome'})
  1. Use other dictionary functions like get(), update() etc.
sd = SickDict(hello="world")
print(sd.get('hello'))     # world

sd.update({'who_are_you': 'developer'}, this_is="awesome")
print(sd)      # SickDict({'hello': 'world', 'who_are_you': 'developer', 'this_is': 'awesome'})

Metadata

Release files for sick-dict 0.2

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

Source distribution (sdist)

Source distribution for sick-dict 0.2
File Size Uploaded
sick-dict-0.2.tar.gz 3.6 kB Details

Release files / sick-dict-0.2.tar.gz

Download URL sick-dict-0.2.tar.gz
Size 3.6 kB
Tags Source
SHA-256 checksum
How to use checksums
6811511fe270846a065acb22100d7845e21a530785a19b87adf46ffe408c5c72
BLAKE2b-256 checksum
How to use checksums
3b24ed34c0834ec2c4fa636d619a91f8dce54a648af292a912fa815b2515797a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.10.3

Release history Release notifications | RSS feed

This release

0.2 This release

1 release file

0.1

1 release file

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