Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitf25782f

Browse files
committed
Move towards having get_shared_{x,y}_axes return immutable views.
Directly calling join() on the Groupers is not sufficient to share axes,anyways, so don't let users do that.
1 parent4e20f15 commitf25782f

File tree

3 files changed

+38
-4
lines changed

3 files changed

+38
-4
lines changed
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
Modifications to the Groupers returned by ``get_shared_x_axes`` and ``get_shared_y_axes``
2+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3+
... are deprecated. In the future, these methods will return immutable views
4+
on the grouper structures. Note that previously, calling e.g. ``join()``
5+
would already fail to set up the correct structures for sharing axes; use
6+
`.Axes.sharex` or `.Axes.sharey` instead.

‎lib/matplotlib/axes/_base.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4595,9 +4595,9 @@ def twiny(self):
45954595
returnax2
45964596

45974597
defget_shared_x_axes(self):
4598-
"""Returna reference tothe shared axes Grouper object for x axes."""
4599-
returnself._shared_axes["x"]
4598+
"""Returnan immutable view onthe sharedx-axes Grouper."""
4599+
returncbook.GrouperView(self._shared_axes["x"])
46004600

46014601
defget_shared_y_axes(self):
4602-
"""Returna reference tothe shared axes Grouper object for y axes."""
4603-
returnself._shared_axes["y"]
4602+
"""Returnan immutable view onthe sharedy-axes Grouper."""
4603+
returncbook.GrouperView(self._shared_axes["y"])

‎lib/matplotlib/cbook/__init__.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -907,6 +907,34 @@ def get_siblings(self, a):
907907
return [x()forxinsiblings]
908908

909909

910+
classGrouperView:
911+
"""Immutable view over a `.Grouper`."""
912+
913+
def__init__(self,grouper):
914+
self._grouper=grouper
915+
916+
class_GrouperMethodForwarder:
917+
def__init__(self,deprecated_kw=None):
918+
self._deprecated_kw=deprecated_kw
919+
920+
def__set_name__(self,owner,name):
921+
wrapped=getattr(Grouper,name)
922+
forwarder=functools.wraps(wrapped)(
923+
lambdaself,*args,**kwargs:wrapped(
924+
self._grouper,*args,**kwargs))
925+
ifself._deprecated_kw:
926+
forwarder=_api.deprecated(**self._deprecated_kw)(forwarder)
927+
setattr(owner,name,forwarder)
928+
929+
__contains__=_GrouperMethodForwarder()
930+
__iter__=_GrouperMethodForwarder()
931+
joined=_GrouperMethodForwarder()
932+
get_siblings=_GrouperMethodForwarder()
933+
clean=_GrouperMethodForwarder(deprecated_kw=dict(since="3.6"))
934+
join=_GrouperMethodForwarder(deprecated_kw=dict(since="3.6"))
935+
remove=_GrouperMethodForwarder(deprecated_kw=dict(since="3.6"))
936+
937+
910938
defsimple_linear_interpolation(a,steps):
911939
"""
912940
Resample an array with ``steps - 1`` points between original point pairs.

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp