Skip to content

ZeroIntensity/snakedict

Repository files navigation

Snake Dict

Keep your dictionary keys PEP 8 compliant

Quick Example

from snakedict import convert

my_dict = {
    "helloWorld": "test",
    "thisIsCamelCase": "hello",
    "this_is_snake_case": "world",
}

my_dict = convert(a)
print(my_dict["hello_world"])  # test

Installation

Linux/macOS

python3 -m pip install -U snakedict

Windows

py -3 -m pip install -U snakedict

Usage

There are 2 main functions, convert and auto.

convert does what was shown above, it takes in a dictionary and converts keys that are in camelCase to snake_case:

from snakedict import convert

my_dict = {
    "something": "test",
    (1, 2, 3): "hello"  # you can use any key you want, snakedict won't touch it unless its in camelcase
}

print(convert(my_dict))  # no camelcase found, nothing happens

On the other hand, auto is a decorator that converts the response to snake case:

from snakedict import auto

@auto()
def fetch_something():
    return {  # lets pretend this is a call to some api
        "accountName": "someone1234",
        "joinDate": "7/19/22",
    }

print(fetch_something()["account_name"])

auto has a parameter called execute_maybe that won't call convert if the response wasn't a dict:

If you want an error to be raised if the function returns None, set it to False:

@auto(execute_maybe = False)
def fetch_something():
    return None

fetch_something()  # TypeError!

About

Keep your dict keys PEP 8 compliant.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages