{ "info": { "author": "arghdos", "author_email": "arghdos@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Natural Language :: English", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6" ], "description": "optionLoop\n==========\n\n|Anaconda-Server Badge|\n\nSimple loop structure to iterate over all combinations of an\ninitializing dictionary\n\nNo longer will you need a million nested for-loops...\n\nThe optionloop works as follows:\n\nFirst, initialize a dictionary with various keys and values, e.g.:\n\n.. code:: python\n\n d = {'doThingX' : [True, False], 'doThingY' : False,\n 'thingZValue' : ['a', 'b', 1]}\n\nNext create the option loop:\n\n.. code:: python\n\n oploop = optionloop(d)\n\nFinally iterate and get your values:\n\n.. code:: python\n\n for state in oploop:\n doX = state['doThingX']\n doY = state['doThingY']\n zVal = state['thingZValue']\n\n f(doX, doY, zVal)\n\nThis is intended to replace an equivalent looping structure of:\n\n.. code:: python\n\n for doX in doThingX:\n for doY in doThingY:\n for zVal in thingZValue:\n f(doX, doY, zVal)\n\nwhich quickly becomes cumbersome.\n\nAlso, option loops can be added to create even more complex looping\nstructures, e.g.:\n\n.. code:: python\n\n d1 = {'lang' : ['c'], 'doThingX' : [True, False]}\n d2 = {'lang' : ['fortran'], 'doThingX' : [True, False], 'doThingY' : [True, False]}\n\n oploop1 = optionloop(d1)\n oploop2 = optionloop(d2)\n oploop = oploop1 + oploop2\n\n for state in oploop:\n ...\n\nis equivalent to:\n\n.. code:: python\n\n langs = ['c', 'fortran']\n doThingX = [True, False]\n doThingY = [True, False]\n\n for lang in langs:\n if lang == 'c':\n for doX in doThingX:\n f(lang, doX)\n elif lang == 'fortran':\n for doX in doThingX:\n for doY in doThingY:\n f(lang, doX, doY)\n\nNote, if the order of iteration matters an ordered dict can be used,\ne.g.:\n\n.. code:: python\n\n d = OrderedDict()\n d['a'] = [False, True]\n d['b'] = [False]\n d['c'] = [1, 2, 3]\n oploop = optionloop(d)\n for state in oploop:\n ...\n\nis equivalent to:\n\n.. code:: python\n\n for a in [False, True]:\n for b in [False]:\n for c in [1, 2, 3]:\n ....\n\nAdditionally, an option loop (or combination thereof) can be reset using\nthe copy interface:\n\n.. code:: python\n\n d1 = {'lang' : ['c'], 'doThingX' : [True, False]}\n oploop1 = optionloop(d1)\n\n # iterate through 1\n\n oploop2 = oploop1.copy()\n\n.. |Anaconda-Server Badge| image:: https://anaconda.org/slackha/optionloop/badges/version.svg\n :target: https://anaconda.org/slackha/optionloop", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/arghdos/optionLoop", "keywords": "", "license": "GPL", "maintainer": "", "maintainer_email": "", "name": "optionloop", "package_url": "https://pypi.org/project/optionloop/", "platform": "", "project_url": "https://pypi.org/project/optionloop/", "project_urls": { "Homepage": "https://github.com/arghdos/optionLoop" }, "release_url": "https://pypi.org/project/optionloop/1.0.7/", "requires_dist": null, "requires_python": "", "summary": "Allows collapsing of nested for loops via dictionary iteration", "version": "1.0.7" }, "last_serial": 3273344, "releases": { "1.0": [ { "comment_text": "", "digests": { "md5": "6caccebbd2c2af2039f47e994744495c", "sha256": "62cb309f237796f0f0d826f98bf1448b7eccaa1b048a5782eb1ec5e4bca95fde" }, "downloads": -1, "filename": "optionloop-1.0.tar.gz", "has_sig": false, "md5_digest": "6caccebbd2c2af2039f47e994744495c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2597, "upload_time": "2016-04-20T20:10:26", "url": "https://files.pythonhosted.org/packages/04/e3/c65c8a4afd647da7c3c800ead32c5292e785a8cded986b9e7f1b5feb2a01/optionloop-1.0.tar.gz" } ], "1.0.1": [], "1.0.2": [ { "comment_text": "", "digests": { "md5": "2debf2846b7b51df52c9ce592bea4dee", "sha256": "506bd33b700ca775852558564089b2f29cca0ccc47dabd994177ec284569433e" }, "downloads": -1, "filename": "optionloop-1.0.2.tar.gz", "has_sig": false, "md5_digest": "2debf2846b7b51df52c9ce592bea4dee", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3379, "upload_time": "2016-05-07T14:56:43", "url": "https://files.pythonhosted.org/packages/fd/da/1cc793d19a9ce65017f41e51c0a90a6efb087e8bbc8a23e3c8792ea7ec7e/optionloop-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "855c026d883bfc65bfc05bc6e5f24deb", "sha256": "d49f778e0b7c4b902b4e091ab1f8c4ee74af0406230f05b843988988dc46e932" }, "downloads": -1, "filename": "optionloop-1.0.3.tar.gz", "has_sig": false, "md5_digest": "855c026d883bfc65bfc05bc6e5f24deb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3376, "upload_time": "2016-05-07T15:01:58", "url": "https://files.pythonhosted.org/packages/20/87/4807b476741c6e2b74ea2e3ecb162c92cd2bd600f1320e157e646337bfed/optionloop-1.0.3.tar.gz" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "f8bd5bf6d0e757128f5ec625c58808cf", "sha256": "df439f9bc24cc57b8cff64edc3383c393d26f794503e5064cab224cbb33a290c" }, "downloads": -1, "filename": "optionloop-1.0.4.tar.gz", "has_sig": false, "md5_digest": "f8bd5bf6d0e757128f5ec625c58808cf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3359, "upload_time": "2016-05-07T15:25:31", "url": "https://files.pythonhosted.org/packages/59/05/ea9af174d7eb9304e9510913e784a3318c8010f6209c19d36621f041f08e/optionloop-1.0.4.tar.gz" } ], "1.0.5": [ { "comment_text": "", "digests": { "md5": "2b7ad1975baa869b0665dce0ba1c4f18", "sha256": "234f1a7a672605dd8b52c015ab326ea7f5b2e63da17dc1788ec7ece624a5a61c" }, "downloads": -1, "filename": "optionloop-1.0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "2b7ad1975baa869b0665dce0ba1c4f18", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7146, "upload_time": "2017-04-18T20:07:58", "url": "https://files.pythonhosted.org/packages/1d/80/0ab4135bdec91438547d4f6adfd02a51f1c9cc6be7940bba5c9e38cd312b/optionloop-1.0.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ced8f3cb381be502932bed7607627586", "sha256": "979280566687b00dd4f07fca73fb2e9582b86c6584a6c91266461a8b62bb1d99" }, "downloads": -1, "filename": "optionloop-1.0.5.tar.gz", "has_sig": false, "md5_digest": "ced8f3cb381be502932bed7607627586", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17971, "upload_time": "2017-04-18T20:08:00", "url": "https://files.pythonhosted.org/packages/c1/2e/60f4eb55ee0dcd9bdd308e271ac229815c7c9f44ff7512c0d98b6f8471e9/optionloop-1.0.5.tar.gz" } ], "1.0.6": [ { "comment_text": "", "digests": { "md5": "0237f233431d3dce4eddbf2ef93c8369", "sha256": "017852531e51a13d7c684e01b6bd43ff708e6899bd7ccb22c7e854e39f61b55f" }, "downloads": -1, "filename": "optionloop-1.0.6.tar.gz", "has_sig": false, "md5_digest": "0237f233431d3dce4eddbf2ef93c8369", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17636, "upload_time": "2017-10-22T04:02:58", "url": "https://files.pythonhosted.org/packages/2e/98/69aadbbf6104846017cd62ae15f1577cd1767f2ffe8ab3a2673f6436629f/optionloop-1.0.6.tar.gz" } ], "1.0.6b0": [ { "comment_text": "", "digests": { "md5": "da05cdd3a54173e0a781a7bafbba33c3", "sha256": "cd2f8cb4f407fb2afe59db24466e2709903b46b48737606131f6072d26dc8bfc" }, "downloads": -1, "filename": "optionloop-1.0.6b0.tar.gz", "has_sig": false, "md5_digest": "da05cdd3a54173e0a781a7bafbba33c3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17936, "upload_time": "2017-10-23T21:32:09", "url": "https://files.pythonhosted.org/packages/ac/b0/10f34faaa5cecef83110a0cbde264510591f8542545fda590585aa9d5e84/optionloop-1.0.6b0.tar.gz" } ], "1.0.7": [ { "comment_text": "", "digests": { "md5": "273f0d71bb3ba262f59077eee171e2bf", "sha256": "549803a3b9037b6170f5cc14ff7343395316eebe47c9a3500c436b6d825c9282" }, "downloads": -1, "filename": "optionloop-1.0.7.tar.gz", "has_sig": false, "md5_digest": "273f0d71bb3ba262f59077eee171e2bf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17938, "upload_time": "2017-10-23T21:35:48", "url": "https://files.pythonhosted.org/packages/cf/92/11854118751b4629e47f52464d48d873a923d13849631bd585f569325721/optionloop-1.0.7.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "273f0d71bb3ba262f59077eee171e2bf", "sha256": "549803a3b9037b6170f5cc14ff7343395316eebe47c9a3500c436b6d825c9282" }, "downloads": -1, "filename": "optionloop-1.0.7.tar.gz", "has_sig": false, "md5_digest": "273f0d71bb3ba262f59077eee171e2bf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17938, "upload_time": "2017-10-23T21:35:48", "url": "https://files.pythonhosted.org/packages/cf/92/11854118751b4629e47f52464d48d873a923d13849631bd585f569325721/optionloop-1.0.7.tar.gz" } ] }