Use JavaScript-like object definition syntax in Python
Project description
Literal Dict
literal-dict
is a Python utility that allows for the creation of dictionary objects with a syntax reminiscent of JavaScript object notation. This tool is particularly useful for developers looking to streamline their code by reducing the verbosity commonly associated with dictionary creation in Python.
Features
- Intuitive Variable Inclusion: Create Python dictionaries using a syntax similar to JavaScript objects: automatically uses variable names as keys, simplifying the process of dictionary creation.
- Flexible Dictionary Implementations: Supports custom dictionary implementations, enabling behaviors like ordered dictionaries, default dictionaries, dot dictionaries, and more.
- Various Python Distribution Supports: This package is tested under almost every popular python implementations.
Installation
pip install literal-dict
Usage
Basic Dictionary Creation
Start by importing DictBuilder
from the package:
from literal_dict import DictBuilder
Create a DictBuilder
instance:
d = DictBuilder()
Now, you can create dictionaries with a simplified syntax:
name = "Muspi Merol"
age = 20
user = d[name, age, "active": True]
print(user) # Output: {'name': 'Muspi Merol', 'age': 20, 'active': True}
Using Custom Dictionary Implementations
DictBuilder
allows specifying a custom dict-like type:
Example with types.SimpleNamespace
Using SimpleNamespace
from the types
module allows for attribute-style access to dictionary keys. This can make your code cleaner and more readable in some cases.
from types import SimpleNamespace
from literal_dict import DictBuilder
d = DictBuilder(lambda dict: SimpleNamespace(**dict))
name = "Muspi Merol"
email = "me@promplate.dev"
person = d[name, email]
print(person.name) # Output: Muspi Merol
print(person.email) # Output: me@promplate.dev
Note: When using SimpleNamespace
, the returned object is not a dictionary but an instance of SimpleNamespace
, which allows for dot-notation access to the attributes.
Example with collections.defaultdict
from collections import defaultdict
from functools import partial
from literal_dict import DictBuilder
d = DictBuilder(partial(defaultdict, int))
a = 1
obj = d[a, "b":2]
print(obj["c"]) # Output: 0, since 'c' does not exist, it returns the default int value
Conclusion
The Literal Dict Builder
offers a succinct and intuitive way to create dictionaries in Python, drawing inspiration from JavaScript's object notation. Its support for custom dictionary implementations adds a layer of flexibility, allowing developers to tailor their data structures to fit their needs.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file literal_dict-1.1.0.tar.gz
.
File metadata
- Download URL: literal_dict-1.1.0.tar.gz
- Upload date:
- Size: 2.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: pdm/2.14.0 CPython/3.12.0 Windows/11
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 64419e8ae85086fec946474139c135fa7cb998d211aabc36f175cf93d731df1e |
|
MD5 | 456f3b273510d01aaf5bbf949a25aa31 |
|
BLAKE2b-256 | 1be2c32724277dbf1881588ccdb5baccb7f94da3776e5f60435b8628661168af |
File details
Details for the file literal_dict-1.1.0-py3-none-any.whl
.
File metadata
- Download URL: literal_dict-1.1.0-py3-none-any.whl
- Upload date:
- Size: 2.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: pdm/2.14.0 CPython/3.12.0 Windows/11
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7fba6d287052ec33b04824da5d151f2241285f64a23e432597821d234fa025e8 |
|
MD5 | f15cbc9c6329aca8b6649ffb8aed5005 |
|
BLAKE2b-256 | 499a2cfd332547decfcd5a79408ac64cd38a4f5b056e0e8e95aa64510965ac17 |