Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-emcee for openSUSE:Factory 
checked in at 2022-05-30 12:43:56
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-emcee (Old)
 and      /work/SRC/openSUSE:Factory/.python-emcee.new.2254 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-emcee"

Mon May 30 12:43:56 2022 rev:5 rq:979711 version:3.1.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-emcee/python-emcee.changes        
2021-09-20 23:34:35.183279812 +0200
+++ /work/SRC/openSUSE:Factory/.python-emcee.new.2254/python-emcee.changes      
2022-05-30 12:44:50.320461462 +0200
@@ -1,0 +2,7 @@
+Sun May 29 15:29:08 UTC 2022 - Atri Bhattacharya <badshah...@gmail.com>
+
+- Update to version 3.1.2:
+  - Make the sample state indexable [gh#dfm/emcee#425].
+  - Remove NumPy from SETUP_REQUIRES [gh#dfm/emcee#427].
+
+-------------------------------------------------------------------

Old:
----
  emcee-3.1.1.tar.gz

New:
----
  emcee-3.1.2.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-emcee.spec ++++++
--- /var/tmp/diff_new_pack.0EgquM/_old  2022-05-30 12:44:50.888462218 +0200
+++ /var/tmp/diff_new_pack.0EgquM/_new  2022-05-30 12:44:50.892462224 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package python-emcee
 #
-# Copyright (c) 2021 SUSE LLC
+# Copyright (c) 2022 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -20,7 +20,7 @@
 # NEP 29: python36-numpy and -scipy are no longer available in TW
 %define         skip_python36 1
 Name:           python-emcee
-Version:        3.1.1
+Version:        3.1.2
 Release:        0
 Summary:        Python affine-invariant ensemble MCMC sampling
 License:        MIT

++++++ emcee-3.1.1.tar.gz -> emcee-3.1.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/emcee-3.1.1/.github/workflows/tests.yml 
new/emcee-3.1.2/.github/workflows/tests.yml
--- old/emcee-3.1.1/.github/workflows/tests.yml 2021-08-23 17:16:30.000000000 
+0200
+++ new/emcee-3.1.2/.github/workflows/tests.yml 2022-05-10 17:20:45.000000000 
+0200
@@ -16,12 +16,12 @@
     runs-on: ${{ matrix.os }}
     strategy:
       matrix:
-        python-version: ["3.7", "3.8", "3.9"]
+        python-version: ["3.7", "3.8", "3.9", "3.10"]
         os: ["ubuntu-latest"]
         include:
-          - python-version: "3.8"
+          - python-version: "3.9"
             os: "macos-latest"
-          - python-version: "3.8"
+          - python-version: "3.9"
             os: "windows-latest"
 
     steps:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/emcee-3.1.1/.gitignore new/emcee-3.1.2/.gitignore
--- old/emcee-3.1.1/.gitignore  2021-08-23 17:16:30.000000000 +0200
+++ new/emcee-3.1.2/.gitignore  2022-05-10 17:20:45.000000000 +0200
@@ -22,3 +22,4 @@
 .tox
 env
 .eggs
+.coverage.*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/emcee-3.1.1/.pre-commit-config.yaml 
new/emcee-3.1.2/.pre-commit-config.yaml
--- old/emcee-3.1.1/.pre-commit-config.yaml     2021-08-23 17:16:30.000000000 
+0200
+++ new/emcee-3.1.2/.pre-commit-config.yaml     2022-05-10 17:20:45.000000000 
+0200
@@ -1,14 +1,14 @@
 
 repos:
 - repo: https://github.com/pre-commit/pre-commit-hooks
-  rev: v4.0.1
+  rev: v4.2.0
   hooks:
   - id: trailing-whitespace
   - id: end-of-file-fixer
   - id: debug-statements
 
 - repo: https://github.com/PyCQA/isort
-  rev: "5.9.3"
+  rev: "5.10.1"
   hooks:
   - id: isort
     args: []
@@ -16,11 +16,11 @@
     exclude: docs/tutorials
 
 - repo: https://github.com/psf/black
-  rev: "21.7b0"
+  rev: "22.3.0"
   hooks:
   - id: black
 
 - repo: https://github.com/dfm/black_nbconvert
-  rev: v0.3.0
+  rev: v0.4.0
   hooks:
   - id: black_nbconvert
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/emcee-3.1.1/HISTORY.rst new/emcee-3.1.2/HISTORY.rst
--- old/emcee-3.1.1/HISTORY.rst 2021-08-23 17:16:30.000000000 +0200
+++ new/emcee-3.1.2/HISTORY.rst 2022-05-10 17:20:45.000000000 +0200
@@ -1,5 +1,12 @@
 .. :changelog:
 
+3.1.2 (2022-05-10)
+++++++++++++++++++
+
+- Removed ``numpy`` from ``setup_requires`` `#427 
<https://github.com/dfm/emcee/pull/427>`_
+- Made the sampler state indexable `#425 
<https://github.com/dfm/emcee/pull/425>`_
+
+
 3.1.1 (2021-08-23)
 ++++++++++++++++++
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/emcee-3.1.1/PKG-INFO new/emcee-3.1.2/PKG-INFO
--- old/emcee-3.1.1/PKG-INFO    2021-08-23 17:16:43.005506300 +0200
+++ new/emcee-3.1.2/PKG-INFO    2022-05-10 17:20:57.214236000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: emcee
-Version: 3.1.1
+Version: 3.1.2
 Summary: The Python ensemble sampling toolkit for MCMC
 Home-page: https://emcee.readthedocs.io
 Author: Daniel Foreman-Mackey
@@ -8,6 +8,7 @@
 Maintainer: Daniel Foreman-Mackey
 Maintainer-email: foreman.mac...@gmail.com
 License: MIT
+Project-URL: Source, https://github.com/dfm/emcee
 Platform: UNKNOWN
 Classifier: Development Status :: 5 - Production/Stable
 Classifier: Intended Audience :: Developers
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/emcee-3.1.1/docs/conf.py new/emcee-3.1.2/docs/conf.py
--- old/emcee-3.1.1/docs/conf.py        2021-08-23 17:16:30.000000000 +0200
+++ new/emcee-3.1.2/docs/conf.py        2022-05-10 17:20:45.000000000 +0200
@@ -48,5 +48,5 @@
     "use_repository_button": True,
     "use_download_button": True,
 }
-jupyter_execute_notebooks = "off"
-execution_timeout = -1
+nb_execution_mode = "off"
+nb_execution_timeout = -1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/emcee-3.1.1/docs/requirements.txt 
new/emcee-3.1.2/docs/requirements.txt
--- old/emcee-3.1.1/docs/requirements.txt       2021-08-23 17:16:30.000000000 
+0200
+++ new/emcee-3.1.2/docs/requirements.txt       2022-05-10 17:20:45.000000000 
+0200
@@ -1,4 +1,4 @@
-sphinx-book-theme @ git+https://github.com/dfm/sphinx-book-theme.git@fix-outdir
+sphinx-book-theme
 myst-nb
 matplotlib
 scipy
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/emcee-3.1.1/docs/tutorials/autocorr.ipynb 
new/emcee-3.1.2/docs/tutorials/autocorr.ipynb
--- old/emcee-3.1.1/docs/tutorials/autocorr.ipynb       2021-08-23 
17:16:30.000000000 +0200
+++ new/emcee-3.1.2/docs/tutorials/autocorr.ipynb       2022-05-10 
17:20:45.000000000 +0200
@@ -450,7 +450,7 @@
     "\n",
     "\n",
     "def log_prob(p):\n",
-    "    return np.logaddexp(-0.5 * np.sum(p ** 2), -0.5 * np.sum((p - 4.0) ** 
2))\n",
+    "    return np.logaddexp(-0.5 * np.sum(p**2), -0.5 * np.sum((p - 4.0) ** 
2))\n",
     "\n",
     "\n",
     "sampler = emcee.EnsembleSampler(32, 3, log_prob)\n",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/emcee-3.1.1/docs/tutorials/line.ipynb 
