arviz 0.17.1__py3-none-any.whl → 0.19.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- arviz/__init__.py +4 -2
- arviz/data/__init__.py +5 -2
- arviz/data/base.py +102 -11
- arviz/data/converters.py +5 -0
- arviz/data/datasets.py +1 -0
- arviz/data/example_data/data_remote.json +10 -3
- arviz/data/inference_data.py +20 -22
- arviz/data/io_cmdstan.py +5 -3
- arviz/data/io_datatree.py +1 -0
- arviz/data/io_dict.py +5 -3
- arviz/data/io_emcee.py +1 -0
- arviz/data/io_numpyro.py +2 -1
- arviz/data/io_pyjags.py +1 -0
- arviz/data/io_pyro.py +1 -0
- arviz/data/utils.py +1 -0
- arviz/plots/__init__.py +1 -0
- arviz/plots/autocorrplot.py +1 -0
- arviz/plots/backends/bokeh/autocorrplot.py +1 -0
- arviz/plots/backends/bokeh/bpvplot.py +1 -0
- arviz/plots/backends/bokeh/compareplot.py +1 -0
- arviz/plots/backends/bokeh/densityplot.py +1 -0
- arviz/plots/backends/bokeh/distplot.py +1 -0
- arviz/plots/backends/bokeh/dotplot.py +1 -0
- arviz/plots/backends/bokeh/ecdfplot.py +2 -2
- arviz/plots/backends/bokeh/elpdplot.py +1 -0
- arviz/plots/backends/bokeh/energyplot.py +1 -0
- arviz/plots/backends/bokeh/hdiplot.py +1 -0
- arviz/plots/backends/bokeh/kdeplot.py +3 -3
- arviz/plots/backends/bokeh/khatplot.py +9 -3
- arviz/plots/backends/bokeh/lmplot.py +1 -0
- arviz/plots/backends/bokeh/loopitplot.py +1 -0
- arviz/plots/backends/bokeh/mcseplot.py +1 -0
- arviz/plots/backends/bokeh/pairplot.py +3 -6
- arviz/plots/backends/bokeh/parallelplot.py +1 -0
- arviz/plots/backends/bokeh/posteriorplot.py +1 -0
- arviz/plots/backends/bokeh/ppcplot.py +1 -0
- arviz/plots/backends/bokeh/rankplot.py +1 -0
- arviz/plots/backends/bokeh/separationplot.py +1 -0
- arviz/plots/backends/bokeh/traceplot.py +1 -0
- arviz/plots/backends/bokeh/violinplot.py +1 -0
- arviz/plots/backends/matplotlib/autocorrplot.py +1 -0
- arviz/plots/backends/matplotlib/bpvplot.py +1 -0
- arviz/plots/backends/matplotlib/compareplot.py +1 -0
- arviz/plots/backends/matplotlib/densityplot.py +1 -0
- arviz/plots/backends/matplotlib/distcomparisonplot.py +2 -3
- arviz/plots/backends/matplotlib/distplot.py +1 -0
- arviz/plots/backends/matplotlib/dotplot.py +1 -0
- arviz/plots/backends/matplotlib/ecdfplot.py +2 -2
- arviz/plots/backends/matplotlib/elpdplot.py +1 -0
- arviz/plots/backends/matplotlib/energyplot.py +1 -0
- arviz/plots/backends/matplotlib/essplot.py +6 -5
- arviz/plots/backends/matplotlib/forestplot.py +1 -0
- arviz/plots/backends/matplotlib/hdiplot.py +1 -0
- arviz/plots/backends/matplotlib/kdeplot.py +5 -3
- arviz/plots/backends/matplotlib/khatplot.py +8 -3
- arviz/plots/backends/matplotlib/lmplot.py +1 -0
- arviz/plots/backends/matplotlib/loopitplot.py +1 -0
- arviz/plots/backends/matplotlib/mcseplot.py +11 -10
- arviz/plots/backends/matplotlib/pairplot.py +2 -1
- arviz/plots/backends/matplotlib/parallelplot.py +1 -0
- arviz/plots/backends/matplotlib/posteriorplot.py +1 -0
- arviz/plots/backends/matplotlib/ppcplot.py +1 -0
- arviz/plots/backends/matplotlib/rankplot.py +1 -0
- arviz/plots/backends/matplotlib/separationplot.py +1 -0
- arviz/plots/backends/matplotlib/traceplot.py +2 -1
- arviz/plots/backends/matplotlib/tsplot.py +1 -0
- arviz/plots/backends/matplotlib/violinplot.py +2 -1
- arviz/plots/bpvplot.py +3 -2
- arviz/plots/compareplot.py +1 -0
- arviz/plots/densityplot.py +2 -1
- arviz/plots/distcomparisonplot.py +1 -0
- arviz/plots/dotplot.py +3 -2
- arviz/plots/ecdfplot.py +206 -89
- arviz/plots/elpdplot.py +1 -0
- arviz/plots/energyplot.py +1 -0
- arviz/plots/essplot.py +3 -2
- arviz/plots/forestplot.py +2 -1
- arviz/plots/hdiplot.py +3 -2
- arviz/plots/khatplot.py +24 -6
- arviz/plots/lmplot.py +1 -0
- arviz/plots/loopitplot.py +3 -2
- arviz/plots/mcseplot.py +4 -1
- arviz/plots/pairplot.py +1 -0
- arviz/plots/parallelplot.py +1 -0
- arviz/plots/plot_utils.py +3 -4
- arviz/plots/posteriorplot.py +2 -1
- arviz/plots/ppcplot.py +1 -0
- arviz/plots/rankplot.py +3 -2
- arviz/plots/separationplot.py +1 -0
- arviz/plots/traceplot.py +1 -0
- arviz/plots/tsplot.py +1 -0
- arviz/plots/violinplot.py +2 -1
- arviz/preview.py +17 -0
- arviz/rcparams.py +28 -2
- arviz/sel_utils.py +1 -0
- arviz/static/css/style.css +2 -1
- arviz/stats/density_utils.py +2 -1
- arviz/stats/diagnostics.py +15 -11
- arviz/stats/ecdf_utils.py +12 -8
- arviz/stats/stats.py +31 -16
- arviz/stats/stats_refitting.py +1 -0
- arviz/stats/stats_utils.py +13 -7
- arviz/tests/base_tests/test_data.py +15 -2
- arviz/tests/base_tests/test_data_zarr.py +0 -1
- arviz/tests/base_tests/test_diagnostics.py +1 -0
- arviz/tests/base_tests/test_diagnostics_numba.py +2 -6
- arviz/tests/base_tests/test_helpers.py +2 -2
- arviz/tests/base_tests/test_labels.py +1 -0
- arviz/tests/base_tests/test_plot_utils.py +5 -13
- arviz/tests/base_tests/test_plots_matplotlib.py +98 -7
- arviz/tests/base_tests/test_rcparams.py +12 -0
- arviz/tests/base_tests/test_stats.py +5 -5
- arviz/tests/base_tests/test_stats_numba.py +2 -7
- arviz/tests/base_tests/test_stats_utils.py +1 -0
- arviz/tests/base_tests/test_utils.py +3 -2
- arviz/tests/base_tests/test_utils_numba.py +2 -5
- arviz/tests/external_tests/test_data_pystan.py +5 -5
- arviz/tests/helpers.py +18 -10
- arviz/utils.py +4 -0
- arviz/wrappers/__init__.py +1 -0
- {arviz-0.17.1.dist-info → arviz-0.19.0.dist-info}/METADATA +13 -9
- arviz-0.19.0.dist-info/RECORD +183 -0
- arviz-0.17.1.dist-info/RECORD +0 -182
- {arviz-0.17.1.dist-info → arviz-0.19.0.dist-info}/LICENSE +0 -0
- {arviz-0.17.1.dist-info → arviz-0.19.0.dist-info}/WHEEL +0 -0
- {arviz-0.17.1.dist-info → arviz-0.19.0.dist-info}/top_level.txt +0 -0
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
"""Tests use the default backend."""
|
|
2
|
+
|
|
2
3
|
# pylint: disable=redefined-outer-name,too-many-lines
|
|
3
4
|
import os
|
|
4
5
|
from copy import deepcopy
|
|
@@ -45,16 +46,17 @@ from ...plots import (
|
|
|
45
46
|
from ...rcparams import rc_context, rcParams
|
|
46
47
|
from ...stats import compare, hdi, loo, waic
|
|
47
48
|
from ...stats.density_utils import kde as _kde
|
|
48
|
-
from ...utils import _cov
|
|
49
|
+
from ...utils import _cov, BehaviourChangeWarning
|
|
49
50
|
from ...plots.plot_utils import plot_point_interval
|
|
50
51
|
from ...plots.dotplot import wilkinson_algorithm
|
|
51
52
|
from ..helpers import ( # pylint: disable=unused-import
|
|
52
53
|
create_model,
|
|
53
54
|
create_multidimensional_model,
|
|
55
|
+
does_not_warn,
|
|
54
56
|
eight_schools_params,
|
|
55
57
|
models,
|
|
56
58
|
multidim_models,
|
|
57
|
-
|
|
59
|
+
RandomVariableTestClass,
|
|
58
60
|
)
|
|
59
61
|
|
|
60
62
|
rcParams["data.load"] = "eager"
|
|
@@ -168,9 +170,9 @@ def test_plot_density_no_subset():
|
|
|
168
170
|
|
|
169
171
|
def test_plot_density_nonstring_varnames():
|
|
170
172
|
"""Test plot_density works when variables are not strings."""
|
|
171
|
-
rv1 =
|
|
172
|
-
rv2 =
|
|
173
|
-
rv3 =
|
|
173
|
+
rv1 = RandomVariableTestClass("a")
|
|
174
|
+
rv2 = RandomVariableTestClass("b")
|
|
175
|
+
rv3 = RandomVariableTestClass("c")
|
|
174
176
|
model_ab = from_dict(
|
|
175
177
|
{
|
|
176
178
|
rv1: np.random.normal(size=200),
|
|
@@ -260,7 +262,7 @@ def test_plot_trace_legend(compact, combined):
|
|
|
260
262
|
axes = plot_trace(
|
|
261
263
|
idata, var_names=["home", "atts_star"], compact=compact, combined=combined, legend=True
|
|
262
264
|
)
|
|
263
|
-
assert axes[0,
|
|
265
|
+
assert axes[0, 1].get_legend()
|
|
264
266
|
compact_legend = axes[1, 0].get_legend()
|
|
265
267
|
if compact:
|
|
266
268
|
assert axes.shape == (2, 2)
|
|
@@ -752,7 +754,7 @@ def test_plot_ppc_transposed():
|
|
|
752
754
|
)
|
|
753
755
|
x, y = ax.get_lines()[2].get_data()
|
|
754
756
|
assert not np.isclose(y[0], 0)
|
|
755
|
-
assert np.all(np.array([
|
|
757
|
+
assert np.all(np.array([47, 44, 15, 11]) == x)
|
|
756
758
|
|
|
757
759
|
|
|
758
760
|
@pytest.mark.parametrize("kind", ["kde", "cumulative", "scatter"])
|
|
@@ -1271,6 +1273,26 @@ def test_plot_ecdf_basic():
|
|
|
1271
1273
|
assert axes is not None
|
|
1272
1274
|
|
|
1273
1275
|
|
|
1276
|
+
def test_plot_ecdf_eval_points():
|
|
1277
|
+
"""Check that BehaviourChangeWarning is raised if eval_points is not specified."""
|
|
1278
|
+
data = np.random.randn(4, 1000)
|
|
1279
|
+
eval_points = np.linspace(-3, 3, 100)
|
|
1280
|
+
with pytest.warns(BehaviourChangeWarning):
|
|
1281
|
+
axes = plot_ecdf(data)
|
|
1282
|
+
assert axes is not None
|
|
1283
|
+
with does_not_warn(BehaviourChangeWarning):
|
|
1284
|
+
axes = plot_ecdf(data, eval_points=eval_points)
|
|
1285
|
+
assert axes is not None
|
|
1286
|
+
|
|
1287
|
+
|
|
1288
|
+
@pytest.mark.parametrize("confidence_bands", [True, "pointwise", "simulated"])
|
|
1289
|
+
def test_plot_ecdf_confidence_bands(confidence_bands):
|
|
1290
|
+
"""Check that all confidence_bands values correctly accepted"""
|
|
1291
|
+
data = np.random.randn(4, 1000)
|
|
1292
|
+
axes = plot_ecdf(data, confidence_bands=confidence_bands, cdf=norm(0, 1).cdf)
|
|
1293
|
+
assert axes is not None
|
|
1294
|
+
|
|
1295
|
+
|
|
1274
1296
|
def test_plot_ecdf_values2():
|
|
1275
1297
|
data = np.random.randn(4, 1000)
|
|
1276
1298
|
data2 = np.random.randn(4, 1000)
|
|
@@ -1285,6 +1307,75 @@ def test_plot_ecdf_cdf():
|
|
|
1285
1307
|
assert axes is not None
|
|
1286
1308
|
|
|
1287
1309
|
|
|
1310
|
+
def test_plot_ecdf_error():
|
|
1311
|
+
"""Check that all error conditions are correctly raised."""
|
|
1312
|
+
dist = norm(0, 1)
|
|
1313
|
+
data = dist.rvs(1000)
|
|
1314
|
+
|
|
1315
|
+
# cdf not specified
|
|
1316
|
+
with pytest.raises(ValueError):
|
|
1317
|
+
plot_ecdf(data, confidence_bands=True)
|
|
1318
|
+
plot_ecdf(data, confidence_bands=True, cdf=dist.cdf)
|
|
1319
|
+
with pytest.raises(ValueError):
|
|
1320
|
+
plot_ecdf(data, difference=True)
|
|
1321
|
+
plot_ecdf(data, difference=True, cdf=dist.cdf)
|
|
1322
|
+
with pytest.raises(ValueError):
|
|
1323
|
+
plot_ecdf(data, pit=True)
|
|
1324
|
+
plot_ecdf(data, pit=True, cdf=dist.cdf)
|
|
1325
|
+
|
|
1326
|
+
# contradictory confidence band types
|
|
1327
|
+
with pytest.raises(ValueError):
|
|
1328
|
+
plot_ecdf(data, cdf=dist.cdf, confidence_bands="simulated", pointwise=True)
|
|
1329
|
+
plot_ecdf(data, cdf=dist.cdf, confidence_bands=True, pointwise=True)
|
|
1330
|
+
plot_ecdf(data, cdf=dist.cdf, confidence_bands="pointwise")
|
|
1331
|
+
|
|
1332
|
+
# contradictory band probabilities
|
|
1333
|
+
with pytest.raises(ValueError):
|
|
1334
|
+
plot_ecdf(data, cdf=dist.cdf, confidence_bands=True, ci_prob=0.9, fpr=0.1)
|
|
1335
|
+
plot_ecdf(data, cdf=dist.cdf, confidence_bands=True, ci_prob=0.9)
|
|
1336
|
+
plot_ecdf(data, cdf=dist.cdf, confidence_bands=True, fpr=0.1)
|
|
1337
|
+
|
|
1338
|
+
# contradictory reference
|
|
1339
|
+
data2 = dist.rvs(200)
|
|
1340
|
+
with pytest.raises(ValueError):
|
|
1341
|
+
plot_ecdf(data, data2, cdf=dist.cdf, difference=True)
|
|
1342
|
+
plot_ecdf(data, data2, difference=True)
|
|
1343
|
+
plot_ecdf(data, cdf=dist.cdf, difference=True)
|
|
1344
|
+
|
|
1345
|
+
|
|
1346
|
+
def test_plot_ecdf_deprecations():
|
|
1347
|
+
"""Check that deprecations are raised correctly."""
|
|
1348
|
+
dist = norm(0, 1)
|
|
1349
|
+
data = dist.rvs(1000)
|
|
1350
|
+
# base case, no deprecations
|
|
1351
|
+
with does_not_warn(FutureWarning):
|
|
1352
|
+
axes = plot_ecdf(data, cdf=dist.cdf, confidence_bands=True)
|
|
1353
|
+
assert axes is not None
|
|
1354
|
+
|
|
1355
|
+
# values2 is deprecated
|
|
1356
|
+
data2 = dist.rvs(200)
|
|
1357
|
+
with pytest.warns(FutureWarning):
|
|
1358
|
+
axes = plot_ecdf(data, values2=data2, difference=True)
|
|
1359
|
+
|
|
1360
|
+
# pit is deprecated
|
|
1361
|
+
with pytest.warns(FutureWarning):
|
|
1362
|
+
axes = plot_ecdf(data, cdf=dist.cdf, pit=True)
|
|
1363
|
+
assert axes is not None
|
|
1364
|
+
|
|
1365
|
+
# fpr is deprecated
|
|
1366
|
+
with does_not_warn(FutureWarning):
|
|
1367
|
+
axes = plot_ecdf(data, cdf=dist.cdf, ci_prob=0.9)
|
|
1368
|
+
with pytest.warns(FutureWarning):
|
|
1369
|
+
axes = plot_ecdf(data, cdf=dist.cdf, confidence_bands=True, fpr=0.1)
|
|
1370
|
+
assert axes is not None
|
|
1371
|
+
|
|
1372
|
+
# pointwise is deprecated
|
|
1373
|
+
with does_not_warn(FutureWarning):
|
|
1374
|
+
axes = plot_ecdf(data, cdf=dist.cdf, confidence_bands="pointwise")
|
|
1375
|
+
with pytest.warns(FutureWarning):
|
|
1376
|
+
axes = plot_ecdf(data, cdf=dist.cdf, confidence_bands=True, pointwise=True)
|
|
1377
|
+
|
|
1378
|
+
|
|
1288
1379
|
@pytest.mark.parametrize(
|
|
1289
1380
|
"kwargs",
|
|
1290
1381
|
[
|
|
@@ -127,6 +127,18 @@ def test_choice_bad_values(param):
|
|
|
127
127
|
rcParams[param] = "bad_value"
|
|
128
128
|
|
|
129
129
|
|
|
130
|
+
@pytest.mark.parametrize("args", [("stats.hdi_prob", "stats.ci_prob", 0.7, 0.7)])
|
|
131
|
+
def test_deprecated_param(args):
|
|
132
|
+
"""Test value and warning message correctly set for deprecated rcparams."""
|
|
133
|
+
param_old, param_new, val_old, val_new = args
|
|
134
|
+
assert param_new in rcParams
|
|
135
|
+
assert not np.isclose(rcParams[param_new], val_new)
|
|
136
|
+
msg = f"{param_old} is deprecated since .*, use {param_new} instead"
|
|
137
|
+
with pytest.warns(FutureWarning, match=msg):
|
|
138
|
+
with rc_context(rc={param_old: val_old}):
|
|
139
|
+
assert np.isclose(rcParams[param_new], val_new)
|
|
140
|
+
|
|
141
|
+
|
|
130
142
|
@pytest.mark.parametrize("allow_none", (True, False))
|
|
131
143
|
@pytest.mark.parametrize("typeof", (str, int))
|
|
132
144
|
@pytest.mark.parametrize("args", [("not one", 10), (False, None), (False, 4)])
|
|
@@ -89,25 +89,25 @@ def test_hdi_idata(centered_eight):
|
|
|
89
89
|
data = centered_eight.posterior
|
|
90
90
|
result = hdi(data)
|
|
91
91
|
assert isinstance(result, Dataset)
|
|
92
|
-
assert dict(result.
|
|
92
|
+
assert dict(result.sizes) == {"school": 8, "hdi": 2}
|
|
93
93
|
|
|
94
94
|
result = hdi(data, input_core_dims=[["chain"]])
|
|
95
95
|
assert isinstance(result, Dataset)
|
|
96
|
-
assert result.
|
|
96
|
+
assert result.sizes == {"draw": 500, "hdi": 2, "school": 8}
|
|
97
97
|
|
|
98
98
|
|
|
99
99
|
def test_hdi_idata_varnames(centered_eight):
|
|
100
100
|
data = centered_eight.posterior
|
|
101
101
|
result = hdi(data, var_names=["mu", "theta"])
|
|
102
102
|
assert isinstance(result, Dataset)
|
|
103
|
-
assert result.
|
|
103
|
+
assert result.sizes == {"hdi": 2, "school": 8}
|
|
104
104
|
assert list(result.data_vars.keys()) == ["mu", "theta"]
|
|
105
105
|
|
|
106
106
|
|
|
107
107
|
def test_hdi_idata_group(centered_eight):
|
|
108
108
|
result_posterior = hdi(centered_eight, group="posterior", var_names="mu")
|
|
109
109
|
result_prior = hdi(centered_eight, group="prior", var_names="mu")
|
|
110
|
-
assert result_prior.
|
|
110
|
+
assert result_prior.sizes == {"hdi": 2}
|
|
111
111
|
range_posterior = result_posterior.mu.values[1] - result_posterior.mu.values[0]
|
|
112
112
|
range_prior = result_prior.mu.values[1] - result_prior.mu.values[0]
|
|
113
113
|
assert range_posterior < range_prior
|
|
@@ -179,7 +179,7 @@ def test_compare_same(centered_eight, multidim_models, method, multidim):
|
|
|
179
179
|
else:
|
|
180
180
|
data_dict = {"first": centered_eight, "second": centered_eight}
|
|
181
181
|
|
|
182
|
-
weight = compare(data_dict, method=method)["weight"]
|
|
182
|
+
weight = compare(data_dict, method=method)["weight"].to_numpy()
|
|
183
183
|
assert_allclose(weight[0], weight[1])
|
|
184
184
|
assert_allclose(np.sum(weight), 1.0)
|
|
185
185
|
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
# pylint: disable=redefined-outer-name, no-member
|
|
2
|
-
import importlib
|
|
3
|
-
|
|
4
2
|
import numpy as np
|
|
5
3
|
import pytest
|
|
6
4
|
|
|
@@ -9,15 +7,12 @@ from ...stats import r2_score, summary
|
|
|
9
7
|
from ...utils import Numba
|
|
10
8
|
from ..helpers import ( # pylint: disable=unused-import
|
|
11
9
|
check_multiple_attrs,
|
|
10
|
+
importorskip,
|
|
12
11
|
multidim_models,
|
|
13
|
-
running_on_ci,
|
|
14
12
|
)
|
|
15
13
|
from .test_stats import centered_eight, non_centered_eight # pylint: disable=unused-import
|
|
16
14
|
|
|
17
|
-
|
|
18
|
-
(importlib.util.find_spec("numba") is None) and not running_on_ci(),
|
|
19
|
-
reason="test requires numba which is not installed",
|
|
20
|
-
)
|
|
15
|
+
numba = importorskip("numba")
|
|
21
16
|
|
|
22
17
|
rcParams["data.load"] = "eager"
|
|
23
18
|
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
"""Tests for arviz.utils."""
|
|
2
|
+
|
|
2
3
|
# pylint: disable=redefined-outer-name, no-member
|
|
3
4
|
from unittest.mock import Mock
|
|
4
5
|
|
|
@@ -17,7 +18,7 @@ from ...utils import (
|
|
|
17
18
|
one_de,
|
|
18
19
|
two_de,
|
|
19
20
|
)
|
|
20
|
-
from ..helpers import
|
|
21
|
+
from ..helpers import RandomVariableTestClass
|
|
21
22
|
|
|
22
23
|
|
|
23
24
|
@pytest.fixture(scope="session")
|
|
@@ -123,7 +124,7 @@ def test_var_names_filter(var_args):
|
|
|
123
124
|
|
|
124
125
|
def test_nonstring_var_names():
|
|
125
126
|
"""Check that non-string variables are preserved"""
|
|
126
|
-
mu =
|
|
127
|
+
mu = RandomVariableTestClass("mu")
|
|
127
128
|
samples = np.random.randn(10)
|
|
128
129
|
data = dict_to_dataset({mu: samples})
|
|
129
130
|
assert _var_names([mu], data) == [mu]
|
|
@@ -8,13 +8,10 @@ import pytest
|
|
|
8
8
|
|
|
9
9
|
from ...stats.stats_utils import stats_variance_2d as svar
|
|
10
10
|
from ...utils import Numba, _numba_var, numba_check
|
|
11
|
-
from ..helpers import
|
|
11
|
+
from ..helpers import importorskip
|
|
12
12
|
from .test_utils import utils_with_numba_import_fail # pylint: disable=unused-import
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
(importlib.util.find_spec("numba") is None) and not running_on_ci(),
|
|
16
|
-
reason="test requires numba which is not installed",
|
|
17
|
-
)
|
|
14
|
+
importorskip("numba")
|
|
18
15
|
|
|
19
16
|
|
|
20
17
|
def test_utils_fixture(utils_with_numba_import_fail):
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
# pylint: disable=no-member, invalid-name, redefined-outer-name, too-many-function-args
|
|
2
2
|
import importlib
|
|
3
3
|
from collections import OrderedDict
|
|
4
|
+
import os
|
|
4
5
|
|
|
5
6
|
import numpy as np
|
|
6
7
|
import pytest
|
|
@@ -16,19 +17,18 @@ from ..helpers import ( # pylint: disable=unused-import
|
|
|
16
17
|
importorskip,
|
|
17
18
|
load_cached_models,
|
|
18
19
|
pystan_version,
|
|
19
|
-
running_on_ci,
|
|
20
20
|
)
|
|
21
21
|
|
|
22
22
|
# Check if either pystan or pystan3 is installed
|
|
23
23
|
pystan_installed = (importlib.util.find_spec("pystan") is not None) or (
|
|
24
24
|
importlib.util.find_spec("stan") is not None
|
|
25
25
|
)
|
|
26
|
-
pytestmark = pytest.mark.skipif(
|
|
27
|
-
not (pystan_installed | running_on_ci()),
|
|
28
|
-
reason="test requires pystan/pystan3 which is not installed",
|
|
29
|
-
)
|
|
30
26
|
|
|
31
27
|
|
|
28
|
+
@pytest.mark.skipif(
|
|
29
|
+
not (pystan_installed or "ARVIZ_REQUIRE_ALL_DEPS" in os.environ),
|
|
30
|
+
reason="test requires pystan/pystan3 which is not installed",
|
|
31
|
+
)
|
|
32
32
|
class TestDataPyStan:
|
|
33
33
|
@pytest.fixture(scope="class")
|
|
34
34
|
def data(self, eight_schools_params, draws, chains):
|
arviz/tests/helpers.py
CHANGED
|
@@ -6,6 +6,8 @@ import logging
|
|
|
6
6
|
import os
|
|
7
7
|
import sys
|
|
8
8
|
from typing import Any, Dict, List, Optional, Tuple, Union
|
|
9
|
+
import warnings
|
|
10
|
+
from contextlib import contextmanager
|
|
9
11
|
|
|
10
12
|
import cloudpickle
|
|
11
13
|
import numpy as np
|
|
@@ -18,7 +20,7 @@ from ..data import InferenceData, from_dict
|
|
|
18
20
|
_log = logging.getLogger(__name__)
|
|
19
21
|
|
|
20
22
|
|
|
21
|
-
class
|
|
23
|
+
class RandomVariableTestClass:
|
|
22
24
|
"""Example class for random variables."""
|
|
23
25
|
|
|
24
26
|
def __init__(self, name):
|
|
@@ -29,6 +31,18 @@ class TestRandomVariable:
|
|
|
29
31
|
return self.name
|
|
30
32
|
|
|
31
33
|
|
|
34
|
+
@contextmanager
|
|
35
|
+
def does_not_warn(warning=Warning):
|
|
36
|
+
with warnings.catch_warnings(record=True) as caught_warnings:
|
|
37
|
+
warnings.simplefilter("always")
|
|
38
|
+
yield
|
|
39
|
+
for w in caught_warnings:
|
|
40
|
+
if issubclass(w.category, warning):
|
|
41
|
+
raise AssertionError(
|
|
42
|
+
f"Expected no {warning.__name__} but caught warning with message: {w.message}"
|
|
43
|
+
)
|
|
44
|
+
|
|
45
|
+
|
|
32
46
|
@pytest.fixture(scope="module")
|
|
33
47
|
def eight_schools_params():
|
|
34
48
|
"""Share setup for eight schools."""
|
|
@@ -620,11 +634,6 @@ def test_precompile_models(eight_schools_params, draws, chains):
|
|
|
620
634
|
load_cached_models(eight_schools_params, draws, chains)
|
|
621
635
|
|
|
622
636
|
|
|
623
|
-
def running_on_ci() -> bool:
|
|
624
|
-
"""Return True if running on CI machine."""
|
|
625
|
-
return os.environ.get("ARVIZ_CI_MACHINE") is not None
|
|
626
|
-
|
|
627
|
-
|
|
628
637
|
def importorskip(
|
|
629
638
|
modname: str, minversion: Optional[str] = None, reason: Optional[str] = None
|
|
630
639
|
) -> Any:
|
|
@@ -643,11 +652,10 @@ def importorskip(
|
|
|
643
652
|
Example::
|
|
644
653
|
docutils = pytest.importorskip("docutils")
|
|
645
654
|
"""
|
|
646
|
-
#
|
|
647
|
-
|
|
648
|
-
if not
|
|
655
|
+
# Unless ARVIZ_REQUIRE_ALL_DEPS is defined, tests that require a missing dependency are skipped
|
|
656
|
+
# if set, missing optional dependencies trigger failed tests.
|
|
657
|
+
if "ARVIZ_REQUIRE_ALL_DEPS" not in os.environ:
|
|
649
658
|
return pytest.importorskip(modname=modname, minversion=minversion, reason=reason)
|
|
650
|
-
import warnings
|
|
651
659
|
|
|
652
660
|
compile(modname, "", "eval") # to catch syntaxerrors
|
|
653
661
|
|
arviz/utils.py
CHANGED
|
@@ -17,6 +17,10 @@ from .rcparams import rcParams
|
|
|
17
17
|
STATIC_FILES = ("static/html/icons-svg-inline.html", "static/css/style.css")
|
|
18
18
|
|
|
19
19
|
|
|
20
|
+
class BehaviourChangeWarning(Warning):
|
|
21
|
+
"""Custom warning to ease filtering it."""
|
|
22
|
+
|
|
23
|
+
|
|
20
24
|
def _check_tilde_start(x):
|
|
21
25
|
return bool(isinstance(x, str) and x.startswith("~"))
|
|
22
26
|
|
arviz/wrappers/__init__.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: arviz
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.19.0
|
|
4
4
|
Summary: Exploratory analysis of Bayesian models
|
|
5
5
|
Home-page: http://github.com/arviz-devs/arviz
|
|
6
6
|
Author: ArviZ Developers
|
|
@@ -12,35 +12,39 @@ Classifier: Intended Audience :: Education
|
|
|
12
12
|
Classifier: License :: OSI Approved :: Apache Software License
|
|
13
13
|
Classifier: Programming Language :: Python
|
|
14
14
|
Classifier: Programming Language :: Python :: 3
|
|
15
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
16
15
|
Classifier: Programming Language :: Python :: 3.10
|
|
17
16
|
Classifier: Programming Language :: Python :: 3.11
|
|
18
17
|
Classifier: Programming Language :: Python :: 3.12
|
|
19
18
|
Classifier: Topic :: Scientific/Engineering
|
|
20
19
|
Classifier: Topic :: Scientific/Engineering :: Visualization
|
|
21
20
|
Classifier: Topic :: Scientific/Engineering :: Mathematics
|
|
22
|
-
Requires-Python: >=3.
|
|
21
|
+
Requires-Python: >=3.10
|
|
23
22
|
Description-Content-Type: text/markdown
|
|
24
23
|
License-File: LICENSE
|
|
25
24
|
Requires-Dist: setuptools >=60.0.0
|
|
26
25
|
Requires-Dist: matplotlib >=3.5
|
|
27
|
-
Requires-Dist: numpy
|
|
28
|
-
Requires-Dist: scipy >=1.
|
|
26
|
+
Requires-Dist: numpy >=1.23.0
|
|
27
|
+
Requires-Dist: scipy >=1.9.0
|
|
29
28
|
Requires-Dist: packaging
|
|
30
|
-
Requires-Dist: pandas >=1.
|
|
31
|
-
Requires-Dist:
|
|
29
|
+
Requires-Dist: pandas >=1.5.0
|
|
30
|
+
Requires-Dist: dm-tree >=0.1.8
|
|
31
|
+
Requires-Dist: xarray >=2022.6.0
|
|
32
32
|
Requires-Dist: h5netcdf >=1.0.2
|
|
33
33
|
Requires-Dist: typing-extensions >=4.1.0
|
|
34
34
|
Requires-Dist: xarray-einstats >=0.3
|
|
35
35
|
Provides-Extra: all
|
|
36
36
|
Requires-Dist: numba ; extra == 'all'
|
|
37
37
|
Requires-Dist: netcdf4 ; extra == 'all'
|
|
38
|
-
Requires-Dist: bokeh
|
|
38
|
+
Requires-Dist: bokeh >=3 ; extra == 'all'
|
|
39
39
|
Requires-Dist: contourpy ; extra == 'all'
|
|
40
40
|
Requires-Dist: ujson ; extra == 'all'
|
|
41
41
|
Requires-Dist: dask[distributed] ; extra == 'all'
|
|
42
|
-
Requires-Dist: zarr
|
|
42
|
+
Requires-Dist: zarr <3,>=2.5.0 ; extra == 'all'
|
|
43
43
|
Requires-Dist: xarray-datatree ; extra == 'all'
|
|
44
|
+
Provides-Extra: preview
|
|
45
|
+
Requires-Dist: arviz-base[h5netcdf] ; extra == 'preview'
|
|
46
|
+
Requires-Dist: arviz-stats[xarray] ; extra == 'preview'
|
|
47
|
+
Requires-Dist: arviz-plots ; extra == 'preview'
|
|
44
48
|
|
|
45
49
|
<img src="https://raw.githubusercontent.com/arviz-devs/arviz-project/main/arviz_logos/ArviZ.png#gh-light-mode-only" width=200></img>
|
|
46
50
|
<img src="https://raw.githubusercontent.com/arviz-devs/arviz-project/main/arviz_logos/ArviZ_white.png#gh-dark-mode-only" width=200></img>
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
arviz/__init__.py,sha256=kcqBQn8wiV7gkzQvnJTezqtgI1IqPWYylkiz6Uvg9YQ,10397
|
|
2
|
+
arviz/labels.py,sha256=w4-t0qdJzjKrqRyhzbtk6ucoMIAxle1HpHYlH7up06Q,6828
|
|
3
|
+
arviz/preview.py,sha256=5HwHycvbSAkWsAEYHBfd3Crwmeq8T06ysSgB528iQnA,375
|
|
4
|
+
arviz/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
5
|
+
arviz/rcparams.py,sha256=lQnBprbDihEcsP5FujoJetGna4T8nc20JnuVf1Wn-1k,21031
|
|
6
|
+
arviz/sel_utils.py,sha256=xvAYENhGXDTrhaT4Itlk1SJQUUGZ6BGcR04fPFgvzdM,6951
|
|
7
|
+
arviz/utils.py,sha256=sOUIkqmWtwY3PM-rQpN6arW9MsPt-MfvzdwAe78rT8U,26425
|
|
8
|
+
arviz/data/__init__.py,sha256=SG2umdZ8uVNYKVBoVYPy5tNxJnzLdyw0spPMjMTae5k,1558
|
|
9
|
+
arviz/data/base.py,sha256=7GhA20dlU2t4J2VfAPavfHT_ZyF_fU8gQMsvHnWed6g,21026
|
|
10
|
+
arviz/data/converters.py,sha256=vyzQWlEnuBiCRQNiLe7sXWfE6po1USnMNChtJ0VG48A,7831
|
|
11
|
+
arviz/data/datasets.py,sha256=wPi23KZI-w4HrhjmY1LUg0Rj0aJobSJ4WO3LBrjfZQc,5392
|
|
12
|
+
arviz/data/inference_data.py,sha256=ZUR-GgxWJ-mGPr9PvhS2mKT5j0U6ZkhxsUIkJTJ4loY,92455
|
|
13
|
+
arviz/data/io_beanmachine.py,sha256=QQVBD6rftvs6_kLIb4Vm1QzQ6BsS0J9DTrzw2Jj4ob8,3745
|
|
14
|
+
arviz/data/io_cmdstan.py,sha256=8YX9Nfkx4LqjfKms4s4GTOkOjZNelb6SukvRZRHY6iM,38994
|
|
15
|
+
arviz/data/io_cmdstanpy.py,sha256=iSr8ciKBFoIa1tJGHEX-2JKkUJRyaTXzRXf-5mu8q5U,42991
|
|
16
|
+
arviz/data/io_datatree.py,sha256=Ag_7LHAejqt0Zxbu350u8WBY44nGsFY7eyhKa0Wi7FE,502
|
|
17
|
+
arviz/data/io_dict.py,sha256=HM4ke-NuopsPnIdU-UGMtppAnj3vcbkBti8eROpMRTs,17698
|
|
18
|
+
arviz/data/io_emcee.py,sha256=zsJJqwlyXLN_TfI6hgKz97p4N30NYTVvQSrIIpiLmB0,11844
|
|
19
|
+
arviz/data/io_json.py,sha256=lrSP_9abfUW_5E8TwnG4hsS5HNHzAHZQCJTynl_tXKY,1256
|
|
20
|
+
arviz/data/io_netcdf.py,sha256=cCxVnXSCTzWP3SU7cM4SqBiRRK9txFOsm-MchzNUzM4,2336
|
|
21
|
+
arviz/data/io_numpyro.py,sha256=_U6owmsY5hrQU7C5NPw43s76Swmy_YqXw4UZYfZwzU4,14241
|
|
22
|
+
arviz/data/io_pyjags.py,sha256=AG2ckAuygSxbjULVFQCJQSM72GnUoTMi3T94aQRJYKQ,13271
|
|
23
|
+
arviz/data/io_pyro.py,sha256=JYywUGUU1Qil_ahLuDYhYFafQAKB-y1kIipXdfH_vnQ,12740
|
|
24
|
+
arviz/data/io_pystan.py,sha256=nRTU6yujilQCKERxzN7LIVwZplfvFNb-Y9Jk9YVJQLk,41700
|
|
25
|
+
arviz/data/io_zarr.py,sha256=PeSBz-zHDzmwJq3sWzxASnjrfbd-hULJsl8FjK46YQQ,1163
|
|
26
|
+
arviz/data/utils.py,sha256=gw1AtkCgdPA9bJsI1UTRi1h5xxFxv8erKlU_S48Nff8,4770
|
|
27
|
+
arviz/data/example_data/data_local.json,sha256=8WwyEWriDDfcVT79GNQ412QDkSoOZF6FYJ7cbyGpONI,1088
|
|
28
|
+
arviz/data/example_data/data_remote.json,sha256=UNI3hyjcICG_MtpLxAicY04Y4mQf3M-kESxRWGl9kgw,5340
|
|
29
|
+
arviz/data/example_data/code/radon/radon.json,sha256=XwpiyGRrqkBP02zWz00s6z-d00Vv_vSqfx7ZLlb4lz0,24382
|
|
30
|
+
arviz/data/example_data/data/centered_eight.nc,sha256=jvw6uv4MeW65rqe2lJDU4kAKM8V1BO9JMuHHEFhJF28,654694
|
|
31
|
+
arviz/data/example_data/data/non_centered_eight.nc,sha256=r7kyd10HyJTTRQs4OlSCXPVt3T-nLsPd3g-bcPYnPmA,836647
|
|
32
|
+
arviz/plots/__init__.py,sha256=atWhfLXHAD6zaTjbdWdTaJrPTNBl3XpcSCY4etgw_cY,1514
|
|
33
|
+
arviz/plots/autocorrplot.py,sha256=f-rYtnZtxgOns5sIT6pdw-EdU74lAVmAeV9b6rKLsgw,5666
|
|
34
|
+
arviz/plots/bfplot.py,sha256=s8bizLCkF5uZnz66UKmuUJs_AXuMVrgGObTa2ofUF-Q,5124
|
|
35
|
+
arviz/plots/bpvplot.py,sha256=QR4znezjiSLMyMagvnJLb9Y1SIlT99gJ52o4FnX5tZg,12098
|
|
36
|
+
arviz/plots/compareplot.py,sha256=DQ1ebXSHGnP9A5y5iABq6PB8hO7Pn_ZlUH0ujNY_dc8,6074
|
|
37
|
+
arviz/plots/densityplot.py,sha256=6477ZljpBCcZRw0SUwcTO4FYjxqw_qYsJupWNo-jCok,10895
|
|
38
|
+
arviz/plots/distcomparisonplot.py,sha256=gVNQUN0VX7hC527fcUk1oxtQRdIl5mrltU95c0Nra9k,7184
|
|
39
|
+
arviz/plots/distplot.py,sha256=xWXOsN-pPBwhHrEjC6lbIJdn-17DtpMueSnj6YzWlX4,8472
|
|
40
|
+
arviz/plots/dotplot.py,sha256=9HTMeT1ZuZ4Vauxvg4TjsvvNnwORG8WWO2HistJwHiU,7736
|
|
41
|
+
arviz/plots/ecdfplot.py,sha256=BkukbyDUGMCW72b9ZFBCK9zrkavgGHwkcxRv76kQrzk,12734
|
|
42
|
+
arviz/plots/elpdplot.py,sha256=NKqPkwTj9BWDzwMnG0cPeLmYBGMX_meP9F6bqvTwLKY,6433
|
|
43
|
+
arviz/plots/energyplot.py,sha256=znEDPYpWaTIX0XpdVoyhXOITJ4A8BYkI9t1TVhJq4Qo,4797
|
|
44
|
+
arviz/plots/essplot.py,sha256=ch0DjUQDILk4ohpSUR-9VHejGFb6Xmelly-qa-fKb9E,11741
|
|
45
|
+
arviz/plots/forestplot.py,sha256=WRgW6pg1kO4xrd412qKgbY8QAaFyALfJsNzmQIXMwTc,11896
|
|
46
|
+
arviz/plots/hdiplot.py,sha256=cNj2r0dPxtquZNoChgjFO-wmqgU-W-dq_ed1kWJ2vHI,7589
|
|
47
|
+
arviz/plots/kdeplot.py,sha256=eQze22vHcZdjJT_Z6P8IJweNMWJMXRM6Ei5S4vx0m54,11749
|
|
48
|
+
arviz/plots/khatplot.py,sha256=u03gmBG1xwxG07ASLZEJB-GsRhRHtUCtbglpC1N0aIg,8086
|
|
49
|
+
arviz/plots/lmplot.py,sha256=LxR7RXkaAi5J8076isebVrtdk6UwbcTRekEymM9S6cY,11726
|
|
50
|
+
arviz/plots/loopitplot.py,sha256=bFUO_Fy4z6u6E39GdaF4rIvc-COWNwF4A0n2kcmZBfA,8321
|
|
51
|
+
arviz/plots/mcseplot.py,sha256=rsiz4E9M9p58YetAaF75gbenGIj4M0hapWnh9UJOXzY,6829
|
|
52
|
+
arviz/plots/pairplot.py,sha256=yVxyLC7ms0SKpTunifacUyOblH8BW9CsQqE2Hv0ARP4,10407
|
|
53
|
+
arviz/plots/parallelplot.py,sha256=ZBEsHvnlmSXLRpSwP-KUwzgWBC2S4siKXFGJnLf7uAE,7125
|
|
54
|
+
arviz/plots/plot_utils.py,sha256=mawuYnwb9AfdLQ9HAerTOGT9iKNjXrQraXvtDd9tFco,18243
|
|
55
|
+
arviz/plots/posteriorplot.py,sha256=pC-5SQZOGq1F4opM_sQLxn4ZG2we4Y9ULV8yhxjGVdo,10952
|
|
56
|
+
arviz/plots/ppcplot.py,sha256=UPTtXDWHf3wFAb-apNPGcz8qw9CQwINGml_2YkYI-iM,13967
|
|
57
|
+
arviz/plots/rankplot.py,sha256=lz0swHs6EBe-gXn4udP1Um3RS-EatsOAmguYqGMlIjU,8648
|
|
58
|
+
arviz/plots/separationplot.py,sha256=Fx_QVeFUcF45fm7nn06pt0qubOzvH8QMU1cw5RLyaik,5491
|
|
59
|
+
arviz/plots/traceplot.py,sha256=dwcF7rsjMAIxZ_LPv7Z8os01uQZHXTkDFWEBtsbzI9k,10216
|
|
60
|
+
arviz/plots/tsplot.py,sha256=haTyvfGX5fA8Zle9bzllybG5n307BUJIxGywNAnOsU0,15925
|
|
61
|
+
arviz/plots/violinplot.py,sha256=yxoEMGTIt4CDinZaNHPYI5MqFvXB2J2gyKdKJ47PKdk,7129
|
|
62
|
+
arviz/plots/backends/__init__.py,sha256=LZxXo7ogt7ZVrdUea0xkxpx5YV0wpV20MHwdItgk3oU,7752
|
|
63
|
+
arviz/plots/backends/bokeh/__init__.py,sha256=e2wfZNdGTFU5GjsLokCLpknweaNgjZ5v3k7NB0gry6g,4877
|
|
64
|
+
arviz/plots/backends/bokeh/autocorrplot.py,sha256=9CruVndfMnqsi4waav7Gcr7pn0nmUB0mkJxkzOjtGtw,2463
|
|
65
|
+
arviz/plots/backends/bokeh/bfplot.py,sha256=ydjomuA5iTw9LE2_eq9_u6Ox3MCy0ulE_DU4qgH0MO8,406
|
|
66
|
+
arviz/plots/backends/bokeh/bpvplot.py,sha256=btwA4qbO8iCtZ-vriscqNlwn0zEooObh7DD6-fsyM44,6642
|
|
67
|
+
arviz/plots/backends/bokeh/compareplot.py,sha256=52jOjhrRqB-Dgdw8odKfM4aPXk9med6MopCiHxKNgJM,4736
|
|
68
|
+
arviz/plots/backends/bokeh/densityplot.py,sha256=TQ5OkHHnihT1NBa4vtt6wJUsll_K3xaeEFzDtqrmcVU,6286
|
|
69
|
+
arviz/plots/backends/bokeh/distcomparisonplot.py,sha256=o8FHMb1ZzKPpt7fXhwBr6HGhqpclO1Qk9o6aTGypgv0,431
|
|
70
|
+
arviz/plots/backends/bokeh/distplot.py,sha256=a2yY4waIPdwGhDpUtYi87Ra-TJiAA67oQumIiU-nXiA,4851
|
|
71
|
+
arviz/plots/backends/bokeh/dotplot.py,sha256=qy8B4QL6B_ZfoVtDDA6c7HcsQofQLlE1tTnkcJO1mPA,2828
|
|
72
|
+
arviz/plots/backends/bokeh/ecdfplot.py,sha256=Zrinhu6ViG3BbClxnRFZ_zIZm7S1nARiydHi-l1_i-g,1680
|
|
73
|
+
arviz/plots/backends/bokeh/elpdplot.py,sha256=5bn_rH1Aixm0--BArAP4m4kuZMjWxR8ox-8T-xK_GMY,6487
|
|
74
|
+
arviz/plots/backends/bokeh/energyplot.py,sha256=FKPYRaWwM32Vw0AHE0MIWBn9wZQeoYdP_YpYZGijIq0,4571
|
|
75
|
+
arviz/plots/backends/bokeh/essplot.py,sha256=zghMEYUH3bAljqNt72-dRa8IFom27F7dMklHNQOrzBM,5494
|
|
76
|
+
arviz/plots/backends/bokeh/forestplot.py,sha256=DIoGzSIAMA9vmKwpoNxVoNKFpDBwpfjdGd6KTl9u_OY,27219
|
|
77
|
+
arviz/plots/backends/bokeh/hdiplot.py,sha256=bAhTPi9D7cw2ytSvjSIRD3g-PqpB9OFwusrQAnmKCYY,1538
|
|
78
|
+
arviz/plots/backends/bokeh/kdeplot.py,sha256=nKEgJfnP7NK2Y2cipF_RglEC6GpowaagH5wZP3iZq-U,9329
|
|
79
|
+
arviz/plots/backends/bokeh/khatplot.py,sha256=J5m9vugSzpi9sE-T_2PRzI8pA100Hf8rUMhpmkTP8n4,4599
|
|
80
|
+
arviz/plots/backends/bokeh/lmplot.py,sha256=kqfkQ1HAahi_XwkWxrub73zPM_4dXEFvKAd0TFKsoXQ,5392
|
|
81
|
+
arviz/plots/backends/bokeh/loopitplot.py,sha256=FWjcsSWGJNy4wM63_N2qpg5oECb3Cq-uLy3xDS5x6j4,7172
|
|
82
|
+
arviz/plots/backends/bokeh/mcseplot.py,sha256=teyAG-A4vIHor_Qr4iB3l5nLJ--EzvPvw1x44hUOVSI,5924
|
|
83
|
+
arviz/plots/backends/bokeh/pairplot.py,sha256=2sByGaDuDT_ebyhPLIP3jRO1i43DLVDTPKWCpjd9MXc,13146
|
|
84
|
+
arviz/plots/backends/bokeh/parallelplot.py,sha256=SNChOLWvcKxXuuJsIfWs9CNj7qDuVb95UZyp4CP1BQE,2230
|
|
85
|
+
arviz/plots/backends/bokeh/posteriorplot.py,sha256=yBAlGo3lQpFBVro724eZtKnOHgVkY7LXupa-8_VtE7c,9380
|
|
86
|
+
arviz/plots/backends/bokeh/ppcplot.py,sha256=mfDzTXxJU26CcK8ZKno3Y_yK_y3VYeUT3vaJqUoGEq4,13269
|
|
87
|
+
arviz/plots/backends/bokeh/rankplot.py,sha256=UvzzzhOEnHTX4BkO30JO7iKyU0dwbq7kqo0rV6LlXEU,4474
|
|
88
|
+
arviz/plots/backends/bokeh/separationplot.py,sha256=_VhJUnPW03xVpy2y4h8npLyPPD49H76WQMmj3hOq2Hc,2416
|
|
89
|
+
arviz/plots/backends/bokeh/traceplot.py,sha256=mHyJQqj0IzwKzSsK0eJ7u05V-WObZCJKuLbJ9EpdPtM,14208
|
|
90
|
+
arviz/plots/backends/bokeh/violinplot.py,sha256=_GaLDsq6muqnDr1BQCFClCGqy7hyEk7moYpMd0MNwNA,4359
|
|
91
|
+
arviz/plots/backends/matplotlib/__init__.py,sha256=LBEWakXN4QFoIXp_aPXPMTzXnA8VJt24k5RaowPCQoY,3629
|
|
92
|
+
arviz/plots/backends/matplotlib/autocorrplot.py,sha256=ahyNnwyNrLubZTsxNvTi5hAZ5gV9dmo_wecrTYyMMDI,1807
|
|
93
|
+
arviz/plots/backends/matplotlib/bfplot.py,sha256=00-xGO_VpmTxCkYiC1cGGsAW0HNO3bhQJkFxA6ssMh0,1828
|
|
94
|
+
arviz/plots/backends/matplotlib/bpvplot.py,sha256=SeAGSOxhUFMIlQcluVnGEF5SnW2qjg1HGx4St-aiFz8,6262
|
|
95
|
+
arviz/plots/backends/matplotlib/compareplot.py,sha256=qvjSkNDBTZh3vxIw4pNEyRnaAM8qFG9vWw0X23hscsI,3695
|
|
96
|
+
arviz/plots/backends/matplotlib/densityplot.py,sha256=zlqzYvH3VXWPiiIvL--fxtMp3hIGrcttKkQxKPV1U2s,5479
|
|
97
|
+
arviz/plots/backends/matplotlib/distcomparisonplot.py,sha256=XZY2jITNKtcIMsg5tl_lzuwI-2DcdUdCWqrK7bsdvWE,3568
|
|
98
|
+
arviz/plots/backends/matplotlib/distplot.py,sha256=V0CeyAPah5RzHXW9I5tssVXlZgj2NHPkg-k15ayEdVw,4581
|
|
99
|
+
arviz/plots/backends/matplotlib/dotplot.py,sha256=WHrf_lpEKaJlTPKKZzkQrXzIy_ngxjOGUulInIQBI_M,2934
|
|
100
|
+
arviz/plots/backends/matplotlib/ecdfplot.py,sha256=yX46D9bjhBTX-XFH2QVUZoHpSHcs_Pb9Mm6P4jwVEB8,1734
|
|
101
|
+
arviz/plots/backends/matplotlib/elpdplot.py,sha256=LAB3PqxbWgvnyr-CIOFSO6egosCtYZmKsmCelFaNywY,6682
|
|
102
|
+
arviz/plots/backends/matplotlib/energyplot.py,sha256=VDM8aZQ-SZzcZB9cv4EU0zQFk1L2JEJXL246mVALIwo,3317
|
|
103
|
+
arviz/plots/backends/matplotlib/essplot.py,sha256=C5RH8MNIOGpCPKHUsGfZ03aQ3CaXI8xOLw6vDv6fSbE,6448
|
|
104
|
+
arviz/plots/backends/matplotlib/forestplot.py,sha256=TWmJqmoH8Rn2bc-g3Tx1QTb_RIfNUKN5PxPFRnF3flA,23228
|
|
105
|
+
arviz/plots/backends/matplotlib/hdiplot.py,sha256=7KawWKFahxILp0dxodkhRni9oJMCkulLhLhRD9qoH60,1521
|
|
106
|
+
arviz/plots/backends/matplotlib/kdeplot.py,sha256=wsTBABG3MLkMAoAzu22otJdXCVzUnUu3McIt9_Hjldc,5323
|
|
107
|
+
arviz/plots/backends/matplotlib/khatplot.py,sha256=JajJXlDXJce1DvB0Eh7ueB4N6ZkqKHgLaGhck8EsaXs,7437
|
|
108
|
+
arviz/plots/backends/matplotlib/lmplot.py,sha256=EeXiqQhfQBaKAhmzRMLLV5gNGELo_QPZ24MkGnDWUfM,5288
|
|
109
|
+
arviz/plots/backends/matplotlib/loopitplot.py,sha256=glK-BP4NftmdZEK5sB7kM8SzoGWsDnBdDVDzV-fDdCg,4632
|
|
110
|
+
arviz/plots/backends/matplotlib/mcseplot.py,sha256=kGuRHRnyQKZPxoiHp8S30RzK7qbL83AaFGbn7BNVOZo,5810
|
|
111
|
+
arviz/plots/backends/matplotlib/pairplot.py,sha256=82MfXs8Gxt40pGqsj48hvyM0Xvc44Eskj2fQC-0AasM,13793
|
|
112
|
+
arviz/plots/backends/matplotlib/parallelplot.py,sha256=zxtO6CNsK_HSl7E2sH40x8OYoO9a5bPNJ6VPJTuDQbk,1450
|
|
113
|
+
arviz/plots/backends/matplotlib/posteriorplot.py,sha256=dUJfGYWYv5Lzlbz9Tr5d9virVfJb7JsnGiSYU7CdmsI,10092
|
|
114
|
+
arviz/plots/backends/matplotlib/ppcplot.py,sha256=3kPTVEUsGpMyr_P5OKgfAu_NHZNmdJWXvCmfhIlNieE,16134
|
|
115
|
+
arviz/plots/backends/matplotlib/rankplot.py,sha256=KU2EakKNv2oOr5zuNsM0dHLazyzBEbf_D95SBQhfnUA,3610
|
|
116
|
+
arviz/plots/backends/matplotlib/separationplot.py,sha256=Yfc-9cgEif-Tb4piGuzJavDYu63x8HvdnZ4dYEzeqxQ,2352
|
|
117
|
+
arviz/plots/backends/matplotlib/traceplot.py,sha256=ajAu1NSXZ7YX34cZkkTs3clMGzjs3AxKJywSnXvGTds,18882
|
|
118
|
+
arviz/plots/backends/matplotlib/tsplot.py,sha256=1iD5xcV3pAskAQz2ulLgYKFb6PdGpPKCAnLN_FPwO-8,4033
|
|
119
|
+
arviz/plots/backends/matplotlib/violinplot.py,sha256=Cm2jCLbrHOIV0mu1_v2on8Qt7HhN8w2CMgus4qEpErU,4253
|
|
120
|
+
arviz/plots/styles/arviz-bluish.mplstyle,sha256=v4b3UX15ufQCWbAW3aflE9jE0w1T_PbYmc-f8QRJsKQ,95
|
|
121
|
+
arviz/plots/styles/arviz-brownish.mplstyle,sha256=VqYcOVlcIQVGMk4smdAZg-ui9nI5xtY4vaNAbeQbhas,94
|
|
122
|
+
arviz/plots/styles/arviz-colors.mplstyle,sha256=0mqf46lb2-fujgLOJzlAbGLaubznA2ZZOUSoht6eoEc,218
|
|
123
|
+
arviz/plots/styles/arviz-cyanish.mplstyle,sha256=3LGyDCXD9MrUrCT40ncmkjuW2qVhpw1DbaYGKzBqsXw,93
|
|
124
|
+
arviz/plots/styles/arviz-darkgrid.mplstyle,sha256=E6OmaFLN4w1gzjtxCryihdHnx5pWeCZZOKvO5e-DEcQ,1078
|
|
125
|
+
arviz/plots/styles/arviz-doc.mplstyle,sha256=b1924an0wQ20mnQYnNlR3JIjPa5YPBw6cQ688MPKzjc,3392
|
|
126
|
+
arviz/plots/styles/arviz-docgrid.mplstyle,sha256=xGW8i9hsoJw1rkL0GbZjLBexoEmRhDXOROQf5pC0FX8,3384
|
|
127
|
+
arviz/plots/styles/arviz-grayscale.mplstyle,sha256=Bm9sLS1H9OqT6vQ2iOs6hZ_Jtjzqvsyho2zcgmCyzaE,1176
|
|
128
|
+
arviz/plots/styles/arviz-greenish.mplstyle,sha256=OszR3ik_s25COWfD_J6h03J72C-idq2xaB5KrCOxqTM,93
|
|
129
|
+
arviz/plots/styles/arviz-orangish.mplstyle,sha256=mgGSbJAqqCXeTeh9CmKPrDFyygeV3_SpcDOwPuN5P98,93
|
|
130
|
+
arviz/plots/styles/arviz-plasmish.mplstyle,sha256=zstAfMInqSWOake-8w2DOKYFZgRNjYq_XIl8Ky7HoU8,85
|
|
131
|
+
arviz/plots/styles/arviz-purplish.mplstyle,sha256=1S3QtqH3y3aExQl3eru_MfesG7y6-TS54yFF0srEBYc,93
|
|
132
|
+
arviz/plots/styles/arviz-redish.mplstyle,sha256=c39qCsdQR48CHTzUKm3ga8ZBxQxxYOANNEgw5yv1hE0,93
|
|
133
|
+
arviz/plots/styles/arviz-royish.mplstyle,sha256=1monU3L95dHMqL5SKGFzIKE3WjNbDf3cRrHNQJ8oq54,87
|
|
134
|
+
arviz/plots/styles/arviz-viridish.mplstyle,sha256=kuaaxoLou_BPiGKNXzu-Fw_ST0eVuRwdluyvKDoXaCM,85
|
|
135
|
+
arviz/plots/styles/arviz-white.mplstyle,sha256=p3dbvWzOKhA-u8r3BmTF-bR5bhKh87iIkkVLD_V6EdI,1083
|
|
136
|
+
arviz/plots/styles/arviz-whitegrid.mplstyle,sha256=IMjjlfG3wg7heUjcVrkez1SNoiMI6BLztGPmsUp1iws,1072
|
|
137
|
+
arviz/static/css/style.css,sha256=wcC7rvCT4E6TycEiw7YqxwyaaZ4tTRDGqMkYYjAqrao,5910
|
|
138
|
+
arviz/static/html/icons-svg-inline.html,sha256=t-ChbtS1Gv8uZxc31DCJS8SuXDsLGUHoKgwv8zu6j2M,1343
|
|
139
|
+
arviz/stats/__init__.py,sha256=jWXBXngHmYFy8m_3QJKYRvLszI4L5Q1aIBS79PC9Gms,700
|
|
140
|
+
arviz/stats/density_utils.py,sha256=WCEkXCQsaycY_usA6xkorhIqr3_5ru7wgwE9eJJgdH8,32216
|
|
141
|
+
arviz/stats/diagnostics.py,sha256=qGIrq258E0vl_tJwZSCvmp0dbQxvysrdJ8zzIsaK50A,32501
|
|
142
|
+
arviz/stats/ecdf_utils.py,sha256=nQJAhX8BgAsY4c3aKBC1Et3mspXoei9Pc0hKblVfmgk,6252
|
|
143
|
+
arviz/stats/stats.py,sha256=aatvU_KqAwXTlZVCW0-JiJGf17OurkYqUrFjOmwk4Fw,86478
|
|
144
|
+
arviz/stats/stats_refitting.py,sha256=trbPC7LCnsb-n5D6g7J0bzXJCPfcDukJDniB4ud1z9E,5415
|
|
145
|
+
arviz/stats/stats_utils.py,sha256=XG8ILPVs8Jbh_v7jzLfwMkm2HraT2j2-Hxe_kEYlLjQ,20076
|
|
146
|
+
arviz/tests/__init__.py,sha256=TiS6C1IzwAXmNa8u36Y2xzL1CTTZm2PwzAtmZgoqepE,18
|
|
147
|
+
arviz/tests/conftest.py,sha256=6U9WpKmYf38EVRoFZNBpV0CunQvESBFJG2SJ8IBEkL4,1270
|
|
148
|
+
arviz/tests/helpers.py,sha256=qhsOhLtfyz-dC2yuT6ug0frYZlbims06BljJuEVDP6E,23593
|
|
149
|
+
arviz/tests/base_tests/__init__.py,sha256=zg7V5_0DZrCz7ozETqET6bUpAvUUmmkSoLpJLwaIj2E,23
|
|
150
|
+
arviz/tests/base_tests/test_data.py,sha256=EZN1W81LH7GrbtYxulSVxFfKoE7Rfl0BxYD_PWnVJEg,63041
|
|
151
|
+
arviz/tests/base_tests/test_data_zarr.py,sha256=sPWnIQ7vPhN5Ql3Dq4JENuSwQV5IeignQjy9BAYe1_A,5441
|
|
152
|
+
arviz/tests/base_tests/test_diagnostics.py,sha256=w8yT2WxelnxH-ynAN9lvspQTRR_UlDmnXIRMe7fus1c,20219
|
|
153
|
+
arviz/tests/base_tests/test_diagnostics_numba.py,sha256=2G5O-7Hz66DSaHIZtjs2XL45RezYnXQZH6Dg2Ow-p4Q,2847
|
|
154
|
+
arviz/tests/base_tests/test_helpers.py,sha256=PogHpWCMBEtkuzKt9jGQ8uIPg0cLDwztXxOnPSPNyVE,669
|
|
155
|
+
arviz/tests/base_tests/test_labels.py,sha256=X08vTMmcgXkYGbE2Qnu_UUDSTAIvSNKdnyqoWwmj008,1686
|
|
156
|
+
arviz/tests/base_tests/test_plot_utils.py,sha256=lwDZYDNrlEOKP-asJv6qu3sH_4y-FiHcFlqnMTpZyhw,11771
|
|
157
|
+
arviz/tests/base_tests/test_plots_bokeh.py,sha256=1JqUqLKUb1g4c4w41K3j_LCT4eqb3u1qGnYbUuJMHPE,39148
|
|
158
|
+
arviz/tests/base_tests/test_plots_matplotlib.py,sha256=CNIuR8wkz19MwDKJFnVSv0q7ljVNXGFb6zpHSXUeqy8,65620
|
|
159
|
+
arviz/tests/base_tests/test_rcparams.py,sha256=b9ueOXd9C0xiUIqgS0qnzvalHFgTFK7sUqL8UAzgJNs,10851
|
|
160
|
+
arviz/tests/base_tests/test_stats.py,sha256=uBrlHdwLQ9w9bP4Cq454qoZ754Xll1kYOpxEr2AwZF4,32385
|
|
161
|
+
arviz/tests/base_tests/test_stats_ecdf_utils.py,sha256=_JIV1mJpG_VwQbRuorTN2nqBE4M8aiE8SIM65i9wTJk,5712
|
|
162
|
+
arviz/tests/base_tests/test_stats_numba.py,sha256=wGXgNuSO_gwJajoYtXSgpIe88PcBRyIkRihxC8paR-o,1582
|
|
163
|
+
arviz/tests/base_tests/test_stats_utils.py,sha256=Udkw8tODs8mLt3_hO3HgNczrU0n09IJrML2agXF-upQ,13864
|
|
164
|
+
arviz/tests/base_tests/test_utils.py,sha256=Auggtvwv3Y9STS8Tbram-IQe5IhewkwFN14CTcjRd5M,12533
|
|
165
|
+
arviz/tests/base_tests/test_utils_numba.py,sha256=phV5engLS9Qe680UWfCn-5hzrh2PReiRrXwYKjMWt6U,2843
|
|
166
|
+
arviz/tests/external_tests/__init__.py,sha256=W-G7ubGjIx9U2mudENOmdTrPiZ9XGrl5bge5rTbfAB4,26
|
|
167
|
+
arviz/tests/external_tests/test_data_beanmachine.py,sha256=nwOJNJLrk5rY4M5YW-LT6gKsz1sFV-SMebXigMFHjhM,2647
|
|
168
|
+
arviz/tests/external_tests/test_data_cmdstan.py,sha256=jHy-dZrY4M7F4uYWf71fOxVwfPxgRpM9E3JAvpk03qA,16829
|
|
169
|
+
arviz/tests/external_tests/test_data_cmdstanpy.py,sha256=uCSOJVowKXccCPLpAwCiihghx_WxnUVyR8r801Xhw_0,18753
|
|
170
|
+
arviz/tests/external_tests/test_data_emcee.py,sha256=w-tsP74-n688C9-v_KIf0YxZg7S1WrhOdJUvaHS9e6I,6270
|
|
171
|
+
arviz/tests/external_tests/test_data_numpyro.py,sha256=TB5IkxlU3pMsjIgnxyhQaCkRkPWaK_d_YHEcs7XaWNo,11366
|
|
172
|
+
arviz/tests/external_tests/test_data_pyjags.py,sha256=kqZfV8QRnAngO9obnAq5lKPIuJdVJ82sbkIfSr2tpqY,4547
|
|
173
|
+
arviz/tests/external_tests/test_data_pyro.py,sha256=EaD_hZGALaSKQKK4OFgmuJ_1SsIYKessHQ7Jl9AKbw0,10771
|
|
174
|
+
arviz/tests/external_tests/test_data_pystan.py,sha256=ebg_JXkmAhXRllP0otjyourGF_fUaKMkwRfrQO6Glwk,11792
|
|
175
|
+
arviz/wrappers/__init__.py,sha256=d8GTUuBW_30LyDyk6qn2MAnvg-GZCeUw_i5SUPqaa1w,354
|
|
176
|
+
arviz/wrappers/base.py,sha256=Vvh330pdzIvBEaikHsDP1ej6L2jCZZ0Dqj5TvUbYesI,9134
|
|
177
|
+
arviz/wrappers/wrap_pymc.py,sha256=ltKv55aG0WTWXVDJuff5TXkgJJ_ESLvlT-JPlh3yHAg,1143
|
|
178
|
+
arviz/wrappers/wrap_stan.py,sha256=c40brlajoPcc3xk00xI9Hqc-y0xcbAmFAIZOtfXWeqo,5525
|
|
179
|
+
arviz-0.19.0.dist-info/LICENSE,sha256=xllut76FgcGL5zbIRvuRc7aezPbvlMUTWJPsVr2Sugg,11358
|
|
180
|
+
arviz-0.19.0.dist-info/METADATA,sha256=RlTHf-9M8LbhsQmURXX457_quT83XS_2LN7kCW95-28,8855
|
|
181
|
+
arviz-0.19.0.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
|
182
|
+
arviz-0.19.0.dist-info/top_level.txt,sha256=5MFvqrTtYRWsIx-SjKuFIUHtrnVJq0Ngd0Nc2_etQhE,6
|
|
183
|
+
arviz-0.19.0.dist-info/RECORD,,
|