{
"info": {
"author": "Martin Happ",
"author_email": "martin.happ@aon.at",
"bugtrack_url": null,
"classifiers": [
"Development Status :: 2 - Pre-Alpha",
"Environment :: Console",
"Intended Audience :: Developers",
"Intended Audience :: End Users/Desktop",
"Intended Audience :: Science/Research",
"License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3.6",
"Programming Language :: Python :: 3.7",
"Topic :: Scientific/Engineering :: Mathematics",
"Topic :: Software Development :: Libraries :: Python Modules"
],
"description": "# PyNonpar\n\n[](https://badge.fury.io/py/PyNonpar)\n[](https://travis-ci.org/happma/PyNonpar)\n[](https://ci.appveyor.com/project/happma/pynonpar)\n[](https://codecov.io/gh/happma/PyNonpar)\n[](https://www.codacy.com/project/happma/PyNonpar/dashboard?utm_source=github.com&utm_medium=referral&utm_content=happma/PyNonpar&utm_campaign=Badge_Grade_Dashboard)\n[](https://pepy.tech/project/pynonpar)\n[](https://zenodo.org/badge/latestdoi/143191938)\n\n\nTest statistics based on ranks may lead to paradoxical results. A solution are so-called pseudo-ranks.\nThis package provides a function to calculate pseudo-ranks as well as nonparametric, (pseudo)-rank statistics.\nFor a definition and discussion of pseudo-ranks, see for example [1].\n\nTo install the package from PyPI, simply type\n```\npip install PyNonpar\n```\n\n## Table of Contents\n**[Two-Sample Tests](#two-sample-tests)**
\n**[Paired Two-Sample Tests](#paired-two-sample-tests)**
\n**[Multi-Sample Tests](#multi-sample-tests)**
\n**[Repeated-Measures Tests](#repeated-measures-tests)**
\n\n## Pseudo-Ranks\nIf there are ties (i.e., observations with the same value) in the data, then the pseudo-ranks have to be adjusted. There\nare the options 'minimum', 'maximum' and 'average'. It is recommended to use 'average' as for this adjusmtent, normalized\nempirical distribution functions are used.\nSee the example for details on the usage of the function 'psrank'.\n\n```Python\nimport PyNonpar\nfrom PyNonpar import*\n\n# some artificial data\nx = [1, 1, 1, 1, 2, 3, 4, 5, 6]\ngroup = ['C', 'C', 'B', 'B', 'B', 'A', 'C', 'A', 'C']\n\nPyNonpar.pseudorank.psrank(x, group, ties_method = \"average\")\n```\n\n## Nonparametric Test Statistics\n\n### Two-Sample Tests\n\n1. Wilcoxon-Mann-Whitney test: wilcoxon_mann_whitney_test()\n2. Brunner-Munzel test (Generalized Wilcoxon test): brunner_munzel_test()\n\nThe Hodges-Lehmann estimator can be calculated in a location shift model: hodges_lehmann(). The confidence interval for this estimator is\nonly asymptotic and assumes continuous distributions. \n\n#### 1. Wilcoxon-Mann-Whitney test\n\nFor large sample sizes is the asymptotic Wilcoxon test recommended (method = \"asymptotic\"). For small sample sizes,\nwe recommend the exact Wilcoxon test. Note that the Wilcoxon test assumes the null hypothesis of equal distributions\nH0: F1 = F2.\n\n```Python\nimport PyNonpar\nfrom PyNonpar import*\n\nx = [8,4,10,4,9,1,3,3,4,8]\ny = [10,5,11,6,11,2,4,5,5,10]\n\nPyNonpar.twosample.wilcoxon_mann_whitney_test(x, y, alternative=\"less\", method = \"asymptotic\", alpha = 0.05)\nPyNonpar.twosample.wilcoxon_mann_whitney_test(x, y, alternative=\"less\", method = \"exact\", alpha = 0.05)\n\n```\n\n##### Wilcoxon-Mann-Whitney Sample Size Planning\nTo calculate the sample size which is needed to detect a specific relative effect p with probability beta and type-I error\nalpha, the function'wilcoxon_mann_whitney_ssp' can be used. Here, prior information for one group is needed.\nThe artificial data for the second group can be created by some interpretable effect, e.g. a location shift effect.\nFor more information, see [1] or [3].\n\n```Python\nimport PyNonpar\nfrom PyNonpar import*\n\n# pior information\nx_ssp = [315, 375, 356, 374, 412, 418, 445, 403, 431, 410, 391, 475, 379]\n# y_ssp = x_ssp - 20\ny_ssp = [295, 355, 336, 354, 392, 398, 425, 383, 411, 390, 371, 455, 359]\n\nPyNonpar.twosample_paired.paired_ranks_ssp(x_ssp, y_ssp, 0.8, 0.05, 1/2)\n```\n\n\n#### 2. Brunner-Munzel test\nThe Brunner-Munzel test extends the Wilcoxon test to the null hypothesis H0: p = 1/2.\n\n```Python\nimport PyNonpar\nfrom PyNonpar import*\n\nx = [8,4,10,4,9,1,3,3,4,8]\ny = [10,5,11,6,11,2,4,5,5,10]\n\nPyNonpar.twosample.brunner_munzel_test(x, y, alternative=\"less\", quantile = \"t\")\nPyNonpar.twosample.brunner_munzel_test(x, y, alternative=\"less\", quantile = \"normal\")\n\n```\n\n### Paired Two-Sample Tests\n\n#### 1. Paired ranks test\n\nThe paired ranks test compares the marginal distributions F1 and F2. The Null hypothesis is H0: F1 = F2 (var_equal = True)\nor H0: p = 1/2 (var_equal = False). The two sided alternative is for both cases p != 1/2.\n\np = Probability(X_i < Y_j) + 1/2 * Probability(X_i = Y_j) for i != j where (X_i, Y_i), (X_j, Y_j) are paired observations.\n\n```Python\nimport PyNonpar\nfrom PyNonpar import*\n\nx = [1, 2, 3, 4, 5, 7, 1, 1, 1]\ny = [4, 6, 8, 7, 6, 5, 9, 1, 1]\n\nPyNonpar.twosample_paired.paired_ranks_test(x, y, alternative=\"two.sided\", var_equal=False, quantile=\"normal\")\n\n```\n\n### Multi-Sample Tests\n\n1. The Hettmansperger-Norton Test for Patterned Alternatives: hettmansperger_norton_test()\n2. Kruskal-Wallis test: kruskal_wallis_test()\n\n#### 1. The Hettmansperger-Norton Test for Patterned Alternatives\nThis package provides a function to calculate the Hettmansperger-Norton test for patterned alternatives\nusing pseudo-ranks. Originally, this test was developed for ranks but this version was adapted to pseudo-ranks.\n\nFor the alternative, it is possible to use 'increasing' (i.e., trend = [1, 2, 3, ..., g]), 'decreasing'\n(i.e., trend = [g, g-1, g-2, ..., 1]) or 'custom' where the trend has to be specified manually. Note, that the trend is\na list of length g where g is the number of groups.\n\n```Python\nimport PyNonpar\nfrom PyNonpar import*\n\n# some artificial data\nx = [1, 1, 1, 1, 2, 3, 4, 5, 6]\ngroup = ['C', 'C', 'B', 'B', 'B', 'A', 'C', 'A', 'C']\n\nPyNonpar.hettmansperger.hettmansperger_norton_test(x, group, alternative = \"custom\", trend = [1,3,2])\n```\n\n#### 2. Kruskal-Wallis Test\n```Python\nimport PyNonpar\nfrom PyNonpar import*\n\n# some artificial data\nx = [1, 1, 1, 1, 2, 3, 4, 5, 6]\ngroup = ['C', 'C', 'B', 'B', 'B', 'A', 'C', 'A', 'C']\n\n# Using pseudo-ranks\nPyNonpar.multisample.kruskal_wallis_test(x, group, pseudoranks = True)\n\n# Using ranks\nPyNonpar.multisample.kruskal_wallis_test(x, group, pseudoranks = False)\n```\n\n### Repeated-Measures Tests\n1. The Paired-Ranks Test: paired_ranks_test()\n2. The Kepner-Robinson Test Test: kepner_robinson_test()\n\n#### 1. Paired ranks test\nSee Section ''Paired Twosample Tests''.\n\n#### 2. Kepner-Robinson Test\nFor the Kepner-Robinson Test we have several dependent observations per subject (subplot factor). Let us denote with F_k the cdf for the k-th observation. The null hypothesis for this test is\nH_0: F_1 = ... F_d where d is the number of observations per subject. This test assumes for the dependence structure a compound symmetry, that is, all variances are the same and all covariances are the same. In other words, the observations on one subject can basically be interchanged.\nFor more information, we refer to [2].\n\n\n```Python\nimport PyNonpar\nfrom PyNonpar import*\n\n# some artificial data\ndata = [1, 0, -2, -1, -2, 1, 0, 0, 0, -2]\ntime = [1, 2, 1, 2, 1, 2, 1, 2, 1, 2]\nsubject = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5]\n\nPyNonpar.repeated_measures.kepner_robinson_test(data, time, subject, distribution=\"F\")\n```\n\n\n## References\n[1] Brunner, E., Bathke A. C. and Konietschke, F: Rank- and Pseudo-Rank Procedures in Factorial Designs - Using R and SAS, Springer Verlag, to appear.\n\n[2] Kepner, J. L., & Robinson, D. H. (1988). Nonparametric methods for detecting treatment effects in repeated-measures designs. Journal of the American Statistical Association, 83(402), 456-461.\n\n[3] Happ, M., Bathke, A. C., & Brunner, E. (2019). Optimal sample size planning for the Wilcoxon\u2010Mann\u2010Whitney test. Statistics in medicine, 38(3), 363-375.\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/happma/PyNonpar",
"keywords": "",
"license": "GPL-3",
"maintainer": "",
"maintainer_email": "",
"name": "PyNonpar",
"package_url": "https://pypi.org/project/PyNonpar/",
"platform": "",
"project_url": "https://pypi.org/project/PyNonpar/",
"project_urls": {
"Homepage": "https://github.com/happma/PyNonpar"
},
"release_url": "https://pypi.org/project/PyNonpar/0.2.0/",
"requires_dist": [
"numpy",
"pandas",
"pytest",
"scipy",
"pytest-cov",
"codecov",
"numba"
],
"requires_python": "",
"summary": "Nonparametric Test Statistics",
"version": "0.2.0"
},
"last_serial": 4947498,
"releases": {
"0.0.1": [
{
"comment_text": "",
"digests": {
"md5": "df6cf137c4968626b5d91bf3857536a2",
"sha256": "768d14339473ee8d2ea832e8971c9f9be1a530e4c99b14e5bf1b71a4b2c41b42"
},
"downloads": -1,
"filename": "PyNonpar-0.0.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "df6cf137c4968626b5d91bf3857536a2",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 5738,
"upload_time": "2018-08-03T08:55:31",
"url": "https://files.pythonhosted.org/packages/7e/54/be5f5bfd3239abfec3d79df1e13497a744ec85772815e92a17b2004cf993/PyNonpar-0.0.1-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "3e75c44aa4f215dcc7f97f79492a062e",
"sha256": "7c53ce978f3116b1e087c1c776b1d5cfa437c2d64c204f407af7b33e5d6bf0d3"
},
"downloads": -1,
"filename": "PyNonpar-0.0.1.tar.gz",
"has_sig": false,
"md5_digest": "3e75c44aa4f215dcc7f97f79492a062e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 3547,
"upload_time": "2018-08-03T08:55:32",
"url": "https://files.pythonhosted.org/packages/d0/e8/ab3a27102551885ed4835955e567ee8bd5dacd6bb87b76872e29165498bd/PyNonpar-0.0.1.tar.gz"
}
],
"0.0.2": [
{
"comment_text": "",
"digests": {
"md5": "12a4efbfd99cebe4e5279130abd9eb62",
"sha256": "c9a8094d1c5b4f59e6aa0151acb0144dfc85112cc8f8c46d5ed44b5ea1847665"
},
"downloads": -1,
"filename": "PyNonpar-0.0.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "12a4efbfd99cebe4e5279130abd9eb62",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 7531,
"upload_time": "2018-08-04T06:28:41",
"url": "https://files.pythonhosted.org/packages/fc/8a/021c37270d40fa1c474e51c2cff2e02e1595142eba6aea712c4eb2be1ffd/PyNonpar-0.0.2-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "ade8ca14eceeca0701be7587e2fcc212",
"sha256": "36d91ace6c44ad11ecc1f459b6df47e70d584b5391ac410210d981f49dff41f0"
},
"downloads": -1,
"filename": "PyNonpar-0.0.2.tar.gz",
"has_sig": false,
"md5_digest": "ade8ca14eceeca0701be7587e2fcc212",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 4585,
"upload_time": "2018-08-04T06:28:42",
"url": "https://files.pythonhosted.org/packages/11/bb/98a5bfcb8c97ac5f927cb88da33933139985bd78ccb70b97d9efa74aa7c1/PyNonpar-0.0.2.tar.gz"
}
],
"0.0.3": [
{
"comment_text": "",
"digests": {
"md5": "6701224ddfcd78591f80dbc068dc038d",
"sha256": "a78071e44fb462829d62248f4786d15b5e441ee95cf27be8e1017f58e40499e9"
},
"downloads": -1,
"filename": "PyNonpar-0.0.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "6701224ddfcd78591f80dbc068dc038d",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 12380,
"upload_time": "2018-08-06T21:50:28",
"url": "https://files.pythonhosted.org/packages/cb/4c/7ef139017ca8999f5798995c7a053ef8f4e0bfdc0280a36b7e84b4c6798d/PyNonpar-0.0.3-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "0015c83eba7c95f0688b71d796a04c67",
"sha256": "580210d5b9af557d2c4957fb352e31ca916809b4fd433244d25c5376f2f702cf"
},
"downloads": -1,
"filename": "PyNonpar-0.0.3.tar.gz",
"has_sig": false,
"md5_digest": "0015c83eba7c95f0688b71d796a04c67",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 6811,
"upload_time": "2018-08-06T21:50:29",
"url": "https://files.pythonhosted.org/packages/7f/7d/0dbd1f8da56f1355cf5c75c5664695148101c3aed3180025073eec0e3e64/PyNonpar-0.0.3.tar.gz"
}
],
"0.0.4": [
{
"comment_text": "",
"digests": {
"md5": "0283d7363d3b9c2dbf2d4872ca1a89d6",
"sha256": "80342715a2a7496b888c733c33c95fdaf8bbffef330ee11ec5cd90dd26a225c8"
},
"downloads": -1,
"filename": "PyNonpar-0.0.4-py3-none-any.whl",
"has_sig": false,
"md5_digest": "0283d7363d3b9c2dbf2d4872ca1a89d6",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 10122,
"upload_time": "2018-08-06T22:15:10",
"url": "https://files.pythonhosted.org/packages/f6/6f/5c1f95baf51b598970e6f5c4e1ebe94e1cedcf92594850382f2c968242b0/PyNonpar-0.0.4-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "51c7520e223094391c484688e8f336b1",
"sha256": "f9ef1a10f7d1322a1acd6e4cdcbf9f8959b3befe1d9c07f6e544ba772a8ac288"
},
"downloads": -1,
"filename": "PyNonpar-0.0.4.tar.gz",
"has_sig": false,
"md5_digest": "51c7520e223094391c484688e8f336b1",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7031,
"upload_time": "2018-08-06T22:15:11",
"url": "https://files.pythonhosted.org/packages/d2/9e/54ae7802c307999608a9160cb76f1fe8be511dcf9ad1bbd6fb14acb094bc/PyNonpar-0.0.4.tar.gz"
}
],
"0.0.5": [
{
"comment_text": "",
"digests": {
"md5": "8cb794cb4e44a2e286fa1f7da1a2db75",
"sha256": "787e77f21ef67510c52713773db21db6df13901609fc8839a2451740df86f037"
},
"downloads": -1,
"filename": "PyNonpar-0.0.5-py3-none-any.whl",
"has_sig": false,
"md5_digest": "8cb794cb4e44a2e286fa1f7da1a2db75",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 11869,
"upload_time": "2018-08-09T19:12:17",
"url": "https://files.pythonhosted.org/packages/d9/98/363b627ce9adec3da899adac641b4bef4e3fb25df3b6cbbee40d0822b116/PyNonpar-0.0.5-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "7f2b8484d9af0cf6029dc51aabacb013",
"sha256": "84b1bef6008348ebc7bdd13fc49b1c6c19567dac7d9be2fc4d671dfe2c603d11"
},
"downloads": -1,
"filename": "PyNonpar-0.0.5.tar.gz",
"has_sig": false,
"md5_digest": "7f2b8484d9af0cf6029dc51aabacb013",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 9649,
"upload_time": "2018-08-09T19:12:20",
"url": "https://files.pythonhosted.org/packages/b8/69/24e93ca0c40678cd25c2f360b936b176e52a78acd38b300c81dc93eac226/PyNonpar-0.0.5.tar.gz"
}
],
"0.0.6": [
{
"comment_text": "",
"digests": {
"md5": "959b708053bbc9b38f04e39281f3e967",
"sha256": "62627c1a7d488bca1654fda668165118a28bd183110dfef6632705689be9ede2"
},
"downloads": -1,
"filename": "PyNonpar-0.0.6-py3-none-any.whl",
"has_sig": false,
"md5_digest": "959b708053bbc9b38f04e39281f3e967",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 12397,
"upload_time": "2018-08-12T16:34:50",
"url": "https://files.pythonhosted.org/packages/47/2e/67715d4e6fb494f0781b8782b2ce954d09c5789552623e0537b8912a4184/PyNonpar-0.0.6-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "e3a79382a8d85c090f095abdf64f61d7",
"sha256": "11c3bb477c90c93e2a6c2d84df59dc396ca01feb2e3fbe77884415acbdbcaa6c"
},
"downloads": -1,
"filename": "PyNonpar-0.0.6.tar.gz",
"has_sig": false,
"md5_digest": "e3a79382a8d85c090f095abdf64f61d7",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 10400,
"upload_time": "2018-08-12T16:34:52",
"url": "https://files.pythonhosted.org/packages/0f/d5/31528f131bff3ea774831ae752b1b4dbbd5d18c856f91bdc34eb1a31f444/PyNonpar-0.0.6.tar.gz"
}
],
"0.1.0": [
{
"comment_text": "",
"digests": {
"md5": "0995683414deac794da90ae6c0280727",
"sha256": "034d9cb1f407716c9a3b1845f70a6edd6630e67c968f40db4276f2aa49e6a99e"
},
"downloads": -1,
"filename": "PyNonpar-0.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "0995683414deac794da90ae6c0280727",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 14291,
"upload_time": "2019-01-25T20:12:12",
"url": "https://files.pythonhosted.org/packages/5c/32/c45c65cb523c4480b816b2bc00a488007441d90f1586968e7636e84a9b2b/PyNonpar-0.1.0-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "f5ac95e29eedcaaf10a7a271ff56de2b",
"sha256": "95d4d6fd9b252708c9a730f925c406f44fcbbdac2783940f8a29e7622cf28c51"
},
"downloads": -1,
"filename": "PyNonpar-0.1.0.tar.gz",
"has_sig": false,
"md5_digest": "f5ac95e29eedcaaf10a7a271ff56de2b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 12143,
"upload_time": "2019-01-25T20:12:14",
"url": "https://files.pythonhosted.org/packages/ed/3f/8c41a41c129a0d60f86eae4bfe5892525ef922da5996edad91741013cdeb/PyNonpar-0.1.0.tar.gz"
}
],
"0.2.0": [
{
"comment_text": "",
"digests": {
"md5": "3bdd9dd9fdd1cfd90483ee29cbab574d",
"sha256": "c9d474f8fa71958f7a14bf9c5b2200ffc5358ede4d49c3a0c54d521e01db0e74"
},
"downloads": -1,
"filename": "PyNonpar-0.2.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "3bdd9dd9fdd1cfd90483ee29cbab574d",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 15338,
"upload_time": "2019-03-16T12:31:38",
"url": "https://files.pythonhosted.org/packages/4a/5e/2d181dda244d96eb7c78532ae7cfad179d5e89925226e334b877971c0392/PyNonpar-0.2.0-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "62d6f9d3a3c48a9322fffb688d344a8d",
"sha256": "8000c2c54b43a6ad4f3ed122e2efb1fba7aac5748e71db3797ec6b4e586d05e6"
},
"downloads": -1,
"filename": "PyNonpar-0.2.0.tar.gz",
"has_sig": false,
"md5_digest": "62d6f9d3a3c48a9322fffb688d344a8d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 13678,
"upload_time": "2019-03-16T12:31:40",
"url": "https://files.pythonhosted.org/packages/c9/00/1e03aae70ad6422379b523fe745d5aecb935cfbc9b3acf75ab764963da32/PyNonpar-0.2.0.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "3bdd9dd9fdd1cfd90483ee29cbab574d",
"sha256": "c9d474f8fa71958f7a14bf9c5b2200ffc5358ede4d49c3a0c54d521e01db0e74"
},
"downloads": -1,
"filename": "PyNonpar-0.2.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "3bdd9dd9fdd1cfd90483ee29cbab574d",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 15338,
"upload_time": "2019-03-16T12:31:38",
"url": "https://files.pythonhosted.org/packages/4a/5e/2d181dda244d96eb7c78532ae7cfad179d5e89925226e334b877971c0392/PyNonpar-0.2.0-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "62d6f9d3a3c48a9322fffb688d344a8d",
"sha256": "8000c2c54b43a6ad4f3ed122e2efb1fba7aac5748e71db3797ec6b4e586d05e6"
},
"downloads": -1,
"filename": "PyNonpar-0.2.0.tar.gz",
"has_sig": false,
"md5_digest": "62d6f9d3a3c48a9322fffb688d344a8d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 13678,
"upload_time": "2019-03-16T12:31:40",
"url": "https://files.pythonhosted.org/packages/c9/00/1e03aae70ad6422379b523fe745d5aecb935cfbc9b3acf75ab764963da32/PyNonpar-0.2.0.tar.gz"
}
]
}