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

Commite5b62d9

Browse files
committed
Improve alias signatures
1 parent76fe3ab commite5b62d9

File tree

1 file changed

+14
-6
lines changed

1 file changed

+14
-6
lines changed

‎lib/matplotlib/cbook/__init__.py

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1914,20 +1914,28 @@ class so far, an alias named ``get_alias`` will be defined; the same will
19141914
ifclsisNone:# Return the actual class decorator.
19151915
returnfunctools.partial(_define_aliases,alias_d)
19161916

1917-
defmake_alias(name):# Enforce a closure over *name*.
1918-
defmethod(self,*args,**kwargs):
1919-
returngetattr(self,name)(*args,**kwargs)
1920-
returnmethod
1917+
defmake_alias(method):
1918+
importinspect
1919+
args=str(inspect.signature(method))[1:-1]# remove parentheses
1920+
ifargs[:6]=='self, ':
1921+
call_args=args[6:]
1922+
elifargs=='self':
1923+
call_args=''
1924+
else:
1925+
raiseRuntimeError('Unexpected signature: %s'%args)
1926+
alias_method=eval('lambda {}: self.{}({})'.format(
1927+
args,method.__name__,call_args))
1928+
alias_method.__doc__="Alias for `{}`.".format(method.__name__)
1929+
returnalias_method
19211930

19221931
forprop,aliasesinalias_d.items():
19231932
exists=False
19241933
forprefixin ["get_","set_"]:
19251934
ifprefix+propinvars(cls):
19261935
exists=True
19271936
foraliasinaliases:
1928-
method=make_alias(prefix+prop)
1937+
method=make_alias(getattr(cls,prefix+prop))
19291938
method.__name__=prefix+alias
1930-
method.__doc__="Alias for `{}`.".format(prefix+prop)
19311939
setattr(cls,prefix+alias,method)
19321940
ifnotexists:
19331941
raiseValueError(

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp