{ "info": { "author": "Niels Boehm", "author_email": "blubberdiblub@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "Intended Audience :: Science/Research", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3 :: Only", "Topic :: Scientific/Engineering", "Topic :: Scientific/Engineering :: Mathematics", "Topic :: Software Development", "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "Randomness Sources for Python\n=============================\n\n\nCurrent Features\n----------------\n\n* unified API to randomness sources\n* API access to the system's true randomness generator\n* a list of randomness providers to choose from\n* provider flags which you can filter for\n\n\nPlanned Features\n----------------\n\n* comprehensive tests for randomness quality (dieharder, ENT, ...)\n* more PRNGs (Wichmann-Hill, xorshift, ...)\n* more TRNGs (VIA Padlock RNG, external hardware, ...)\n* better API to filter and sort providers\n* choice between wasteful and conserving usage of random bits,\n the latter most likely with a mixin\n* adapter to provide the Numpy API for all randomness sources,\n most likely by way of a mixin\n\n\nUsage\n-----\n\nYou can instantiate a randomness source directly if you know it's there\n(or if you handle the exception in case it's not):\n\n```python3\nfrom randomness import URandom\n\ntry:\n from randomness import Random\n\nexcept ImportError:\n pass\n\nrandom = URandom()\n```\n\nOr you can peruse the list of providers and select one out of those\n(possibly filtering the list first):\n\n```python3\nfrom randomness import PROVIDERS, ProviderFlag\n\n# filter randomness providers\nmy_providers = [provider for provider in PROVIDERS\n if provider.flags & ProviderFlag.NEVER_BLOCKING]\n\n# dump provider names\nfor provider in my_providers:\n print(provider.name)\n\n# instantiate a randomness context\nchosen_provider = my_providers[0]\nrandom = chosen_provider.cls()\n```\n\nFrom this point forward usage is the same as if you had done\n`from random import Random; random = Random()`.\n\n```python3\n# perform a die roll\ndie_result = random.randint(1, 6)\nprint(die_result)\n\n# select a random cheese\nCHEESE_SHOP_PRODUCTS = [\"Tilsit\", \"Cheddar\", \"Roquefort\", \"Gouda\"]\ncheese = random.choice(CHEESE_SHOP_PRODUCTS)\nprint(cheese)\n\n# draw lottery numbers\namount_of_numbers = 49\namount_to_draw = 6\nseries = random.sample(range(1, amount_of_numbers + 1),\n amount_to_draw)\nprint(series)\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://github.com/blubberdiblub/randomness", "keywords": "randomness,random,RNG,entropy", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "randomness", "package_url": "https://pypi.org/project/randomness/", "platform": "", "project_url": "https://pypi.org/project/randomness/", "project_urls": { "Homepage": "https://github.com/blubberdiblub/randomness", "Source": "https://github.com/blubberdiblub/randomness", "Tracker": "https://github.com/blubberdiblub/randomness/issues" }, "release_url": "https://pypi.org/project/randomness/0.2.1/", "requires_dist": [ "rdrand; extra == 'rdrand'", "pytest; extra == 'test'" ], "requires_python": ">=3.6", "summary": "Provide several randomness sources in Python with a common API", "version": "0.2.1" }, "last_serial": 4399020, "releases": { "0.1.1": [ { "comment_text": "", "digests": { "md5": "0ea76632a62fbeed61180d7244a83760", "sha256": "92a6fb999f73a359207e92451c8488fa5a43a2ed68a25c7255025e1e041baf04" }, "downloads": -1, "filename": "randomness-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "0ea76632a62fbeed61180d7244a83760", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 4952, "upload_time": "2018-10-19T04:17:40", "url": "https://files.pythonhosted.org/packages/6b/e3/c962a129d0e0239d5fb6febe92431399261410a22896869bd58b84223c64/randomness-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0591969f5d07501d028dcf8c3b837b0d", "sha256": "df4d15ccbe7175f501ee32c24df3fe1159e0c165688b6ff7fe49ff9fca16c8b6" }, "downloads": -1, "filename": "randomness-0.1.1.tar.gz", "has_sig": false, "md5_digest": "0591969f5d07501d028dcf8c3b837b0d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 5142, "upload_time": "2018-10-19T04:17:41", "url": "https://files.pythonhosted.org/packages/c2/66/cf3f15521d857bb3666b33967fcc4e3a242f30dc58382160b264b7ffee7c/randomness-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "fe6449e26dcebc4b4fe92d4689f400f2", "sha256": "f1aadf62d695b0f821c7b3742f9974512eefec9ffc693208c8babf0df95b3677" }, "downloads": -1, "filename": "randomness-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "fe6449e26dcebc4b4fe92d4689f400f2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 4985, "upload_time": "2018-10-20T10:18:48", "url": "https://files.pythonhosted.org/packages/29/2e/fb3e9339d89ebe1daf7c6362f575278439c60a416c7bb8ce34aebead7f7d/randomness-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "83bae0027af94e4abec72402cedb6ffa", "sha256": "f6e787e5bd57f70e1374958196c86511467d8d4dd873dc204f38fe8d18c51b71" }, "downloads": -1, "filename": "randomness-0.1.2.tar.gz", "has_sig": false, "md5_digest": "83bae0027af94e4abec72402cedb6ffa", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 5207, "upload_time": "2018-10-20T10:18:49", "url": "https://files.pythonhosted.org/packages/7b/f5/60d4d2c188b285b3d316f278825bd3d60fd61797a2a2835ebb96f1b15cbb/randomness-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "c18d13d402290ed3d831f41a2606b8bf", "sha256": "f58fa4094a7ba422cfdfb834c7088445df0c44cd0d67a19d6ce3bb2a2e31f687" }, "downloads": -1, "filename": "randomness-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "c18d13d402290ed3d831f41a2606b8bf", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 7452, "upload_time": "2018-10-20T16:54:54", "url": "https://files.pythonhosted.org/packages/2c/89/90dfb4269f912466a7333d16f016de98fdc0324ff0ee24022e9ce33b5872/randomness-0.1.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a8bf556205592956aa3b824d904eeec5", "sha256": "2cd3aa80323bb4f9c0856f5cc238eba9c570509652f34d9a647184c33e66ab45" }, "downloads": -1, "filename": "randomness-0.1.3.tar.gz", "has_sig": false, "md5_digest": "a8bf556205592956aa3b824d904eeec5", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 5551, "upload_time": "2018-10-20T16:54:56", "url": "https://files.pythonhosted.org/packages/25/9e/540baa2dff004dd1ab20b8ab452e8989299e06cf8bc40e2b1fe9841a0576/randomness-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "f5e29f59659e5ad019dfb233d433a18c", "sha256": "dad3d253115e75f38bdbd6992f0e6715fe3d149f379030a906083dd805275b8e" }, "downloads": -1, "filename": "randomness-0.1.4-py3-none-any.whl", "has_sig": false, "md5_digest": "f5e29f59659e5ad019dfb233d433a18c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 7460, "upload_time": "2018-10-20T18:07:31", "url": "https://files.pythonhosted.org/packages/15/c9/dcfe49f9ada789687b241f7d79dc42cb1565234ae066ff573a663c4e41ab/randomness-0.1.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5c35885c4a3c21d9668a45b6eab989cc", "sha256": "4cb0946e05241278adb5cd72744614b8ed421e9afd8afd0cc22a30f02b3c3a73" }, "downloads": -1, "filename": "randomness-0.1.4.tar.gz", "has_sig": false, "md5_digest": "5c35885c4a3c21d9668a45b6eab989cc", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 5366, "upload_time": "2018-10-20T18:07:33", "url": "https://files.pythonhosted.org/packages/93/fc/db79eaab23a8551bbbec48bb098d2034a5480ae4b4dd5469370634b29051/randomness-0.1.4.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "4e006b308f6fac0398b124858f0e777b", "sha256": "0c25a9a5d41e2e53c4316cea7b957535a102113f597fe57b2bcc04b89488b330" }, "downloads": -1, "filename": "randomness-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "4e006b308f6fac0398b124858f0e777b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 7477, "upload_time": "2018-10-21T07:42:50", "url": "https://files.pythonhosted.org/packages/a9/e2/55dfdfe63947adb488fae01293ae1c7c8e99283952c8f277ea5f7632dea4/randomness-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6f07f0056f74b750a8cad90cab3e39bc", "sha256": "c0368c868379d3da6237c789f5fb7039f0bf92c6eb9f5b4b0f38053efd03902f" }, "downloads": -1, "filename": "randomness-0.2.0.tar.gz", "has_sig": false, "md5_digest": "6f07f0056f74b750a8cad90cab3e39bc", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 5398, "upload_time": "2018-10-21T07:42:51", "url": "https://files.pythonhosted.org/packages/94/c5/f2fe5bafb0f60cd38d42c465c1d977bbcb82e9715bdafd60a2f724437c82/randomness-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "e42dc891bc3d7177fc8746433bd844eb", "sha256": "024c7e35fe9d39774515f04a393b43a18cfc780b843a681e0c16ed82f68be33d" }, "downloads": -1, "filename": "randomness-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "e42dc891bc3d7177fc8746433bd844eb", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 7790, "upload_time": "2018-10-21T09:59:43", "url": "https://files.pythonhosted.org/packages/c0/bc/41cf1b9cb75a14fc8a30213da468e952264360007bd7c0241fbc70ced12b/randomness-0.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "55b8489562551e1d63ebb07f4834db27", "sha256": "73e17e64bc3490259689f89424b130e89a4022f71f90dc1c2c0cbf4f902dbbe6" }, "downloads": -1, "filename": "randomness-0.2.1.tar.gz", "has_sig": false, "md5_digest": "55b8489562551e1d63ebb07f4834db27", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 6424, "upload_time": "2018-10-21T09:59:44", "url": "https://files.pythonhosted.org/packages/62/8b/c8aafbb5c62d1d7b43f0e776ecab89157ebb8c8cc19ceadf27eb911b5973/randomness-0.2.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e42dc891bc3d7177fc8746433bd844eb", "sha256": "024c7e35fe9d39774515f04a393b43a18cfc780b843a681e0c16ed82f68be33d" }, "downloads": -1, "filename": "randomness-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "e42dc891bc3d7177fc8746433bd844eb", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 7790, "upload_time": "2018-10-21T09:59:43", "url": "https://files.pythonhosted.org/packages/c0/bc/41cf1b9cb75a14fc8a30213da468e952264360007bd7c0241fbc70ced12b/randomness-0.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "55b8489562551e1d63ebb07f4834db27", "sha256": "73e17e64bc3490259689f89424b130e89a4022f71f90dc1c2c0cbf4f902dbbe6" }, "downloads": -1, "filename": "randomness-0.2.1.tar.gz", "has_sig": false, "md5_digest": "55b8489562551e1d63ebb07f4834db27", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 6424, "upload_time": "2018-10-21T09:59:44", "url": "https://files.pythonhosted.org/packages/62/8b/c8aafbb5c62d1d7b43f0e776ecab89157ebb8c8cc19ceadf27eb911b5973/randomness-0.2.1.tar.gz" } ] }