{ "info": { "author": "Carlos A. Planch\u00f3n", "author_email": "bubbledoloresuruguay2@gmail.com", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Software Development :: Build Tools" ], "description": "# iterativerecursion\n*Python3 module to simulate recursion with iteration.*\n\nThis is a module I've done because I need something like this and\nin part as a little experiment.\n\n## Installation\n### Install with pip\n```\npip3 install -U iterativerecursion\n```\n\n## Usage\n```\nfrom iterativerecursion import FunctionReturn\nfrom iterativerecursion import IterativeRecursionEngine\n\n\ndef func_1_to_test(a: int) -> FunctionReturn:\n \"\"\"\n Print a number.\n :param a: int: Number to print.\n\n \"\"\"\n print(f\"a: {a}\")\n return dict(\n call_arg_n_func=dict(b=\"global_a\"),\n next_function_to_call=\"func_2_to_test\",\n returned_values=dict(global_a=a + 1)\n )\n\n\ndef func_2_to_test(b: int) -> FunctionReturn:\n \"\"\"\n Print a number.\n :param b: int: Number to print.\n\n \"\"\"\n print(\"b\", b)\n return dict(\n call_arg_n_func=dict(),\n next_function_to_call=None,\n returned_values=dict()\n )\n\n\nexecutor = IterativeRecursionEngine()\nexecutor.add_function(func_1_to_test)\nexecutor.add_function(func_2_to_test)\nexecutor.start_function_caller(\n next_function_to_call=\"func_1_to_test\",\n enviroment_variables=dict(test_var=2),\n call_arg_n_func=dict(a=\"test_var\")\n )\n```\nOutput:\n```\na: 2\nb 3\n```\n\nBe careful with infinite loops:\n```\nfrom iterativerecursion import FunctionReturn\nfrom iterativerecursion import IterativeRecursionEngine\n\n\ndef func_1_to_test(a: int) -> FunctionReturn:\n \"\"\"\n Print a number.\n :param a: int: Number to print.\n\n \"\"\"\n print(f\"a: {a}\")\n return dict(\n call_arg_n_func=dict(a=\"global_a\"),\n next_function_to_call=\"func_1_to_test\",\n returned_values=dict(global_a=a + 1)\n )\n\n\nexecutor = IterativeRecursionEngine()\nexecutor.add_function(func_1_to_test)\nexecutor.start_function_caller(\n next_function_to_call=\"func_1_to_test\",\n enviroment_variables=dict(test_var=0),\n call_arg_n_func=dict(a=\"test_var\")\n )\n```\n\nOutput:\n```\na: 0\na: 1\na: 2\n...\n```\n\nImport types used on this module:\n```\nfrom iterativerecursion import FunctionReturn, VarsDict\n```", "description_content_type": "text/markdown", "docs_url": null, "download_url": "https://github.com/carlosplanchon/iterativerecursion/archive/v0.2.tar.gz", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/carlosplanchon/iterativerecursion", "keywords": "iterative,recursion", "license": "GPL3", "maintainer": "", "maintainer_email": "", "name": "iterativerecursion", "package_url": "https://pypi.org/project/iterativerecursion/", "platform": "", "project_url": "https://pypi.org/project/iterativerecursion/", "project_urls": { "Download": "https://github.com/carlosplanchon/iterativerecursion/archive/v0.2.tar.gz", "Homepage": "https://github.com/carlosplanchon/iterativerecursion" }, "release_url": "https://pypi.org/project/iterativerecursion/0.2/", "requires_dist": null, "requires_python": "", "summary": "Python3 module to simulate recursion with iteration.", "version": "0.2" }, "last_serial": 5201714, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "fe7b2356e0184d926d1865423ec826af", "sha256": "42b6616bc0ae68c9ee4f659f0308b1024cf2b41907137eb517167917c742d0aa" }, "downloads": -1, "filename": "iterativerecursion-0.1.tar.gz", "has_sig": false, "md5_digest": "fe7b2356e0184d926d1865423ec826af", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2808, "upload_time": "2019-04-29T05:47:58", "url": "https://files.pythonhosted.org/packages/98/93/8acbd7b1f6c39aa9d32ce2df0061f2697c79b80c883eada1c42cb7cf41cd/iterativerecursion-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "23ff0e54f6a26fbb0336abf5ab6f2014", "sha256": "3768747dc49650b6cc432be8aec2912cba2746ac4a1247a9217982913676d8dd" }, "downloads": -1, "filename": "iterativerecursion-0.2.tar.gz", "has_sig": false, "md5_digest": "23ff0e54f6a26fbb0336abf5ab6f2014", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2821, "upload_time": "2019-04-29T05:52:04", "url": "https://files.pythonhosted.org/packages/c4/7f/dfe83d0da1a2656a1a506d85d93f32ee80016ff614d2f7fc8b54ea2ab7d0/iterativerecursion-0.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "23ff0e54f6a26fbb0336abf5ab6f2014", "sha256": "3768747dc49650b6cc432be8aec2912cba2746ac4a1247a9217982913676d8dd" }, "downloads": -1, "filename": "iterativerecursion-0.2.tar.gz", "has_sig": false, "md5_digest": "23ff0e54f6a26fbb0336abf5ab6f2014", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2821, "upload_time": "2019-04-29T05:52:04", "url": "https://files.pythonhosted.org/packages/c4/7f/dfe83d0da1a2656a1a506d85d93f32ee80016ff614d2f7fc8b54ea2ab7d0/iterativerecursion-0.2.tar.gz" } ] }