{ "info": { "author": "Caleb Case, Andrew Kesterson", "author_email": "calebcase@gmail.com, andrew@aklabs.net", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "dpath-python\n============\n\n|PyPI|\n|Build Status|\n\nA python library for accessing and searching dictionaries via\n/slashed/paths ala xpath\n\nBasically it lets you glob over a dictionary as if it were a filesystem.\nIt allows you to specify globs (ala the bash eglob syntax, through some\nadvanced fnmatch.fnmatch magic) to access dictionary elements, and\nprovides some facility for filtering those results.\n\nsdists are available on pypi: http://pypi.python.org/pypi/dpath\n\nInstalling\n==========\n\nThe best way to install dpath is via easy\\_install or pip.\n\n::\n\n easy_install dpath\n pip install dpath\n\nUsing Dpath\n===========\n\n.. code-block:: python\n\n import dpath.util\n\nSeparators\n==========\n\nAll of the functions in this library (except 'merge') accept a\n'separator' argument, which is the character that should separate path\ncomponents. The default is '/', but you can set it to whatever you want.\n\nSearching\n=========\n\nSuppose we have a dictionary like this:\n\n.. code-block:: python\n\n x = {\n \"a\": {\n \"b\": {\n \"3\": 2,\n \"43\": 30,\n \"c\": [],\n \"d\": ['red', 'buggy', 'bumpers'],\n }\n }\n }\n\n... And we want to ask a simple question, like \"Get me the value of the\nkey '43' in the 'b' hash which is in the 'a' hash\". That's easy.\n\n.. code-block:: pycon\n\n >>> help(dpath.util.get)\n Help on function get in module dpath.util:\n\n get(obj, glob, separator='/')\n Given an object which contains only one possible match for the given glob,\n return the value for the leaf matching the given glob.\n\n If more than one leaf matches the glob, ValueError is raised. If the glob is\n not found, KeyError is raised.\n\n >>> dpath.util.get(x, '/a/b/43')\n 30\n\nOr you could say \"Give me a new dictionary with the values of all\nelements in ``x['a']['b']`` where the key is equal to the glob ``'[cd]'``. Okay.\n\n.. code-block:: pycon\n\n >>> help(dpath.util.search)\n Help on function search in module dpath.util:\n\n search(obj, glob, yielded=False)\n Given a path glob, return a dictionary containing all keys\n that matched the given glob.\n\n If 'yielded' is true, then a dictionary will not be returned.\n Instead tuples will be yielded in the form of (path, value) for\n every element in the document that matched the glob.\n\n... Sounds easy!\n\n.. code-block:: pycon\n\n >>> result = dpath.util.search(x, \"a/b/[cd]\")\n >>> print json.dumps(result, indent=4, sort_keys=True)\n {\n \"a\": {\n \"b\": {\n \"c\": [],\n \"d\": [\n \"red\",\n \"buggy\",\n \"bumpers\"\n ]\n }\n }\n }\n\n... Wow that was easy. What if I want to iterate over the results, and\nnot get a merged view?\n\n.. code-block:: pycon\n\n >>> for x in dpath.util.search(x, \"a/b/[cd]\", yielded=True): print x\n ...\n ('a/b/c', [])\n ('a/b/d', ['red', 'buggy', 'bumpers'])\n\n... Or what if I want to just get all the values back for the glob? I\ndon't care about the paths they were found at:\n\n.. code-block:: pycon\n\n >>> help(dpath.util.values)\n Help on function values in module dpath.util:\n\n values(obj, glob, separator='/', afilter=None, dirs=True)\n Given an object and a path glob, return an array of all values which match\n the glob. The arguments to this function are identical to those of search(),\n and it is primarily a shorthand for a list comprehension over a yielded\n search call.\n\n >>> dpath.util.values(x, '/a/b/d/\\*')\n ['red', 'buggy', 'bumpers']\n\nExample: Setting existing keys\n==============================\n\nLet's use that same dictionary, and set keys like 'a/b/[cd]' to the\nvalue 'Waffles'.\n\n.. code-block:: pycon\n\n >>> help(dpath.util.set)\n Help on function set in module dpath.util:\n\n set(obj, glob, value)\n Given a path glob, set all existing elements in the document\n to the given value. Returns the number of elements changed.\n\n >>> dpath.util.set(x, 'a/b/[cd]', 'Waffles')\n 2\n >>> print json.dumps(x, indent=4, sort_keys=True)\n {\n \"a\": {\n \"b\": {\n \"3\": 2,\n \"43\": 30,\n \"c\": \"Waffles\",\n \"d\": \"Waffles\"\n }\n }\n }\n\nExample: Adding new keys\n========================\n\nLet's make a new key with the path 'a/b/e/f/g', set it to \"Roffle\". This\nbehaves like 'mkdir -p' in that it makes all the intermediate paths\nnecessary to get to the terminus.\n\n.. code-block:: pycon\n\n >>> help(dpath.util.new)\n Help on function new in module dpath.util:\n\n new(obj, path, value)\n Set the element at the terminus of path to value, and create\n it if it does not exist (as opposed to 'set' that can only\n change existing keys).\n\n path will NOT be treated like a glob. If it has globbing\n characters in it, they will become part of the resulting\n keys\n\n >>> dpath.util.new(x, 'a/b/e/f/g', \"Roffle\")\n >>> print json.dumps(x, indent=4, sort_keys=True)\n {\n \"a\": {\n \"b\": {\n \"3\": 2,\n \"43\": 30,\n \"c\": \"Waffles\",\n \"d\": \"Waffles\",\n \"e\": {\n \"f\": {\n \"g\": \"Roffle\"\n }\n }\n }\n }\n }\n\nThis works the way we expect with lists, as well. If you have a list\nobject and set index 10 of that list object, it will grow the list\nobject with None entries in order to make it big enough:\n\n.. code-block:: pycon\n\n >>> dpath.util.new(x, 'a/b/e/f/h', [])\n >>> dpath.util.new(x, 'a/b/e/f/h/13', 'Wow this is a big array, it sure is lonely in here by myself')\n >>> print json.dumps(x, indent=4, sort_keys=True)\n {\n \"a\": {\n \"b\": {\n \"3\": 2,\n \"43\": 30,\n \"c\": \"Waffles\",\n \"d\": \"Waffles\",\n \"e\": {\n \"f\": {\n \"g\": \"Roffle\",\n \"h\": [\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n \"Wow this is a big array, it sure is lonely in here by myself\"\n ]\n }\n }\n }\n }\n }\n\nHandy!\n\nExample: Merging\n================\n\nAlso, check out dpath.util.merge. The python dict update() method is\ngreat and all but doesn't handle merging dictionaries deeply. This one\ndoes.\n\n.. code-block:: pycon\n\n >>> help(dpath.util.merge)\n Help on function merge in module dpath.util:\n\n merge(dst, src, afilter=None, flags=4, _path='')\n Merge source into destination. Like dict.update() but performs\n deep merging.\n\n flags is an OR'ed combination of MERGE_ADDITIVE, MERGE_REPLACE, or\n MERGE_TYPESAFE.\n * MERGE_ADDITIVE : List objects are combined onto one long\n list (NOT a set). This is the default flag.\n * MERGE_REPLACE : Instead of combining list objects, when\n 2 list objects are at an equal depth of merge, replace\n the destination with the source.\n * MERGE_TYPESAFE : When 2 keys at equal levels are of different\n types, raise a TypeError exception. By default, the source\n replaces the destination in this situation.\n\n >>> y = {'a': {'b': { 'e': {'f': {'h': [None, 0, 1, None, 13, 14]}}}, 'c': 'RoffleWaffles'}}\n >>> print json.dumps(y, indent=4, sort_keys=True)\n {\n \"a\": {\n \"b\": {\n \"e\": {\n \"f\": {\n \"h\": [\n null,\n 0,\n 1,\n null,\n 13,\n 14\n ]\n }\n }\n },\n \"c\": \"RoffleWaffles\"\n }\n }\n >>> dpath.util.merge(x, y)\n >>> print json.dumps(x, indent=4, sort_keys=True)\n {\n \"a\": {\n \"b\": {\n \"3\": 2,\n \"43\": 30,\n \"c\": \"Waffles\",\n \"d\": \"Waffles\",\n \"e\": {\n \"f\": {\n \"g\": \"Roffle\",\n \"h\": [\n null,\n 0,\n 1,\n null,\n 13,\n 14,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n \"Wow this is a big array, it sure is lonely in here by myself\"\n ]\n }\n }\n },\n \"c\": \"RoffleWaffles\"\n }\n }\n\nNow that's handy. You shouldn't try to use this as a replacement for the\ndeepcopy method, however - while merge does create new dict and list\nobjects inside the target, the terminus objects (strings and ints) are\nnot copied, they are just re-referenced in the merged object.\n\nFiltering\n=========\n\nAll of the methods in this library (except new()) support a 'afilter'\nargument. This can be set to a function that will return True or False\nto say 'yes include that value in my result set' or 'no don't include\nit'.\n\nFiltering functions receive every terminus node in a search - e.g.,\nanything that is not a dict or a list, at the very end of the path. For\neach value, they return True to include that value in the result set, or\nFalse to exclude it.\n\nConsider this example. Given the source dictionary, we want to find ALL\nkeys inside it, but we only really want the ones that contain \"ffle\" in\nthem:\n\n.. code-block:: pycon\n\n >>> print json.dumps(x, indent=4, sort_keys=True)\n {\n \"a\": {\n \"b\": {\n \"3\": 2,\n \"43\": 30,\n \"c\": \"Waffles\",\n \"d\": \"Waffles\",\n \"e\": {\n \"f\": {\n \"g\": \"Roffle\"\n }\n }\n }\n }\n }\n >>> def afilter(x):\n ... if \"ffle\" in str(x):\n ... return True\n ... return False\n ...\n >>> result = dpath.util.search(x, '**', afilter=afilter)\n >>> print json.dumps(result, indent=4, sort_keys=True)\n {\n \"a\": {\n \"b\": {\n \"c\": \"Waffles\",\n \"d\": \"Waffles\",\n \"e\": {\n \"f\": {\n \"g\": \"Roffle\"\n }\n }\n }\n }\n }\n\nObviously filtering functions can perform more advanced tests (regular\nexpressions, etc etc).\n\nKey Names\n=========\n\nBy default, dpath only understands dictionary keys that are integers or\nstrings. String keys must be non-empty. You can change this behavior by\nsetting a library-wide dpath option:\n\n.. code-block:: python\n\n import dpath.options\n dpath.options.ALLOW_EMPTY_STRING_KEYS = True\n\nAgain, by default, this behavior is OFF, and empty string keys will\nresult in ``dpath.exceptions.InvalidKeyName`` being thrown.\n\nSeparator got you down? Use lists as paths\n==========================================\n\nThe default behavior in dpath is to assume that the path given is a string, which must be tokenized by splitting at the separator to yield a distinct set of path components against which dictionary keys can be individually glob tested. However, this presents a problem when you want to use paths that have a separator in their name; the tokenizer cannot properly understand what you mean by '/a/b/c' if it is possible for '/' to exist as a valid character in a key name.\n\nTo get around this, you can sidestep the whole \"filesystem path\" style, and abandon the separator entirely, by using lists as paths. All of the methods in dpath.util.* support the use of a list instead of a string as a path. So for example:\n\n.. code-block: python\n\n >>> x = { 'a': {'b/c': 0}}\n >>> dpath.util.get(['a', 'b/c'])\n 0\n\ndpath.path : The Undocumented Backend\n=====================================\n\ndpath.util is where you want to spend your time: this library has the\nfriendly functions that will understand simple string globs, afilter\nfunctions, etc.\n\ndpath.path is the backend pathing library - it is currently\nundocumented, and not meant to be used directly! It passes around lists\nof path components instead of string globs, and just generally does\nthings in a way that you (as a frontend user) might not expect. Stay out\nof it. You have been warned!\n\n.. |PyPI| image:: https://pypip.in/version/dpath/badge.svg?style=flat\n :target: https://pypi.python.org/pypi/dpath/\n :alt: PyPI: Latest Version\n\n.. |Build Status| image:: https://travis-ci.org/akesterson/dpath-python.svg?branch=travisci\n :target: https://travis-ci.org/akesterson/dpath-python\n\nContributors\n============\n\nWe would like to thank the community for their interest and involvement. You have all made this project significantly better than the sum of its parts, and your continued feedback makes it better every day. Thank you so much!\n\nThe following authors have contributed to this project, in varying capacities:\n\n+ Caleb Case \n+ Andrew Kesterson \n+ Marc Abramowitz \n+ xhh2a \n+ Stanislav Ochotnicky \n+ Misja Hoebe \n+ Gagandeep Singh \n+ Alan Gibson ", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://www.github.com/akesterson/dpath-python", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "dpath", "package_url": "https://pypi.org/project/dpath/", "platform": "", "project_url": "https://pypi.org/project/dpath/", "project_urls": { "Homepage": "https://www.github.com/akesterson/dpath-python" }, "release_url": "https://pypi.org/project/dpath/1.4.2/", "requires_dist": null, "requires_python": "", "summary": "Filesystem-like pathing and searching for dictionaries", "version": "1.4.2" }, "last_serial": 3486352, "releases": { "1.1-31": [ { "comment_text": "", "digests": { "md5": "902aebb6bb64cee51474aad124e7978a", "sha256": "f456a597ca50caca6ce22105eccbb215271fd2deae70fda6bc5353839b02c955" }, "downloads": -1, "filename": "dpath-1.1-31.tar.gz", "has_sig": false, "md5_digest": "902aebb6bb64cee51474aad124e7978a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6345, "upload_time": "2013-05-11T12:04:49", "url": "https://files.pythonhosted.org/packages/6d/7e/36c5c8b00e49653109d79dfb1d8cc3336d3b56b67e664bfa31e8f8a993f5/dpath-1.1-31.tar.gz" } ], "1.1-32": [ { "comment_text": "", "digests": { "md5": "c5ea08e59c76b0460fb7d6c0fc28dabc", "sha256": "63128def053c00202108e2965493b036cd2f61a3492b2e17b7906d4e6eb307ce" }, "downloads": -1, "filename": "dpath-1.1-32.tar.gz", "has_sig": false, "md5_digest": "c5ea08e59c76b0460fb7d6c0fc28dabc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6377, "upload_time": "2013-05-11T12:16:41", "url": "https://files.pythonhosted.org/packages/85/a5/7c380277d7f95a6fddd557368f377aaea1cfe8589ab63e0b6d01b454701b/dpath-1.1-32.tar.gz" } ], "1.1-35": [ { "comment_text": "", "digests": { "md5": "9bc9c12a37fc9c1c5ed3f0ed4f75c660", "sha256": "9499767e3f4cf443767a0f481023388d53efafec197ab050f7a3770361497285" }, "downloads": -1, "filename": "dpath-1.1-35.tar.gz", "has_sig": false, "md5_digest": "9bc9c12a37fc9c1c5ed3f0ed4f75c660", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6557, "upload_time": "2013-05-13T21:18:35", "url": "https://files.pythonhosted.org/packages/d9/19/c9c0e78abf8f93706638e090fa5bb401f0107a5bdb2c8d89f34edfa3735b/dpath-1.1-35.tar.gz" } ], "1.1-36": [ { "comment_text": "", "digests": { "md5": "ae6b82ed7a81f9165cab707487bd6610", "sha256": "d1edf8bae84b7b818d303e344e0ffdf5d0deaf79b8db09c04d6a84720d05a197" }, "downloads": -1, "filename": "dpath-1.1-36.tar.gz", "has_sig": false, "md5_digest": "ae6b82ed7a81f9165cab707487bd6610", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6573, "upload_time": "2013-05-14T16:38:21", "url": "https://files.pythonhosted.org/packages/72/69/4fea1074e0fdb293d8f171088409062051eea2a56917bf4c4993182eee28/dpath-1.1-36.tar.gz" } ], "1.2-1": [ { "comment_text": "", "digests": { "md5": "4c4bba56db48cc9dd824d04977ec9d3d", "sha256": "53283ecf00832972795fdf89af096a39a6f8e855e9f7f385142968789477e65b" }, "downloads": -1, "filename": "dpath-1.2-1.tar.gz", "has_sig": false, "md5_digest": "4c4bba56db48cc9dd824d04977ec9d3d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8057, "upload_time": "2014-02-03T14:17:46", "url": "https://files.pythonhosted.org/packages/11/b5/e9912e77abc012bb228d186a7d6ba4236a2ec800957991caf9af77bead66/dpath-1.2-1.tar.gz" } ], "1.2-37": [ { "comment_text": "", "digests": { "md5": "fccb5bf9a56cc5f2a3fe92119ea48ff0", "sha256": "b3d1d21152ed20fef5c122292cd94fcc2707433e4ca69ed1a26911750d18e74a" }, "downloads": -1, "filename": "dpath-1.2-37.tar.gz", "has_sig": false, "md5_digest": "fccb5bf9a56cc5f2a3fe92119ea48ff0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7620, "upload_time": "2013-05-30T22:52:39", "url": "https://files.pythonhosted.org/packages/9d/5c/b5a686e46d55463c791f91a300e08905bab07261df8101dc0cce6ca524de/dpath-1.2-37.tar.gz" } ], "1.2-38": [ { "comment_text": "", "digests": { "md5": "ce4783aaef7b418ababb948a764ff50e", "sha256": "339a97b8c437f4d9ad9786badc01fa3e83f6119cfd60515edf6592d9b8318ff7" }, "downloads": -1, "filename": "dpath-1.2-38.tar.gz", "has_sig": false, "md5_digest": "ce4783aaef7b418ababb948a764ff50e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7561, "upload_time": "2013-06-10T18:24:50", "url": "https://files.pythonhosted.org/packages/6b/00/0b37bee319268c995767836eb926a671292528427c4e7be9de38e423d4c3/dpath-1.2-38.tar.gz" } ], "1.2-39": [ { "comment_text": "", "digests": { "md5": "1a645c02153356fd8f25a8df98088546", "sha256": "67769e25aa706c85147465710e2ce07509d40b1ea20c2b3cf9410b407dcd7244" }, "downloads": -1, "filename": "dpath-1.2-39.tar.gz", "has_sig": false, "md5_digest": "1a645c02153356fd8f25a8df98088546", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7743, "upload_time": "2013-06-12T23:15:36", "url": "https://files.pythonhosted.org/packages/f7/34/c5f4591b6482241b7376d9464a57fff093706ad7c5192e3f1b2ae1031247/dpath-1.2-39.tar.gz" } ], "1.2-42": [ { "comment_text": "", "digests": { "md5": "812554d62191eca4e6bb42778c985f45", "sha256": "44dd7645012783e9403ee9f925e9dfe2443bea29d5bd267bf64fde6575821ce1" }, "downloads": -1, "filename": "dpath-1.2-42.tar.gz", "has_sig": false, "md5_digest": "812554d62191eca4e6bb42778c985f45", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7769, "upload_time": "2013-09-26T19:04:14", "url": "https://files.pythonhosted.org/packages/2e/63/7e3d1ca25d3b0b977341d942e70a691bbe7c53506d12eadc6ecc7849ea5d/dpath-1.2-42.tar.gz" } ], "1.2-45": [ { "comment_text": "", "digests": { "md5": "79dcf705c2edddecdcfcbc4cac860313", "sha256": "4356d8d016392d11dba247070aae8eedadacb0511034d3df4f2c2c0202814fb0" }, "downloads": -1, "filename": "dpath-1.2-45.tar.gz", "has_sig": false, "md5_digest": "79dcf705c2edddecdcfcbc4cac860313", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7826, "upload_time": "2013-10-05T12:12:01", "url": "https://files.pythonhosted.org/packages/34/82/705487493e9d621925d1e49acbbd526e717cd7f4ebe5460d93c6a53e0a17/dpath-1.2-45.tar.gz" } ], "1.2-46": [ { "comment_text": "", "digests": { "md5": "6e93313a20423a35bb87192eccb0d163", "sha256": "36888c6b90f90cfd0762a719759c5d85ebdc93f4acd8bc7b7ecb70dfa87d4e66" }, "downloads": -1, "filename": "dpath-1.2-46.tar.gz", "has_sig": false, "md5_digest": "6e93313a20423a35bb87192eccb0d163", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7827, "upload_time": "2014-01-27T16:27:29", "url": "https://files.pythonhosted.org/packages/a3/db/215f3d39d47600684e152197920a1d7747d2a8262caa9ea2bb3104042ba7/dpath-1.2-46.tar.gz" } ], "1.2-47": [ { "comment_text": "", "digests": { "md5": "bdaacfc593c3d04da035dac204957bcc", "sha256": "1b1ffe4084a76727baf090651296697457978b75baffd675fd2ce76c80f82591" }, "downloads": -1, "filename": "dpath-1.2-47.tar.gz", "has_sig": false, "md5_digest": "bdaacfc593c3d04da035dac204957bcc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7981, "upload_time": "2014-02-03T14:12:43", "url": "https://files.pythonhosted.org/packages/2b/80/3275a74d6c6b97133257da01b312003a10080106cb82ac565505f10ff944/dpath-1.2-47.tar.gz" } ], "1.2-48": [ { "comment_text": "", "digests": { "md5": "b95848aa005987bc7c0654007f526f7f", "sha256": "d67cc51f4b306ee8112e0189f0b9d503ed69a93a2e4e340a70bca4d3167ede7c" }, "downloads": -1, "filename": "dpath-1.2-48.tar.gz", "has_sig": false, "md5_digest": "b95848aa005987bc7c0654007f526f7f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8056, "upload_time": "2014-02-03T14:15:44", "url": "https://files.pythonhosted.org/packages/ad/af/244d20ee1437c394b448cae23ada68d4896effbad57ebdd89157f5bc8acc/dpath-1.2-48.tar.gz" } ], "1.2-49": [ { "comment_text": "", "digests": { "md5": "8494ade2f210323c44fa3a0f2373ebaf", "sha256": "c08aa3fd2d34ea1d5b2b9456d8f2fe5f586c1b52004396a3cf14ed5a089bf7bb" }, "downloads": -1, "filename": "dpath-1.2-49.tar.gz", "has_sig": false, "md5_digest": "8494ade2f210323c44fa3a0f2373ebaf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8057, "upload_time": "2014-02-03T14:17:17", "url": "https://files.pythonhosted.org/packages/f3/e1/7079cbba24f393722ddd5ece908cb019231724028ccc49fa8365e174c7c3/dpath-1.2-49.tar.gz" } ], "1.2-50": [ { "comment_text": "", "digests": { "md5": "ebeb866b86802aec0dac6f4719502ae2", "sha256": "4b896bb598edf864d44aeba7c6027791f18eacaaffa69e45436fd55383b6537b" }, "downloads": -1, "filename": "dpath-1.2-50.tar.gz", "has_sig": false, "md5_digest": "ebeb866b86802aec0dac6f4719502ae2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8054, "upload_time": "2014-02-03T14:22:44", "url": "https://files.pythonhosted.org/packages/87/8e/96c999120c8a7605cac8053287a96cf598dafa67f06271359d0af8d8eb57/dpath-1.2-50.tar.gz" } ], "1.2-51": [ { "comment_text": "", "digests": { "md5": "a7979ec444d6cc3394987730c2979df7", "sha256": "f5e932f98102d609f37a31417d47b7a714284a600c291c5b0a5adf8b0b7ac562" }, "downloads": -1, "filename": "dpath-1.2-51.tar.gz", "has_sig": false, "md5_digest": "a7979ec444d6cc3394987730c2979df7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8095, "upload_time": "2014-02-03T21:26:25", "url": "https://files.pythonhosted.org/packages/f5/16/e9130a278e70e819b2236d29b7b89dfb1eb54533eec16dbf5141ec4bfd26/dpath-1.2-51.tar.gz" } ], "1.2-52": [ { "comment_text": "", "digests": { "md5": "cdba5a5ecc12743663890c2b5be2100f", "sha256": "0626ebd01e6063d601125a90f8211528981abc6849d14ba49e25dd441a8e910b" }, "downloads": -1, "filename": "dpath-1.2-52.tar.gz", "has_sig": false, "md5_digest": "cdba5a5ecc12743663890c2b5be2100f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12436, "upload_time": "2014-04-01T00:10:16", "url": "https://files.pythonhosted.org/packages/b5/1b/b4e9c75bc3e9853db2a63a63de2e7cb439006d7e187f64cd5c9e838e4b34/dpath-1.2-52.tar.gz" } ], "1.2-53": [ { "comment_text": "", "digests": { "md5": "5f1d93cfc608ece280afcf44c4102b42", "sha256": "ea546dcd16be3dacfa3990a56a4376b7d77b68e5716df61fc4317f3ceb9cff20" }, "downloads": -1, "filename": "dpath-1.2-53.tar.gz", "has_sig": false, "md5_digest": "5f1d93cfc608ece280afcf44c4102b42", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12987, "upload_time": "2014-04-01T01:07:14", "url": "https://files.pythonhosted.org/packages/53/ad/18a507bea30ee4a9090ec10fa9610f7f210ff8ad360d3c70cdf98e5d1b21/dpath-1.2-53.tar.gz" } ], "1.2-54": [ { "comment_text": "", "digests": { "md5": "f2a522b033d0998ed8371556afbfe357", "sha256": "b251381953fd626bf82d46e89191d8eb01c0bb34fbd864b17a38a3b760c79665" }, "downloads": -1, "filename": "dpath-1.2-54.tar.gz", "has_sig": false, "md5_digest": "f2a522b033d0998ed8371556afbfe357", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12985, "upload_time": "2014-04-01T01:10:12", "url": "https://files.pythonhosted.org/packages/89/64/15c70cda219a7997760647c421bf8da47d3b94215fdd976e27cee18bc20c/dpath-1.2-54.tar.gz" } ], "1.2-55": [ { "comment_text": "", "digests": { "md5": "5a10f9572be3d29c32f3d13c48a24270", "sha256": "d174eb9b33691c4b8403e46e2939956a59c0cc030146cc5f03fa4fb50d7b8c93" }, "downloads": -1, "filename": "dpath-1.2-55.tar.gz", "has_sig": false, "md5_digest": "5a10f9572be3d29c32f3d13c48a24270", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12986, "upload_time": "2014-04-01T01:12:21", "url": "https://files.pythonhosted.org/packages/fc/c8/865f10fe8923e71c4d3a2ec377972490686b1234c0afe53be2738c1e0f22/dpath-1.2-55.tar.gz" } ], "1.2-56": [ { "comment_text": "", "digests": { "md5": "c46f85ae8f0eba6966f0a6134a879593", "sha256": "f0851acfd6756b656a0ab8b1e0a7e426f5f979feabb2c10735a680f8732ad93b" }, "downloads": -1, "filename": "dpath-1.2-56.tar.gz", "has_sig": false, "md5_digest": "c46f85ae8f0eba6966f0a6134a879593", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12984, "upload_time": "2014-04-01T01:13:54", "url": "https://files.pythonhosted.org/packages/37/c6/224a55186b4812a8a04b853c0005c4b869d6b55cdca9732608d199741f7c/dpath-1.2-56.tar.gz" } ], "1.2-57": [ { "comment_text": "", "digests": { "md5": "298ef67bf3a2f692c1f7a1fe0ae7f93d", "sha256": "d47ef9bb5b9650d412ea52301d1a62e99ab01b87510a3e9d324d15baaf349f44" }, "downloads": -1, "filename": "dpath-1.2-57.tar.gz", "has_sig": false, "md5_digest": "298ef67bf3a2f692c1f7a1fe0ae7f93d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12987, "upload_time": "2014-04-01T01:16:22", "url": "https://files.pythonhosted.org/packages/0f/6d/603aeb86600e1f6b7ac6ee539e1186ea0fb9f2c76e3f9a72924500a49e21/dpath-1.2-57.tar.gz" } ], "1.2-58": [ { "comment_text": "", "digests": { "md5": "00fccfaf16767d40d578564771114fc7", "sha256": "0635acb24f77f84d499985bcf3847c707b8623938f958e8db8d8ffb48f60aeef" }, "downloads": -1, "filename": "dpath-1.2-58.tar.gz", "has_sig": false, "md5_digest": "00fccfaf16767d40d578564771114fc7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12986, "upload_time": "2014-04-01T01:17:25", "url": "https://files.pythonhosted.org/packages/75/59/5d171707f88d42b8ff85892e14d71e38b57d20ebf41f6db604f794e77de3/dpath-1.2-58.tar.gz" } ], "1.2-59": [ { "comment_text": "", "digests": { "md5": "e3072a5b37b6008c06ff5c7322e21082", "sha256": "55c1c11571ae8b8f8da3f1fc8c5c2a7737853f7de8c77161b5325e56c69b06af" }, "downloads": -1, "filename": "dpath-1.2-59.tar.gz", "has_sig": false, "md5_digest": "e3072a5b37b6008c06ff5c7322e21082", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12985, "upload_time": "2014-04-01T01:19:22", "url": "https://files.pythonhosted.org/packages/75/36/1a191eadce1d5dd5bdb24a3db36542477559eef46edd61b9532b2576671a/dpath-1.2-59.tar.gz" } ], "1.2-60": [ { "comment_text": "", "digests": { "md5": "fb396ff6eb9193423f1aa5cd21bb8e94", "sha256": "beb005e12de0effca9dbfe0835a699ae965dbd728c2cd363dfde0b110f598333" }, "downloads": -1, "filename": "dpath-1.2-60.tar.gz", "has_sig": false, "md5_digest": "fb396ff6eb9193423f1aa5cd21bb8e94", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12991, "upload_time": "2014-04-01T01:20:33", "url": "https://files.pythonhosted.org/packages/5e/d1/d968d198b8c89d017a38338e198448747ade07d1753a12721107f853f1fd/dpath-1.2-60.tar.gz" } ], "1.2-61": [ { "comment_text": "", "digests": { "md5": "1ef2ce8df00f71caf9d737f053b216ee", "sha256": "79764dbe565a3926141ea15750537087d3ee29692d2eda8df624ce237deef4ff" }, "downloads": -1, "filename": "dpath-1.2-61.tar.gz", "has_sig": false, "md5_digest": "1ef2ce8df00f71caf9d737f053b216ee", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12988, "upload_time": "2014-04-01T01:21:31", "url": "https://files.pythonhosted.org/packages/01/16/f4b3c30480c09f59129d2114ef02d92c5013c6bb80856668953c6e678650/dpath-1.2-61.tar.gz" } ], "1.2-62": [ { "comment_text": "", "digests": { "md5": "d22fddc496d77f74b7bff5c8de3955e8", "sha256": "b1050d5671acfbb9f7f84a7d4be1a2c9b906430a48e21c52be57619ec32e49b0" }, "downloads": -1, "filename": "dpath-1.2-62.tar.gz", "has_sig": false, "md5_digest": "d22fddc496d77f74b7bff5c8de3955e8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12984, "upload_time": "2014-04-01T01:23:03", "url": "https://files.pythonhosted.org/packages/8c/9a/608d82a7659179bab6229d282bf2801fda50fe99d1cff8815e5a705b5c13/dpath-1.2-62.tar.gz" } ], "1.2-67": [ { "comment_text": "", "digests": { "md5": "5505a601a18c308cbbc608cdca8d48c7", "sha256": "fea73598e5c3b4d45a0e02fdbb0a0efd749dd9bbac023e7fd27d4ad5d6a0eb1c" }, "downloads": -1, "filename": "dpath-1.2-67.tar.gz", "has_sig": false, "md5_digest": "5505a601a18c308cbbc608cdca8d48c7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12988, "upload_time": "2014-04-01T14:47:25", "url": "https://files.pythonhosted.org/packages/94/c2/9106d1d49538a9282301c5915541a903ba74d5b39552613c058bd0d0f1fe/dpath-1.2-67.tar.gz" } ], "1.2-68": [ { "comment_text": "", "digests": { "md5": "b4c2f329db31fdc4587691fbd788fd92", "sha256": "e8230ef010ac73a05924166c94cc6cc68f1ed87259c4003088da59d7bdc10a0f" }, "downloads": -1, "filename": "dpath-1.2-68.tar.gz", "has_sig": false, "md5_digest": "b4c2f329db31fdc4587691fbd788fd92", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12987, "upload_time": "2014-04-01T14:48:28", "url": "https://files.pythonhosted.org/packages/38/c0/3c33aadab1ec4d9f85a0ba337866c11911e54d8cce71838caedec7795a9d/dpath-1.2-68.tar.gz" } ], "1.2-70": [ { "comment_text": "", "digests": { "md5": "adbcd66956eb40366ff00af2c7802d7e", "sha256": "4fe5fd67f1d89b29a58bbd90ec02cac7b54472dbba5d6b0d22c4a96f105747d0" }, "downloads": -1, "filename": "dpath-1.2-70.tar.gz", "has_sig": false, "md5_digest": "adbcd66956eb40366ff00af2c7802d7e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12985, "upload_time": "2014-04-01T14:50:34", "url": "https://files.pythonhosted.org/packages/fa/6e/9bcfba389f9b92f0a9019d1b0ea2d94505b251027ba72c6bafb752160e97/dpath-1.2-70.tar.gz" } ], "1.3-1": [ { "comment_text": "", "digests": { "md5": "c22bda891e581faa48c6ef453c2a4e83", "sha256": "834d2a50f96d409725f4b9ebced9eb9c87ff58bd9861c0974d7f0532d513e116" }, "downloads": -1, "filename": "dpath-1.3-1.zip", "has_sig": false, "md5_digest": "c22bda891e581faa48c6ef453c2a4e83", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26459, "upload_time": "2015-01-01T18:14:07", "url": "https://files.pythonhosted.org/packages/84/dc/32bdec2b8f1f5b76b2c0de94961acc5d098a7454ba04b13944f1a35c2904/dpath-1.3-1.zip" } ], "1.3.2": [ { "comment_text": "", "digests": { "md5": "b88cd6930e83bd17016eeb5a2c932c02", "sha256": "d667d6364f7cc7a8f5a74b15c99eeb28398de4d8786eb543c7fc9093d17419d4" }, "downloads": -1, "filename": "dpath-1.3.2.tar.gz", "has_sig": false, "md5_digest": "b88cd6930e83bd17016eeb5a2c932c02", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17213, "upload_time": "2015-01-31T17:27:39", "url": "https://files.pythonhosted.org/packages/b3/1c/f7a420fcb50183a546ab8a5ceca1f05fd912eaf10a7e63dab2e26c5702a5/dpath-1.3.2.tar.gz" } ], "1.3.3": [ { "comment_text": "", "digests": { "md5": "075ffe1ef5ef1b6ee70b6f64b0504af1", "sha256": "fe5f554a414ddc714d9b5b306a908033673f4fb5fbb5f197e0d03f0ae321dcad" }, "downloads": -1, "filename": "dpath-1.3.3.tar.gz", "has_sig": false, "md5_digest": "075ffe1ef5ef1b6ee70b6f64b0504af1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13388, "upload_time": "2015-04-25T03:30:40", "url": "https://files.pythonhosted.org/packages/f2/a7/65fe1faf1c94616b9aecb25d032c309734a932f98b84ff16d050f0d4d668/dpath-1.3.3.tar.gz" } ], "1.4.0": [ { "comment_text": "", "digests": { "md5": "9725730d39d09690a87c983bcf02b672", "sha256": "89fbec229d941e622ba4e9578a79e05f8e0b9efdfe40ffbf4e670a129ec54d6d" }, "downloads": -1, "filename": "dpath-1.4.0.tar.gz", "has_sig": false, "md5_digest": "9725730d39d09690a87c983bcf02b672", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13919, "upload_time": "2015-06-12T02:54:26", "url": "https://files.pythonhosted.org/packages/6d/3a/d599d29897bf3c7f3a0ddc78f2d2297ebc05b20b875f272f5d8010b77cbe/dpath-1.4.0.tar.gz" } ], "1.4.2": [ { "comment_text": "", "digests": { "md5": "f6424ceab6103f3d38c53e6e9a96d691", "sha256": "0f635f49e88843a4a519aca1c599faee271730f818a81860827e7d7b4d40273f" }, "downloads": -1, "filename": "dpath-1.4.2.tar.gz", "has_sig": false, "md5_digest": "f6424ceab6103f3d38c53e6e9a96d691", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14607, "upload_time": "2018-01-13T07:59:04", "url": "https://files.pythonhosted.org/packages/23/0d/c48b7caa127d0f4987fd9538eddda1314a8df7f22740f51e2dc0e0383c59/dpath-1.4.2.tar.gz" } ], "git-unknown": [ { "comment_text": "", "digests": { "md5": "36c55233ca8592221375c5e92b1520a6", "sha256": "ee9ee9487e7a6adfbbf2de79699d979607744b473376d639af241877fbd7493f" }, "downloads": -1, "filename": "dpath-git-unknown.tar.gz", "has_sig": false, "md5_digest": "36c55233ca8592221375c5e92b1520a6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7782, "upload_time": "2013-10-05T11:55:21", "url": "https://files.pythonhosted.org/packages/5e/0d/08e94120b3a336e9946304959112a8346a777e14dd9e390762e7905199ae/dpath-git-unknown.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "f6424ceab6103f3d38c53e6e9a96d691", "sha256": "0f635f49e88843a4a519aca1c599faee271730f818a81860827e7d7b4d40273f" }, "downloads": -1, "filename": "dpath-1.4.2.tar.gz", "has_sig": false, "md5_digest": "f6424ceab6103f3d38c53e6e9a96d691", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14607, "upload_time": "2018-01-13T07:59:04", "url": "https://files.pythonhosted.org/packages/23/0d/c48b7caa127d0f4987fd9538eddda1314a8df7f22740f51e2dc0e0383c59/dpath-1.4.2.tar.gz" } ] }