*EasyDict* allows to access dict values as attributes (works recursively).
A Javascript-like properties dot notation for python dicts.
=====
USAGE
=====
::
>>> from easydict import EasyDict as edict
>>> d = edict({'foo':3, 'bar':{'x':1, 'y':2}})
>>> d.foo
3
>>> d.bar.x
1
>>> d = edict(foo=3)
>>> d.foo
3
Very useful when exploiting parsed JSON content !
::
>>> from easydict import EasyDict as edict
>>> from simplejson import loads
>>> j = """{
"Buffer": 12,
"List1": [
{"type" : "point", "coordinates" : [100.1,54.9] },
{"type" : "point", "coordinates" : [109.4,65.1] },
{"type" : "point", "coordinates" : [115.2,80.2] },
{"type" : "point", "coordinates" : [150.9,97.8] }
]
}"""
>>> d = edict(loads(j))
>>> d.Buffer
12
>>> d.List1[0].coordinates[1]
54.9
Can set attributes as easily as getting them :
::
>>> d = EasyDict()
>>> d.foo = 3
>>> d.foo
3
It is still a ``dict`` !
::
>>> d = EasyDict(log=False)
>>> d.debug = True
>>> d.items()
[('debug', True), ('log', False)]
Instance and class attributes are accessed like usual objects...
::
>>> class Flower(EasyDict):
... power = 1
...
>>> f = Flower({'height': 12})
>>> f.power
1
>>> f['power']
1
=======
LICENSE
=======
* Lesser GNU Public License
=======
AUTHORS
=======
* Mathieu Leplatre <mathieu.leplatre@makina-corpus.com>
|makinacom|_
.. |makinacom| image:: http://depot.makina-corpus.org/public/logo.gif
.. _makinacom: http://www.makina-corpus.com
Similar tools
=============
* `TreeDict <http://pypi.python.org/pypi/treedict>`_, a fast and full-featured dict-like tree container.
* `addict <https://github.com/mewwts/addict>`_
=========
CHANGELOG
=========
1.10 (unreleased)
=================
- Nothing changed yet.
1.9 (2018-10-18)
================
* Fix issue #3 that update and pop now work correctly on EasyDicts.
1.8 (2018-08-17)
================
* Update package classifiers.
1.7 (2017-04-27)
================
* Prevent copying sub-EasyDicts on assignment to fix unpickling (#7, thanks @Chronos-Sk)
1.6 (2015-01-27)
================
* Allow setting attributes via setting items (thanks phivos)
1.5 (2014-08-07)
================
* Allow subclassing using self instead of class name (thanks Steve Engledow)
1.4 (2011-03-13)
================
* Access class attributes like instance attributes
1.3 (2012-02-08)
================
* Better documentation and tests
1.2 (2011-06-08)
================
* Fix inclusion of README
1.1 (2012-04-21)
================
* Switch to distutils2
1.0 (2011-04-18)
================
* Initial working version
Raw data
{
"_id": null,
"home_page": "https://github.com/makinacorpus/easydict",
"name": "easy-dict-linshangsheng",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": "MBTiles, Mapnik",
"author": "Mathieu Leplatre",
"author_email": "mathieu.leplatre@makina-corpus.com",
"download_url": "https://files.pythonhosted.org/packages/9a/86/8dd3551f1fe132d96592b5699dfbb7d8cb21ef860043b8da6f1e58bbc2d8/easy_dict_linshangsheng-1.10.dev0.tar.gz",
"platform": null,
"description": "*EasyDict* allows to access dict values as attributes (works recursively). \nA Javascript-like properties dot notation for python dicts.\n\n=====\nUSAGE\n=====\n\n::\n\n >>> from easydict import EasyDict as edict\n >>> d = edict({'foo':3, 'bar':{'x':1, 'y':2}})\n >>> d.foo\n 3\n >>> d.bar.x\n 1\n \n >>> d = edict(foo=3)\n >>> d.foo\n 3\n\n\nVery useful when exploiting parsed JSON content ! \n\n::\n\n >>> from easydict import EasyDict as edict\n >>> from simplejson import loads\n >>> j = \"\"\"{\n \"Buffer\": 12,\n \"List1\": [\n {\"type\" : \"point\", \"coordinates\" : [100.1,54.9] },\n {\"type\" : \"point\", \"coordinates\" : [109.4,65.1] },\n {\"type\" : \"point\", \"coordinates\" : [115.2,80.2] },\n {\"type\" : \"point\", \"coordinates\" : [150.9,97.8] }\n ]\n }\"\"\"\n >>> d = edict(loads(j))\n >>> d.Buffer\n 12\n >>> d.List1[0].coordinates[1]\n 54.9\n\nCan set attributes as easily as getting them :\n\n::\n\n >>> d = EasyDict()\n >>> d.foo = 3\n >>> d.foo\n 3\n\nIt is still a ``dict`` !\n\n::\n\n >>> d = EasyDict(log=False)\n >>> d.debug = True\n >>> d.items()\n [('debug', True), ('log', False)]\n\nInstance and class attributes are accessed like usual objects...\n\n::\n\n >>> class Flower(EasyDict):\n ... power = 1\n ...\n >>> f = Flower({'height': 12})\n >>> f.power\n 1\n >>> f['power']\n 1\n\n=======\nLICENSE\n=======\n\n* Lesser GNU Public License\n\n=======\nAUTHORS\n=======\n\n* Mathieu Leplatre <mathieu.leplatre@makina-corpus.com>\n\n|makinacom|_\n\n.. |makinacom| image:: http://depot.makina-corpus.org/public/logo.gif\n.. _makinacom: http://www.makina-corpus.com\n\nSimilar tools\n=============\n\n* `TreeDict <http://pypi.python.org/pypi/treedict>`_, a fast and full-featured dict-like tree container.\n* `addict <https://github.com/mewwts/addict>`_\n\n\n=========\nCHANGELOG\n=========\n\n1.10 (unreleased)\n=================\n\n- Nothing changed yet.\n\n\n1.9 (2018-10-18)\n================\n\n* Fix issue #3 that update and pop now work correctly on EasyDicts.\n\n\n1.8 (2018-08-17)\n================\n\n* Update package classifiers.\n\n\n1.7 (2017-04-27)\n================\n\n* Prevent copying sub-EasyDicts on assignment to fix unpickling (#7, thanks @Chronos-Sk)\n\n1.6 (2015-01-27)\n================\n\n* Allow setting attributes via setting items (thanks phivos)\n\n1.5 (2014-08-07)\n================\n\n* Allow subclassing using self instead of class name (thanks Steve Engledow)\n\n1.4 (2011-03-13)\n================\n\n* Access class attributes like instance attributes\n\n1.3 (2012-02-08)\n================\n\n* Better documentation and tests\n\n1.2 (2011-06-08)\n================\n\n* Fix inclusion of README\n\n1.1 (2012-04-21)\n================\n\n* Switch to distutils2\n\n1.0 (2011-04-18)\n================\n\n* Initial working version\n",
"bugtrack_url": null,
"license": "LGPL-3.0",
"summary": "Access dict values as attributes (works recursively).",
"version": "1.10.dev0",
"project_urls": {
"Download": "http://pypi.python.org/pypi/easydict/",
"Homepage": "https://github.com/makinacorpus/easydict"
},
"split_keywords": [
"mbtiles",
" mapnik"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "9a868dd3551f1fe132d96592b5699dfbb7d8cb21ef860043b8da6f1e58bbc2d8",
"md5": "9bad7ac0fffbfe596814d0bc5e77db1c",
"sha256": "b159dc768da5a78d35821b06a08b9b10e2be0feb49eb3d2bebcf50f57adba411"
},
"downloads": -1,
"filename": "easy_dict_linshangsheng-1.10.dev0.tar.gz",
"has_sig": false,
"md5_digest": "9bad7ac0fffbfe596814d0bc5e77db1c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 6848,
"upload_time": "2024-05-20T14:27:38",
"upload_time_iso_8601": "2024-05-20T14:27:38.548740Z",
"url": "https://files.pythonhosted.org/packages/9a/86/8dd3551f1fe132d96592b5699dfbb7d8cb21ef860043b8da6f1e58bbc2d8/easy_dict_linshangsheng-1.10.dev0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-05-20 14:27:38",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "makinacorpus",
"github_project": "easydict",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "easy-dict-linshangsheng"
}