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

Commit2bfac20

Browse files
committed
Change manual kwargs popping to kwonly arguments.
Only simple cases (no mutable defaults, no defaults depending on otherargs) are handled so far.
1 parentfb4b612 commit2bfac20

37 files changed

+199
-304
lines changed

‎examples/api/custom_scale_example.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ class MercatorLatitudeScale(mscale.ScaleBase):
4444
# scale.
4545
name='mercator'
4646

47-
def__init__(self,axis,**kwargs):
47+
def__init__(self,axis,*,thresh=np.deg2rad(85),**kwargs):
4848
"""
4949
Any keyword arguments passed to ``set_xscale`` and
5050
``set_yscale`` will be passed along to the scale's
@@ -53,8 +53,7 @@ def __init__(self, axis, **kwargs):
5353
thresh: The degree above which to crop the data.
5454
"""
5555
mscale.ScaleBase.__init__(self)
56-
thresh=kwargs.pop("thresh",np.radians(85))
57-
ifthresh>=np.pi/2.0:
56+
ifthresh>=np.pi/2:
5857
raiseValueError("thresh must be less than pi/2")
5958
self.thresh=thresh
6059

‎examples/api/radar_chart.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,9 +64,8 @@ def __init__(self, *args, **kwargs):
6464
# rotate plot such that the first axis is at the top
6565
self.set_theta_zero_location('N')
6666

67-
deffill(self,*args,**kwargs):
67+
deffill(self,*args,closed=True,**kwargs):
6868
"""Override fill so that line is closed by default"""
69-
closed=kwargs.pop('closed',True)
7069
returnsuper().fill(closed=closed,*args,**kwargs)
7170

7271
defplot(self,*args,**kwargs):

‎examples/images_contours_and_fields/contour_demo.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,8 +98,7 @@
9898
plt.setp(zc,linewidth=4)
9999

100100
ax.clabel(CS,levels[1::2],# label every second level
101-
inline=1,fmt='%1.1f',
102-
cmap='flag',fontsize=14)
101+
inline=1,fmt='%1.1f',fontsize=14)
103102

104103
# make a colorbar for the contour lines
105104
CB=fig.colorbar(CS,shrink=0.8,extend='both')

‎examples/subplots_axes_and_figures/custom_figure_class.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,11 @@
1212

1313

1414
classMyFigure(Figure):
15-
def__init__(self,*args,**kwargs):
15+
def__init__(self,*args,figtitle='hi mom',**kwargs):
1616
"""
1717
custom kwarg figtitle is a figure title
1818
"""
19-
figtitle=kwargs.pop('figtitle','hi mom')
20-
Figure.__init__(self,*args,**kwargs)
19+
super().__init__(*args,**kwargs)
2120
self.text(0.5,0.95,figtitle,ha='center')
2221

2322

