{ "info": { "author": "Nick Thurmes", "author_email": "nthurmes@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: GNU General Public License v2 or later (GPLv2+)", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "# DnDice\n\n[![PyPI version](https://badge.fury.io/py/dndice.svg)](https://badge.fury.io/py/dndice)\n[![Documentation Status](https://readthedocs.org/projects/rolling/badge/?version=latest)](https://rolling.readthedocs.io/en/latest/?badge=latest)\n[![Coverage Status](https://coveralls.io/repos/github/the-nick-of-time/dndice/badge.svg?branch=master)](https://coveralls.io/github/the-nick-of-time/dndice?branch=master)\n[![Build Status](https://travis-ci.org/the-nick-of-time/dndice.svg?branch=master)](https://travis-ci.org/the-nick-of-time/dndice)\n\nThis package deals with roll expressions, which are inspired by the syntax D&D uses.\nAt the most basic, there are expressions like `1d20` which means \"roll one 20-sided die\".\nD&D stops around when modifiers are added, like `1d6+2`.\nThis package runs with it and introduces these dice expressions to an entire arithmetic framework.\nYou can add, subtract, multiply, even exponentiate rolls together, not to mention all of the roll-specific operations like taking the highest or lowest rolls or rerolling given a condition.\nAs these are mathematical expressions just like normal ones, note that they can get arbitrarily complicated.\nThe only limit is how much resources Python can bring to bear calculating your `(9^9^9^9^9)d10000` or similar ridiculous expression. \n\nThe full specification of what operators are supported and what they do is below.\n\n| Operator | Format | Meaning\n| :------- | :-------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n| ! | *x*__!__ | Calculate the factorial of _x_.\n| d | *x*__d__*y* | Take a _y_-sided die and roll _x_ of them. _y_ can be an integer, and works just as you would expect. It can also be a list of arbitrary numbers (delineated by `[]` and separated with commas), in which case it works as a die with one side labeled with each number in the list.\n| da | *x*__da__*y* | Take a _y_-sided die and return the average as if _x_ of them had been rolled. This returns an unrounded number.\n| dc | *x*__dc__*y* | Roll a critical hit, where the number of dice rolled is doubled.\n| dm | *x*__dm__*y* | Roll the maximum on every die rolled.\n| h | *ROLL*__h__*n* | After making a roll, discard all but the highest _n_ of the rolls. Hint: 2d20h1 is advantage.\n| l | *ROLL*__l__*n* | After making a roll, discard all but the lowest _n_ of the rolls. Hint: 2d20l1 is disadvantage.\n| f | *ROLL*__f__*n* | After making a roll, treat any value that is less than _n_ as _n_.\n| c | *ROLL*__c__*n* | After making a roll, treat any value that is greater than _n_ as _n_.\n| r or ro | *ROLL*__ro__*n* | After making a roll, look at all of them and reroll any that are equal to _n_, reroll those, and take the result.\n| R or Ro | *ROLL*__Ro__*n* | After making a roll, look at all of them and reroll any that are equal to _n_ and reroll those. If that number comes up again, continue rerolling until you get something different.\n| r> or rh | *ROLL*__rh__*n* | After making a roll, look at all of them and reroll any that are strictly greater than _n_, reroll those, and take the result.\n| R> or Rh | *ROLL*__Rh__*n* | After making a roll, look at all of them and reroll any that are greater than _n_ and reroll those. If a number greater than _n_ comes up again, continue rerolling until you get something different.\n| r< or rl | *ROLL*__rl__*n* | After making a roll, look at all of them and reroll any that are strictly less than _n_, reroll those, and take the result.\n| R< or Rl | *ROLL*__Rl__*n* | After making a roll, look at all of them and reroll any that are less than _n_ and reroll those. If a number less than _n_ comes up again, continue rerolling until you get something different.\n| t | *ROLL*__t__*n* | After making the roll, count the number of rolls that were at least _n_.\n| T | *ROLL*__T__*n* | After making the roll, count the number of rolls that were at most _n_.\n| ^ | *x*__^__*y* | Raise _x_ to the _y_ power. This operation is right-associative, meaning that the right side of the expression is evaluated before the left. This really only comes up when chained, for example in `2^3^2`. This would not be `(2^3)^2=8^2=64`, but rather `2^(3^2)=2^9=512`.\n| * | *x*__*__*y* | _x_ times _y_.\n| / | *x*__/__*y* | _x_ divided by _y_. This returns an unrounded number.\n| % | *x*__%__*y* | _x_ modulo _y_. That is, the remainder after _x_ is divided by _y_.\n| + | *x*__+__*y* | _x_ plus _y_.\n| - | *x*__-__*y* | _x_ minus _y_.\n| > or gt | *x*__>__*y* | Check if _x_ is greater than _y_. Returns a 1 for yes and 0 for no.\n| >= or ge | *x*__>=__*y* | Check if _x_ is greater than or equal to _y_. Returns a 1 for yes and 0 for no.\n| < or lt | *x*__<__*y* | Check if _x_ is less than _y_. Returns a 1 for yes and 0 for no.\n| <= or le | *x*__<=__*y* | Check if _x_ is less than or equal to _y_. Returns a 1 for yes and 0 for no.\n| = | *x*__=__*y* | Check if _x_ is equal to _y_. Returns a 1 for yes and 0 for no.\n| & | *x*__&__*y* | Check if _x_ and _y_ are both nonzero.\n| \\| | *x*__\\|__*y* | Check if at least one of _x_ or _y_ is nonzero.\n\n\n\n## Using this package\n\n### As a user or player\n\nInstalling this package from PyPI will also install the script `roll` to your path. This is a simple command-line script that allows you to exercise all the powers of this package.\nFor a GUI that does the same, check out my repository [DnD](https://github.com/the-nick-of-time/DnD) which is a larger project focused around D&D 5e, allowing you to track your characters and monsters.\n\n\n### As a developer\n\nIf you just want to use this in an application, install it through PyPI and import it as `dndice`. The main function you want is `basic`, which will simply evaluate an expression and return the final number. `verbose` is useful for giving a more detailed look at what was actually rolled, targeted at direct display to a user. `compile` can be used to precompile expressions for quick evaluation of the same expression many times. For a complete view, see [the docs](https://rolling.readthedocs.io/en/latest/).\n\nTo modify this package, first install [poetry](https://github.com/sdispater/poetry) for dependency management. There are no runtime dependencies, and the only development dependencies are [sphinx](http://www.sphinx-doc.org/en/master/) for documentation and [nose2](https://nose2.readthedocs.io/en/latest/index.html) for testing.\nYou probably also want GNU make because I have a number of tasks scripted in the Makefile at the project root.\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "", "keywords": "", "license": "GPL-2.0-or-later", "maintainer": "Nick Thurmes", "maintainer_email": "nthurmes@gmail.com", "name": "dndice", "package_url": "https://pypi.org/project/dndice/", "platform": "", "project_url": "https://pypi.org/project/dndice/", "project_urls": null, "release_url": "https://pypi.org/project/dndice/2.8.0/", "requires_dist": null, "requires_python": ">=3.5,<4.0", "summary": "An engine to parse and evaluate D&D-inspired roll expressions", "version": "2.8.0", "yanked": false, "yanked_reason": null }, "last_serial": 6773172, "releases": { "2.0": [ { "comment_text": "", "digests": { "md5": "da42eaf724ff05c1e42929a81d2600d7", "sha256": "631708ab7be05e69a0e4959b7ec3a8d5668676644b016d49f160e449d421ad43" }, "downloads": -1, "filename": "dndice-2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "da42eaf724ff05c1e42929a81d2600d7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 31187, "upload_time": "2019-08-23T16:36:43", "upload_time_iso_8601": "2019-08-23T16:36:43.224361Z", "url": "https://files.pythonhosted.org/packages/98/6f/347250309a48f69cfdd92e11786dab60e2d05767ea31607f71c422681514/dndice-2.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "868bcae7028afa47d77c1d4af2c7a290", "sha256": "ed22d8343b08e2186ee2788992e6ae1f0646b54ee8439cb72f1893faafa54512" }, "downloads": -1, "filename": "dndice-2.0.tar.gz", "has_sig": false, "md5_digest": "868bcae7028afa47d77c1d4af2c7a290", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 28062, "upload_time": "2019-08-23T16:36:45", "upload_time_iso_8601": "2019-08-23T16:36:45.521491Z", "url": "https://files.pythonhosted.org/packages/59/0b/7a3629f0d123ff294f476b5b9310dba15bfd432cecdd8ee1fd52f0dfbfd0/dndice-2.0.tar.gz", "yanked": false, "yanked_reason": null } ], "2.1": [ { "comment_text": "", "digests": { "md5": "77ea54cd83877e295e23c903c02aa166", "sha256": "8c1aad958cf36ee825ab739585425eb6890e30b41274e17529f1a7770407b824" }, "downloads": -1, "filename": "dndice-2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "77ea54cd83877e295e23c903c02aa166", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 31423, "upload_time": "2019-08-23T18:04:01", "upload_time_iso_8601": "2019-08-23T18:04:01.784358Z", "url": "https://files.pythonhosted.org/packages/b3/0d/159006b94c462d606308ee9404fb0c60ae8b48e9cf3a946297826a91cf63/dndice-2.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "b166e1dfdc38639e8ab435079068a18a", "sha256": "3e333625899951f8afaa221df8dadeffd1b8f7576a993eac36bdfde661679595" }, "downloads": -1, "filename": "dndice-2.1.tar.gz", "has_sig": false, "md5_digest": "b166e1dfdc38639e8ab435079068a18a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 28235, "upload_time": "2019-08-23T18:04:03", "upload_time_iso_8601": "2019-08-23T18:04:03.131134Z", "url": "https://files.pythonhosted.org/packages/4b/00/ea86bd99e3067a4dea6bc5813503704fe2e056cbe08ba6665beee53f75f7/dndice-2.1.tar.gz", "yanked": false, "yanked_reason": null } ], "2.1.0.post0": [ { "comment_text": "", "digests": { "md5": "a70509dd39164601aaa994ee8d83eed1", "sha256": "14c4b1d2d4106cc9fd22e4ebe9d9e920ca8f4b4a4a62a991d82d706942b98457" }, "downloads": -1, "filename": "dndice-2.1.0.post0-py3-none-any.whl", "has_sig": false, "md5_digest": "a70509dd39164601aaa994ee8d83eed1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 33629, "upload_time": "2019-08-23T20:42:46", "upload_time_iso_8601": "2019-08-23T20:42:46.284905Z", "url": "https://files.pythonhosted.org/packages/16/8e/dde97da501522ef4d7326ac62efaa9e6928c379b48faa82c93d21c02fa1a/dndice-2.1.0.post0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "553a1ad7da5c53dcefba3473937502e9", "sha256": "e7ec0b71ad53d3ebe377aea620f67fc73b204f3ca8d00c3360d103132820d1de" }, "downloads": -1, "filename": "dndice-2.1.0.post0.tar.gz", "has_sig": false, "md5_digest": "553a1ad7da5c53dcefba3473937502e9", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 32329, "upload_time": "2019-08-23T20:42:47", "upload_time_iso_8601": "2019-08-23T20:42:47.700690Z", "url": "https://files.pythonhosted.org/packages/e2/6b/f6dac6c0b982049c9e0ab9b71fe107f13e1128979c73e0e9b3fc5c40cf13/dndice-2.1.0.post0.tar.gz", "yanked": false, "yanked_reason": null } ], "2.1.1": [ { "comment_text": "", "digests": { "md5": "4b3fcdc53e4164aa44cdc37884fbb2b0", "sha256": "869638c73cfba1caa3d7a21afaaa29f4824f89b17831b19a60dc8cd01ffd9a3b" }, "downloads": -1, "filename": "dndice-2.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "4b3fcdc53e4164aa44cdc37884fbb2b0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 34445, "upload_time": "2019-08-28T05:47:51", "upload_time_iso_8601": "2019-08-28T05:47:51.170041Z", "url": "https://files.pythonhosted.org/packages/92/f9/9a15d86a0a113e25aee87fd518909eb418ecb47f31c47f0c8318273ba8b6/dndice-2.1.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "c57ab6001f4b282c05f3248aa1a5451c", "sha256": "2a6a0b4564abd61987ce3191c3ded51badcedcef36ef5ffe696aa55faa848448" }, "downloads": -1, "filename": "dndice-2.1.1.tar.gz", "has_sig": false, "md5_digest": "c57ab6001f4b282c05f3248aa1a5451c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 33213, "upload_time": "2019-08-28T05:47:52", "upload_time_iso_8601": "2019-08-28T05:47:52.845442Z", "url": "https://files.pythonhosted.org/packages/44/3b/23a39b296fe2c160f2bc54d0dee430241eb4df31ededd766a0b3facb6ce0/dndice-2.1.1.tar.gz", "yanked": false, "yanked_reason": null } ], "2.1.2": [ { "comment_text": "", "digests": { "md5": "81926b43ba469a9f8a219d02b8ba3943", "sha256": "dd5139c5b9958118827254edce65c19f241e8f21818d4652e43a948318d17f5c" }, "downloads": -1, "filename": "dndice-2.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "81926b43ba469a9f8a219d02b8ba3943", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 34479, "upload_time": "2019-08-29T05:50:20", "upload_time_iso_8601": "2019-08-29T05:50:20.734789Z", "url": "https://files.pythonhosted.org/packages/c0/2a/edcb1327250af486f363a90378445c228cedad24cf7e0aa4aa5e1134b687/dndice-2.1.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "198b7435f7b88bad950f999dc44de1af", "sha256": "c9e58f38ec1e0b225ae1494edaa9c50c8db110b7ca72b0a1046f35551fb97de1" }, "downloads": -1, "filename": "dndice-2.1.2.tar.gz", "has_sig": false, "md5_digest": "198b7435f7b88bad950f999dc44de1af", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 33250, "upload_time": "2019-08-29T05:50:23", "upload_time_iso_8601": "2019-08-29T05:50:23.000930Z", "url": "https://files.pythonhosted.org/packages/5c/ca/b9478df81284c33b16083d579b6a8013a363f339423a8dba63be04c8424e/dndice-2.1.2.tar.gz", "yanked": false, "yanked_reason": null } ], "2.1.3": [ { "comment_text": "", "digests": { "md5": "d51cd804d2f30f209e92fa1308d35eb2", "sha256": "67e958edefae375a726efc8ca53653f5354f7743546406c5f805075e328d998d" }, "downloads": -1, "filename": "dndice-2.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "d51cd804d2f30f209e92fa1308d35eb2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 34490, "upload_time": "2019-09-24T02:17:20", "upload_time_iso_8601": "2019-09-24T02:17:20.074781Z", "url": "https://files.pythonhosted.org/packages/77/81/572eb17de0bfca521976a4312688e1443e804325e6628820af4ce939842c/dndice-2.1.3-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "5911be6621fbbdf1f256ed132bc0c17d", "sha256": "f2715d84d75dd481229c98610c6d6d5b5a2b1a3989efc760a1b3da25460216d3" }, "downloads": -1, "filename": "dndice-2.1.3.tar.gz", "has_sig": false, "md5_digest": "5911be6621fbbdf1f256ed132bc0c17d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 33264, "upload_time": "2019-09-24T02:17:22", "upload_time_iso_8601": "2019-09-24T02:17:22.146204Z", "url": "https://files.pythonhosted.org/packages/ff/13/f1c6700e1e31c9ebb27be633670ee8eb06265be00684ec210b2d2d1cf35e/dndice-2.1.3.tar.gz", "yanked": false, "yanked_reason": null } ], "2.1.4": [ { "comment_text": "", "digests": { "md5": "57ac8e0a0ddc40bf9123dcda020645ea", "sha256": "1bc3163d884a618321e58fd8ab648ecc178148815326ba5ffb4a074ee7dd9550" }, "downloads": -1, "filename": "dndice-2.1.4-py3-none-any.whl", "has_sig": false, "md5_digest": "57ac8e0a0ddc40bf9123dcda020645ea", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 34587, "upload_time": "2019-09-24T04:35:13", "upload_time_iso_8601": "2019-09-24T04:35:13.073133Z", "url": "https://files.pythonhosted.org/packages/8b/1c/2116d43f7e8c0d0c07df29ca30d0d37d964bbc3f3c3eba3d140437303dd5/dndice-2.1.4-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "be2c472389833094c336b0d0546615fd", "sha256": "3ea9faf66a834a86e60cf57ce5af43cf894375b4ec7e1e4fe6c0ce267a1a279b" }, "downloads": -1, "filename": "dndice-2.1.4.tar.gz", "has_sig": false, "md5_digest": "be2c472389833094c336b0d0546615fd", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 33340, "upload_time": "2019-09-24T04:35:14", "upload_time_iso_8601": "2019-09-24T04:35:14.706784Z", "url": "https://files.pythonhosted.org/packages/7a/e6/eac24cea93cb33346758108ec5f61185a0eec5a923c10740c36900735e22/dndice-2.1.4.tar.gz", "yanked": false, "yanked_reason": null } ], "2.2.0": [ { "comment_text": "", "digests": { "md5": "06110af5f0317d31123f416ebec21da4", "sha256": "611c64894ade76b0c64823def08c395da7c06e690d35a147829755d9b1d1edfc" }, "downloads": -1, "filename": "dndice-2.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "06110af5f0317d31123f416ebec21da4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5,<4.0", "size": 34717, "upload_time": "2019-10-17T03:23:31", "upload_time_iso_8601": "2019-10-17T03:23:31.726884Z", "url": "https://files.pythonhosted.org/packages/23/3a/f80de2522c016e49830d0d72d21b5e2eb8691669fd1a1dcc5736bf7b625e/dndice-2.2.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "8258c99589d2518d0e40453a6da27529", "sha256": "d03915e5727e2f87866da003ec4c775e423f2ef26a70e8824b9f08760e311873" }, "downloads": -1, "filename": "dndice-2.2.0.tar.gz", "has_sig": false, "md5_digest": "8258c99589d2518d0e40453a6da27529", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5,<4.0", "size": 33352, "upload_time": "2019-10-17T03:23:33", "upload_time_iso_8601": "2019-10-17T03:23:33.481620Z", "url": "https://files.pythonhosted.org/packages/50/dc/c786b4d90ad44f64a50214f71a0f582f3d3da82911e481d474de1be0dc80/dndice-2.2.0.tar.gz", "yanked": false, "yanked_reason": null } ], "2.3.0": [ { "comment_text": "", "digests": { "md5": "de51e7020d88b413c97d6675778b0fea", "sha256": "6772788fcebbdbe0f39ca5736c9eb41df67d114f1ea7cbc70566492db5cf69c8" }, "downloads": -1, "filename": "dndice-2.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "de51e7020d88b413c97d6675778b0fea", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5,<4.0", "size": 102069, "upload_time": "2019-10-23T05:02:34", "upload_time_iso_8601": "2019-10-23T05:02:34.479004Z", "url": "https://files.pythonhosted.org/packages/89/9b/944db4ce89e8f851ee1638e6324a0fbc09d7690b19af85743ccbeb98ca2d/dndice-2.3.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "1b03e2ed3843bee82ac194dc055d08b5", "sha256": "d9d3b2aaa62d5c74846d7cbd7bd9f55b2f0be973f1e8f5325626ea6baa1f885c" }, "downloads": -1, "filename": "dndice-2.3.0.tar.gz", "has_sig": false, "md5_digest": "1b03e2ed3843bee82ac194dc055d08b5", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5,<4.0", "size": 33493, "upload_time": "2019-10-23T05:02:36", "upload_time_iso_8601": "2019-10-23T05:02:36.268426Z", "url": "https://files.pythonhosted.org/packages/1c/3d/98b0cfd420e95fa3506493265d2f761e7d3e27516fd6deed3b36d5f83130/dndice-2.3.0.tar.gz", "yanked": false, "yanked_reason": null } ], "2.3.1": [ { "comment_text": "", "digests": { "md5": "5295eaf47e248ee6185f185728105f32", "sha256": "7ee12ade63a232a7f323d0b4ae1367d95acc297c913494672078a3e90fb80904" }, "downloads": -1, "filename": "dndice-2.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "5295eaf47e248ee6185f185728105f32", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5,<4.0", "size": 103157, "upload_time": "2019-11-20T05:46:36", "upload_time_iso_8601": "2019-11-20T05:46:36.083709Z", "url": "https://files.pythonhosted.org/packages/ad/eb/2fe313a5307526b7719e80ac9da1b18af7bc8a9dac9ede08cdd4cd444f47/dndice-2.3.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "965819cc555234e9ba8e85e7e45bba85", "sha256": "4066e3e7de03620403638dac47a7b72dc87dea40465fafb2e4e84168e567c1ec" }, "downloads": -1, "filename": "dndice-2.3.1.tar.gz", "has_sig": false, "md5_digest": "965819cc555234e9ba8e85e7e45bba85", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5,<4.0", "size": 33688, "upload_time": "2019-11-20T05:46:37", "upload_time_iso_8601": "2019-11-20T05:46:37.525440Z", "url": "https://files.pythonhosted.org/packages/b1/0c/aebbd66f5a1363d97c52f26c17af5cd388439a254c64f5b1316e319db0ac/dndice-2.3.1.tar.gz", "yanked": false, "yanked_reason": null } ], "2.4.0": [ { "comment_text": "", "digests": { "md5": "133da6c9cf6fb1dde301cc43558f8e62", "sha256": "479cffb90f1261bcdf56cd1f8506033937dbdd28f1f143eeefc1ca97ecb04ff0" }, "downloads": -1, "filename": "dndice-2.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "133da6c9cf6fb1dde301cc43558f8e62", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5,<4.0", "size": 113446, "upload_time": "2020-01-19T01:35:59", "upload_time_iso_8601": "2020-01-19T01:35:59.134503Z", "url": "https://files.pythonhosted.org/packages/5d/db/2de72143854ccca2e18fd21c7fe0674bb2078411d1f88ae13583112e8a1d/dndice-2.4.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "6292342f78f1447b2bcd4357013b47e9", "sha256": "b57090f18144bccaf08995e97875fc2750f04f2af56e3f7960ae66d95151e10d" }, "downloads": -1, "filename": "dndice-2.4.0.tar.gz", "has_sig": false, "md5_digest": "6292342f78f1447b2bcd4357013b47e9", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5,<4.0", "size": 35828, "upload_time": "2020-01-19T01:36:00", "upload_time_iso_8601": "2020-01-19T01:36:00.943091Z", "url": "https://files.pythonhosted.org/packages/4d/69/fa1d9490631ddde998a284dea8c3fe14516b67494aec25e7607582036b9c/dndice-2.4.0.tar.gz", "yanked": false, "yanked_reason": null } ], "2.5.1": [ { "comment_text": "", "digests": { "md5": "93d2c5052a59b0fa748d1af674d8fae6", "sha256": "4bf6ce1ee77af333278227ce818dbcb4b35943a589cae032a7f424ef7d76bf70" }, "downloads": -1, "filename": "dndice-2.5.1-py3-none-any.whl", "has_sig": false, "md5_digest": "93d2c5052a59b0fa748d1af674d8fae6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5,<4.0", "size": 113833, "upload_time": "2020-02-18T07:04:52", "upload_time_iso_8601": "2020-02-18T07:04:52.564478Z", "url": "https://files.pythonhosted.org/packages/71/25/132be83d47cf3f6c874e1328060fbc87cc995ff5ee33079f7f69ca908ccd/dndice-2.5.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "e166f424139feb9b48fc110b15804bd3", "sha256": "eb7fff1f8d0ba9bc622e6956489c590c2fa26ab9b76471d1b6102a77dc6eef8a" }, "downloads": -1, "filename": "dndice-2.5.1.tar.gz", "has_sig": false, "md5_digest": "e166f424139feb9b48fc110b15804bd3", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5,<4.0", "size": 35764, "upload_time": "2020-02-18T07:04:54", "upload_time_iso_8601": "2020-02-18T07:04:54.334860Z", "url": "https://files.pythonhosted.org/packages/8a/3a/46dafd629ae9431793ba9ba7aacef47f3cc2f736bfb0583a0ab0287fdcbd/dndice-2.5.1.tar.gz", "yanked": false, "yanked_reason": null } ], "2.6.0": [ { "comment_text": "", "digests": { "md5": "120aa69a6dde4931a2fee395c084e962", "sha256": "55558d388aec70da2232975fc51bb235369cd103485655c853372d7ef4bf03ee" }, "downloads": -1, "filename": "dndice-2.6.0-py3-none-any.whl", "has_sig": false, "md5_digest": "120aa69a6dde4931a2fee395c084e962", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5,<4.0", "size": 113912, "upload_time": "2020-02-19T08:02:45", "upload_time_iso_8601": "2020-02-19T08:02:45.033589Z", "url": "https://files.pythonhosted.org/packages/27/29/80a698bd6e46b263085d0272f69026ae790a3d8fb543c9413daa6e42b286/dndice-2.6.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "917ba483915ac2de903dc322bd8c80cb", "sha256": "e1b7638e3617c678e4db43ca39256bda0c7ec4d82ed2a70f5cfa3ab9a55fa491" }, "downloads": -1, "filename": "dndice-2.6.0.tar.gz", "has_sig": false, "md5_digest": "917ba483915ac2de903dc322bd8c80cb", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5,<4.0", "size": 35825, "upload_time": "2020-02-19T08:02:46", "upload_time_iso_8601": "2020-02-19T08:02:46.651136Z", "url": "https://files.pythonhosted.org/packages/19/f0/5a25c4abe54f28a1e92e71522892fb9ac44334ce29e5a55dcea217e71c72/dndice-2.6.0.tar.gz", "yanked": false, "yanked_reason": null } ], "2.8.0": [ { "comment_text": "", "digests": { "md5": "0b34c1138b485e163e94b797cab6052f", "sha256": "1efd27956ade84ad691255e4c2f3d5fddf0fd6e897c6bf9749483fc2e6107759" }, "downloads": -1, "filename": "dndice-2.8.0-py3-none-any.whl", "has_sig": false, "md5_digest": "0b34c1138b485e163e94b797cab6052f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5,<4.0", "size": 114538, "upload_time": "2020-03-08T19:04:34", "upload_time_iso_8601": "2020-03-08T19:04:34.658019Z", "url": "https://files.pythonhosted.org/packages/58/70/0eacdb282b087c7d5f375e5fce35393677b8c789f8ceeeb4c92516581ebd/dndice-2.8.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "44ab3402783bb9fc5a581538eb579a3b", "sha256": "a17e97a89d6e1be26c91f3acc065c2412ad7c783d68a4fb887e84f6475d7030f" }, "downloads": -1, "filename": "dndice-2.8.0.tar.gz", "has_sig": false, "md5_digest": "44ab3402783bb9fc5a581538eb579a3b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5,<4.0", "size": 36172, "upload_time": "2020-03-08T19:04:36", "upload_time_iso_8601": "2020-03-08T19:04:36.175446Z", "url": "https://files.pythonhosted.org/packages/c4/46/0989fd72b700032898427e35a44980beb3a06762b6bfbcdf83226c882e8e/dndice-2.8.0.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "0b34c1138b485e163e94b797cab6052f", "sha256": "1efd27956ade84ad691255e4c2f3d5fddf0fd6e897c6bf9749483fc2e6107759" }, "downloads": -1, "filename": "dndice-2.8.0-py3-none-any.whl", "has_sig": false, "md5_digest": "0b34c1138b485e163e94b797cab6052f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5,<4.0", "size": 114538, "upload_time": "2020-03-08T19:04:34", "upload_time_iso_8601": "2020-03-08T19:04:34.658019Z", "url": "https://files.pythonhosted.org/packages/58/70/0eacdb282b087c7d5f375e5fce35393677b8c789f8ceeeb4c92516581ebd/dndice-2.8.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "44ab3402783bb9fc5a581538eb579a3b", "sha256": "a17e97a89d6e1be26c91f3acc065c2412ad7c783d68a4fb887e84f6475d7030f" }, "downloads": -1, "filename": "dndice-2.8.0.tar.gz", "has_sig": false, "md5_digest": "44ab3402783bb9fc5a581538eb579a3b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5,<4.0", "size": 36172, "upload_time": "2020-03-08T19:04:36", "upload_time_iso_8601": "2020-03-08T19:04:36.175446Z", "url": "https://files.pythonhosted.org/packages/c4/46/0989fd72b700032898427e35a44980beb3a06762b6bfbcdf83226c882e8e/dndice-2.8.0.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }