Skip to content

Commit f977f57

Browse files
authored
Merge pull request #67 from pymc-devs/main
Sync Fork from Upstream Repo
2 parents c6aed31 + 4de95c3 commit f977f57

File tree

134 files changed

+10293
-10277
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

134 files changed

+10293
-10277
lines changed

.github/ISSUE_TEMPLATE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ If you have questions about a specific use case, or you are not sure whether thi
1818
## Versions and main components
1919

2020
* PyMC3 Version:
21-
* Aesara Version:
21+
* Aesara/Theano Version:
2222
* Python Version:
2323
* Operating system:
2424
* How did you install PyMC3: (conda/pip)

.github/workflows/arviz_compat.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ name: arviz-compatibility
33
on:
44
pull_request:
55
push:
6-
branches: [master]
6+
branches: [main]
77

88
jobs:
99
pytest:

.github/workflows/jaxtests.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ name: jax-sampling
33
on:
44
pull_request:
55
push:
6-
branches: [master]
6+
branches: [main]
77

88
jobs:
99
pytest:

.github/workflows/pre-commit.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ name: pre-commit
33
on:
44
pull_request:
55
push:
6-
branches: [master]
6+
branches: [main]
77

88
jobs:
99
pre-commit:

.github/workflows/pytest.yml

Lines changed: 56 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ name: pytest
33
on:
44
pull_request:
55
push:
6-
branches: [master]
6+
branches: [main]
77

88
jobs:
99
pytest:
@@ -12,52 +12,78 @@ jobs:
1212
os: [ubuntu-18.04]
1313
floatx: [float32, float64]
1414
test-subset:
15+
# Tests are split into multiple jobs to accelerate the CI.
16+
# The first job (starting in the next block) shouldn't run any tests, but
17+
# just ignores tests because that don't work at all, or run in other jobs.'
18+
# Any test that was not ignored runs in the first job.
19+
# A pre-commit hook (scripts/check_all_tests_are_covered.py) enforces that
20+
# test run just once.
21+
22+
# Because YAML doesn't allow comments in the blocks below, here they are..
23+
# 1st block: These tests are temporarily disabled, because they are _very_ broken
24+
# 2nd block: The JAX tests run through their own workflow: jaxtests.yml
25+
# 3nd & 4rd: These tests are covered by other matrix jobs
26+
# 5th block: These tests PASS without a single XFAIL
27+
# 6th block: These have some XFAILs
1528
- |
16-
--ignore=pymc3/tests/test_dist_math.py
17-
--ignore=pymc3/tests/test_distribution_defaults.py
18-
--ignore=pymc3/tests/test_distributions.py
19-
--ignore=pymc3/tests/test_distributions_random.py
2029
--ignore=pymc3/tests/test_distributions_timeseries.py
21-
--ignore=pymc3/tests/test_examples.py
22-
--ignore=pymc3/tests/test_gp.py
30+
--ignore=pymc3/tests/test_missing.py
2331
--ignore=pymc3/tests/test_mixture.py
24-
--ignore=pymc3/tests/test_ode.py
32+
--ignore=pymc3/tests/test_model_graph.py
33+
--ignore=pymc3/tests/test_modelcontext.py
2534
--ignore=pymc3/tests/test_parallel_sampling.py
26-
--ignore=pymc3/tests/test_posteriors.py
27-
--ignore=pymc3/tests/test_quadpotential.py
35+
--ignore=pymc3/tests/test_profile.py
2836
--ignore=pymc3/tests/test_random.py
29-
--ignore=pymc3/tests/test_sampling.py
30-
--ignore=pymc3/tests/test_sampling_jax.py
31-
--ignore=pymc3/tests/test_shape_handling.py
3237
--ignore=pymc3/tests/test_shared.py
3338
--ignore=pymc3/tests/test_smc.py
39+
--ignore=pymc3/tests/test_starting.py
3440
--ignore=pymc3/tests/test_step.py
35-
--ignore=pymc3/tests/test_updates.py
41+
--ignore=pymc3/tests/test_tracetab.py
42+
--ignore=pymc3/tests/test_tuning.py
43+
--ignore=pymc3/tests/test_types.py
3644
--ignore=pymc3/tests/test_variational_inference.py
45+
--ignore=pymc3/tests/test_sampling_jax.py
46+
--ignore=pymc3/tests/test_dist_math.py
47+
--ignore=pymc3/tests/test_minibatches.py
48+
--ignore=pymc3/tests/test_pickling.py
49+
--ignore=pymc3/tests/test_plots.py
50+
--ignore=pymc3/tests/test_special_functions.py
51+
--ignore=pymc3/tests/test_updates.py
52+
--ignore=pymc3/tests/test_examples.py
53+
--ignore=pymc3/tests/test_gp.py
54+
--ignore=pymc3/tests/test_model.py
55+
--ignore=pymc3/tests/test_model_func.py
56+
--ignore=pymc3/tests/test_ode.py
57+
--ignore=pymc3/tests/test_posdef_sym.py
58+
--ignore=pymc3/tests/test_quadpotential.py
59+
--ignore=pymc3/tests/test_shape_handling.py
60+
--ignore=pymc3/tests/test_distributions.py
61+
--ignore=pymc3/tests/test_distributions_random.py
62+
--ignore=pymc3/tests/test_idata_conversion.py
63+
3764
- |
65+
pymc3/tests/test_modelcontext.py
3866
pymc3/tests/test_dist_math.py
39-
pymc3/tests/test_distribution_defaults.py
40-
pymc3/tests/test_distributions_random.py
41-
pymc3/tests/test_parallel_sampling.py
42-
pymc3/tests/test_random.py
43-
pymc3/tests/test_shared.py
44-
pymc3/tests/test_smc.py
67+
pymc3/tests/test_minibatches.py
68+
pymc3/tests/test_pickling.py
69+
pymc3/tests/test_plots.py
70+
pymc3/tests/test_special_functions.py
71+
pymc3/tests/test_updates.py
72+
4573
- |
74+
pymc3/tests/test_idata_conversion.py
75+
pymc3/tests/test_distributions.py
76+
pymc3/tests/test_distributions_random.py
4677
pymc3/tests/test_examples.py
47-
pymc3/tests/test_mixture.py
78+
pymc3/tests/test_gp.py
79+
pymc3/tests/test_model.py
80+
pymc3/tests/test_model_func.py
4881
pymc3/tests/test_ode.py
49-
pymc3/tests/test_posteriors.py
82+
pymc3/tests/test_posdef_sym.py
5083
pymc3/tests/test_quadpotential.py
51-
- |
52-
pymc3/tests/test_distributions_timeseries.py
5384
pymc3/tests/test_shape_handling.py
5485
pymc3/tests/test_step.py
55-
pymc3/tests/test_updates.py
56-
pymc3/tests/test_variational_inference.py
57-
- |
58-
pymc3/tests/test_distributions.py
59-
pymc3/tests/test_gp.py
60-
pymc3/tests/test_sampling.py
86+
6187
fail-fast: false
6288
runs-on: ${{ matrix.os }}
6389
env:

.github/workflows/windows.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,11 @@ name: windows
33
on:
44
pull_request:
55
push:
6-
branches: [master]
6+
branches: [main]
77

88
jobs:
99
pytest:
10+
if: false
1011
strategy:
1112
matrix:
1213
os: [windows-latest]

CONTRIBUTING.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ The preferred workflow for contributing to PyMC3 is to fork the [GitHub reposito
4343
$ git checkout -b my-feature
4444
```
4545

46-
Always use a ``feature`` branch. It's good practice to never routinely work on the ``master`` branch of any repository.
46+
Always use a ``feature`` branch. It's good practice to never routinely work on the ``main`` branch of any repository.
4747

4848
4. Project requirements are in ``requirements.txt``, and libraries used for development are in ``requirements-dev.txt``. The easiest (and recommended) way to set up a development environment is via [miniconda](https://docs.conda.io/en/latest/miniconda.html):
4949

@@ -73,7 +73,7 @@ The preferred workflow for contributing to PyMC3 is to fork the [GitHub reposito
7373
After committing, it is a good idea to sync with the base repository in case there have been any changes:
7474
```bash
7575
$ git fetch upstream
76-
$ git rebase upstream/master
76+
$ git rebase upstream/main
7777
```
7878

7979
Then push the changes to your GitHub account with:

README.rst

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
.. image:: https://cdn.rawgit.com/pymc-devs/pymc3/master/docs/logos/svg/PyMC3_banner.svg
1+
.. image:: https://cdn.rawgit.com/pymc-devs/pymc3/main/docs/logos/svg/PyMC3_banner.svg
22
:height: 100px
33
:alt: PyMC3 logo
44
:align: center
@@ -11,7 +11,7 @@ algorithms. Its flexibility and extensibility make it applicable to a
1111
large suite of problems.
1212

1313
Check out the `getting started guide <http://docs.pymc.io/notebooks/getting_started>`__, or
14-
`interact with live examples <https://mybinder.org/v2/gh/pymc-devs/pymc3/master?filepath=%2Fdocs%2Fsource%2Fnotebooks>`__
14+
`interact with live examples <https://mybinder.org/v2/gh/pymc-devs/pymc3/main?filepath=%2Fdocs%2Fsource%2Fnotebooks>`__
1515
using Binder!
1616
For questions on PyMC3, head on over to our `PyMC Discourse <https://discourse.pymc.io/>`__ forum.
1717

@@ -100,7 +100,7 @@ License
100100
=======
101101

102102
`Apache License, Version
103-
2.0 <https://github.com/pymc-devs/pymc3/blob/master/LICENSE>`__
103+
2.0 <https://github.com/pymc-devs/pymc3/blob/main/LICENSE>`__
104104

105105

106106
Software using PyMC3
@@ -129,7 +129,7 @@ Contributors
129129
============
130130

131131
See the `GitHub contributor
132-
page <https://github.com/pymc-devs/pymc3/graphs/contributors>`__. Also read our `Code of Conduct <https://github.com/pymc-devs/pymc3/blob/master/CODE_OF_CONDUCT.md>`__ guidelines for a better contributing experience.
132+
page <https://github.com/pymc-devs/pymc3/graphs/contributors>`__. Also read our `Code of Conduct <https://github.com/pymc-devs/pymc3/blob/main/CODE_OF_CONDUCT.md>`__ guidelines for a better contributing experience.
133133

134134
Support
135135
=======
@@ -158,20 +158,20 @@ Sponsors
158158
|ODSC|
159159

160160
.. |Binder| image:: https://mybinder.org/badge_logo.svg
161-
:target: https://mybinder.org/v2/gh/pymc-devs/pymc3/master?filepath=%2Fdocs%2Fsource%2Fnotebooks
161+
:target: https://mybinder.org/v2/gh/pymc-devs/pymc3/main?filepath=%2Fdocs%2Fsource%2Fnotebooks
162162
.. |Build Status| image:: https://github.com/pymc-devs/pymc3/workflows/pytest/badge.svg
163163
:target: https://github.com/pymc-devs/pymc3/actions
164-
.. |Coverage| image:: https://codecov.io/gh/pymc-devs/pymc3/branch/master/graph/badge.svg
164+
.. |Coverage| image:: https://codecov.io/gh/pymc-devs/pymc3/branch/main/graph/badge.svg
165165
:target: https://codecov.io/gh/pymc-devs/pymc3
166166
.. |Dockerhub| image:: https://img.shields.io/docker/automated/pymc/pymc3.svg
167167
:target: https://hub.docker.com/r/pymc/pymc3
168168
.. |NumFOCUS| image:: https://www.numfocus.org/wp-content/uploads/2017/03/1457562110.png
169169
:target: http://www.numfocus.org/
170-
.. |Quantopian| image:: https://raw.githubusercontent.com/pymc-devs/pymc3/master/docs/quantopianlogo.jpg
170+
.. |Quantopian| image:: https://raw.githubusercontent.com/pymc-devs/pymc3/main/docs/quantopianlogo.jpg
171171
:target: https://quantopian.com
172172
.. |NumFOCUS_badge| image:: https://img.shields.io/badge/powered%20by-NumFOCUS-orange.svg?style=flat&colorA=E1523D&colorB=007D8A
173173
:target: http://www.numfocus.org/
174-
.. |ODSC| image:: https://raw.githubusercontent.com/pymc-devs/pymc3/master/docs/odsc_logo.png
174+
.. |ODSC| image:: https://raw.githubusercontent.com/pymc-devs/pymc3/main/docs/odsc_logo.png
175175
:target: https://odsc.com
176176
.. |tidelift| image:: https://img.shields.io/badge/-lifted!-2dd160.svg?colorA=58595b&style=flat&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAOCAYAAADJ7fe0AAAAAXNSR0IArs4c6QAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAAVlpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iPgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KTMInWQAAAVhJREFUKBV1kj0vBFEUhmd2sdZHh2IlGhKFQuOviEYiNlFodCqtUqPxA%2FwCjUTnDygkGoVERFQaZFlE9nreO%2BdM5u5wkifvuee892Pu3CyEcA0DeIc%2B9IwftJsR6Cko3uCjguZdjuBZhhwmYDjGrOC96WED41UtsgEdGEAPlmAfpuAbFF%2BFZLfoMfRBGzThDtLgePPwBIpdddGzOArhPHUXowbNptE2www6a%2Fm96Y3pHN7oQ1s%2B13pxt1ENaKzBFWyWzaJ%2BRO0C9Jny6VPSoKjLVbMDC5bn5OPuJF%2BBSe95PVEMuugY5AegS9fCh7BedP45hRnj8TC34QQUe9bTZyh2KgvFk2vc8GIlXyTfsvqr6bPpNgv52ynnlomZJNpB70Xhl%2Bf6Sa02p1bApEfnETwxVa%2Faj%2BW%2FFtHltmxS%2FO3krvpTtTnVgu%2F6gvHRFvG78Ef3kOe5PimJXycY74blT5R%2BAAAAAElFTkSuQmCC
177177
:target: https://tidelift.com/subscription/pkg/pypi-pymc3?utm_source=pypi-pymc3&utm_medium=referral&utm_campaign=enterprise

RELEASE-NOTES.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,26 @@
44
### Breaking Changes
55
- ⚠ Theano-PyMC has been replaced with Aesara, so all external references to `theano`, `tt`, and `pymc3.theanof` need to be replaced with `aesara`, `at`, and `pymc3.aesaraf` (see [4471](https://github.com/pymc-devs/pymc3/pull/4471)).
66
- ArviZ `plots` and `stats` *wrappers* were removed. The functions are now just available by their original names (see [#4549](https://github.com/pymc-devs/pymc3/pull/4471) and `3.11.2` release notes).
7+
- The GLM submodule has been removed, please use [Bambi](https://bambinos.github.io/bambi/) instead.
8+
- The `Distribution` keyword argument `testval` has been deprecated in favor of `initval`.
9+
- `pm.sample` now returns results as `InferenceData` instead of `MultiTrace` by default (see [#4744](https://github.com/pymc-devs/pymc3/pull/4744)).
710
- ...
811

912
### New Features
1013
- The `CAR` distribution has been added to allow for use of conditional autoregressions which often are used in spatial and network models.
14+
- The dimensionality of model variables can now be parametrized through either of `shape`, `dims` or `size` (see [#4696](https://github.com/pymc-devs/pymc3/pull/4696)):
15+
- With `shape` the length of dimensions must be given numerically or as scalar Aesara `Variables`. Numeric entries in `shape` restrict the model variable to the exact length and re-sizing is no longer possible.
16+
- `dims` keeps model variables re-sizeable (for example through `pm.Data`) and leads to well defined coordinates in `InferenceData` objects.
17+
- The `size` kwarg behaves like it does in Aesara/NumPy. For univariate RVs it is the same as `shape`, but for multivariate RVs it depends on how the RV implements broadcasting to dimensionality greater than `RVOp.ndim_supp`.
18+
- An `Ellipsis` (`...`) in the last position of `shape` or `dims` can be used as short-hand notation for implied dimensions.
19+
- Add `logcdf` method to Kumaraswamy distribution (see [#4706](https://github.com/pymc-devs/pymc3/pull/4706)).
1120
- ...
1221

1322
### Maintenance
1423
- Remove float128 dtype support (see [#4514](https://github.com/pymc-devs/pymc3/pull/4514)).
1524
- Logp method of `Uniform` and `DiscreteUniform` no longer depends on `pymc3.distributions.dist_math.bound` for proper evaluation (see [#4541](https://github.com/pymc-devs/pymc3/pull/4541)).
25+
- `Model.RV_dims` and `Model.coords` are now read-only properties. To modify the `coords` dictionary use `Model.add_coord`. Also `dims` or coordinate values that are `None` will be auto-completed (see [#4625](https://github.com/pymc-devs/pymc3/pull/4625)).
26+
- The length of `dims` in the model is now tracked symbolically through `Model.dim_lengths` (see [#4625](https://github.com/pymc-devs/pymc3/pull/4625)).
1627
- ...
1728

1829
## PyMC3 3.11.2 (14 March 2021)

benchmarks/asv.conf.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@
1313
// project being benchmarked
1414
"repo": "..",
1515

16-
// List of branches to benchmark. If not provided, defaults to "master"
16+
// List of branches to benchmark. If not provided, defaults to "main"
1717
// (for git) or "tip" (for mercurial).
18-
"branches": ["master"],
18+
"branches": ["main"],
1919

2020
// The DVCS being used. If not set, it will be automatically
2121
// determined from "repo" by looking at the protocol in the URL

0 commit comments

Comments
 (0)