{ "info": { "author": "Jeffrey Bouas", "author_email": "ignirtoq+smartalloc@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "# SMarTalloc\n\nA collection of utility functions for using Microsoft's Z3 theorem prover to\nfind the maximal allocation of limited resources given a prioritized list of\ndiscrete tasks to be executed.\n\nResources and Tasks\n-------------------\n``smartalloc`` is designed to be as thin of a wrapper around the Z3 library as\npossible, so it does not define classes called \"Resource\" or \"Task.\"\n\nInstead, Z3 primitives, such as Int or Real, are considered the resources, and\ntasks that they are allocated for are represented by (collections of) Z3\nconstraints.\n\nAllocation\n----------\nThe main workhorse of ``smartalloc`` is the ``allocate()`` function. It takes\ntwo arguments: the intrinsic constraints on the resources, and a list of the\nconstraints required for each task.\n\nIntrinsic resource constraints are applied immediately, and if the system\nalready has no solution then an exception will be raised. After this, the\nconstraints for each task are added to the system. If the system is still\nsatisfiable then the task is considered \"worked\" and the next task will be\nadded. If the system is not satisfiable, that task will be removed from the\nsystem before moving to the next. All tasks provided will be attempted to be\nadded to the system; the ordering of the tasks determines which tasks get to\nclaim their necessary resources first.\n\nThe ``allocate()`` function returns a tuple of two items. The first is the\nallocation description object (in the form of a Z3 model). The value of a\nresource variable can be retrieved from it by using it like a dictionary with\nthe resource variable as the key. The second is a list of the indices of the\ntasks from the input are \"worked\" in the allocation result.\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/ignirtoq/smartalloc", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "smartalloc", "package_url": "https://pypi.org/project/smartalloc/", "platform": "", "project_url": "https://pypi.org/project/smartalloc/", "project_urls": { "Homepage": "https://github.com/ignirtoq/smartalloc" }, "release_url": "https://pypi.org/project/smartalloc/0.0.1/", "requires_dist": [ "z3-solver" ], "requires_python": "", "summary": "Resource allocation using an SMT solver.", "version": "0.0.1" }, "last_serial": 4937301, "releases": { "0.0.0": [ { "comment_text": "", "digests": { "md5": "17e7d38187ddf9723e2adaf93b124235", "sha256": "3ddb102e3e28d3d5dcfcf99cb3e9849728d173395f085f1a1890a819bfb6ab32" }, "downloads": -1, "filename": "smartalloc-0.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "17e7d38187ddf9723e2adaf93b124235", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4494, "upload_time": "2019-03-11T02:11:22", "url": "https://files.pythonhosted.org/packages/d8/34/fd556ad1726aac5a2f79ed32487fea2e57a7c7e508ac1548e13a93672fd8/smartalloc-0.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c54fe05742dab0145913568454193ccc", "sha256": "543610a3ef78838a0a50e88cd3debbcabbfb47932acc9af6524935c458575e76" }, "downloads": -1, "filename": "smartalloc-0.0.0.tar.gz", "has_sig": false, "md5_digest": "c54fe05742dab0145913568454193ccc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4076, "upload_time": "2019-03-11T02:11:23", "url": "https://files.pythonhosted.org/packages/85/5c/a3ba1429935917cc7549534123b248e4ef924ffcc498fd12ac89e376c0ee/smartalloc-0.0.0.tar.gz" } ], "0.0.1": [ { "comment_text": "", "digests": { "md5": "cd2ecd1d2ff83749a68d58a47bb1bd99", "sha256": "de4934a0803f5bda233a451b1c63fdb456dc08fcb4745dce9e3e1cfcee2713e1" }, "downloads": -1, "filename": "smartalloc-0.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "cd2ecd1d2ff83749a68d58a47bb1bd99", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4557, "upload_time": "2019-03-14T01:49:03", "url": "https://files.pythonhosted.org/packages/1d/d6/12fe89edfb88367ff66083b0c7e23ea3b5419463bb1c89187a56bc537565/smartalloc-0.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b3a1cd994a8c71c80d21e3c3147e1054", "sha256": "32f70deb352654e1a16db7e991403666c522e06f2baac1f95a2661c8746d2192" }, "downloads": -1, "filename": "smartalloc-0.0.1.tar.gz", "has_sig": false, "md5_digest": "b3a1cd994a8c71c80d21e3c3147e1054", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4131, "upload_time": "2019-03-14T01:49:05", "url": "https://files.pythonhosted.org/packages/21/a6/3c272b2295fe42d57b796ed600f9996ebbfbd48ec4bbef48e86b2ab99e44/smartalloc-0.0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "cd2ecd1d2ff83749a68d58a47bb1bd99", "sha256": "de4934a0803f5bda233a451b1c63fdb456dc08fcb4745dce9e3e1cfcee2713e1" }, "downloads": -1, "filename": "smartalloc-0.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "cd2ecd1d2ff83749a68d58a47bb1bd99", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4557, "upload_time": "2019-03-14T01:49:03", "url": "https://files.pythonhosted.org/packages/1d/d6/12fe89edfb88367ff66083b0c7e23ea3b5419463bb1c89187a56bc537565/smartalloc-0.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b3a1cd994a8c71c80d21e3c3147e1054", "sha256": "32f70deb352654e1a16db7e991403666c522e06f2baac1f95a2661c8746d2192" }, "downloads": -1, "filename": "smartalloc-0.0.1.tar.gz", "has_sig": false, "md5_digest": "b3a1cd994a8c71c80d21e3c3147e1054", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4131, "upload_time": "2019-03-14T01:49:05", "url": "https://files.pythonhosted.org/packages/21/a6/3c272b2295fe42d57b796ed600f9996ebbfbd48ec4bbef48e86b2ab99e44/smartalloc-0.0.1.tar.gz" } ] }