Fix pzmap grid (matplotlib angle_helper) by bnavigator · Pull Request #456 · python-control/python-control
Traceback (most recent call last):
959 File "pvtol-nested.py", line 169, in <module>
960 P, Z = pzmap(T, plot=True, grid=True)
961 File "/home/travis/build/python-control/python-control/control/pzmap.py", line 106, in pzmap
962 ax, fig = sgrid()
963 File "/home/travis/build/python-control/python-control/control/grid.py", line 82, in sgrid
964 ax.axis["wnxneg"] = axis = ax.new_floating_axis(0, 180)
965 File "/home/travis/miniconda/envs/test-environment/lib/python3.6/site-packages/mpl_toolkits/axisartist/axislines.py", line 575, in new_floating_axis
966 axes=self)
967 File "/home/travis/miniconda/envs/test-environment/lib/python3.6/site-packages/mpl_toolkits/axisartist/grid_helper_curvelinear.py", line 350, in new_floating_axis
968 axisline = AxisArtist(axes, _helper)
969 File "/home/travis/miniconda/envs/test-environment/lib/python3.6/site-packages/mpl_toolkits/axisartist/axis_artist.py", line 746, in __init__
970 self._init_line()
971 File "/home/travis/miniconda/envs/test-environment/lib/python3.6/site-packages/mpl_toolkits/axisartist/axis_artist.py", line 887, in _init_line
972 self._axis_artist_helper.get_line(self.axes),
973 File "/home/travis/miniconda/envs/test-environment/lib/python3.6/site-packages/mpl_toolkits/axisartist/grid_helper_curvelinear.py", line 270, in get_line
974 self.update_lim(axes)
975 File "/home/travis/miniconda/envs/test-environment/lib/python3.6/site-packages/mpl_toolkits/axisartist/grid_helper_curvelinear.py", line 101, in update_lim
976 self.grid_helper.update_lim(axes)
977 File "/home/travis/miniconda/envs/test-environment/lib/python3.6/site-packages/mpl_toolkits/axisartist/axislines.py", line 327, in update_lim
978 self._update(x1, x2, y1, y2)
979 File "/home/travis/miniconda/envs/test-environment/lib/python3.6/site-packages/mpl_toolkits/axisartist/grid_helper_curvelinear.py", line 319, in _update
980 self._update_grid(x1, y1, x2, y2)
981 File "/home/travis/miniconda/envs/test-environment/lib/python3.6/site-packages/mpl_toolkits/axisartist/grid_helper_curvelinear.py", line 367, in _update_grid
982 self.grid_info = self.grid_finder.get_grid_info(x1, y1, x2, y2)
983 File "/home/travis/miniconda/envs/test-environment/lib/python3.6/site-packages/mpl_toolkits/axisartist/grid_finder.py", line 104, in get_grid_info
984 extremes = self.extreme_finder(self.inv_transform_xy, x1, y1, x2, y2)
985 File "/home/travis/build/python-control/python-control/control/grid.py", line 44, in __call__
986 self._adjust_extremes(lon_min, lon_max, lat_min, lat_max)
987AttributeError: 'ModifiedExtremeFinderCycle' object has no attribute '_adjust_extremes'
Apparently Matplotlib removed the private function _adjust_extremes between 3.2 and 3.3 (I could not find the commit yet. Clicking blame on github doesn't work. Their git history is weird).
The specific branch of pzmap and this portion of grid.py are not covered by the unit tests. Hence it was not discovered until now, when conda updated matplotlib and it fails in the pvtol-nested.pyexample.