# nutpie: A fast sampler for Bayesian posteriors
## Installation
nutpie can be installed using Conda or Mamba from conda-forge with
```bash
mamba install -c conda-forge nutpie
```
Or using pip:
```bash
pip install nutpie
```
To install it from source, install a Rust compiler and maturin and then
```bash
maturin develop --release
```
If you want to use the nightly SIMD implementation for some of the math functions,
switch to Rust nightly and then install with the `simd_support` feature in then
nutpie directory:
```bash
rustup override set nightly
maturin develop --release --features=simd_support
```
## Usage with PyMC
First, PyMC and Numba need to be installed, for example using
```bash
mamba install -c conda-forge pymc numba
```
We need to create a model:
```python
import pymc as pm
import numpy as np
import nutpie
import pandas as pd
import seaborn as sns
# Load the radon dataset
data = pd.read_csv(pm.get_data("radon.csv"))
data["log_radon"] = data["log_radon"].astype(np.float64)
county_idx, counties = pd.factorize(data.county)
coords = {"county": counties, "obs_id": np.arange(len(county_idx))}
# Create a simple hierarchical model for the radon dataset
with pm.Model(coords=coords, check_bounds=False) as pymc_model:
intercept = pm.Normal("intercept", sigma=10)
# County effects
raw = pm.ZeroSumNormal("county_raw", dims="county")
sd = pm.HalfNormal("county_sd")
county_effect = pm.Deterministic("county_effect", raw * sd, dims="county")
# Global floor effect
floor_effect = pm.Normal("floor_effect", sigma=2)
# County:floor interaction
raw = pm.ZeroSumNormal("county_floor_raw", dims="county")
sd = pm.HalfNormal("county_floor_sd")
county_floor_effect = pm.Deterministic(
"county_floor_effect", raw * sd, dims="county"
)
mu = (
intercept
+ county_effect[county_idx]
+ floor_effect * data.floor.values
+ county_floor_effect[county_idx] * data.floor.values
)
sigma = pm.HalfNormal("sigma", sigma=1.5)
pm.Normal(
"log_radon", mu=mu, sigma=sigma, observed=data.log_radon.values, dims="obs_id"
)
```
We then compile this model and sample form the posterior:
```python
compiled_model = nutpie.compile_pymc_model(pymc_model)
trace_pymc = nutpie.sample(compiled_model)
```
`trace_pymc` now contains an ArviZ `InferenceData` object, including sampling
statistics and the posterior of the variables defined above.
We can also control the sampler in a non-blocking way:
```python
# The sampler will now run the the background
sampler = nutpie.sample(compiled_model, blocking=False)
# Pause and resume the sampling
sampler.pause()
sampler.resume()
# Wait for the sampler to finish (up to timeout seconds)
sampler.wait(timeout=0.1)
# Note that not passing any timeout to `wait` will
# wait until the sampler finishes, then return the InferenceData object:
idata = sampler.wait()
# or we can also abort the sampler (and return the incomplete trace)
incomplete_trace = sampler.abort()
# or cancel and discard all progress:
sampler.cancel()
```
## Usage with Stan
In order to sample from Stan model, `bridgestan` needs to be installed.
A pip package is available, but right now this can not be installed using Conda.
```bash
pip install bridgestan
```
When we install nutpie with pip, we can also specify that we want optional
dependencies for Stan models using
```
pip install 'nutpie[stan]'
```
In addition, a C++ compiler needs to be available. For details see
[the Stan docs](https://mc-stan.org/docs/cmdstan-guide/cmdstan-installation.html#cpp-toolchain).
We can then compile a Stan model, and sample using nutpie:
```python
import nutpie
code = """
data {
real mu;
}
parameters {
real x;
}
model {
x ~ normal(mu, 1);
}
"""
compiled = nutpie.compile_stan_model(code=code)
# Provide data
compiled = compiled.with_data(mu=3.)
trace = nutpie.sample(compiled)
```
## Advantages
nutpie uses [`nuts-rs`](https://github.com/pymc-devs/nuts-rs), a library written in Rust, that implements NUTS as in
PyMC and Stan, but with a slightly different mass matrix tuning method as
those. It often produces a higher effective sample size per gradient
evaluation, and tends to converge faster and with fewer gradient evaluation.
Raw data
{
"_id": null,
"home_page": null,
"name": "nutpie",
"maintainer": null,
"docs_url": null,
"requires_python": "<3.13,>=3.10",
"maintainer_email": null,
"keywords": "statistics, bayes",
"author": "Adrian Seyboldt <adrian.seyboldt@gmail.com>, PyMC Developers <pymc.devs@gmail.com>",
"author_email": "PyMC Developers <pymc.devs@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/70/28/741a95b1e42e1dfe6e7da319a8c5854250ba230160c2ef4fc7742544df67/nutpie-0.13.3.tar.gz",
"platform": null,
"description": "# nutpie: A fast sampler for Bayesian posteriors\n\n## Installation\n\nnutpie can be installed using Conda or Mamba from conda-forge with\n\n```bash\nmamba install -c conda-forge nutpie\n```\n\nOr using pip:\n\n```bash\npip install nutpie\n```\n\nTo install it from source, install a Rust compiler and maturin and then\n\n```bash\nmaturin develop --release\n```\n\nIf you want to use the nightly SIMD implementation for some of the math functions,\nswitch to Rust nightly and then install with the `simd_support` feature in then\nnutpie directory:\n\n```bash\nrustup override set nightly\nmaturin develop --release --features=simd_support\n```\n\n## Usage with PyMC\n\nFirst, PyMC and Numba need to be installed, for example using\n\n```bash\nmamba install -c conda-forge pymc numba\n```\n\nWe need to create a model:\n\n```python\nimport pymc as pm\nimport numpy as np\nimport nutpie\nimport pandas as pd\nimport seaborn as sns\n\n# Load the radon dataset\ndata = pd.read_csv(pm.get_data(\"radon.csv\"))\ndata[\"log_radon\"] = data[\"log_radon\"].astype(np.float64)\ncounty_idx, counties = pd.factorize(data.county)\ncoords = {\"county\": counties, \"obs_id\": np.arange(len(county_idx))}\n\n# Create a simple hierarchical model for the radon dataset\nwith pm.Model(coords=coords, check_bounds=False) as pymc_model:\n intercept = pm.Normal(\"intercept\", sigma=10)\n\n # County effects\n raw = pm.ZeroSumNormal(\"county_raw\", dims=\"county\")\n sd = pm.HalfNormal(\"county_sd\")\n county_effect = pm.Deterministic(\"county_effect\", raw * sd, dims=\"county\")\n\n # Global floor effect\n floor_effect = pm.Normal(\"floor_effect\", sigma=2)\n\n # County:floor interaction\n raw = pm.ZeroSumNormal(\"county_floor_raw\", dims=\"county\")\n sd = pm.HalfNormal(\"county_floor_sd\")\n county_floor_effect = pm.Deterministic(\n \"county_floor_effect\", raw * sd, dims=\"county\"\n )\n\n mu = (\n intercept\n + county_effect[county_idx]\n + floor_effect * data.floor.values\n + county_floor_effect[county_idx] * data.floor.values\n )\n\n sigma = pm.HalfNormal(\"sigma\", sigma=1.5)\n pm.Normal(\n \"log_radon\", mu=mu, sigma=sigma, observed=data.log_radon.values, dims=\"obs_id\"\n )\n```\n\nWe then compile this model and sample form the posterior:\n\n```python\ncompiled_model = nutpie.compile_pymc_model(pymc_model)\ntrace_pymc = nutpie.sample(compiled_model)\n```\n\n`trace_pymc` now contains an ArviZ `InferenceData` object, including sampling\nstatistics and the posterior of the variables defined above.\n\nWe can also control the sampler in a non-blocking way:\n\n```python\n# The sampler will now run the the background\nsampler = nutpie.sample(compiled_model, blocking=False)\n\n# Pause and resume the sampling\nsampler.pause()\nsampler.resume()\n\n# Wait for the sampler to finish (up to timeout seconds)\nsampler.wait(timeout=0.1)\n# Note that not passing any timeout to `wait` will\n# wait until the sampler finishes, then return the InferenceData object:\nidata = sampler.wait()\n\n# or we can also abort the sampler (and return the incomplete trace)\nincomplete_trace = sampler.abort()\n\n# or cancel and discard all progress:\nsampler.cancel()\n```\n\n## Usage with Stan\n\nIn order to sample from Stan model, `bridgestan` needs to be installed.\nA pip package is available, but right now this can not be installed using Conda.\n\n```bash\npip install bridgestan\n```\n\nWhen we install nutpie with pip, we can also specify that we want optional\ndependencies for Stan models using\n\n```\npip install 'nutpie[stan]'\n```\n\nIn addition, a C++ compiler needs to be available. For details see\n[the Stan docs](https://mc-stan.org/docs/cmdstan-guide/cmdstan-installation.html#cpp-toolchain).\n\nWe can then compile a Stan model, and sample using nutpie:\n\n```python\nimport nutpie\n\ncode = \"\"\"\ndata {\n real mu;\n}\nparameters {\n real x;\n}\nmodel {\n x ~ normal(mu, 1);\n}\n\"\"\"\n\ncompiled = nutpie.compile_stan_model(code=code)\n# Provide data\ncompiled = compiled.with_data(mu=3.)\ntrace = nutpie.sample(compiled)\n```\n\n## Advantages\n\nnutpie uses [`nuts-rs`](https://github.com/pymc-devs/nuts-rs), a library written in Rust, that implements NUTS as in\nPyMC and Stan, but with a slightly different mass matrix tuning method as\nthose. It often produces a higher effective sample size per gradient\nevaluation, and tends to converge faster and with fewer gradient evaluation.\n\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Sample Stan or PyMC models",
"version": "0.13.3",
"project_urls": {
"Source Code": "https://github.com/pymc-devs/nutpie"
},
"split_keywords": [
"statistics",
" bayes"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "72cda9f0526118a713a79d70b2444b19c88291118e611645d2db3423eb4efcca",
"md5": "71217452dec4b41e1dd3e5eadbe87351",
"sha256": "a5d03ce3379faefd26445da18d15857fd7277572c50ae6323272f47fd37f6e2f"
},
"downloads": -1,
"filename": "nutpie-0.13.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "71217452dec4b41e1dd3e5eadbe87351",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": "<3.13,>=3.10",
"size": 1352676,
"upload_time": "2025-02-12T13:55:51",
"upload_time_iso_8601": "2025-02-12T13:55:51.219301Z",
"url": "https://files.pythonhosted.org/packages/72/cd/a9f0526118a713a79d70b2444b19c88291118e611645d2db3423eb4efcca/nutpie-0.13.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "0b07237836ca697172246e8bf70ad7e677771a950cab9608028b2b804e89d758",
"md5": "1f030d007cfdcff89597e3df4ebadaa6",
"sha256": "457ece5705cae02adbbe97f9bc7c20b9cf7e052bfec33f7e72a03483bb0427a7"
},
"downloads": -1,
"filename": "nutpie-0.13.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "1f030d007cfdcff89597e3df4ebadaa6",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": "<3.13,>=3.10",
"size": 1403589,
"upload_time": "2025-02-12T13:56:00",
"upload_time_iso_8601": "2025-02-12T13:56:00.718523Z",
"url": "https://files.pythonhosted.org/packages/0b/07/237836ca697172246e8bf70ad7e677771a950cab9608028b2b804e89d758/nutpie-0.13.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "0141ceb01c49dce316f1dcedd223e952732c5418ec52a18ad0932249cfd13a98",
"md5": "fd691e34ea5bc2a1b1e89ca5c202cdc0",
"sha256": "8e135535c50521e2b8d959bf615b257643798aa7ddede19d9b8261813510a782"
},
"downloads": -1,
"filename": "nutpie-0.13.3-cp310-cp310-win_amd64.whl",
"has_sig": false,
"md5_digest": "fd691e34ea5bc2a1b1e89ca5c202cdc0",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": "<3.13,>=3.10",
"size": 1368863,
"upload_time": "2025-02-12T13:56:18",
"upload_time_iso_8601": "2025-02-12T13:56:18.785851Z",
"url": "https://files.pythonhosted.org/packages/01/41/ceb01c49dce316f1dcedd223e952732c5418ec52a18ad0932249cfd13a98/nutpie-0.13.3-cp310-cp310-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "6b6091b6f2cac76148cca9b6a8987e0b925c77bfbd7c2b85974fa965dd34bbed",
"md5": "ddb3d68979412dca7344793ef7383e8f",
"sha256": "053e666c37902e2d4d9a4a4dd10197f0167735bc6b47d01535194ff55ef77bd4"
},
"downloads": -1,
"filename": "nutpie-0.13.3-cp311-cp311-macosx_10_12_x86_64.whl",
"has_sig": false,
"md5_digest": "ddb3d68979412dca7344793ef7383e8f",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": "<3.13,>=3.10",
"size": 1445455,
"upload_time": "2025-02-12T13:56:13",
"upload_time_iso_8601": "2025-02-12T13:56:13.242252Z",
"url": "https://files.pythonhosted.org/packages/6b/60/91b6f2cac76148cca9b6a8987e0b925c77bfbd7c2b85974fa965dd34bbed/nutpie-0.13.3-cp311-cp311-macosx_10_12_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "8eb8c32a9b94805b042a491da0354a8541ea852563110bff6d0a5523725e424d",
"md5": "644358b8756ff5650ff0816928572faa",
"sha256": "21806f9385e9355be69d7353cabad66be9b367403285a6ec8920529d154bc32f"
},
"downloads": -1,
"filename": "nutpie-0.13.3-cp311-cp311-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "644358b8756ff5650ff0816928572faa",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": "<3.13,>=3.10",
"size": 1389768,
"upload_time": "2025-02-12T13:56:06",
"upload_time_iso_8601": "2025-02-12T13:56:06.668569Z",
"url": "https://files.pythonhosted.org/packages/8e/b8/c32a9b94805b042a491da0354a8541ea852563110bff6d0a5523725e424d/nutpie-0.13.3-cp311-cp311-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "4e6c3e6de44ab98f8e17fb0549ebcfc60358c2a3470009187a5571356b7f6cf4",
"md5": "033a4add6b03d1a26de6affaa4445afa",
"sha256": "ecdcd96e4c90967f2f8bc105e1d1b58844662b19bc5e2b8de517de69786d706d"
},
"downloads": -1,
"filename": "nutpie-0.13.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "033a4add6b03d1a26de6affaa4445afa",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": "<3.13,>=3.10",
"size": 1352821,
"upload_time": "2025-02-12T13:55:53",
"upload_time_iso_8601": "2025-02-12T13:55:53.281536Z",
"url": "https://files.pythonhosted.org/packages/4e/6c/3e6de44ab98f8e17fb0549ebcfc60358c2a3470009187a5571356b7f6cf4/nutpie-0.13.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "98dcd0eb5cda06f5f7d214ca629f73e1c3741174ce23c69df1301dfaadc189a5",
"md5": "746b2b7221a8755de40f2d6de0aeebcf",
"sha256": "fcb880553c86ece16f1bfb72d75c34f28d626f717821b02f0c85eeccb14094b0"
},
"downloads": -1,
"filename": "nutpie-0.13.3-cp311-cp311-win_amd64.whl",
"has_sig": false,
"md5_digest": "746b2b7221a8755de40f2d6de0aeebcf",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": "<3.13,>=3.10",
"size": 1368697,
"upload_time": "2025-02-12T13:56:20",
"upload_time_iso_8601": "2025-02-12T13:56:20.365158Z",
"url": "https://files.pythonhosted.org/packages/98/dc/d0eb5cda06f5f7d214ca629f73e1c3741174ce23c69df1301dfaadc189a5/nutpie-0.13.3-cp311-cp311-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "8c2e0fcb2401527a6fd112596301985cffb35c37f3fce1eafba79310ad5c0a51",
"md5": "25f928e4e2280c73c0aebc3b97f40dce",
"sha256": "f3ee0cbd3f8c3a6c5469dc022b8aecc39108d2be3ca6f802979fb83dcbc0d726"
},
"downloads": -1,
"filename": "nutpie-0.13.3-cp312-cp312-macosx_10_12_x86_64.whl",
"has_sig": false,
"md5_digest": "25f928e4e2280c73c0aebc3b97f40dce",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": "<3.13,>=3.10",
"size": 1447447,
"upload_time": "2025-02-12T13:56:15",
"upload_time_iso_8601": "2025-02-12T13:56:15.420439Z",
"url": "https://files.pythonhosted.org/packages/8c/2e/0fcb2401527a6fd112596301985cffb35c37f3fce1eafba79310ad5c0a51/nutpie-0.13.3-cp312-cp312-macosx_10_12_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "29007f9aabfcffcfd148ef0f8436f150133f9d2494749b879d485a11e7a068b7",
"md5": "0e9ea8d8347e223cbfc60b2a0b1241c2",
"sha256": "25713bbad783a6b6777979934ea99fb190beafed0b190c6b99c41eee825553d4"
},
"downloads": -1,
"filename": "nutpie-0.13.3-cp312-cp312-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "0e9ea8d8347e223cbfc60b2a0b1241c2",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": "<3.13,>=3.10",
"size": 1392016,
"upload_time": "2025-02-12T13:56:11",
"upload_time_iso_8601": "2025-02-12T13:56:11.381524Z",
"url": "https://files.pythonhosted.org/packages/29/00/7f9aabfcffcfd148ef0f8436f150133f9d2494749b879d485a11e7a068b7/nutpie-0.13.3-cp312-cp312-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "c0b22f6a046a369af793ea53b3f1632612a8862776be8084f9ef550140353035",
"md5": "35cc550da7efe15affd40e2eb9309e15",
"sha256": "1dc76b73f1d8c15239b9f2ed3a06a7a3d671c467ac5bd32b2e69f59717a0da0f"
},
"downloads": -1,
"filename": "nutpie-0.13.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "35cc550da7efe15affd40e2eb9309e15",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": "<3.13,>=3.10",
"size": 1354072,
"upload_time": "2025-02-12T13:55:55",
"upload_time_iso_8601": "2025-02-12T13:55:55.522772Z",
"url": "https://files.pythonhosted.org/packages/c0/b2/2f6a046a369af793ea53b3f1632612a8862776be8084f9ef550140353035/nutpie-0.13.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "f5140804c236c29d112299ac6c1eeef2a2931524bae68a40a348abe8945cad62",
"md5": "550ff9a902ca3ed7ab16ab87d56e3727",
"sha256": "ce94ffd40122d4ee3ddde182cfd8492628ab7fa05edddaa74a2b26647ab46c38"
},
"downloads": -1,
"filename": "nutpie-0.13.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "550ff9a902ca3ed7ab16ab87d56e3727",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": "<3.13,>=3.10",
"size": 1405730,
"upload_time": "2025-02-12T13:56:03",
"upload_time_iso_8601": "2025-02-12T13:56:03.687744Z",
"url": "https://files.pythonhosted.org/packages/f5/14/0804c236c29d112299ac6c1eeef2a2931524bae68a40a348abe8945cad62/nutpie-0.13.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "8312aba03f3ea5b03a743ec0a42f28a65f1b5f04a8f858cce2092f367f44ae53",
"md5": "30337f9b73c82c88cb417fb7c6cb315e",
"sha256": "040bb92231464982076ffcc7f8328608242aa8dfdd2a8a1527ca43a85e69669e"
},
"downloads": -1,
"filename": "nutpie-0.13.3-cp312-cp312-win_amd64.whl",
"has_sig": false,
"md5_digest": "30337f9b73c82c88cb417fb7c6cb315e",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": "<3.13,>=3.10",
"size": 1371451,
"upload_time": "2025-02-12T13:56:21",
"upload_time_iso_8601": "2025-02-12T13:56:21.861557Z",
"url": "https://files.pythonhosted.org/packages/83/12/aba03f3ea5b03a743ec0a42f28a65f1b5f04a8f858cce2092f367f44ae53/nutpie-0.13.3-cp312-cp312-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "3b62ef30c40407d41c6fd99d000260a8a64017ca6fb5091ba4c266a962de877f",
"md5": "74646ed2d7350499e57883a6491eed62",
"sha256": "1290cef9ec1d0f02e483a2b0a320a87add3953a2dd333fca26feb5e3903fe06e"
},
"downloads": -1,
"filename": "nutpie-0.13.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "74646ed2d7350499e57883a6491eed62",
"packagetype": "bdist_wheel",
"python_version": "pp310",
"requires_python": "<3.13,>=3.10",
"size": 1352528,
"upload_time": "2025-02-12T13:55:58",
"upload_time_iso_8601": "2025-02-12T13:55:58.879387Z",
"url": "https://files.pythonhosted.org/packages/3b/62/ef30c40407d41c6fd99d000260a8a64017ca6fb5091ba4c266a962de877f/nutpie-0.13.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "7028741a95b1e42e1dfe6e7da319a8c5854250ba230160c2ef4fc7742544df67",
"md5": "1b3f6ff51a936f9df84c72e78344f150",
"sha256": "7ffaa5aeb1947fa12928dd34d50c2d12ded263ae5e21e3a26a3b5fcdf3050503"
},
"downloads": -1,
"filename": "nutpie-0.13.3.tar.gz",
"has_sig": false,
"md5_digest": "1b3f6ff51a936f9df84c72e78344f150",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<3.13,>=3.10",
"size": 59592,
"upload_time": "2025-02-12T13:56:16",
"upload_time_iso_8601": "2025-02-12T13:56:16.974954Z",
"url": "https://files.pythonhosted.org/packages/70/28/741a95b1e42e1dfe6e7da319a8c5854250ba230160c2ef4fc7742544df67/nutpie-0.13.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-02-12 13:56:16",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "pymc-devs",
"github_project": "nutpie",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "nutpie"
}