Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit abe033e

Browse files
committed
Deprecate accessing QuiverKey internal Artists
1 parent a3c5032 commit abe033e

File tree

3 files changed

+41
-28
lines changed

3 files changed

+41
-28
lines changed
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
``QuiverKey`` internal Artists
2+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3+
4+
Access to the following `.quiver.QuiverKey` internal Artists is now deprecated.
5+
You may instead use `.quiver.QuiverKey`-level methods to modify these Artists.
6+
7+
- ``QuiverKey.text``
8+
- ``QuiverKey.vector``
9+
- ``QuiverKey.verts``
10+

lib/matplotlib/quiver.py

Lines changed: 28 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,10 @@ class QuiverKey(martist.Artist):
238238
valign = {'N': 'bottom', 'S': 'top', 'E': 'center', 'W': 'center'}
239239
pivot = {'N': 'middle', 'S': 'middle', 'E': 'tip', 'W': 'tail'}
240240

241+
text = _api.deprecate_privatize_attribute('3.9', alternative='QuiverKey methods')
242+
vector = _api.deprecate_privatize_attribute('3.9')
243+
verts = _api.deprecate_privatize_attribute('3.9')
244+
241245
def __init__(self, Q, X, Y, U, label,
242246
*, angle=0, coordinates='axes', color=None, labelsep=0.1,
243247
labelpos='N', labelcolor=None, fontproperties=None, **kwargs):
@@ -300,7 +304,7 @@ def __init__(self, Q, X, Y, U, label,
300304
self._labelpos = labelpos
301305
self.fontproperties = fontproperties or dict()
302306
self.kw = kwargs
303-
self.text = mtext.Text(
307+
self._text = mtext.Text(
304308
x=X, y=Y, text=label,
305309
horizontalalignment=self.halign[self._labelpos],
306310
verticalalignment=self.valign[self._labelpos],
@@ -311,7 +315,7 @@ def __init__(self, Q, X, Y, U, label,
311315

312316
def get_x(self):
313317
"""Return the *x* position of the QuiverKey."""
314-
return self.text.get_position()[0]
318+
return self._text.get_position()[0]
315319

316320
def set_x(self, x):
317321
"""
@@ -322,14 +326,14 @@ def set_x(self, x):
322326
x : float
323327
The *x* location of the key.
324328
"""
325-
self.text.set_x(x)
329+
self._text.set_x(x)
326330
self.stale = True
327331

328332
X = property(get_x, set_x)
329333

330334
def get_y(self):
331335
"""Return the *y* position of the QuiverKey."""
332-
return self.text.get_position()[1]
336+
return self._text.get_position()[1]
333337

334338
def set_y(self, y):
335339
"""
@@ -340,14 +344,14 @@ def set_y(self, y):
340344
y : float
341345
The *y* location of the key.
342346
"""
343-
self.text.set_y(y)
347+
self._text.set_y(y)
344348
self.stale = True
345349

346350
Y = property(get_y, set_y)
347351

348352
def get_position(self):
349353
"""Return the (x, y) position of the QuiverKey."""
350-
return self.text.get_position()
354+
return self._text.get_position()
351355

352356
def set_position(self, xy):
353357
"""
@@ -358,27 +362,27 @@ def set_position(self, xy):
358362
xy : (float, float)
359363
The (*x*, *y*) position of the QuiverKey.
360364
"""
361-
self.text.set_position(xy)
365+
self._text.set_position(xy)
362366
self.stale = True
363367

364368
def get_label_text(self):
365369
"""Return the label string."""
366-
return self.text.get_text()
370+
return self._text.get_text()
367371

368372
def set_label_text(self, text):
369373
"""Set the label string."""
370-
self.text.set_text(text)
374+
self._text.set_text(text)
371375
self.stale = True
372376

373377
label = property(get_label_text, set_label_text, doc="The label string.")
374378

375379
def get_label_color(self):
376380
"""Return the label color."""
377-
return self.text.get_color()
381+
return self._text.get_color()
378382

379383
def set_label_color(self, labelcolor):
380384
"""Set the label color."""
381-
self.text.set_color(labelcolor)
385+
self._text.set_color(labelcolor)
382386
self.stale = True
383387

384388
labelcolor = property(get_label_color, set_label_color, doc="The label color.")
@@ -399,8 +403,8 @@ def set_label_pos(self, labelpos):
399403
"""
400404
_api.check_in_list(['N', 'S', 'E', 'W'], labelpos=labelpos)
401405
self._labelpos = labelpos
402-
self.text.set_horizontalalignment(self.halign[labelpos])
403-
self.text.set_verticalalignment(self.valign[labelpos])
406+
self._text.set_horizontalalignment(self.halign[labelpos])
407+
self._text.set_verticalalignment(self.valign[labelpos])
404408
self._update_text_transform()
405409
self._initialized = False
406410
self.stale = True
@@ -432,19 +436,19 @@ def _init(self):
432436
Umask=ma.nomask):
433437
u = self.U * np.cos(np.radians(self.angle))
434438
v = self.U * np.sin(np.radians(self.angle))
435-
self.verts = self.Q._make_verts([[0., 0.]],
439+
self._verts = self.Q._make_verts([[0., 0.]],
436440
np.array([u]), np.array([v]), 'uv')
437441
kwargs = self.Q.polykw
438442
kwargs.update(self.kw)
439-
self.vector = mcollections.PolyCollection(
440-
self.verts,
443+
self._vector = mcollections.PolyCollection(
444+
self._verts,
441445
offsets=[(self.X, self.Y)],
442446
offset_transform=self.get_transform(),
443447
**kwargs)
444448
if self.color is not None:
445-
self.vector.set_color(self.color)
446-
self.vector.set_transform(self.Q.get_transform())
447-
self.vector.set_figure(self.get_figure())
449+
self._vector.set_color(self.color)
450+
self._vector.set_transform(self.Q.get_transform())
451+
self._vector.set_figure(self.get_figure())
448452
self._dpi_at_last_init = self.Q.axes.figure.dpi
449453

450454
def _update_text_transform(self):
@@ -454,15 +458,15 @@ def _update_text_transform(self):
454458
"E": (+self._labelsep_inches, 0),
455459
"W": (-self._labelsep_inches, 0),
456460
}[self._labelpos]
457-
self.text.set_transform(
461+
self._text.set_transform(
458462
transforms.offset_copy(self.get_transform(), self.figure, x=x, y=y))
459463

460464
@martist.allow_rasterization
461465
def draw(self, renderer):
462466
self._init()
463-
self.vector.draw(renderer)
467+
self._vector.draw(renderer)
464468
self._update_text_transform()
465-
self.text.draw(renderer)
469+
self._text.draw(renderer)
466470
self.stale = False
467471

468472
def _set_transform(self):
@@ -475,15 +479,14 @@ def _set_transform(self):
475479

476480
def set_figure(self, fig):
477481
super().set_figure(fig)
478-
self.text.set_figure(fig)
482+
self._text.set_figure(fig)
479483

480484
def contains(self, mouseevent):
481485
if self._different_canvas(mouseevent):
482486
return False, {}
483487
# Maybe the dictionary should allow one to
484488
# distinguish between a text hit and a vector hit.
485-
if (self.text.contains(mouseevent)[0] or
486-
self.vector.contains(mouseevent)[0]):
489+
if self._text.contains(mouseevent)[0] or self._vector.contains(mouseevent)[0]:
487490
return True, {}
488491
return False, {}
489492

lib/matplotlib/tests/test_quiver.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -267,7 +267,7 @@ def test_quiverkey_angles():
267267
qk = ax.quiverkey(q, 1, 1, 2, 'Label')
268268
# The arrows are only created when the key is drawn
269269
fig.canvas.draw()
270-
assert len(qk.verts) == 1
270+
assert len(qk._verts) == 1
271271

272272

273273
def test_quiverkey_angles_xy_aitoff():
@@ -296,7 +296,7 @@ def test_quiverkey_angles_xy_aitoff():
296296
qk = ax.quiverkey(q, 0, 0, 1, '1 units')
297297

298298
fig.canvas.draw()
299-
assert len(qk.verts) == 1
299+
assert len(qk._verts) == 1
300300

301301

302302
def test_quiverkey_angles_scale_units_cartesian():
@@ -323,7 +323,7 @@ def test_quiverkey_angles_scale_units_cartesian():
323323
qk = ax.quiverkey(q, 0, 0, 1, '1 units')
324324

325325
fig.canvas.draw()
326-
assert len(qk.verts) == 1
326+
assert len(qk._verts) == 1
327327

328328

329329
def test_quiver_setuvc_numbers():

0 commit comments

Comments
 (0)