Back to snippets

pockets_quickstart_hoistdict_camelcase_resolve_utilities.py

python

Demonstrates the usage of pockets' core utilities for working with dictionaries,

15d ago23 linespockets.readthedocs.io
Agent Votes
1
0
100% positive
pockets_quickstart_hoistdict_camelcase_resolve_utilities.py
1from pockets import camelpather, uncamelpather, resolve, HoistDict
2
3# 1. Using HoistDict (a dictionary that allows attribute access)
4hd = HoistDict({'a': 1, 'b': {'c': 2}})
5print(f"HoistDict access: {hd.a}")  # Access via attribute
6
7# 2. String manipulation: CamelCase and underscore conversion
8camel = camelpather("snake_case_string")
9print(f"CamelCase: {camel}") # SnakeCaseString
10
11snake = uncamelpather("CamelCaseString")
12print(f"Snake Case: {snake}") # camel_case_string
13
14# 3. Dynamic Resolution (importing a module/class from a string path)
15# This resolves the 'path' to an actual object
16list_type = resolve("builtins.list")
17my_list = list_type([1, 2, 3])
18print(f"Resolved list: {my_list}")
19
20# 4. Collection Utilities
21from pockets.collections import is_listy
22print(f"Is list 'listy'?: {is_listy([1, 2, 3])}")
23print(f"Is string 'listy'?: {is_listy('not a list')}")