{ "info": { "author": "Christopher Crouzet", "author_email": "christopher.crouzet@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Utilities" ], "description": "Revl\n====\n\n.. image:: https://img.shields.io/pypi/v/revl.svg\n :target: https://pypi.python.org/pypi/revl\n :alt: PyPI latest version\n\n.. image:: https://readthedocs.org/projects/revl/badge/?version=latest\n :target: https://revl.readthedocs.io\n :alt: Documentation status\n\n.. image:: https://img.shields.io/pypi/l/revl.svg\n :target: https://pypi.python.org/pypi/revl\n :alt: License\n\n\nRevl is a Python library that helps to benchmark code for `Autodesk Maya`_.\n\nUpon writing a piece of code for Maya, it might be interesting to know how it\nperforms **under different conditions**, such as within scenes that are large\nor small, that define a deep DAG hiearchy or a flat one, that use many node\ntypes or only a few, and so on.\n\nFollowing sets of user-provided commands, Revl can **pseudo-randomly generate\nMaya scenes** with different properties against which the behaviour of a piece\nof code can be observed.\n\nThe random nature of the process can also help revealing potential bugs by\nexposing edge cases that were not thought of, thus making it also a good tool\nfor **unit testing**. See `Wikipedia's Fuzzing page`_.\n\nNote that Revl does *not* provide any sort of profiling tool to measure\nperformances. The built-in |timeit|_ module as well as other open-source\npackages can be used for this purpose.\n\n\nFeatures\n--------\n\n* generates scenes by running commands a given total number of times.\n* fine control over the probability distribution for each command.\n* scene generations are reproducible using a fixed seed.\n* extensible with custom commands.\n* allows for fuzz testing.\n* fast (using Maya's API, not the command layer).\n\n\nUsage\n-----\n\n.. code-block:: python\n\n >>> import revl\n >>> commands = [\n ... (4.0, revl.createTransform,),\n ... (1.0, revl.createPrimitive, (), {'parent': True}),\n ... ]\n >>> count = 100\n >>> revl.run(commands, count, seed=1.23)\n\n\nIn this example, Revl invokes a total of 100 evaluations inequally shared\nbetween the two distinct commands provided, leading to create approximatively\n80% of transforms, and 20% of primitives (plus their associated transforms).\nAlso, the primitive type is picked randomly, and each primitive's transform is\nrandomly parented under another transform from the scene, possibly creating a\nscene with a deep DAG hierarchy.\n\nSee the `Tutorial`_ section from the documentation for more detailed examples\nand explanations on how to use Revl.\n\n\nDocumentation\n-------------\n\nRead the documentation online at `revl.readthedocs.io`_ or check its source in\nthe ``doc`` directory.\n\n\nOut There\n---------\n\nProjects using Revl include:\n\n* `bana `_\n\n\nAuthor\n------\n\nChristopher Crouzet\n<`christophercrouzet.com `_>\n\n\n.. |timeit| replace:: ``timeit``\n\n.. _Autodesk Maya: http://www.autodesk.com/products/maya\n.. _revl.readthedocs.io: https://revl.readthedocs.io\n.. _timeit: https://docs.python.org/library/timeit.html\n.. _Tutorial: https://revl.readthedocs.io/en/latest/tutorial.html\n.. _Wikipedia's Fuzzing page: https://en.wikipedia.org/wiki/Fuzzing", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/christophercrouzet/revl", "keywords": "Autodesk Maya API benchmark test", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "revl", "package_url": "https://pypi.org/project/revl/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/revl/", "project_urls": { "Homepage": "https://github.com/christophercrouzet/revl" }, "release_url": "https://pypi.org/project/revl/0.2.0/", "requires_dist": [ "coverage; extra == 'dev'", "sphinx (>=1.3); extra == 'dev'", "sphinx (>=1.3); extra == 'docs'" ], "requires_python": "", "summary": "Helps to benchmark code for Autodesk Maya", "version": "0.2.0" }, "last_serial": 2581503, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "7fbbcb2034986f9346c62234127afe25", "sha256": "73f9f7a5e710d3ab1941a265506ed3c009d28d183a6fbe8b22ee33b01adfdcc4" }, "downloads": -1, "filename": "revl-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7fbbcb2034986f9346c62234127afe25", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8224, "upload_time": "2016-12-29T06:20:34", "url": "https://files.pythonhosted.org/packages/8a/61/6bcb571b6004232c3f79350d18fefd3f5fb59366c05f2a44167ddf11e412/revl-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1b8a64e80916007686f761aac8efd231", "sha256": "c3e6dcf9a665fbf72343ba4f170a0da33c59333450c1254b3b414509859b0f00" }, "downloads": -1, "filename": "revl-0.1.0.tar.gz", "has_sig": false, "md5_digest": "1b8a64e80916007686f761aac8efd231", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16667, "upload_time": "2016-12-29T06:20:36", "url": "https://files.pythonhosted.org/packages/62/d7/de0f8d72ec85639c67f497b2b7d191b17fed447c27b80824e18b445a5a10/revl-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "867ec2c9410076a197810f7567bd2bcf", "sha256": "01dddc28a494ab4e7a13dabcb654bd17cf6a23a440b4cd40a858bf3c8c3c44c7" }, "downloads": -1, "filename": "revl-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "867ec2c9410076a197810f7567bd2bcf", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11351, "upload_time": "2017-01-18T06:23:07", "url": "https://files.pythonhosted.org/packages/0d/7d/d2b43d6203d95afc69643d1e18468c999418f12b4006b5872d100121fcec/revl-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7c40aefcb45f05909078be39fc1bd1fc", "sha256": "0d9c752166dcdaaf5cc64293da3c8a8bb6f18901d4e8114f0a1711692959f5ad" }, "downloads": -1, "filename": "revl-0.2.0.tar.gz", "has_sig": false, "md5_digest": "7c40aefcb45f05909078be39fc1bd1fc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20066, "upload_time": "2017-01-18T06:23:10", "url": "https://files.pythonhosted.org/packages/c5/dc/c4506aae2f32268d5c1bc29b079e518d63b335273eec5d5b64a98af1b454/revl-0.2.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "867ec2c9410076a197810f7567bd2bcf", "sha256": "01dddc28a494ab4e7a13dabcb654bd17cf6a23a440b4cd40a858bf3c8c3c44c7" }, "downloads": -1, "filename": "revl-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "867ec2c9410076a197810f7567bd2bcf", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11351, "upload_time": "2017-01-18T06:23:07", "url": "https://files.pythonhosted.org/packages/0d/7d/d2b43d6203d95afc69643d1e18468c999418f12b4006b5872d100121fcec/revl-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7c40aefcb45f05909078be39fc1bd1fc", "sha256": "0d9c752166dcdaaf5cc64293da3c8a8bb6f18901d4e8114f0a1711692959f5ad" }, "downloads": -1, "filename": "revl-0.2.0.tar.gz", "has_sig": false, "md5_digest": "7c40aefcb45f05909078be39fc1bd1fc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20066, "upload_time": "2017-01-18T06:23:10", "url": "https://files.pythonhosted.org/packages/c5/dc/c4506aae2f32268d5c1bc29b079e518d63b335273eec5d5b64a98af1b454/revl-0.2.0.tar.gz" } ] }