{ "info": { "author": "Blake A. Wilson", "author_email": "blakeaw1102@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# Gleipnir\n\n![Python version badge](https://img.shields.io/badge/python-3.6-blue.svg)\n[![license](https://img.shields.io/github/license/LoLab-VU/Gleipnir.svg)](LICENSE)\n![version](https://img.shields.io/badge/version-0.25.0-orange.svg)\n[![release](https://img.shields.io/github/release-pre/LoLab-VU/Gleipnir.svg)](https://github.com/LoLab-VU/Gleipnir/releases/tag/v0.18.0)\n[![anaconda cloud](https://anaconda.org/blakeaw/gleipnir/badges/version.svg)](https://anaconda.org/blakeaw/gleipnir)\n[![DOI](https://zenodo.org/badge/173688080.svg)](https://zenodo.org/badge/latestdoi/173688080)\n[![Codacy Badge](https://api.codacy.com/project/badge/Grade/e117a46ae8b241539742ab00f8cd1b38)](https://www.codacy.com/app/blakeaw1102/Gleipnir?utm_source=github.com&utm_medium=referral&utm_content=LoLab-VU/Gleipnir&utm_campaign=Badge_Grade)\n\n

\n \n

\n\nGleipnir is a python toolkit that provides an easy to use interface for Bayesian parameter inference and model selection using Nested Sampling. It has a built-in implementation of the Nested Sampling algorithm but also provides a common interface to the Nested Sampling implementations MultiNest, PolyChord, dyPolyChord, DNest4, and Nestle.\nAlthough Gleipnir provides a general framework for running Nested Sampling simulations, it was created with biological models in mind. It therefore supplies additional tools for working with biological models in the PySB format (see the PySB Utilities section). Likewise, Gleipnir's API was designed to be familiar to users of [PyDREAM](https://github.com/LoLab-VU/PyDREAM) and [SimplePSO](https://github.com/LoLab-VU/ParticleSwarmOptimization), which are primarily used for biological model calibration.\n\n### What is Nested Sampling?\n\nNested Sampling is a numerical integration scheme for estimating the marginal likelihood, or in Nested Sampling parlance, the 'evidence' of high-dimensional models.\nAs a side-effect of the evidence calculation, estimates of the posterior probability distributions of model parameters can also be generated. \n\nIn particular, Nested Sampling was\ndesigned to handle evaluate the evidence of high-dimensional models where the likelihood is exponentially localized in the prior probability mass. In the Nested Sampling approach, the evidence is first converted from a (possibly) multi-dimensional integral into a one-dimensional integral taken over a mapping of the likelihood function to elements of the unit prior probability mass (X). In principle, this is achieved by using a top-down\napproach in which sample points are drawn according to the prior distribution, and the unit prior probability is subdivided\ninto equal fractional elements from X = 1 down to X = 0 and\nmapped to the likelihood function, L(X), via a likelihood sorting routine.\n\nThe Nested Sampling method was originally developed by John Skilling; see the following references:\n 1. Skilling, John. \"Nested sampling.\" AIP Conference Proceedings. Vol.\n 735. No. 1. AIP, 2004.\n 2. Skilling, John. \"Nested sampling for general Bayesian computation.\"\n Bayesian analysis 1.4 (2006): 833-859.\n 3. Skilling, John. \"Nested sampling\u2019s convergence.\" AIP Conference\n Proceedings. Vol. 1193. No. 1. AIP, 2009.\n\n------\n\n# Install\n\n| **! Warning** |\n| :--- |\n| Gleipnir is still under heavy development and may rapidly change. |\n\nGleipnir installs as the `gleipnir` package. It is compatible with Python 3.6.\n\n#### conda install\nAlthough not absolutely required, we recommend using the [Anaconda](https://www.anaconda.com/) Python distribution and the [conda](https://conda.io/en/latest/) package manager.\n\n`gleipnir` can be installed from the terminal using `conda`:\n```\nconda intall -c blakeaw gleipnir\n```\nNote that `gleipnir` has the following core dependencies which will also be installed:\n * [NumPy](http://www.numpy.org/)\n * [SciPy](https://www.scipy.org/)\n * [pandas](https://pandas.pydata.org/)\n\nAlternatively, for convenience, a `gleipnir` environment can be downloaded/created that has `gleipnir`, its core dependencies, as well as several optional/recommended packages; the optional/recommended packages include `pysb`, `hypbuilder`, `matplotlib`, `seaborn`, and `jupyter`.\nFrom the terminal:\n```\nconda env create blakeaw/gleipnir\n```\nand then activate it with:\n```\nconda activate gleipnir\n```\n\nAdditionally, there is another `gleipnir` environment for linux-64 that can be downloaded/created that has `gleipnir`, its core dependencies, as well as most of the recommended additional software packages; note that the versions of packages are pinned to exact version numbers in this environment file.\nFrom the terminal:\n```\nconda env create blakeaw/gleipnir-all-linux64\n```\nand then activate it with:\n```\nconda activate gleipnir\n```\n\n#### pip install\nYou can install the `gleipnir` package using `pip` sourced from the GitHub repo:\n```\npip install -e git+https://github.com/LoLab-VU/Gleipnir@v0.18.0#egg=gleipnir\n```\nHowever, this will not automatically install the core dependencies. You will have to do that separately:\n```\npip install numpy scipy pandas\n```\n\n### Recommended additional software\n\nThe following software is not required for the basic operation of Gleipnir, but provides extra capabilities and features when installed.\n\n#### PySB\n[PySB](http://pysb.org/) is needed to run PySB models and it is needed if you want to use the gleipnir.pysb_utilities module:\n```\nconda install -c alubbock pysb\n```\n\n#### HypBuilder\nIf you want use the HypSelector class from gleipnir.pysb_utilities then you\nneed to have [HypBuilder](https://github.com/LoLab-VU/HypBuilder):\n```\nconda install -c blakeaw hypbuilder\n```\n\n#### Jupyter\nIf you want to run the Jupyter IPython notebooks that come with Gleipnir then you need to install [Jupyter](https://jupyter.org/):\n```\nconda install jupyter\n```\n\n#### Plotting packages:\nWe recommend installing [Matplotlib](https://matplotlib.org/) and [seaborn](https://seaborn.pydata.org/) to generate plots. Note that some of the Gleipnir examples will use these packages if they are installed to generate sample plots. Matplotlib is also needed for one of the Jupyter notebooks.\n```\nconda install matplotlib seaborn\n```\n\n#### MultiNest\nIf you want to run Nested Sampling simulations using Gleipnir's MultiNest interface class object, MultiNestNestedSampling (from the gleipnir.multinest module), then you will need to install [PyMultiNest](https://github.com/JohannesBuchner/PyMultiNest) and [MultiNest](https://github.com/JohannesBuchner/MultiNest). Build and install instructions for getting PyMultiNest and MultiNest from source can be found at:\nhttp://johannesbuchner.github.io/PyMultiNest/install.html\n\nPyMultiNest is available on PyPI:\n```\npip install pymultinest\n```\nNote that in addition to MultiNest, `pymultinest` requires `numpy`, `scipy`, and `matplotlib` to run. It also optionally requires `mpi4py` to run MultiNest with MPI parallelization.\n\nYou can get a linux-64 conda build of MultiNest from the [blakeaw conda channel](https://anaconda.org/blakeaw/multinest):\n```\nconda install -c blakeaw multinest\n```\nNote that this conda build of MultiNest requires packages from the `anaconda` and `conda-forge` channels, so you'll need to add them to the channel list in your conda config (.condarc) file. You can also install a build of `mpi4py` that is compatible with this build of `multinest` from the [blakeaw conda channel](https://anaconda.org/blakeaw/mpi4py):\n```\nconda install -c blakeaw mpi4py\n```\n\nAdditionally, a separate set of third party instructions for building and installing on Mac OS can be found at:\nhttp://astrobetter.com/wiki/MultiNest+Installation+Notes\n\nAlso, this PyMultiNest GitHub issue may be helpful if you run into library path problems on Mac OS:\nhttps://github.com/JohannesBuchner/PyMultiNest/issues/89\n\n#### PolyChord\nIf you want run Nested Sampling simulations using [PolyChord](https://github.com/PolyChord/PolyChordLite) via the\nPolyChordNestedSampling class from the gleipnir.polychord, then you will need to install pypolychord (for PolyChordLite version >= 1.16). Build and install instructions are in the README at:\nhttps://github.com/PolyChord/PolyChordLite\n\nHowever, as per [PolyChordLite GitHub Issue 11](https://github.com/PolyChord/PolyChordLite/issues/11) there is a version of pypolychord on PyPI which should work for linux-64:\n```\npip install pypolychord\n```\nBut note that the current version of pypolychord on PyPI (as of 07-01-2019) is not the most recent version, and some of the extra functionality provided by Gleipnir will not work with it.\n\nSpecial Notes for builds from source on linux-64:\n * Installs into your .local/lib python site-packages.\n * Requires gfortran (f77 compiler) and lipopenmpi-dev (development libraries for MPI) to build the code.\n\n#### dyPolyChord\nIf you want to run Nested Sampling simulations using\n[dyPolyChord](https://github.com/ejhigson/dyPolyChord) using Gleipnir's interface object, dyPolyChordNestedSampling (from the gleipnir.dypolychord module), then you will need to install dyPolyChord (available on PyPI):\n```\npip install dyPolyChord\n```\nNote that dyPolyChord requires PolyChord to run, so its use via Gleipnir requires the pypolychord package; see the the previous section. Also note that in addition to PolyChord, `dyPolyChord` requires `numpy`, `scipy`, and `nestcheck` to run. It also optionally requires `mpi4py` to run with MPI parallelization.\nFor additional information check out the [dyPolyChord documentation](https://dypolychord.readthedocs.io/en/latest/index.html).\n\n#### DNest4\nIf you want run Nested Sampling simulations using [DNest4](https://github.com/eggplantbren/DNest4) via the DNest4NestedSampling class from the gleipnir.dnest4 module, then you will need to get DNest4 and its Python bindings. Instructions for building and installing from source can be found in the README at:\nhttps://github.com/eggplantbren/DNest4\n\nAdditionally, a linux-64 conda build of dnest4 can be installed from\nthe [blakeaw conda channel](https://anaconda.org/blakeaw/dnest4):\n```\nconda install -c blakeaw dnest4\n```\n\nSpecial Notes for building and installing from source:\n * Requires a c++ compiler with c++11 standard libraries.\n * Requires Cython and numba for python bindings to compile and install\n\n#### Nestle\nIf you want to run Nested Sampling simulations using\n[Nestle](https://github.com/kbarbary/nestle) via Gleipnir's interface object, NestleNestedSampling (from the gleipnir.nestle module), then you will need to install Nestle (available on PyPI):\n```\npip install nestle\n```\nNote that Nestle requires `numpy` to run (also required for gleipnir), and it also optionally requires `scipy`.\n\nFor additional information check out the [Nestle documentation](http://kylebarbary.com/nestle/).\n\n------\n\n# License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details\n\n------\n\n# Documentation and Usage\n\nCheckout the Jupyter Notebooks (more in the pipeline):\n 1. [Intro to Nested Sampling with Gleipnir](./jupyter_notebooks/Intro_to_Nested_Sampling_with_Gleipnir.ipynb)\n 2. [Nested Sampling Classes](./jupyter_notebooks/Nested_Sampling_classes.ipynb)\n 3. [HypSelector Example](./jupyter_notebooks/HypSelector_example.ipynb)\n 4. [ModelSelector Example](./jupyter_notebooks/ModelSelector_example.ipynb)\n\nAlso checkout the [examples](./examples) to see example scripts that show how to setup Nested Sampling runs using Gleipnir.\n\n------\n\n# Contact\n\nTo report problems or bugs please open a\n[GitHub Issue](https://github.com/LoLab-VU/Gleipnir/issues). Additionally, any\ncomments, suggestions, or feature requests for Gleipnir can also be submitted as a\n[GitHub Issue](https://github.com/LoLab-VU/Gleipnir/issues).\n\n------\n\n# PySB Utilities\n\n## nestedsample_it\nnestedsample_it is a utility that helps generate a Nested Sampling run script or NestedSampling objects for a PySB model.\n\n### Commmand line use\nnestedsample_it can be used as a command line utility to generate a template Nested Sampling run script for a PySB model. nestedsample_it reads the model file, imports and pulls out all the kinetic parameters, and then writes out a run_NS script for that model. nestedsample_it currently writes out a run script for classic Nested Sampling via Gleipnir, so you'll need to modify it to use one of the other Nested Samplers (MultiNest, PolyChord, or DNest4). And you will need to edit the run script to load any data and modify the loglikelihood function, but nestedsample_it should give you a good starting point.\n\nRun nestedsample_it from the command line with following format:\n```\npython -m glepnir.pysb_utilities.nestedsample_it model.py output_path\n``` \nwhere output_path is the directory/folder location where you want the generated script\nto be saved.\n\nThe command line version of nestedsample_it also has support for a limited set of #NESTEDSAMPLE_IT directives which can be added to model files. The current directives are:\n * #NESTEDSAMPLE_IT prior [param_name, param_index] [norm, uniform] \n * Specify the type of prior to assign to a parameter. The parameter can either be specified by its name or its index (in model.parameters). The priors that can be assigned are either norm or uniform; note that uniform is the default for all parameters. \n * #NESTEDSAMPLE_IT no-sample [param_name, param_index]\n * Specify a fixed parameter (i.e., not to included in sampling). The parameter can either be specified by its name or its index (in model.parameters). \n\n\n### Progammatic use via the NestedSampleIt class\nThe nestedsample_it utility can be used progammatically via the NestedSampleIt\nclass. It's importable from the pysb_utilities module:\n```python\nfrom gleipnir.pysb_utilities import NestedSampleIt\n```\nThe NestedSampleIt class can build an instance of a NestedSampling object. \n Here's a faux minimal example:\n```python\nfrom my_pysb_model import model as my_model\nfrom gleipnir.pysb_utilities import NestedSampleIt\nimport numpy as np\n\ntimespan = np.linspace(0., 10., 10)\ndata = np.load('my_data.npy')\ndata_sd = np.load('my_data_sd.npy')\nobservable_data = dict()\ntime_idxs = list(range(len(timespan)))\nobservable_data['my_observable'] = (data, data_sd, time_idxs)\n# Initialize the NestedSampleIt instance with the model details.\nsample_it = NestedSampleIt(my_model, observable_data, timespan)\n# Now build the NestedSampling object. -- All inputs are\n# optional keyword arguments.\nnested_sampler = sample_it(ns_version='gleipnir-classic',\n ns_population_size=100,\n ns_kwargs=dict(),\n log_likelihood_type='logpdf')\n# Then you can run the nested sampler.\nlog_evidence, log_evidence_error = nested_sampler.run()\n```\n\nNestedSampleIt constructs the NestedSampling object to sample all of a model's kinetic rate parameters. It assumes that the priors are uniform with size 4 orders of magnitude and centered on the values defined in the model.\n\nIn addition, NestedSampleIt crrently has three pre-defined loglikelihood functions with different estimators. They can be specified with the keyword parameter log_likelihood_type:\n```python\n# Now build the NestedSampling object.\nnested_sampler = sample_it(log_likelihood_type='logpdf')\n```\nThe options are\n * 'logpdf'=>Compute the loglikelihood using the\nnormal distribution estimator\n * 'mse'=>Compute the loglikelihood using the\nnegative mean squared error estimator\n * 'sse'=>Compute the loglikelihood using\nthe negative sum of squared errors estimator.\nThe default is 'logpdf'.\nEach of these functions computes the loglikelihood estimate using the timecourse output of a model simulation for each observable defined in the `observable_data` dictionary.\nIf you want to use a different or more complicated likelihood function with NestedSampleIt then you'll need to subclass it and override one of the existing loglikelihood functions. \n\n#### NestIt\nThe nestedsample_it module has a built-in helper class, NestIt, which can be used in conjunction of with NestedSampleIt class. NestIt can be used at the level of PySB model definition to log which parameters to include in\na Nested Sampling run. It can be imported from the pysb_utilities module:\n```python\nfrom gleipnir.pysb_utilities import NestIt\n```\nIt is passed at instantiation to the NestedSampleIt class, which uses it\nto build the sampled parameters list and parameter mask for the likelihood\nfunction.\nSee the following example files:\n\n * [dimerization_model_nestit](./examples/pysb_dimerization_model/dimerization_model_nestit.py) - example model definition using NestIt to flag parameters.\n * [run_NS_NestedSampleIt_NestIt_dimerization_model](./examples/pysb_dimerization_model/run_NS_NestedSampleIt_NestIt_dimerization_model.py) - example use of NestIt with NestedSampleIt.\n\nNote that if you flag a parameter for sampling without setting a prior, NestIt will by default assign the parameter a uniform prior centered on the parameter's value with a width of 4 orders of magnitude. \n\n#### Builder class from pysb.builder\n\nThe Builder class from pysb.builder can also be used in conjunction with the NestedSampleIt class. The Builder class itself is a wrapper class that can be used to construct a PySB model and set parameter priors, logging them for sampling. Although\nthis feature was originally intended for use with the BayesSB package, the NestedSampleIt class supports it as a logger for sampled parameters.\nThe instance of the Builder is passed at instantiation to the NestedSampleIt class, which uses it to build the sampled parameters list and parameter mask for the likelihood function.\nSee the following example files:\n\n * [dimerization_model_builder](./examples/pysb_dimerization_model/dimerization_model_builder.py) - example model definition using Builder to construct a PySB model and flag parameters for sampling.\n * [run_NS_NestedSampleIt_Builder_dimerization_model](./examples/pysb_dimerization_model/run_NS_NestedSampleIt_Builder_dimerization_model.py) - example use of Builder with NestedSampleIt.\n\nNote that you have to explicitly set a prior for each parameter that you want to sample when you add it your model with the builder.parameter function. If no\nprior is given the parameter won't be included as a sampled parameter in the Nested Sampling run.\n\n## HypSelector\n\nHypSelector is a tool for hypothesis selection using [HypBuilder](https://github.com/LoLab-VU/HypBuilder) and Nested Sampling-based model selection. Models embodying different hypotheses (e.g., optional reactions) can be defined using the HypBuilder csv syntax. HypSelector then allows users to easily compare all the hypothetical model variants generated by HypBuilder by performing Nested Sampling to compute their evidences and thereby do model selection; HypSelector also provides functionality to estimate Bayes factors from the evidence estimates, as well as estimators for the Akaike, Bayesian, and Deviance information criteria computed from the Nested Sampling outputs. See the [grouped reactions example](./examples/HypSelector/grouped_reactions) or the [HypSelector Example Jupyter Notebook](./jupyter_notebooks/HypSelector_example.ipynb) to see example usage of HypSelector.\n\n## ModelSelector\n\nSimilar to HypSelector, ModelSelector is a tool for PySB model selection using Nested Sampling-based model selection. ModelSelector allows users to easily compare model variants written in PySB and see which one may best explain a dataset by performing Nested Sampling to compute their evidences and thereby do model selection; ModelSelector also provides functionality to estimate Bayes factors from the evidence estimates, as well as estimators for the Akaike, Bayesian, and Deviance information criteria computed from the Nested Sampling outputs. See the [ModelSelector Example Jupyter Notebook](./jupyter_notebooks/ModelSelector_example.ipynb) to see example usage of ModelSelector.\n\n------\n\n# Citing\n\nIf you use the Gleipnir software in your research, please cite it. You can export the Gleipnir citation in your preferred format from its [Zenodo DOI](http://doi.org/10.5281/zenodo.3036345) entry. \n\nAlso, please cite the following references as appropriate for software used with/via Gleipnir:\n\n#### Packages from the SciPy ecosystem\n\nThese include NumPy, SciPy, Pandas, and Matplotlib for which references can be obtained from:\nhttps://www.scipy.org/citing.html\n\n#### PySB\n 1. Lopez, C. F., Muhlich, J. L., Bachman, J. A. & Sorger, P. K. Programming biological models in Python using PySB. Mol Syst Biol 9, (2013). doi:[10.1038/msb.2013.1](dx.doi.org/10.1038/msb.2013.1)\n\n#### MultiNest\n 1. Feroz, Farhan, and M. P. Hobson. \"Multimodal nested sampling: an\n efficient and robust alternative to Markov Chain Monte Carlo\n methods for astronomical data analyses.\" Monthly Notices of the\n Royal Astronomical Society 384.2 (2008): 449-463.\n 2. Feroz, F., M. P. Hobson, and M. Bridges. \"MultiNest: an efficient\n and robust Bayesian inference tool for cosmology and particle\n physics.\" Monthly Notices of the Royal Astronomical Society 398.4\n (2009): 1601-1614.\n 3. Feroz, F., et al. \"Importance nested sampling and the MultiNest\n algorithm.\" arXiv preprint arXiv:1306.2144 (2013).\n\n#### PyMultiNest:\n 1. Buchner, J., et al. \"X-ray spectral modelling of the AGN obscuring region in the CDFS: Bayesian model selection and catalogue.\" Astronomy & Astrophysics 564 (2014): A125.\n\n#### PolyChord\n 1. Handley, W. J., M. P. Hobson, and A. N. Lasenby. \"PolyChord: nested sampling for cosmology.\" Monthly Notices of the Royal Astronomical Society: Letters 450.1 (2015): L61-L65.\n 2. Handley, W. J., M. P. Hobson, and A. N. Lasenby. \"POLYCHORD:\n next-generation nested sampling.\" Monthly Notices of the Royal\n Astronomical Society 453.4 (2015): 4384-4398.\n\n#### DNest4\n\n 1. Brewer, B. J., P\u00e1rtay, L. B., & Cs\u00e1nyi, G. (2011). Diffusive nested\n sampling. Statistics and Computing, 21(4), 649-656 \n 2. Brewer, B., & Foreman-Mackey, D. (2018). DNest4: Diffusive Nested Sampling in C++ and Python. Journal of Statistical Software, 86(7), 1 - 33. doi:[10.18637/jss.v086.i07](http://dx.doi.org/10.18637/jss.v086.i07)\n\n#### Nestle\nCite the GitHub repo: https://github.com/kbarbary/nestle\n\n\n#### seaborn\nReference can be exported from the [seaborn Zeondo DOI entry](https://doi.org/10.5281/zenodo.592845)\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/LoLab-VU/Gleipnir", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "gleipnir-ns", "package_url": "https://pypi.org/project/gleipnir-ns/", "platform": "", "project_url": "https://pypi.org/project/gleipnir-ns/", "project_urls": { "Homepage": "https://github.com/LoLab-VU/Gleipnir" }, "release_url": "https://pypi.org/project/gleipnir-ns/0.25.0/", "requires_dist": [ "numpy", "scipy", "pandas" ], "requires_python": ">=3.6", "summary": "Python toolkit for Nested Sampling.", "version": "0.25.0" }, "last_serial": 5590860, "releases": { "0.25.0": [ { "comment_text": "", "digests": { "md5": "bb3e4cb6daeb0b00ffae63c22f14eb4d", "sha256": "52461411ac6942f0592db60e1f0b4aa0c1218045e9ad1877b14ce095e5de1cae" }, "downloads": -1, "filename": "gleipnir_ns-0.25.0-py3.6.egg", "has_sig": false, "md5_digest": "bb3e4cb6daeb0b00ffae63c22f14eb4d", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": ">=3.6", "size": 116231, "upload_time": "2019-07-26T21:30:38", "url": "https://files.pythonhosted.org/packages/bb/31/0d1de6db9c55477cf432bcc40c2a213005baa41b6ad3ac2e053e6ebfd73d/gleipnir_ns-0.25.0-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "1aac60a83bf8faa75bb4163d44b4f8ee", "sha256": "bf281186700667dbd6a8d1f4bca739f74b7b493ed49b9ade3d84faebc23b0266" }, "downloads": -1, "filename": "gleipnir_ns-0.25.0-py3-none-any.whl", "has_sig": false, "md5_digest": "1aac60a83bf8faa75bb4163d44b4f8ee", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 55955, "upload_time": "2019-07-26T21:30:35", "url": "https://files.pythonhosted.org/packages/b1/ee/255908157b77b4e2770649477f81001fe9284aaa3a47d8cfad3ef1e8519c/gleipnir_ns-0.25.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1a2647ca5baf8a697f2f0f1896ef445f", "sha256": "4e1dfa0bd28b2718aa609b1ce4fc6791e719955cb9aa2cb9426fba578be3918d" }, "downloads": -1, "filename": "gleipnir-ns-0.25.0.tar.gz", "has_sig": false, "md5_digest": "1a2647ca5baf8a697f2f0f1896ef445f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 36659, "upload_time": "2019-07-26T21:30:40", "url": "https://files.pythonhosted.org/packages/4a/18/a389337224f59d4007997a6fdf678741d381974220760396b5adb45a8a4f/gleipnir-ns-0.25.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "bb3e4cb6daeb0b00ffae63c22f14eb4d", "sha256": "52461411ac6942f0592db60e1f0b4aa0c1218045e9ad1877b14ce095e5de1cae" }, "downloads": -1, "filename": "gleipnir_ns-0.25.0-py3.6.egg", "has_sig": false, "md5_digest": "bb3e4cb6daeb0b00ffae63c22f14eb4d", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": ">=3.6", "size": 116231, "upload_time": "2019-07-26T21:30:38", "url": "https://files.pythonhosted.org/packages/bb/31/0d1de6db9c55477cf432bcc40c2a213005baa41b6ad3ac2e053e6ebfd73d/gleipnir_ns-0.25.0-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "1aac60a83bf8faa75bb4163d44b4f8ee", "sha256": "bf281186700667dbd6a8d1f4bca739f74b7b493ed49b9ade3d84faebc23b0266" }, "downloads": -1, "filename": "gleipnir_ns-0.25.0-py3-none-any.whl", "has_sig": false, "md5_digest": "1aac60a83bf8faa75bb4163d44b4f8ee", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 55955, "upload_time": "2019-07-26T21:30:35", "url": "https://files.pythonhosted.org/packages/b1/ee/255908157b77b4e2770649477f81001fe9284aaa3a47d8cfad3ef1e8519c/gleipnir_ns-0.25.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1a2647ca5baf8a697f2f0f1896ef445f", "sha256": "4e1dfa0bd28b2718aa609b1ce4fc6791e719955cb9aa2cb9426fba578be3918d" }, "downloads": -1, "filename": "gleipnir-ns-0.25.0.tar.gz", "has_sig": false, "md5_digest": "1a2647ca5baf8a697f2f0f1896ef445f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 36659, "upload_time": "2019-07-26T21:30:40", "url": "https://files.pythonhosted.org/packages/4a/18/a389337224f59d4007997a6fdf678741d381974220760396b5adb45a8a4f/gleipnir-ns-0.25.0.tar.gz" } ] }