{ "info": { "author": "Ningji Wei", "author_email": "tidues@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# Distance between Random Events\n\nThis package is mainly for symbolically and numerically calculating the arbitrary order moments, pdf, cdf and their conditional counterparts of the distance between two random events in a given graph. The position of an event in a network is encoded in a tuple `(e, p)`, where `e={u,v}` (assume `u < v`) is the edge where the event happens and `p` is the relative location of the event on that edge, that is the length of the segment from `u` (the vertex with small index) to the location of the event divided by the length of the edge `e`. Since both events are random, we use `(X, P)` and `(Y, Q)` to denote both events respectively.\n\nThese formulas can be easily embedded in optimization models. If consider the pmf of `X` and `Y` as decision variables, it can be shown that all these formulas are linear functions in these variables. User can use the formula methods `X_coeff` and `Y_coeff` to retrieve the corresponding coefficients.\n\n## Installation\n\nUse pip to install the randist package.\n```\npip install randist\n```\n\n## Inputs\n1. A data file whose rows are edges of the network with extra properties. There are five columns,\n * `i`: first vertex of the edge\n * `j`: second vertex of the edge\n * `l`: length of the current edge\n * `x`: the probability of event 1 happens on the current edge\n * `y`: the probability of event 2 happens on the current edge\n\n2. The joint distribution of the relative locations of two events, ![alt text](https://latex.codecogs.com/gif.latex?\\Phi_\\scriptscriptstyle{P,Q}(p,q)). This should be provided as a `Phi` object,\n```\nfrom sympy.abc import p, q # import symbols\nimport randist as rt # import our randist package\n\nphi_pq = 1 # the uniform distribution\nphi_pq = 36 * p * (1 - p) * q * (1 - q) # both are beta functions with parameters alpha = beta = 2\n\nphi = rt.Phi('betapq', phi_pq=phi_pq) # create a Phi object with a name\n\n```\nIn current implementation, the random variables `X` and `Y` are assumed to be independent, but the formulas we developed in our paper do not have this restriction. Also, currently, we assume the joint pdf ![alt text](https://latex.codecogs.com/gif.latex?\\Phi_\\scriptscriptstyle{P,Q}(p,q)) are same for all pair of edges `(e, f)`, but the formulas in our paper do not have this restriction. We may relax both restrictions in the future version.\n\nAlso notice the input joint distribution `phi_pq` does not have to be correct outside of the domain `[0, 1]^2` the unit square in the `pq`-plane (all values should be zero outside this domain). Our package will verify whether the input expression integral to `1` in its domain, but will not verify the non-negative requirement.\n\n## Outputs\nSeveral statistics about the random distance `D` between two events:\n1. moments of arbitrary order \n2. cdf (point evaluation, or plotting against the distance `x`) \n3. pdf (point evaluation, or plotting against the distance `x`) \n4. conditional moments of arbitrary order (point evaluation, or plotting against the relative location `p` given `X=e`) \n5. conditional cdf (point evaluation or plotting against `x` given `(X, P) = (e, p)` ) \n6. conditional pdf (point evaluation or plotting against `x` given `(X, P) = (e, p)` )\n\nAll these statistics can be computed either symbolically or numerically. We will explain their differences later.\n\n## Main Interfaces\nUser can achieve most tasks with two interfaces, `Formulas` and `data_collector`. The former gives the freedom of calculating statistics individually, where the latter can collect data in batch.\n\n### Interface 1: `Formulas` Object\n\n#### Example\nAn example of using formulas objects to compute statistics:\n```\nfrom sympy.abc import p, q # import symbols\nimport randist as rt # import our package\n\ngname = 'g0' # data file name in the folder ./data\nphi_pq = 36 * p * (1-p) * q * (1 - q)\nphi = rt.Phi('betapq', phi_pq=phi_pq) # create a joint pdf with a name\n\nfls = rt.Formulas(gname, phi) # create a formulas object\n\nmoment = fls.get_formula(rt.Stats.MOMENT) # get a moment formula object\ncdf = fls.get_formula(rt.Stats.CDF) # get a cdf formula object\npdf = fls.get_formula(rt.Stats.PDF) # get a pdf formula object\ncmoment = fls.get_formula(rt.Stats.CMOMENT) # get a conditional moment formula object\nccdf = fls.get_formula(rt.Stats.CCDF) # get a conditional cdf formula object\ncpdf = fls.get_formula(rt.Stats.CPDF) # get a conditional pdf formula object\n\nmoment.eval(3) # computing the 3rd order moment\nmoment.eval(2) - moment.eval(1) ** 2 # compute the variance\ncdf.eval(9.5) # evaluate the cdf at the point x = 9.5\ncdf.plot(show=True) # save the plot in the ./results folder and show it\npdf.eval(8.1) # evaluate the pdf at the point x = 9.5\npdf.plot() # save the plot in the ./results folder without showing\ncmoment.eval(1, ('1', '2'), 0.5) # the conditional expectation given (e, p) = (('1', '2'), 0.5)\ncmoment.plot(2, ('1', '2')) # plot the conditional 2nd moment against the value of p\nccdf.eval(('2', '3'), 0.1, 3.5) # evaluate the conditional cdf at x = 3.5 given (e, p) = (('2', '3'), 0.1)\nccdf.plot(('2', '3'), 0.1) # plot the conditional cdf given (e, p) = (('2', '3'), 0.1)\ncpdf.eval(('2', '3'), 0.1, 3.5) # same but with conditional pdf\ncpdf.plot(('2', '3'), 0.1) # same but with conditional pdf\n```\n\n#### The `Formulas` Class\nThe `Formulas` class has the following parameters,\n```\nFormulas(gname, phi, fpath='./data/', rational=False, d_jit=False, memorize=True)\n```\neach parameter is explained below:\n* gname: data file name without the extension `.dat`\n* phi: a Phi object for input joint distribution\n* fpath: the folder where you put the input data file\n* rational: if `True`, all value are computed in the rational form (slow)\n* d_jit: compute the shortest path length between pair of vertices in a `Just In Time` fashion. Set this to `True` if the input graph is very large and only conditional statistics are needed.\n* memorize: use memorization to speedup the computation. Set this to `False` only if the input graph is too large so that the memories in the computer are not enough.\n\n#### The `get_formula` Method\n```\nget_formula(stats, symbolic=None)\n```\neach parameter is explained below:\n1. stats: specify which type of formulas you want, all types are in the enum type Stats.\n2. symbolic: calculate values numerically or symbolically. The default value `None` means auto, so moments and conditional moments will be calculated numerically, and all the rest are calculated symbolically.\n\nThis method will return a formula object.\n\n#### Comparison between Numeric and Symbolic Formulas\n1. Symbolic formula object is slow in generating the formula, but fast in evaluating values once the formula has been generated.\n2. Symbolic formula object has two more methods that numerical formulas do not have, `formula()` which shows the closed-form formula for the corresponding statistics, and `save_formula()` that saves the generated formula into file, so that users can load it by the function `load_formulas` in the future without generating the formulas from scratch again.\n3. Symbolic formula is faster in plotting.\n4. One drawback is that the speed of symbolic formulas are getting much more slower when the size of the graph increases.\n5. Numeric formulas are fast in evaluating a single value. And it performs much faster than symbolic formulas in both plotting and evaluation when graph is large.\n\nBasically, if the network is large, always use numeric formulas. Otherwise, please use the default setting, especially if you want to reuse the formulas in the future.\n\n#### The `Formula` Object\nThe main methods of formula objects are:\n1. `eval(*params, save=True)`: give corresponding parameters to evaluate the value. The required parameters are\n * Moments: `k`, the order of moment.\n * CDF: `x`, the distance.\n * PDF: `x`, the distance.\n * Conditional Moments: `k`; `e`, the edge conditioning on; `p`, the relative location conditioning on.\n * Conditional CDF: `e`, `p`, `x`.\n * Conditional PDF: `e`, `p`, `x`.\n2. `plot(*params, step=0.01, save=True, show=False)`: plotting the formula. The required parameters are\n * Moments: cannot plot.\n * CDF: no required input.\n * PDF: no required input.\n * Conditional Moments: `k`, `e`. Plotting over `p`.\n * Conditional CDF: `e`, `p`.\n * Conditional PDF: `e`, `p`.\n3. `X_coeff(k_val=None, p_val=None, x_val=None)`: consider the formula as a function of the pmf of `X`, retrieve the coeffecients. Return a dictionary indexed by the edges.\n4. `Y_coeff(k_val=None, p_val=None, x_val=None)`: consider the formula as a function of the pmf of `Y`, retrieve the coeffecients. Return a dictionary indexed by the edges.\n\nUnique methods for symbolic formula objects:\n1. `formula(self, *params)`: return the closed form formula. Same required parameters as the plot method.\n2. `save_formula()`: save the formulas in a hidden folder under current working directory. Can use the function `load_formulas()` to reload these formulas next time without reading the original graph.\n\n\n### Interface 2: `data_collector` Function\nBasically, the function `data_collector` is a wrapper of the `Formulas` class. We will demonstrate the usage with an example.\n\n#### Example\n\n```\nfrom sympy.abc import p, q # import symbols\nimport randist as rt # import our randist package\n\ngname = 'g0' # input graph name\nphi = rt.Phi('uniform', 1) # creating a input joint distribution\n\nks = [1, 2, 3] # list of orders for moments\nloc1 = (('1', '2'), 0.2)\nloc2 = (('1', '3'), 0.5)\nloc3 = (('3', '4'), 0)\nlocs = [loc1, loc2, loc3] # list of locations\n\nmmtp = {'collect': True, 'symbolic': None, 'valst': ks} # params for moment\ncdfp = {'collect': True, 'symbolic': None} # params for cdf\n\npdfp = {'collect': True, 'symbolic': None} # params for pdf\ncmmtp ={'collect': True, 'symbolic': None, 'valst': (ks, locs)} # params for conditional moment\nccdfp = {'collect': True, 'symbolic': None, 'valst': locs} # params for conditional cdf\ncpdfp = {'collect': True, 'symbolic': False, 'valst': locs} # params for conditional pdf\n\nd_jit = False # whether compute pairwise shortest distance in a Just In Time fashion\nmemorize = True # whether use memorization to speedup the computation\n\n# collect all specified data and save them in the folder ./results\nrt.data_collector(gname, phi, mmtp, cdfp, pdfp, cmmtp, ccdfp, cpdfp, d_jit=d_jit, memorize=memorize) \n```\n\n## Future Plan\n1. Remove the current restrictions mentioned before about `X` and `Y`, and ![alt text](https://latex.codecogs.com/gif.latex?\\Phi_\\scriptscriptstyle{P,Q}(p,q)).\n2. Interactive user interface.\n3. The running speed right now is decent for common graph. Further speed improvement can be done by rewriting core functions in C.\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/tidues/Distance-Distribution-of-Random-Events", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "randist", "package_url": "https://pypi.org/project/randist/", "platform": "", "project_url": "https://pypi.org/project/randist/", "project_urls": { "Homepage": "https://github.com/tidues/Distance-Distribution-of-Random-Events" }, "release_url": "https://pypi.org/project/randist/1.1.7/", "requires_dist": null, "requires_python": "", "summary": "Distance statistics for two random events on a network", "version": "1.1.7" }, "last_serial": 5588726, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "09c4dd44d39c5aeb6f03f628181eb3f1", "sha256": "483e1d46a63382cf4b4501b14433ee7d16e60139edd7bb5c6fc6b9bd144aabeb" }, "downloads": -1, "filename": "randist-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "09c4dd44d39c5aeb6f03f628181eb3f1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 2611, "upload_time": "2019-02-01T19:47:57", "url": "https://files.pythonhosted.org/packages/f6/2c/0c5b8671c7598059168e74c4632cf97a5c18e4136370d0dafc9ff7442134/randist-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a551efa58007c065dd2ba529cfb3e27c", "sha256": "94c6d2d65973437d09a3414cfef37a380382ed02daa5536d400bf91e34e0380d" }, "downloads": -1, "filename": "randist-1.0.0.tar.gz", "has_sig": false, "md5_digest": "a551efa58007c065dd2ba529cfb3e27c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1343, "upload_time": "2019-02-01T19:47:59", "url": "https://files.pythonhosted.org/packages/8a/b2/7542d785d19a2b1f8a3badad978de74b02869a5a312975d401126b9d5228/randist-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "0b23349074fbb9d3e66e8d4067f22870", "sha256": "90b44e2577958643cba4418c0976bb67d26ac8bdf1ad691b19f392d9e65069c7" }, "downloads": -1, "filename": "randist-1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "0b23349074fbb9d3e66e8d4067f22870", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 26259, "upload_time": "2019-02-01T19:58:12", "url": "https://files.pythonhosted.org/packages/10/30/c4cbf4a944ff48eb76135510034c9e2a4171cbd45acb03f43980b629f415/randist-1.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "211dbeff7ad5a8b9357efebd9b1e8258", "sha256": "44ab7477f0de1fcc82162b5e3518768036dae64a2151604839fbdc77ccf49fee" }, "downloads": -1, "filename": "randist-1.0.1.tar.gz", "has_sig": false, "md5_digest": "211dbeff7ad5a8b9357efebd9b1e8258", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18909, "upload_time": "2019-02-01T19:58:13", "url": "https://files.pythonhosted.org/packages/fb/ba/1dfd4bd600bea4793aa5b2cb5b2d810b8424befca6a5e87e713e744ab930/randist-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "a271b729366fdd8119985b41a7bda3f5", "sha256": "b454994aa57c6358b223561a3cd4133b5bea565ccf1fb1a20f317fe4c41abb3c" }, "downloads": -1, "filename": "randist-1.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "a271b729366fdd8119985b41a7bda3f5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 29164, "upload_time": "2019-02-04T19:00:14", "url": "https://files.pythonhosted.org/packages/05/c8/a37533a0a58a83761d094de7a9711789202aed34a0385a7ee0773cade7b0/randist-1.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a29f4659f565803cf75d1eb775a5355e", "sha256": "ab4a1feff1a4adabfe800794f94ec901a39bde33b3626b496d5f3b1c309e8d86" }, "downloads": -1, "filename": "randist-1.0.2.tar.gz", "has_sig": false, "md5_digest": "a29f4659f565803cf75d1eb775a5355e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25077, "upload_time": "2019-02-04T19:00:16", "url": "https://files.pythonhosted.org/packages/f3/bf/c6da290dc52b15c073ca82ff30b889412464020c6065cf156e31c248e974/randist-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "729ea83b0f8e4f5723e4c220cfa197cb", "sha256": "5f206ee260774767eec9b18d73f1aa365fe19fb42c9d8509b86c79db717b0c1a" }, "downloads": -1, "filename": "randist-1.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "729ea83b0f8e4f5723e4c220cfa197cb", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 29410, "upload_time": "2019-02-06T12:41:08", "url": "https://files.pythonhosted.org/packages/fb/43/8b1db84a080f8cf6698dd2d6fde1c8d18f40859210be00a318dc4f791850/randist-1.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d8a866c9cc446ca1d4fe5c6402f224c8", "sha256": "40c5a3d0679891255f1cb53dffb8e842ffe695f10dcb484465a4c41f17a78f01" }, "downloads": -1, "filename": "randist-1.0.3.tar.gz", "has_sig": false, "md5_digest": "d8a866c9cc446ca1d4fe5c6402f224c8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25345, "upload_time": "2019-02-06T12:41:09", "url": "https://files.pythonhosted.org/packages/85/c0/0eb278ec91b256c0c226182c6cb70e438bbca15cf0b35f4660904166ff6e/randist-1.0.3.tar.gz" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "d4d0a557f6bf7d1b50038cf38de53879", "sha256": "73bf39295a06842e1e415c056e38c0c2899e06428881d32aa7a57e2b5c8d350b" }, "downloads": -1, "filename": "randist-1.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "d4d0a557f6bf7d1b50038cf38de53879", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 29413, "upload_time": "2019-02-06T12:45:41", "url": "https://files.pythonhosted.org/packages/0c/78/9974f75ffaf920322fee2ff0a54dd0b6b75873e060aeebe5de6bd89c2058/randist-1.0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6be8716a3edd0acf46b214bdd0e612fd", "sha256": "fc6951a438ab0355bd78c4c5c1db1138f8aee5f12854920ddf8b6d58aa2bb724" }, "downloads": -1, "filename": "randist-1.0.4.tar.gz", "has_sig": false, "md5_digest": "6be8716a3edd0acf46b214bdd0e612fd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25347, "upload_time": "2019-02-06T12:45:43", "url": "https://files.pythonhosted.org/packages/db/17/b799b20868022be10d4990fbac4196615415399894735fde61a659fe2199/randist-1.0.4.tar.gz" } ], "1.0.5": [ { "comment_text": "", "digests": { "md5": "c1b46f90420043b46036532fa01abe70", "sha256": "f1d5a189e5b615dde33796b4cbaf439a15860176155fc4384dbcbd6a03f7834c" }, "downloads": -1, "filename": "randist-1.0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "c1b46f90420043b46036532fa01abe70", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 29589, "upload_time": "2019-02-06T15:52:29", "url": "https://files.pythonhosted.org/packages/72/2d/6ee7b308583403896f9d563893d4ba226721ac027bd3cdc40f6e39fe119f/randist-1.0.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "64ddb6631472b2d4793bd64210541524", "sha256": "b0ac6d1740eeb98117098885bf0e1537bbf8da08199d961288f3e1fbbbab3885" }, "downloads": -1, "filename": "randist-1.0.5.tar.gz", "has_sig": false, "md5_digest": "64ddb6631472b2d4793bd64210541524", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25391, "upload_time": "2019-02-06T15:52:30", "url": "https://files.pythonhosted.org/packages/31/2a/d58728f2cb8f19f515830190eb11a740a51510dde7ddd9946e425b05935d/randist-1.0.5.tar.gz" } ], "1.0.6": [ { "comment_text": "", "digests": { "md5": "21232f2367830054baf76723d335d1d5", "sha256": "710e3d8796adab41afda749ee7cd8879e5fe2c49a97705d3be003bfaf1eaa990" }, "downloads": -1, "filename": "randist-1.0.6-py3-none-any.whl", "has_sig": false, "md5_digest": "21232f2367830054baf76723d335d1d5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 29605, "upload_time": "2019-02-07T22:00:32", "url": "https://files.pythonhosted.org/packages/49/67/2bb725e0621fde085af247c5fe1b377c225a8aa766eaa1770ff108642504/randist-1.0.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "666de49bf813dada9cad7fff5d487591", "sha256": "9fc47dc617a30c835093e156c0d720ccdad345212536f8db83edde857cbd6cb9" }, "downloads": -1, "filename": "randist-1.0.6.tar.gz", "has_sig": false, "md5_digest": "666de49bf813dada9cad7fff5d487591", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25421, "upload_time": "2019-02-07T22:00:34", "url": "https://files.pythonhosted.org/packages/13/b2/96a40dabc6c1d6970125726b997a7b0c7e0977d9ea665ef3760fa29820b9/randist-1.0.6.tar.gz" } ], "1.0.7": [ { "comment_text": "", "digests": { "md5": "ae30cb15c169f9a8d315b4c055f720c5", "sha256": "92b5cec35f89cf243c633567f2b81f284c183decf957068ae1e6ffa60fa1f4cf" }, "downloads": -1, "filename": "randist-1.0.7-py3-none-any.whl", "has_sig": false, "md5_digest": "ae30cb15c169f9a8d315b4c055f720c5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 30153, "upload_time": "2019-02-14T11:39:14", "url": "https://files.pythonhosted.org/packages/23/b7/7a9f50e7150c7d2fd094e3a88526d62a8e38a54bdb9d537348b6b933a880/randist-1.0.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9133b0a7127d2509d544af5740a5227e", "sha256": "2bd8e423e4bfb2e5af0ed43bf235430d8286edf9619fe0a69268b42895fff0ea" }, "downloads": -1, "filename": "randist-1.0.7.tar.gz", "has_sig": false, "md5_digest": "9133b0a7127d2509d544af5740a5227e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26642, "upload_time": "2019-02-14T11:39:16", "url": "https://files.pythonhosted.org/packages/e6/37/94d86c1fd7c984b7e2880381b3b37faca3199df88b40fb17d6a3a9746aa4/randist-1.0.7.tar.gz" } ], "1.0.8": [ { "comment_text": "", "digests": { "md5": "117da994e6b7f90e8f8d778978c3069a", "sha256": "abeeef567ae35bee5dcc770d635d8d7501b5ba14c4614f8cbbdd1e836ddcf7b1" }, "downloads": -1, "filename": "randist-1.0.8-py3-none-any.whl", "has_sig": false, "md5_digest": "117da994e6b7f90e8f8d778978c3069a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 30215, "upload_time": "2019-02-14T11:44:48", "url": "https://files.pythonhosted.org/packages/3c/8d/ac1e44974a04f93009bffc26b2d370ab025a6bc36c9a0dd60fd162fdd36b/randist-1.0.8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2b08d90280823c52788d4c3df6fc5fe6", "sha256": "26f9d5d05e3384f2f8aca036ee0d5a1228575307943840f19360165ebc4049ae" }, "downloads": -1, "filename": "randist-1.0.8.tar.gz", "has_sig": false, "md5_digest": "2b08d90280823c52788d4c3df6fc5fe6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26764, "upload_time": "2019-02-14T11:44:50", "url": "https://files.pythonhosted.org/packages/f2/d4/06ba538077c3a0378e518dee3e285f5b4c813e6175bb16acaf89570c853d/randist-1.0.8.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "46518260acaf9e06281d27fabc590fbe", "sha256": "6af77babf699a060960dc3c28ead000d831798c68346d52c25fee7881d6055da" }, "downloads": -1, "filename": "randist-1.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "46518260acaf9e06281d27fabc590fbe", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 30335, "upload_time": "2019-07-24T02:06:03", "url": "https://files.pythonhosted.org/packages/10/7b/9d602c86202097b76e12a55877653583248fc012b0d0cc5bf55f240a9e00/randist-1.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "173a4afa144a9c3297a8e63bfc2460c5", "sha256": "230bdb61f0c817bbfffe9f12da26a1bad06ef5782e02b08c81feaba9edf954a8" }, "downloads": -1, "filename": "randist-1.1.0.tar.gz", "has_sig": false, "md5_digest": "173a4afa144a9c3297a8e63bfc2460c5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26908, "upload_time": "2019-07-24T02:06:05", "url": "https://files.pythonhosted.org/packages/6c/7c/5214c89ea34fdd061729ac0885814639455aeeb761b61864e4b87dd93dd5/randist-1.1.0.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "b95f7d59c3086f096f73eb35944cb871", "sha256": "63b46dc772112234f04e46763491aa4565d891af2c62d2bf219bc7521469bbba" }, "downloads": -1, "filename": "randist-1.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "b95f7d59c3086f096f73eb35944cb871", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 30473, "upload_time": "2019-07-24T19:41:53", "url": "https://files.pythonhosted.org/packages/48/e2/f6cedf77d8304a63bf859717edd252234f62a3eb6e7b0d0a28255fbd3576/randist-1.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "35d26497fe6550e2166db09325ef04ad", "sha256": "f64bf13c6ef1f75b82df6165e63ebd019602c11954abc917c44bfa6cb94b77c0" }, "downloads": -1, "filename": "randist-1.1.1.tar.gz", "has_sig": false, "md5_digest": "35d26497fe6550e2166db09325ef04ad", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27053, "upload_time": "2019-07-24T19:41:54", "url": "https://files.pythonhosted.org/packages/35/d4/dca26532c3cbdcfb43fd09b4c570c5f4657adb13cf43140a08f6536a9cc6/randist-1.1.1.tar.gz" } ], "1.1.2": [ { "comment_text": "", "digests": { "md5": "7feb588514a0d9e99d221b520255e265", "sha256": "d848f8eb7b1a5b51bd2e6a031ffa4b3fa8a4df858189b70c66a48f53b4372e2f" }, "downloads": -1, "filename": "randist-1.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "7feb588514a0d9e99d221b520255e265", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 30563, "upload_time": "2019-07-25T04:08:52", "url": "https://files.pythonhosted.org/packages/af/0a/3d2fe914fb2590ff5f0d822e4b5c352a79fb81e58d79bf09ea3cc46fedad/randist-1.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "535da7599210dab7872bc5a077899946", "sha256": "50bbb90732c6ccfafaf092523dfb457a38c63d76dd4ee17e93b15b927811cbb7" }, "downloads": -1, "filename": "randist-1.1.2.tar.gz", "has_sig": false, "md5_digest": "535da7599210dab7872bc5a077899946", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27158, "upload_time": "2019-07-25T04:08:53", "url": "https://files.pythonhosted.org/packages/fb/7d/b8d49a95990f0ae9bfdbcb1de785848f6b8449335b69175960e6acf18d07/randist-1.1.2.tar.gz" } ], "1.1.3": [ { "comment_text": "", "digests": { "md5": "361cfa305c88d9e422030e01e82417cf", "sha256": "2640b3611c4d1e4c7554c89cba6f577b98284e639625c3eab6e65f4eac5c3ca5" }, "downloads": -1, "filename": "randist-1.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "361cfa305c88d9e422030e01e82417cf", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 30666, "upload_time": "2019-07-25T14:00:14", "url": "https://files.pythonhosted.org/packages/61/1a/7a265c2a85a65e3919fc5a363f1a8663b4d41e610bf5662bc87f2d10060f/randist-1.1.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b7bf14ebf6245f13383493663133c285", "sha256": "e5a6d4a88a979ea3df16750598c05afd2808635405de917cd638c3370451cc39" }, "downloads": -1, "filename": "randist-1.1.3.tar.gz", "has_sig": false, "md5_digest": "b7bf14ebf6245f13383493663133c285", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27239, "upload_time": "2019-07-25T14:00:15", "url": "https://files.pythonhosted.org/packages/8a/51/c0ada9642ac9f5f19017c27fc48666ab84d0190c05fafeeeeabbad8a4083/randist-1.1.3.tar.gz" } ], "1.1.4": [ { "comment_text": "", "digests": { "md5": "6a5f18d33baab8f7fcec203342472ad2", "sha256": "b6a40e55367ddb60b30514c4fbbd4a0b0b8c271aabfe2e7af5f81cf56fd9a428" }, "downloads": -1, "filename": "randist-1.1.4-py3-none-any.whl", "has_sig": false, "md5_digest": "6a5f18d33baab8f7fcec203342472ad2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 30682, "upload_time": "2019-07-25T14:42:41", "url": "https://files.pythonhosted.org/packages/8a/32/1379febb04a35199c0bdba8753f0ed29703285881b8658b1b9121117094f/randist-1.1.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a2c1e5600ac8edbc97a56a703a14a23d", "sha256": "03b2336376ccf664f5ef90ade44cc9ee82255531be680e3cf918974fbcc6c09c" }, "downloads": -1, "filename": "randist-1.1.4.tar.gz", "has_sig": false, "md5_digest": "a2c1e5600ac8edbc97a56a703a14a23d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27242, "upload_time": "2019-07-25T14:42:43", "url": "https://files.pythonhosted.org/packages/bc/5f/b431b723d7caaf781b38361f0a6f56549a6c3b20cf1058dae26c047bcc65/randist-1.1.4.tar.gz" } ], "1.1.5": [ { "comment_text": "", "digests": { "md5": "82f5d51dd0296f7f77e22d5f3ee9c0d0", "sha256": "cae80b8205b4cbad53834d4c83835a443a489b751b7a412f1ae09446009a4bbe" }, "downloads": -1, "filename": "randist-1.1.5-py3-none-any.whl", "has_sig": false, "md5_digest": "82f5d51dd0296f7f77e22d5f3ee9c0d0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 30686, "upload_time": "2019-07-25T15:23:11", "url": "https://files.pythonhosted.org/packages/04/3e/cbb0c84574776858fdbaaca7515bca5ba9765950ff647dcf581ad21b2f73/randist-1.1.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a7a3ab0d8f93a4bf2cca256bcb2094c9", "sha256": "b3885f697659e96b9ef2fa9aa173bb6e668e188bbc279702a7c5b46a8a611e47" }, "downloads": -1, "filename": "randist-1.1.5.tar.gz", "has_sig": false, "md5_digest": "a7a3ab0d8f93a4bf2cca256bcb2094c9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27246, "upload_time": "2019-07-25T15:23:14", "url": "https://files.pythonhosted.org/packages/3d/9a/e0abd497a9c3e48ed8aa79301528230b95be3386d34f8e24761c707cc522/randist-1.1.5.tar.gz" } ], "1.1.6": [ { "comment_text": "", "digests": { "md5": "2daa60102f61ba386cb91ce08de46c8f", "sha256": "f455843ec89a9dffffa6c7fc3a796d9b18b77309b4d3221a9c7def892d65a849" }, "downloads": -1, "filename": "randist-1.1.6-py3-none-any.whl", "has_sig": false, "md5_digest": "2daa60102f61ba386cb91ce08de46c8f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 30748, "upload_time": "2019-07-25T19:23:43", "url": "https://files.pythonhosted.org/packages/2f/9d/5144fd4de6ef64ed4a478a08920b493eae9609d8df755351791d74d5e11b/randist-1.1.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c991e3bd8b0febdd7add23af3b5768f6", "sha256": "c5799893ecd5bff16c5589ce0408fcfc0f1d3a323b3e80c9ae1bd1856b007217" }, "downloads": -1, "filename": "randist-1.1.6.tar.gz", "has_sig": false, "md5_digest": "c991e3bd8b0febdd7add23af3b5768f6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27330, "upload_time": "2019-07-25T19:23:45", "url": "https://files.pythonhosted.org/packages/71/b3/35dbfa975c04b7eca12128ee6dc6fb688c966a18debc5da157ce1a6ad9f2/randist-1.1.6.tar.gz" } ], "1.1.7": [ { "comment_text": "", "digests": { "md5": "d1912763278c4c1a5dca5e70dd13dc46", "sha256": "c69823c5ad5021e232253ebac3dbaed1d7815c784e585a0144ea286cd8cbc79a" }, "downloads": -1, "filename": "randist-1.1.7-py3-none-any.whl", "has_sig": false, "md5_digest": "d1912763278c4c1a5dca5e70dd13dc46", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 30743, "upload_time": "2019-07-26T12:07:33", "url": "https://files.pythonhosted.org/packages/07/a1/cb9473dd046d9f37b231d5fbb6a13e4425c9c801dbf8c7bd3a7f0a3a4f37/randist-1.1.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a08c6991bfc2f83e5263bdf69f1abb69", "sha256": "8f403ec17c0ba74568655616c1e3f7129aa3065410c6f163dd9f3ffd0e556df0" }, "downloads": -1, "filename": "randist-1.1.7.tar.gz", "has_sig": false, "md5_digest": "a08c6991bfc2f83e5263bdf69f1abb69", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27336, "upload_time": "2019-07-26T12:07:34", "url": "https://files.pythonhosted.org/packages/e5/b5/e9e48d2ed8cf7b527c052be1efe1e9832447d2dd4a3d6cd9047087b454e9/randist-1.1.7.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d1912763278c4c1a5dca5e70dd13dc46", "sha256": "c69823c5ad5021e232253ebac3dbaed1d7815c784e585a0144ea286cd8cbc79a" }, "downloads": -1, "filename": "randist-1.1.7-py3-none-any.whl", "has_sig": false, "md5_digest": "d1912763278c4c1a5dca5e70dd13dc46", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 30743, "upload_time": "2019-07-26T12:07:33", "url": "https://files.pythonhosted.org/packages/07/a1/cb9473dd046d9f37b231d5fbb6a13e4425c9c801dbf8c7bd3a7f0a3a4f37/randist-1.1.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a08c6991bfc2f83e5263bdf69f1abb69", "sha256": "8f403ec17c0ba74568655616c1e3f7129aa3065410c6f163dd9f3ffd0e556df0" }, "downloads": -1, "filename": "randist-1.1.7.tar.gz", "has_sig": false, "md5_digest": "a08c6991bfc2f83e5263bdf69f1abb69", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27336, "upload_time": "2019-07-26T12:07:34", "url": "https://files.pythonhosted.org/packages/e5/b5/e9e48d2ed8cf7b527c052be1efe1e9832447d2dd4a3d6cd9047087b454e9/randist-1.1.7.tar.gz" } ] }