new/emcee-3.1.2/docs/tutorials/line.ipynb
--- old/emcee-3.1.1/docs/tutorials/line.ipynb   2021-08-23 17:16:30.000000000 
+0200
+++ new/emcee-3.1.2/docs/tutorials/line.ipynb   2022-05-10 17:20:45.000000000 
+0200
@@ -148,9 +148,9 @@
    "source": [
     "A = np.vander(x, 2)\n",
     "C = np.diag(yerr * yerr)\n",
-    "ATA = np.dot(A.T, A / (yerr ** 2)[:, None])\n",
+    "ATA = np.dot(A.T, A / (yerr**2)[:, None])\n",
     "cov = np.linalg.inv(ATA)\n",
-    "w = np.linalg.solve(ATA, np.dot(A.T, y / yerr ** 2))\n",
+    "w = np.linalg.solve(ATA, np.dot(A.T, y / yerr**2))\n",
     "print(\"Least-squares estimates:\")\n",
     "print(\"m = {0:.3f} ?? {1:.3f}\".format(w[0], np.sqrt(cov[0, 0])))\n",
     "print(\"b = {0:.3f} ?? {1:.3f}\".format(w[1], np.sqrt(cov[1, 1])))\n",
@@ -218,7 +218,7 @@
     "def log_likelihood(theta, x, y, yerr):\n",
     "    m, b, log_f = theta\n",
     "    model = m * x + b\n",
-    "    sigma2 = yerr ** 2 + model ** 2 * np.exp(2 * log_f)\n",
+    "    sigma2 = yerr**2 + model**2 * np.exp(2 * log_f)\n",
     "    return -0.5 * np.sum((y - model) ** 2 / sigma2 + np.log(sigma2))"
    ]
   },
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/emcee-3.1.1/docs/tutorials/monitor.ipynb 
new/emcee-3.1.2/docs/tutorials/monitor.ipynb
--- old/emcee-3.1.1/docs/tutorials/monitor.ipynb        2021-08-23 
17:16:30.000000000 +0200
+++ new/emcee-3.1.2/docs/tutorials/monitor.ipynb        2022-05-10 
17:20:45.000000000 +0200
@@ -58,7 +58,7 @@
     "# We'll also use the \"blobs\" feature to track the \"log prior\" for 
