@@ -6,6 +6,7 @@ from matplotlib import cbook
66from matplotlib .artist import Artist
77from matplotlib .axis import XAxis , YAxis , Tick
88from matplotlib .backend_bases import RendererBase , MouseButton , MouseEvent
9+ from matplotlib .cbook import CallbackRegistry
910from matplotlib .container import Container
1011from matplotlib .collections import Collection
1112from matplotlib .cm import ScalarMappable
@@ -25,9 +26,11 @@ from cycler import Cycler
2526
2627import numpy as np
2728from numpy .typing import ArrayLike
28- from typing import Any , Literal , overload
29+ from typing import Any , Literal , TypeVar , overload
2930from matplotlib .typing import ColorType
3031
32+ _T = TypeVar ("_T" , bound = Artist )
33+
3134class _axis_method_wrapper :
3235 attr_name : str
3336 method_name : str
@@ -53,6 +56,11 @@ class _AxesBase(martist.Artist):
5356 transData : Transform
5457 ignore_existing_data_limits : bool
5558 axison : bool
59+ containers : list [Container ]
60+ callbacks : CallbackRegistry
61+ child_axes : list [_AxesBase ]
62+ legend_ : Legend | None
63+ title : Text
5664 _projection_init : Any
5765
5866 def __init__ (
@@ -125,8 +133,7 @@ class _AxesBase(martist.Artist):
125133 def clear (self ) -> None : ...
126134 def cla (self ) -> None : ...
127135
128- # Could be made generic, but comments indicate it may be temporary anyway
129- class ArtistList (Sequence [Artist ]):
136+ class ArtistList (Sequence [_T ]):
130137 def __init__ (
131138 self ,
132139 axes : _AxesBase ,
@@ -135,40 +142,40 @@ class _AxesBase(martist.Artist):
135142 invalid_types : type | Iterable [type ] | None = ...,
136143 ) -> None : ...
137144 def __len__ (self ) -> int : ...
138- def __iter__ (self ) -> Iterator [Artist ]: ...
145+ def __iter__ (self ) -> Iterator [_T ]: ...
139146 @overload
140- def __getitem__ (self , key : int ) -> Artist : ...
147+ def __getitem__ (self , key : int ) -> _T : ...
141148 @overload
142- def __getitem__ (self , key : slice ) -> list [Artist ]: ...
149+ def __getitem__ (self , key : slice ) -> list [_T ]: ...
143150
144151 @overload
145- def __add__ (self , other : _AxesBase .ArtistList ) -> list [Artist ]: ...
152+ def __add__ (self , other : _AxesBase .ArtistList [ _T ] ) -> list [_T ]: ...
146153 @overload
147154 def __add__ (self , other : list [Any ]) -> list [Any ]: ...
148155 @overload
149156 def __add__ (self , other : tuple [Any ]) -> tuple [Any ]: ...
150157
151158 @overload
152- def __radd__ (self , other : _AxesBase .ArtistList ) -> list [Artist ]: ...
159+ def __radd__ (self , other : _AxesBase .ArtistList [ _T ] ) -> list [_T ]: ...
153160 @overload
154161 def __radd__ (self , other : list [Any ]) -> list [Any ]: ...
155162 @overload
156163 def __radd__ (self , other : tuple [Any ]) -> tuple [Any ]: ...
157164
158165 @property
159- def artists (self ) -> _AxesBase .ArtistList : ...
166+ def artists (self ) -> _AxesBase .ArtistList [ Artist ] : ...
160167 @property
161- def collections (self ) -> _AxesBase .ArtistList : ...
168+ def collections (self ) -> _AxesBase .ArtistList [ Collection ] : ...
162169 @property
163- def images (self ) -> _AxesBase .ArtistList : ...
170+ def images (self ) -> _AxesBase .ArtistList [ AxesImage ] : ...
164171 @property
165- def lines (self ) -> _AxesBase .ArtistList : ...
172+ def lines (self ) -> _AxesBase .ArtistList [ Line2D ] : ...
166173 @property
167- def patches (self ) -> _AxesBase .ArtistList : ...
174+ def patches (self ) -> _AxesBase .ArtistList [ Patch ] : ...
168175 @property
169- def tables (self ) -> _AxesBase .ArtistList : ...
176+ def tables (self ) -> _AxesBase .ArtistList [ Table ] : ...
170177 @property
171- def texts (self ) -> _AxesBase .ArtistList : ...
178+ def texts (self ) -> _AxesBase .ArtistList [ Text ] : ...
172179 def get_facecolor (self ) -> ColorType : ...
173180 def set_facecolor (self , color : ColorType | None ) -> None : ...
174181 @overload
0 commit comments