‎examples/text_labels_and_annotations/usetex_baseline_test.py

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -20,22 +20,15 @@ class Axes(maxes.Axes):
2020
usetex=False in the same figure. It does not work in the ps backend.
2121
"""
2222

23-
def__init__(self,*kl,**kw):
24-
self.usetex=kw.pop("usetex","False")
25-
self.preview=kw.pop("preview","False")
26-
27-
maxes.Axes.__init__(self,*kl,**kw)
23+
def__init__(self,*args,usetex=False,preview=False,**kwargs):
24+
self.usetex=usetex
25+
self.preview=preview
26+
super().__init__(*args,**kwargs)
2827

2928
defdraw(self,renderer):
30-
usetex=plt.rcParams["text.usetex"]
31-
preview=plt.rcParams["text.latex.preview"]
32-
plt.rcParams["text.usetex"]=self.usetex
33-
plt.rcParams["text.latex.preview"]=self.preview
34-
35-
maxes.Axes.draw(self,renderer)
36-
37-
plt.rcParams["text.usetex"]=usetex
38-
plt.rcParams["text.latex.preview"]=preview
29+
withplt.rc_context({"text.usetex":self.usetex,
30+
"text.latex.preview":self.preview}):
31+
super().draw(renderer)
3932

4033

4134
subplot=maxes.subplot_class_factory(Axes)

‎examples/user_interfaces/toolmanager_sgskip.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,9 @@ class GroupHideTool(ToolToggleBase):
5656
description='Show by gid'
5757
default_toggled=True
5858

59-
def__init__(self,*args,**kwargs):
60-
self.gid=kwargs.pop('gid')
61-
ToolToggleBase.__init__(self,*args,**kwargs)
59+
def__init__(self,*args,gid,**kwargs):
60+
self.gid=gid
61+
super().__init__(*args,**kwargs)
6262

6363
defenable(self,*args):
6464
self.set_lines_visibility(True)

‎lib/matplotlib/__init__.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1699,7 +1699,7 @@ def param(func):
16991699
pass
17001700

17011701
@functools.wraps(func)
1702-
definner(ax,*args,**kwargs):
1702+
definner(ax,*args,data=None,**kwargs):
17031703
# this is needed because we want to change these values if
17041704
# arg_names_at_runtime==True, but python does not allow assigning
17051705
# to a variable in a outer scope. So use some new local ones and
@@ -1710,8 +1710,6 @@ def inner(ax, *args, **kwargs):
17101710

17111711
label=None
17121712

1713-
data=kwargs.pop('data',None)
1714-
17151713
ifdataisNone:# data validation
17161714
args=tuple(sanitize_sequence(a)forainargs)
17171715
else:

‎lib/matplotlib/axes/_axes.py

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -5325,20 +5325,14 @@ def imshow(self, X, cmap=None, norm=None, aspect=None,
53255325
returnim
53265326

53275327
@staticmethod
5328-
def_pcolorargs(funcname,*args,**kw):
5329-
# This takes one kwarg, allmatch.
5330-
# If allmatch is True, then the incoming X, Y, C must
5331-
# have matching dimensions, taking into account that
5332-
# X and Y can be 1-D rather than 2-D. This perfect
5333-
# match is required for Gouroud shading. For flat
5334-
# shading, X and Y specify boundaries, so we need
5335-
# one more boundary than color in each direction.
5336-
# For convenience, and consistent with Matlab, we
5337-
# discard the last row and/or column of C if necessary
5338-
# to meet this condition. This is done if allmatch
5339-
# is False.
5340-
5341-
allmatch=kw.pop("allmatch",False)
5328+
def_pcolorargs(funcname,*args,allmatch=False):
5329+
# If allmatch is True, then the incoming X, Y, C must have matching
5330+
# dimensions, taking into account that X and Y can be 1-D rather than
5331+
# 2-D. This perfect match is required for Gouroud shading. For flat
5332+
# shading, X and Y specify boundaries, so we need one more boundary
5333+
# than color in each direction. For convenience, and consistent with
5334+
# Matlab, we discard the last row and/or column of C if necessary to
5335+
# meet this condition. This is done if allmatch is False.
53425336

53435337
iflen(args)==1:
53445338
C=np.asanyarray(args[0])
@@ -5385,7 +5379,7 @@ def _pcolorargs(funcname, *args, **kw):
53855379
'Incompatible X, Y inputs to %s; see help(%s)'% (
53865380
funcname,funcname))
53875381
ifallmatch:
5388-
ifnot(Nx==numColsandNy==numRows):
5382+
if (Nx,Ny)!= (numCols,numRows):
53895383
raiseTypeError('Dimensions of C %s are incompatible with'
53905384
' X (%d) and/or Y (%d); see help(%s)'% (
53915385
C.shape,Nx,Ny,funcname))

‎lib/matplotlib/axes/_base.py

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2700,7 +2700,8 @@ def grid(self, b=None, which='major', axis='both', **kwargs):
27002700
ifaxis=='y'oraxis=='both':
27012701
self.yaxis.grid(b,which=which,**kwargs)
27022702

2703-
defticklabel_format(self,**kwargs):
2703+
defticklabel_format(self,*,axis='both',style='',scilimits=None,
2704+
useOffset=None,useLocale=None,useMathText=None):
27042705
"""
27052706
Change the `~matplotlib.ticker.ScalarFormatter` used by
27062707
default for linear axes.
@@ -2710,6 +2711,7 @@ def ticklabel_format(self, **kwargs):
27102711
============== =========================================
27112712
Keyword Description
27122713
============== =========================================
2714+
*axis* [ 'x' | 'y' | 'both' ]
27132715
*style* [ 'sci' (or 'scientific') | 'plain' ]
27142716
plain turns off scientific notation
27152717
*scilimits* (m, n), pair of integers; if *style*
@@ -2722,7 +2724,6 @@ def ticklabel_format(self, **kwargs):
27222724
if False, no offset will be used; if a
27232725
numeric offset is specified, it will be
27242726
used.
2725-
*axis* [ 'x' | 'y' | 'both' ]
27262727
*useLocale* If True, format the number according to
27272728
the current locale. This affects things
27282729
such as the character used for the
@@ -2741,12 +2742,8 @@ def ticklabel_format(self, **kwargs):
27412742
:exc:`AttributeError` will be raised.
27422743
27432744
"""
2744-
style=kwargs.pop('style','').lower()
2745-
scilimits=kwargs.pop('scilimits',None)
2746-
useOffset=kwargs.pop('useOffset',None)
2747-
useLocale=kwargs.pop('useLocale',None)
2748-
useMathText=kwargs.pop('useMathText',None)
2749-
axis=kwargs.pop('axis','both').lower()
2745+
style=style.lower()
2746+
axis=axis.lower()
27502747
ifscilimitsisnotNone:
27512748
try:
27522749
m,n=scilimits

‎lib/matplotlib/axis.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1616,7 +1616,7 @@ def set_pickradius(self, pickradius):
16161616
"""
16171617
self.pickradius=pickradius
16181618

