{ "info": { "author": "Ryan Goodfellow", "author_email": "rgoodfel@isi.edu", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Science/Research", "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# MyPy Merge Experimentation Library\n\nA library for developing Merge experiments in Python\n\n## Hello world\n\n```python\nimport mergexp as mx\nfrom mx.unit import gb, ms, mbps\nfrom mx.machine import cores, memory\nfrom mx.net import capacity, latency\n\n# define a topology\ntopo = mx.Topology('hello mx')\n\n# make some devices\na = topo.device('a', cores > 2, memory <= gb(4))\nb = topo.device('b', cores < 6, memory >= gb(4))\n\n# connect devices\ntopo.connect([a, b], capacity < mbps(100), latency > ms(5))\n```\n\n\n## Hello mobile\n\n```python\nimport mergexp as mx\nfrom mx.stochastic import normal, poisson\nfrom mx.unit import gb, ms, mbps\nfrom mx.machine import cores, memory, arch, armv7, x86_64\nfrom mx.net import capacity, latency\nfrom mx.mobile import collision, migration\n\n# define a topology\ntopo = mx.Topology('hello mobile')\n\n# define a few device types\ndef mobile(name):\n return topo.device(\n name, \n cores == 1, \n memory < gb(2), \n arch == armv7,\n )\n\ndef server(name):\n return topo.device(\n name,\n cores >= 8,\n memory >= gb(8),\n arch == x86_64,\n )\n\n# instantiate devices\nmobiles = [mobile('m%d'%i) for i in range(47)]\nservers = [server(name) for name in ['s0', 's1']]\nnodes = mobiles + servers\n\n# connect devices\nnet = topo.connect(nodes, \n latency == normal(mean=ms(5), variance=1.0),\n capacity == normal(mean=mbps(15), variance=0.3),\n collision == poisson(rate=47), \n migration == poisson(rate=10),\n)\n```\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://gitlab.com/mergetb/xir/tree/master/lang/mx", "keywords": "", "license": "Apache2.0", "maintainer": "", "maintainer_email": "", "name": "mergexp", "package_url": "https://pypi.org/project/mergexp/", "platform": "", "project_url": "https://pypi.org/project/mergexp/", "project_urls": { "Homepage": "https://gitlab.com/mergetb/xir/tree/master/lang/mx" }, "release_url": "https://pypi.org/project/mergexp/0.1.6/", "requires_dist": null, "requires_python": ">=3", "summary": "Python Merge Experimentation Library", "version": "0.1.6" }, "last_serial": 5932626, "releases": { "0.1.1": [ { "comment_text": "", "digests": { "md5": "e35c9a685f955168593913e87ada8616", "sha256": "e507b7ca04962826e6c4326f8be9bfb6533e41866ab6164e1902b574073591f0" }, "downloads": -1, "filename": "mergexp-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "e35c9a685f955168593913e87ada8616", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 6436, "upload_time": "2019-05-14T03:54:54", "url": "https://files.pythonhosted.org/packages/7f/3e/27a69d30438010bf9e2f9a4e2655c5ded45597ed3f40518b1d90307acb75/mergexp-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ea42b5e92ba95aa182b4e9fc1fba8f48", "sha256": "ba55f2035c21f118786c3805ee6ef42197b4ce830b6efcb00093290d194b13cb" }, "downloads": -1, "filename": "mergexp-0.1.1.tar.gz", "has_sig": false, "md5_digest": "ea42b5e92ba95aa182b4e9fc1fba8f48", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 4019, "upload_time": "2019-05-14T03:54:56", "url": "https://files.pythonhosted.org/packages/fb/8b/d0c1f75975db1afb76cacbcad18e6453ec6f6c654922af3f426334059c5d/mergexp-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "abbf741a632400951258d1d102e42b86", "sha256": "844c80e9a93345518031ddad41ed06f4749c6698de76bb06bd0420fc21d6ce6f" }, "downloads": -1, "filename": "mergexp-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "abbf741a632400951258d1d102e42b86", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 10672, "upload_time": "2019-05-14T03:57:39", "url": "https://files.pythonhosted.org/packages/68/f0/928f8dfbd3a9f128980f1d89f2aa003174cc983ca673c6b78c5c9614d8bf/mergexp-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a8be53a8e03c26d6a175e95baf89fb13", "sha256": "2148c875888be8a0284be0c6d49034de14aacf5792b0f7d5e9a769d239c3c602" }, "downloads": -1, "filename": "mergexp-0.1.2.tar.gz", "has_sig": false, "md5_digest": "a8be53a8e03c26d6a175e95baf89fb13", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 4345, "upload_time": "2019-05-14T03:57:40", "url": "https://files.pythonhosted.org/packages/94/bc/6a31a8af45b144bd991f62e78ce469d0b69b01e3f14887203a9e335edc08/mergexp-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "b4a710cbe802d175d8218a84b2b88fea", "sha256": "13ce2a185045a03ba8718094b0b809e40c5c7523a5589f527ccb02d1391d6a8f" }, "downloads": -1, "filename": "mergexp-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "b4a710cbe802d175d8218a84b2b88fea", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 10677, "upload_time": "2019-05-14T04:00:32", "url": "https://files.pythonhosted.org/packages/b1/2c/e812dacb002fbfbe5f3eaa093e41f07f222b84986409174ebc72a6c6c163/mergexp-0.1.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d1fd023cd0f04aa534975402d8156072", "sha256": "019b43f2460813ba3628fcba065ab1fc6370a4afa06b45a83643074dd77aec59" }, "downloads": -1, "filename": "mergexp-0.1.3.tar.gz", "has_sig": false, "md5_digest": "d1fd023cd0f04aa534975402d8156072", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 4358, "upload_time": "2019-05-14T04:00:33", "url": "https://files.pythonhosted.org/packages/8f/8c/2d21aef19280899cd061338b7c3a9eb20e316e51b41a523420d45d672894/mergexp-0.1.3.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "638290f068ea00045ad898d22f6a4ccd", "sha256": "02fa37d6fc7359bc2c82438e2e6f2361a020d2d9a403670d3128b377377c1f93" }, "downloads": -1, "filename": "mergexp-0.1.5-py3-none-any.whl", "has_sig": false, "md5_digest": "638290f068ea00045ad898d22f6a4ccd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 10819, "upload_time": "2019-05-28T13:38:07", "url": "https://files.pythonhosted.org/packages/e9/68/cb77a3c7806762e5862b19afbe8a80bf85ee2a633e670d827e7f6e1a76d6/mergexp-0.1.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "22f127eed6bf1aed89d41f81f60f5e91", "sha256": "74e1cacdbbd4c69b096246cb527224dc62db3238d908a52f7ede322bb0c86788" }, "downloads": -1, "filename": "mergexp-0.1.5.tar.gz", "has_sig": false, "md5_digest": "22f127eed6bf1aed89d41f81f60f5e91", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 4471, "upload_time": "2019-05-28T13:38:08", "url": "https://files.pythonhosted.org/packages/c1/c8/e380614a527ae08684090fb08a2d93f87b78d12e241707b03d811e17502a/mergexp-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "b655dd2d90a66011dfb0e3b7cc40eb2e", "sha256": "c5175de8e43af1c94cbeb4282a2589727194cb770957af19ba137d1bdc5cbede" }, "downloads": -1, "filename": "mergexp-0.1.6-py3-none-any.whl", "has_sig": false, "md5_digest": "b655dd2d90a66011dfb0e3b7cc40eb2e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 6875, "upload_time": "2019-09-07T19:27:17", "url": "https://files.pythonhosted.org/packages/78/c7/0e926b31d404d098a488fc8245ee4a69aefb116ed6a8f3107233c375c662/mergexp-0.1.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "15178b0afa5489b04e6a69bd8ef0cce9", "sha256": "7f9a24797d0c9ea60c5574f3562cfe4f8ab4dcd62227f535647777cee7a1a505" }, "downloads": -1, "filename": "mergexp-0.1.6.tar.gz", "has_sig": false, "md5_digest": "15178b0afa5489b04e6a69bd8ef0cce9", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 4603, "upload_time": "2019-09-07T19:27:18", "url": "https://files.pythonhosted.org/packages/bd/27/faa9fd7cdfa0b57b9d2f0060ab5a8fa31d86fcee9f374985d7d3bdd18bc1/mergexp-0.1.6.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b655dd2d90a66011dfb0e3b7cc40eb2e", "sha256": "c5175de8e43af1c94cbeb4282a2589727194cb770957af19ba137d1bdc5cbede" }, "downloads": -1, "filename": "mergexp-0.1.6-py3-none-any.whl", "has_sig": false, "md5_digest": "b655dd2d90a66011dfb0e3b7cc40eb2e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 6875, "upload_time": "2019-09-07T19:27:17", "url": "https://files.pythonhosted.org/packages/78/c7/0e926b31d404d098a488fc8245ee4a69aefb116ed6a8f3107233c375c662/mergexp-0.1.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "15178b0afa5489b04e6a69bd8ef0cce9", "sha256": "7f9a24797d0c9ea60c5574f3562cfe4f8ab4dcd62227f535647777cee7a1a505" }, "downloads": -1, "filename": "mergexp-0.1.6.tar.gz", "has_sig": false, "md5_digest": "15178b0afa5489b04e6a69bd8ef0cce9", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 4603, "upload_time": "2019-09-07T19:27:18", "url": "https://files.pythonhosted.org/packages/bd/27/faa9fd7cdfa0b57b9d2f0060ab5a8fa31d86fcee9f374985d7d3bdd18bc1/mergexp-0.1.6.tar.gz" } ] }