Package: pyrando
PyRando=======PyRando is a Python 3 module for interacting with the [random.org](https://random.org) JSON API. PyRando can generate random values using basic methods as well as digitally signed random values using the signed methods.PyRando is compatible with Python 3.6+.Installation============To install pyrando, use `pip3`:$ pip3 install pyrandoGetting Started===============To interact with random.org, you will first need to get an api key. Go to [api.random.org](https://api.random.org/json-rpc/1/) and click on *Get a Beta Key*. Once you have an API key, using PyRando is quite straightforward.For example:>>> from pyrando import PyRando>>> pr = PyRando('YOUR_API_KEY')>>> pr.integers(5, 0, 10)[0, 7, 10, 3, 5]Basic Methods=============### IntegersThe `integers` method generates true random integers within a user-defined range. Integer requests take up to four positional arguments:* `n` - How many random integers you need. Must be within the [1,1e4] range* `min` - The lower boundary for the range. Must be within the [-1e9,1e9] range* `max` - The upper boundary for the range. Must be within the [-1e9,1e9] range* `base` (optional) - If not provided, the default `base` is set to 10. Allowed values for base are 2, 8, 10, and 16Examples:pr.integers(10, 1, 6)pr.integers(10, 1, 100, 2)### DecimalsThe `decimals` method generates true random decimal fractions from a uniform distribution across the [0,1] interval with a user-defined number of decimal places. Decimal requests take three positional arguments:* `n` - How many random decimal fractions you need. Must be within the [1,1e4] range* `decimalPlaces` - The number of decimal places to use. Must be within the [1,20] rangeExample:pr.decimals(10, 8)### GaussiansThe `gaussians` method generates true random numbers from a Gaussian distribution. Integer requests take four positional arguments:* `n` - How many random numbers you need* `mean` - The distributions mean. Must be within the [1,1e4] range* `standardDeviation` - The distributions standard deviation. Must be with the [-1e6,1e6] range* `significantDigits` - The number of significant digits to use. Must be within the [2,20] rangeExample:pr.gaussians(4, 0.0, 1.0, 8)### StringsThe `strings` method generates true random strings. String requests take three positional arguments:* `n` - How many random strings you need. Must be within the [1,1e4] range* `length` - The length of each string. Must bbe within the [1,20] range. All strings will be of the same length* `characters` - A string that contains the set of characters that are allowed to occur in the random stings. The maximum number of characters is 80Example:pr.strings(10, 20, 'abcdefghijklmnopqrstuvwxyz')### UUIDsThe `uuids` method generates version 4 true random UUIDs. UUID requests take a single positional argument:* `n` - How many random UUIDs you need. Must be within the [1,1e3] rangeExample:pr.uuids(1)### BlobsThe `blobs` method generates BLOBs containing true random data. Blob requests take up to three positional argument:* `n` - How many random blobs you need. Must be within the [1,100] range* `size` - The size of each blob, measured in bits. Must be within the [1,1048576] range and divisible by 8. The total size of all requested blobs much not exceed 1,048,576 bits (128KiB)* `format` - Specifies the format in which the blobs will be returned. Values allowed are `base64` and `hex`. If not value is provided, the default value of `base64` is used.Examples:pr.blobs(1, 2048)pr.blobs(1, 1024, 'hex')### UsageThe `usage` method returns information related to the usage of a given API.Example:pr.usage()Signed Methods==============Usage of signed methods is quite similar to that of basic methods. For example, to use signed methods you could input the commands as follows:>>> pr.signed_integers(10, 1, 6)>>> pr.signed_decimals(10, 8)>>> pr.signed_gaussians(4, 0.0, 1.0, 8)>>> pr.signed_strings(10, 20, 'abcdefghijklmnopqrstuvwxyz')>>> pr.signed_uuids(1)>>> pr.signed_blobs(1, 2048)exiThe difference between basic methods and signed methods is the response. Instead of just a list with the random values, signed methods return a dictionary with values for the following keys `data`, `random`, and `signature`. The `random` and `signature` values can be used to authenticate signed values.To verify a response, use the `verify_signature` method. The method take the `random` and `signature` values as arguments and responds with a boolean value of either `True` or `False`. For example:>>> signed_ints = pr.signed_integers(10, 1, 6)>>> pr.verify_signature(signed_ints['random'], signed_ints['signature'])True