1619-
defset_ticklabels(self,ticklabels,*args,**kwargs):
1619+
defset_ticklabels(self,ticklabels,*args,minor=False,**kwargs):
16201620
"""
16211621
Set the text values of the tick labels. Return a list of Text
16221622
instances. Use *kwarg* *minor=True* to select minor ticks.
@@ -1645,7 +1645,6 @@ def set_ticklabels(self, ticklabels, *args, **kwargs):
16451645
# replace the ticklabels list with the processed one
16461646
ticklabels=get_labels
16471647

1648-
minor=kwargs.pop('minor',False)
16491648
ifminor:
16501649
self.set_minor_formatter(mticker.FixedFormatter(ticklabels))
16511650
ticks=self.get_minor_ticks()

‎lib/matplotlib/backends/backend_agg.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -516,7 +516,7 @@ def print_to_buffer(self):
516516

517517
if_has_pil:
518518
# add JPEG support
519-
defprint_jpg(self,filename_or_obj,*args,**kwargs):
519+
defprint_jpg(self,filename_or_obj,*args,dryrun=False,**kwargs):
520520
"""
521521
Other Parameters
522522
----------------
@@ -537,7 +537,7 @@ def print_jpg(self, filename_or_obj, *args, **kwargs):
537537
should be stored as a progressive JPEG file.
538538
"""
539539
buf,size=self.print_to_buffer()
540-
ifkwargs.pop("dryrun",False):
540+
ifdryrun:
541541
return
542542
# The image is "pasted" onto a white background image to safely
543543
# handle any transparency
@@ -558,9 +558,9 @@ def print_jpg(self, filename_or_obj, *args, **kwargs):
558558
print_jpeg=print_jpg
559559

560560
# add TIFF support
561-
defprint_tif(self,filename_or_obj,*args,**kwargs):
561+
defprint_tif(self,filename_or_obj,*args,dryrun=False,**kwargs):
562562
buf,size=self.print_to_buffer()
563-
ifkwargs.pop("dryrun",False):
563+
ifdryrun:
564564
return
565565
image=Image.frombuffer('RGBA',size,buf,'raw','RGBA',0,1)
566566
dpi= (self.figure.dpi,self.figure.dpi)

‎lib/matplotlib/backends/backend_pdf.py

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2560,21 +2560,22 @@ def draw(self):
25602560
defget_default_filetype(self):
25612561
return'pdf'
25622562

2563-
defprint_pdf(self,filename,**kwargs):
2564-
image_dpi=kwargs.get('dpi',72)# dpi to use for images
2563+
defprint_pdf(self,filename,*,
2564+
dpi=72,# dpi to use for images
2565+
bbox_inches_restore=None,metadata=None,
2566+
**kwargs):
25652567
self.figure.set_dpi(72)# there are 72 pdf points to an inch
25662568
width,height=self.figure.get_size_inches()
25672569
ifisinstance(filename,PdfPages):
25682570
file=filename._file
25692571
else:
2570-
file=PdfFile(filename,metadata=kwargs.pop("metadata",None))
2572+
file=PdfFile(filename,metadata=metadata)
25712573
try:
25722574
file.newPage(width,height)
2573-
_bbox_inches_restore=kwargs.pop("bbox_inches_restore",None)
25742575
renderer=MixedModeRenderer(
2575-
self.figure,width,height,image_dpi,
2576-
RendererPdf(file,image_dpi,height,width),
2577-
bbox_inches_restore=_bbox_inches_restore)
2576+
self.figure,width,height,dpi,
2577+
RendererPdf(file,dpi,height,width),
2578+
bbox_inches_restore=bbox_inches_restore)
25782579
self.figure.draw(renderer)
25792580
renderer.finalize()
25802581
ifnotisinstance(filename,PdfPages):

‎lib/matplotlib/backends/backend_pgf.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -802,8 +802,9 @@ class FigureCanvasPgf(FigureCanvasBase):
802802
defget_default_filetype(self):
803803
return'pdf'
804804

805-
def_print_pgf_to_fh(self,fh,*args,**kwargs):
806-
ifkwargs.get("dryrun",False):
805+
def_print_pgf_to_fh(self,fh,*args,
806+
dryrun=False,bbox_inches_restore=None,**kwargs):
807+
ifdryrun:
807808
renderer=RendererPgf(self.figure,None,dummy=True)
808809
self.figure.draw(renderer)
809810
return
@@ -849,10 +850,9 @@ def _print_pgf_to_fh(self, fh, *args, **kwargs):
849850
r"\pgfpathrectangle{\pgfpointorigin}{\pgfqpoint{%fin}{%fin}}"
850851
% (w,h))
851852
writeln(fh,r"\pgfusepath{use as bounding box, clip}")
852-
_bbox_inches_restore=kwargs.pop("bbox_inches_restore",None)
853853
renderer=MixedModeRenderer(self.figure,w,h,dpi,
854854
RendererPgf(self.figure,fh),
855-
bbox_inches_restore=_bbox_inches_restore)
855+
bbox_inches_restore=bbox_inches_restore)
856856
self.figure.draw(renderer)
857857

858858
# end the pgfpicture environment

‎lib/matplotlib/backends/backend_ps.py

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -957,9 +957,11 @@ def _print_ps(self, outfile, format, *args, **kwargs):
957957
orientation,isLandscape,papertype,
958958
**kwargs)
959959

960-
def_print_figure(self,outfile,format,dpi=72,facecolor='w',edgecolor='w',
961-
orientation='portrait',isLandscape=False,papertype=None,
962-
metadata=None,**kwargs):
960+
def_print_figure(
961+
self,outfile,format,dpi=72,facecolor='w',edgecolor='w',
962+
orientation='portrait',isLandscape=False,papertype=None,
963+
metadata=None,*,
964+
dryrun=False,bbox_inches_restore=None,**kwargs):
963965
"""
964966
Render the figure to hardcopy. Set the figure patch face and
965967
edge colors. This is useful because some of the GUIs have a
@@ -1029,8 +1031,6 @@ def _print_figure(self, outfile, format, dpi=72, facecolor='w', edgecolor='w',
10291031
self.figure.set_facecolor(facecolor)
10301032
self.figure.set_edgecolor(edgecolor)
10311033

1032-
1033-
dryrun=kwargs.get("dryrun",False)
10341034
ifdryrun:
10351035
classNullWriter(object):
10361036
defwrite(self,*kl,**kwargs):
@@ -1040,14 +1040,12 @@ def write(self, *kl, **kwargs):
10401040
else:
10411041
self._pswriter=io.StringIO()
10421042

1043-
10441043
# mixed mode rendering
1045-
_bbox_inches_restore=kwargs.pop("bbox_inches_restore",None)
10461044
ps_renderer=self._renderer_class(width,height,self._pswriter,
10471045
imagedpi=dpi)
10481046
renderer=MixedModeRenderer(self.figure,
10491047
width,height,dpi,ps_renderer,
1050-
bbox_inches_restore=_bbox_inches_restore)
1048+
bbox_inches_restore=bbox_inches_restore)
10511049

