Skip to main content

A lightweight Python class that behaves like a dict but supports attribute-style access.

Project description

Bunch

A simple Python class that allows dictionary-style and attribute-style access to data interchangeably. Think of it as a lightweight object wrapper for dictionaries — great for config objects, JSON responses, or anything else you'd normally throw in a dict.

Features

  • Access keys as attributes or like a dictionary
  • Convert from regular dictionaries
  • Pretty-printed JSON representation
  • Check if a value exists
  • Fully compatible with in, .keys(), .items(), etc.

Installation

You can install this package via PIP: pip install python-bunch

Usage

# - Mutable Bunch -
from bunch.bunch import Bunch

my_bunch = Bunch(name='Jane', age=30)

print(my_bunch.name)  # Output: Jane
print(my_bunch['age'])  # Output: 30

# From Dictionary
my_dict = {'name': 'Bob', 'age': 25}
my_bunch_from_dict = Bunch.from_dict(my_dict)
print(my_bunch_from_dict)  # Output: {'name': 'Bob', 'age': 25}

# - Immutable Bunch -
from bunch.immutable_bunch import ImmutableBunch

my_immutable_bunch = ImmutableBunch(name='John', age=35)
print(my_immutable_bunch.name)  # Output: John
print(my_immutable_bunch['age'])  # Output: 35

# Attempting to modify an ImmutableBunch will raise an Exception
my_immutable_bunch.name = 'Alice'  # Raises ImmutableBunchException

# From Dictionary
my_dict = {'name': 'Alice', 'age': 40}
my_bunch_from_dict = Bunch.from_dict(my_dict, recursive=True)
print(my_bunch_from_dict)  # Output: {'name': 'Alice', 'age': 40}

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

python_bunch-0.1.9.tar.gz (4.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

python_bunch-0.1.9-py3-none-any.whl (4.7 kB view details)

Uploaded Python 3

File details

Details for the file python_bunch-0.1.9.tar.gz.

File metadata

  • Download URL: python_bunch-0.1.9.tar.gz
  • Upload date:
  • Size: 4.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.6

File hashes

Hashes for python_bunch-0.1.9.tar.gz
Algorithm Hash digest
SHA256 21876e0fb1f9111dff5a2b9148305080d378e657ab4c88fccea31bb08977d3be
MD5 5e9704986eca4b82e73b28e5e3a78e16
BLAKE2b-256 ba137a2affc88e34ef1a62bce6d9227344baf36f57ea82aa84f7fff1ca6b540e

See more details on using hashes here.

File details

Details for the file python_bunch-0.1.9-py3-none-any.whl.

File metadata

  • Download URL: python_bunch-0.1.9-py3-none-any.whl
  • Upload date:
  • Size: 4.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.6

File hashes

Hashes for python_bunch-0.1.9-py3-none-any.whl
Algorithm Hash digest
SHA256 7e5ce9dba29b68727039d5063d31393973eba865e15d1ddc75aafa0ce04c2818
MD5 e7413e85d1d253cc3cabc4d55d52a5c3
BLAKE2b-256 ef5cf1d66614f7040394125331fcd44e79f33c61a9b803afa952ac18f70b42ed

See more details on using hashes here.

Supported by

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