each step\n",
     "def log_prob(theta):\n",
     "    log_prior = -0.5 * np.sum((theta - 1.0) ** 2 / 100.0)\n",
-    "    log_prob = -0.5 * np.sum(theta ** 2) + log_prior\n",
+    "    log_prob = -0.5 * np.sum(theta**2) + log_prior\n",
     "    return log_prob, log_prior\n",
     "\n",
     "\n",
@@ -341,7 +341,7 @@
     "# this time, with a subtly different prior\n",
     "def log_prob2(theta):\n",
     "    log_prior = -0.5 * np.sum((theta - 2.0) ** 2 / 100.0)\n",
-    "    log_prob = -0.5 * np.sum(theta ** 2) + log_prior\n",
+    "    log_prob = -0.5 * np.sum(theta**2) + log_prior\n",
     "    return log_prob, log_prior\n",
     "\n",
     "\n",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/emcee-3.1.1/docs/tutorials/parallel.ipynb 
new/emcee-3.1.2/docs/tutorials/parallel.ipynb
--- old/emcee-3.1.1/docs/tutorials/parallel.ipynb       2021-08-23 
17:16:30.000000000 +0200
+++ new/emcee-3.1.2/docs/tutorials/parallel.ipynb       2022-05-10 
17:20:45.000000000 +0200
@@ -85,7 +85,7 @@
     "    while True:\n",
     "        if time.time() >= t:\n",
     "            break\n",
-    "    return -0.5 * np.sum(theta ** 2)"
+    "    return -0.5 * np.sum(theta**2)"
    ]
   },
   {
@@ -348,7 +348,7 @@
     "    while True:\n",
     "        if time.time() >= t:\n",
     "            break\n",
-    "    return -0.5 * np.sum(theta ** 2)\n",
+    "    return -0.5 * np.sum(theta**2)\n",
     "\n",
     "\n",
     "data = np.random.randn(5000, 200)\n",
@@ -459,7 +459,7 @@
     "    while True:\n",
     "        if time.time() >= t:\n",
     "            break\n",
-    "    return -0.5 * np.sum(theta ** 2)\n",
+    "    return -0.5 * np.sum(theta**2)\n",
     "\n",
     "\n",
     "with Pool() as pool:\n",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/emcee-3.1.1/docs/tutorials/quickstart.ipynb 
new/emcee-3.1.2/docs/tutorials/quickstart.ipynb
--- old/emcee-3.1.1/docs/tutorials/quickstart.ipynb     2021-08-23 
17:16:30.000000000 +0200
+++ new/emcee-3.1.2/docs/tutorials/quickstart.ipynb     2022-05-10 
17:20:45.000000000 +0200
@@ -101,7 +101,7 @@
     "np.random.seed(42)\n",
     "means = np.random.rand(ndim)\n",
     "\n",
-    "cov = 0.5 - np.random.rand(ndim ** 2).reshape((ndim, ndim))\n",
+    "cov = 0.5 - np.random.rand(ndim**2).reshape((ndim, ndim))\n",
     "cov = np.triu(cov)\n",
     "cov += cov.T - np.diag(cov.diagonal())\n",
     "cov = np.dot(cov, cov)"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/emcee-3.1.1/pyproject.toml 
new/emcee-3.1.2/pyproject.toml
--- old/emcee-3.1.1/pyproject.toml      2021-08-23 17:16:30.000000000 +0200
+++ new/emcee-3.1.2/pyproject.toml      2022-05-10 17:20:45.000000000 +0200
@@ -4,7 +4,6 @@
 
 [tool.black]
 line-length = 79
-target-version = ['py35']
 exclude = '''
 /(
     \.eggs
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/emcee-3.1.1/setup.py new/emcee-3.1.2/setup.py
--- old/emcee-3.1.1/setup.py    2021-08-23 17:16:30.000000000 +0200
+++ new/emcee-3.1.2/setup.py    2022-05-10 17:20:45.000000000 +0200
@@ -23,7 +23,7 @@
     "Programming Language :: Python",
 ]
 INSTALL_REQUIRES = ["numpy"]
-SETUP_REQUIRES = INSTALL_REQUIRES + [
+SETUP_REQUIRES = [
     "setuptools>=40.6.0",
     "setuptools_scm",
     "wheel",
@@ -67,6 +67,9 @@
         maintainer=find_meta("author"),
         maintainer_email=find_meta("email"),
         url=find_meta("uri"),
+        project_urls={
+            "Source": "https://github.com/dfm/emcee";,
+        },
         license=find_meta("license"),
         description=find_meta("description"),
         long_description=read("README.rst"),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/emcee-3.1.1/src/emcee/emcee_version.py 
new/emcee-3.1.2/src/emcee/emcee_version.py
--- old/emcee-3.1.1/src/emcee/emcee_version.py  2021-08-23 17:16:42.000000000 
+0200
+++ new/emcee-3.1.2/src/emcee/emcee_version.py  2022-05-10 17:20:55.000000000 
+0200
@@ -1 +1 @@
-__version__ = "3.1.1"
+__version__ = "3.1.2"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/emcee-3.1.1/src/emcee/ensemble.py 
new/emcee-3.1.2/src/emcee/ensemble.py
--- old/emcee-3.1.1/src/emcee/ensemble.py       2021-08-23 17:16:30.000000000 
+0200
+++ new/emcee-3.1.2/src/emcee/ensemble.py       2022-05-10 17:20:45.000000000 
+0200
@@ -642,7 +642,7 @@
     if np.any(C_colmax == 0):
         return False
     C /= C_colmax
-    C_colsum = np.sqrt(np.sum(C ** 2, axis=0))
+    C_colsum = np.sqrt(np.sum(C**2, axis=0))
     C /= C_colsum
     return np.linalg.cond(C.astype(float)) <= 1e8
 
@@ -655,11 +655,11 @@
 
 
 def _scaled_cond(a):
-    asum = np.sqrt((a ** 2).sum(axis=0))[None, :]
+    asum = np.sqrt((a**2).sum(axis=0))[None, :]
     if np.any(asum == 0):
         return np.inf
     b = a / asum
-    bsum = np.sqrt((b ** 2).sum(axis=1))[:, None]
+    bsum = np.sqrt((b**2).sum(axis=1))[:, None]
     if np.any(bsum == 0):
         return np.inf
     c = b / bsum
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/emcee-3.1.1/src/emcee/state.py 
new/emcee-3.1.2/src/emcee/state.py
--- old/emcee-3.1.1/src/emcee/state.py  2021-08-23 17:16:30.000000000 +0200
+++ new/emcee-3.1.2/src/emcee/state.py  2022-05-10 17:20:45.000000000 +0200
@@ -44,6 +44,11 @@
         self.blobs = dc(blobs)
         self.random_state = dc(random_state)
 
+    def __len__(self):
+        if self.blobs is None:
+            return 3
+        return 4
+
     def __repr__(self):
         return "State({0}, log_prob={1}, blobs={2}, random_state={3})".format(
             self.coords, self.log_prob, self.blobs, self.random_state
@@ -55,3 +60,16 @@
         return iter(
             (self.coords, self.log_prob, self.random_state, self.blobs)
         )
+
+    def __getitem__(self, index):
+        if index < 0:
+            return self[len(self) + index]
+        if index == 0:
+            return self.coords
+        elif index == 1:
+            return self.log_prob
+        elif index == 2:
+            return self.random_state
+        elif index == 3 and self.blobs is not None:
+            return self.blobs
+        raise IndexError("Invalid index '{0}'".format(index))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/emcee-3.1.1/src/emcee/tests/integration/test_longdouble.py 
new/emcee-3.1.2/src/emcee/tests/integration/test_longdouble.py
--- old/emcee-3.1.1/src/emcee/tests/integration/test_longdouble.py      
2021-08-23 17:16:30.000000000 +0200
+++ new/emcee-3.1.2/src/emcee/tests/integration/test_longdouble.py      
2022-05-10 17:20:45.000000000 +0200
@@ -7,7 +7,7 @@
 
 def test_longdouble_doesnt_crash_bug_312():
     def log_prob(x, ivar):
-        return -0.5 * np.sum(ivar * x ** 2)
+        return -0.5 * np.sum(ivar * x**2)
 
     ndim, nwalkers = 5, 20
     ivar = 1.0 / np.random.rand(ndim).astype(np.longdouble)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/emcee-3.1.1/src/emcee/tests/integration/test_proposal.py 
new/emcee-3.1.2/src/emcee/tests/integration/test_proposal.py
--- old/emcee-3.1.1/src/emcee/tests/integration/test_proposal.py        
2021-08-23 17:16:30.000000000 +0200
+++ new/emcee-3.1.2/src/emcee/tests/integration/test_proposal.py        
2022-05-10 17:20:45.000000000 +0200
@@ -15,11 +15,11 @@
 
 
 def normal_log_prob_blobs(params):
-    return -0.5 * np.sum(params ** 2), params
+    return -0.5 * np.sum(params**2), params
 
 
 def normal_log_prob(params):
-    return -0.5 * np.sum(params ** 2)
+    return -0.5 * np.sum(params**2)
 
 
 def uniform_log_prob(params):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/emcee-3.1.1/src/emcee/tests/unit/test_backends.py 
new/emcee-3.1.2/src/emcee/tests/unit/test_backends.py
--- old/emcee-3.1.1/src/emcee/tests/unit/test_backends.py       2021-08-23 
17:16:30.000000000 +0200
+++ new/emcee-3.1.2/src/emcee/tests/unit/test_backends.py       2022-05-10 
17:20:45.000000000 +0200
@@ -23,7 +23,7 @@
 
 
 def normal_log_prob(params):
-    return -0.5 * np.sum(params ** 2)
+    return -0.5 * np.sum(params**2)
 
 
 def normal_log_prob_blobs(params):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/emcee-3.1.1/src/emcee/tests/unit/test_blobs.py 
new/emcee-3.1.2/src/emcee/tests/unit/test_blobs.py
--- old/emcee-3.1.1/src/emcee/tests/unit/test_blobs.py  2021-08-23 
17:16:30.000000000 +0200
+++ new/emcee-3.1.2/src/emcee/tests/unit/test_blobs.py  2022-05-10 
17:20:45.000000000 +0200
@@ -15,7 +15,7 @@
         self.blob_function = blob_function
 
     def __call__(self, params):
-        return -0.5 * np.sum(params ** 2), self.blob_function(params)
+        return -0.5 * np.sum(params**2), self.blob_function(params)
 
 
 @pytest.mark.parametrize("backend", backends.get_test_backends())
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/emcee-3.1.1/src/emcee/tests/unit/test_sampler.py 
new/emcee-3.1.2/src/emcee/tests/unit/test_sampler.py
--- old/emcee-3.1.1/src/emcee/tests/unit/test_sampler.py        2021-08-23 
17:16:30.000000000 +0200
+++ new/emcee-3.1.2/src/emcee/tests/unit/test_sampler.py        2022-05-10 
17:20:45.000000000 +0200
@@ -14,7 +14,7 @@
 
 
 def normal_log_prob(params):
-    return -0.5 * np.sum(params ** 2)
+    return -0.5 * np.sum(params**2)
 
 
 @pytest.mark.parametrize(
@@ -211,7 +211,7 @@
 
 def test_vectorize():
     def lp_vec(p):
-        return -0.5 * np.sum(p ** 2, axis=1)
+        return -0.5 * np.sum(p**2, axis=1)
 
     np.random.seed(42)
     nwalkers, ndim = 32, 3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/emcee-3.1.1/src/emcee/tests/unit/test_state.py 
new/emcee-3.1.2/src/emcee/tests/unit/test_state.py
--- old/emcee-3.1.1/src/emcee/tests/unit/test_state.py  2021-08-23 
17:16:30.000000000 +0200
+++ new/emcee-3.1.2/src/emcee/tests/unit/test_state.py  2022-05-10 
17:20:45.000000000 +0200
@@ -1,11 +1,16 @@
 # -*- coding: utf-8 -*-
 
 import numpy as np
+import pytest
 
 from emcee import EnsembleSampler
 from emcee.state import State
 
 
+def check_rstate(a, b):
+    assert all(np.allclose(a_, b_) for a_, b_ in zip(a[1:], b[1:]))
+
+
 def test_back_compat(seed=1234):
     np.random.seed(seed)
     coords = np.random.randn(16, 3)
@@ -18,20 +23,20 @@
     assert np.allclose(coords, c)
     assert np.allclose(log_prob, l)
     assert np.allclose(blobs, b)
-    assert all(np.allclose(a, b) for a, b in zip(rstate[1:], r[1:]))
+    check_rstate(rstate, r)
 
     state = State(coords, log_prob, None, rstate)
     c, l, r = state
     assert np.allclose(coords, c)
     assert np.allclose(log_prob, l)
-    assert all(np.allclose(a, b) for a, b in zip(rstate[1:], r[1:]))
+    check_rstate(rstate, r)
 
 
 def test_overwrite(seed=1234):
     np.random.seed(seed)
 
     def ll(x):
-        return -0.5 * np.sum(x ** 2)
+        return -0.5 * np.sum(x**2)
 
     nwalkers = 64
     p0 = np.random.normal(size=(nwalkers, 1))
@@ -40,3 +45,28 @@
     sampler = EnsembleSampler(nwalkers, 1, ll)
     sampler.run_mcmc(p0, 10)
     assert np.allclose(init, p0)
+
+
+def test_indexing(seed=1234):
+    np.random.seed(seed)
+    coords = np.random.randn(16, 3)
+    log_prob = np.random.randn(len(coords))
+    blobs = np.random.randn(len(coords))
+    rstate = np.random.get_state()
+
+    state = State(coords, log_prob, blobs, rstate)
+    np.testing.assert_allclose(state[0], state.coords)
+    np.testing.assert_allclose(state[1], state.log_prob)
+    check_rstate(state[2], state.random_state)
+    np.testing.assert_allclose(state[3], state.blobs)
+    np.testing.assert_allclose(state[-1], state.blobs)
+    with pytest.raises(IndexError):
+        state[4]
+
+    state = State(coords, log_prob, random_state=rstate)
+    np.testing.assert_allclose(state[0], state.coords)
+    np.testing.assert_allclose(state[1], state.log_prob)
+    check_rstate(state[2], state.random_state)
+    check_rstate(state[-1], state.random_state)
+    with pytest.raises(IndexError):
+        state[3]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/emcee-3.1.1/src/emcee.egg-info/PKG-INFO 
new/emcee-3.1.2/src/emcee.egg-info/PKG-INFO
--- old/emcee-3.1.1/src/emcee.egg-info/PKG-INFO 2021-08-23 17:16:42.000000000 
+0200
+++ new/emcee-3.1.2/src/emcee.egg-info/PKG-INFO 2022-05-10 17:20:56.000000000 
+0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: emcee
-Version: 3.1.1
+Version: 3.1.2
 Summary: The Python ensemble sampling toolkit for MCMC
 Home-page: https://emcee.readthedocs.io
 Author: Daniel Foreman-Mackey
@@ -8,6 +8,7 @@
 Maintainer: Daniel Foreman-Mackey
 Maintainer-email: foreman.mac...@gmail.com
 License: MIT
+Project-URL: Source, https://github.com/dfm/emcee
 Platform: UNKNOWN
 Classifier: Development Status :: 5 - Production/Stable
 Classifier: Intended Audience :: Developers
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/emcee-3.1.1/tox.ini new/emcee-3.1.2/tox.ini
--- old/emcee-3.1.1/tox.ini     2021-08-23 17:16:30.000000000 +0200
+++ new/emcee-3.1.2/tox.ini     2022-05-10 17:20:45.000000000 +0200
@@ -1,11 +1,12 @@
 [tox]
-envlist = py{37,38,39}{,-extras},lint
+envlist = py{37,38,39,310}{,-extras},lint
 
 [gh-actions]
 python =
     3.7: py37
     3.8: py38
     3.9: py39-extras
+    3.10: py310
 
 [testenv]
 deps = coverage[toml]

Reply via email to