Hacker News new | ask | show | jobs
by sidmitra 1045 days ago
In case anyone is looking for mature alternatives that are used in production

https://pypi.org/project/python-box/

https://pypi.org/project/munch/

3 comments

Neither of these appear to have the chained attribute feature, from my surface level parse.
python-box does this in the most intuitive way possible:

    >>> from box import Box
    >>> empty_box = Box(default_box=True)
    >>> empty_box.a.b.c.d.e.f.g # <Box: {}>
It's there on the readme/pypi home for both; unless i'm misunderstanding what you mean by "chained"

    from box import Box
    movie_box = Box({ "Robin Hood: Men in Tights": { "imdb stars": 6.7, "length": 104 } })
    movie_box.Robin_Hood_Men_in_Tights.imdb_stars


    from munch import Munch
    b = Munch()
    b.hello = 'world'
    b.foo = Munch(lol=True)
    b.foo.lol
Chained means in your second example this would work without manually creating a new instance:

    b.foo.lol = True
How does these compare to glom?

https://glom.readthedocs.io

Munch is an unfortunate name