10521050
self.figure.draw(renderer)
10531051

@@ -1197,9 +1195,10 @@ def do_nothing():
11971195
withio.open(outfile,'w',encoding='latin-1')asfh:
11981196
print_figure_impl(fh)
11991197

1200-
def_print_figure_tex(self,outfile,format,dpi,facecolor,edgecolor,
1201-
orientation,isLandscape,papertype,metadata=None,
1202-
**kwargs):
1198+
def_print_figure_tex(
1199+
self,outfile,format,dpi,facecolor,edgecolor,
1200+
orientation,isLandscape,papertype,metadata=None,*,
1201+
dryrun=False,bbox_inches_restore=None,**kwargs):
12031202
"""
12041203
If text.usetex is True in rc, a temporary pair of tex/eps files
12051204
are created to allow tex to manage the text layout via the PSFrags
@@ -1234,7 +1233,6 @@ def _print_figure_tex(self, outfile, format, dpi, facecolor, edgecolor,
12341233
self.figure.set_facecolor(facecolor)
12351234
self.figure.set_edgecolor(edgecolor)
12361235

1237-
dryrun=kwargs.get("dryrun",False)
12381236
ifdryrun:
12391237
classNullWriter(object):
12401238
defwrite(self,*kl,**kwargs):
@@ -1245,12 +1243,11 @@ def write(self, *kl, **kwargs):
12451243
self._pswriter=io.StringIO()
12461244

12471245
# mixed mode rendering
1248-
_bbox_inches_restore=kwargs.pop("bbox_inches_restore",None)
12491246
ps_renderer=self._renderer_class(width,height,
12501247
self._pswriter,imagedpi=dpi)
12511248
renderer=MixedModeRenderer(self.figure,
12521249
width,height,dpi,ps_renderer,
1253-
bbox_inches_restore=_bbox_inches_restore)
1250+
bbox_inches_restore=bbox_inches_restore)
12541251

12551252
self.figure.draw(renderer)
12561253

‎lib/matplotlib/backends/backend_svg.py

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1215,17 +1215,16 @@ def print_svgz(self, filename, *args, **kwargs):
12151215
gzip.GzipFile(mode='w',fileobj=fh)asgzipwriter:
12161216
returnself.print_svg(gzipwriter)
12171217

1218-
def_print_svg(self,filename,fh,**kwargs):
1219-
image_dpi=kwargs.pop("dpi",72)
1218+
def_print_svg(
1219+
self,filename,fh,*,dpi=72,bbox_inches_restore=None,**kwargs):
12201220
self.figure.set_dpi(72.0)
12211221
width,height=self.figure.get_size_inches()
12221222
w,h=width*72,height*72
12231223

1224-
_bbox_inches_restore=kwargs.pop("bbox_inches_restore",None)
12251224
renderer=MixedModeRenderer(
1226-
self.figure,width,height,image_dpi,
1227-
RendererSVG(w,h,fh,filename,image_dpi),
1228-
bbox_inches_restore=_bbox_inches_restore)
1225+
self.figure,width,height,dpi,
1226+
RendererSVG(w,h,fh,filename,dpi),
1227+
bbox_inches_restore=bbox_inches_restore)
12291228

12301229
self.figure.draw(renderer)
12311230
renderer.finalize()

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp