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

Commit60cc4f5

Browse files
committed
Update pylint
1 parentf0e6b40 commit60cc4f5

File tree

17 files changed

+107
-63
lines changed

17 files changed

+107
-63
lines changed

‎pymode/libs/pylama/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
66
"""
77

8-
version_info=3,0,0
8+
version_info=3,0,2
99

1010
__version__=version='.'.join(map(str,version_info))
1111
__project__=__name__

‎pymode/libs/pylama/lint/pylama_pyflakes/__init__.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,16 @@
99
path=op.dirname(op.abspath(__file__))
1010
sys.path.insert(0,path)
1111

12+
frompyflakesimportchecker
13+
1214

1315
classLinter(BaseLinter):
1416

1517
""" Pyflakes code check. """
1618

1719
def__init__(self):
18-
frompyflakesimportmessages
19-
20-
ifmessages.UndefinedName.message!="E0602 undefined name %r":
21-
monkey_patch_messages(messages)
20+
ifchecker.messages.UndefinedName.message!="E0602 undefined name %r":
21+
monkey_patch_messages(checker.messages)
2222

2323
@staticmethod
2424
defrun(path,code=None,builtins="",**meta):
@@ -29,7 +29,6 @@ def run(path, code=None, builtins="", **meta):
2929
"""
3030
import_ast
3131
importos
32-
frompyflakesimportchecker
3332

3433
os.environ.setdefault('PYFLAKES_BUILTINS',builtins)
3534

‎pymode/libs/pylama/lint/pylama_pylint/__init__.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,16 @@
44
# ==================
55

66

7-
__version__='0.1.6'
7+
__version__='0.2.0'
88
__project__='pylama_pylint'
99
__author__="horneds <horneds@gmail.com>"
1010
__license__="BSD"
1111

12-
importos.path
1312
importsys
1413

1514
ifsys.version_info>= (3,0,0):
1615
raiseImportError("pylama_pylint doesnt support python3")
1716

18-
CURDIR=os.path.abspath(os.path.dirname(__file__))
19-
sys.path.insert(0,CURDIR)
2017

2118
from .mainimportLinter
2219
assertLinter

‎pymode/libs/pylama/lint/pylama_pylint/astroid/as_string.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -467,6 +467,15 @@ def visit_starred(self, node):
467467
"""return Starred node as string"""
468468
return"*"+node.value.accept(self)
469469

470+
defvisit_yieldfrom(self,node):
471+
""" Return an astroid.YieldFrom node as string. """
472+
yi_val=node.valueand (" "+node.value.accept(self))or""
473+
expr='yield from'+yi_val
474+
ifnode.parent.is_statement:
475+
returnexpr
476+
else:
477+
return"(%s)"% (expr,)
478+
470479

471480
def_import_string(names):
472481
"""return a list of (name, asname) formatted as a string"""

‎pymode/libs/pylama/lint/pylama_pylint/astroid/builder.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,12 @@ def module_build(self, module, modname=None):
102102
# this is a built-in module
103103
# get a partial representation by introspection
104104
node=self.inspect_build(module,modname=modname,path=path)
105+
# we have to handle transformation by ourselves since the rebuilder
106+
# isn't called for builtin nodes
107+
#
108+
# XXX it's then only called for Module nodes, not for underlying
109+
# nodes
110+
node=self._manager.transform(node)
105111
returnnode
106112

107113
deffile_build(self,path,modname=None):

‎pymode/libs/pylama/lint/pylama_pylint/astroid/manager.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -273,6 +273,33 @@ def register_transform(self, node_class, transform, predicate=None):
273273
"""
274274
self.transforms.setdefault(node_class, []).append( (transform,predicate) )
275275

276+
defunregister_transform(self,node_class,transform,predicate=None):
277+
"""Unregister the given transform."""
278+
self.transforms[node_class].remove( (transform,predicate) )
279+
280+
deftransform(self,node):
281+
"""Call matching transforms for the given node if any and return the
282+
transformed node.
283+
"""
284+
try:
285+
transforms=self.transforms[type(node)]
286+
exceptKeyError:
287+
returnnode# no transform registered for this class of node
288+
orig_node=node# copy the reference
289+
fortransform_func,predicateintransforms:
290+
ifpredicateisNoneorpredicate(node):
291+
ret=transform_func(node)
292+
# if the transformation function returns something, it's
293+
# expected to be a replacement for the node
294+
ifretisnotNone:
295+
ifnodeisnotorig_node:
296+
# node has already be modified by some previous
297+
# transformation, warn about it
298+
warn('node %s substitued multiple times'%node)
299+
node=ret
300+
returnnode
301+
302+
276303

277304
classProject(object):
278305
"""a project handle a set of modules / packages"""

‎pymode/libs/pylama/lint/pylama_pylint/astroid/node_classes.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -888,6 +888,9 @@ class Yield(NodeNG):
888888
_astroid_fields= ('value',)
889889
value=None
890890

891+
classYieldFrom(Yield):
892+
""" Class representing a YieldFrom node. """
893+
891894
# constants ##############################################################
892895

893896
CONST_CLS= {

‎pymode/libs/pylama/lint/pylama_pylint/astroid/nodes.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
Dict,Discard,Ellipsis,EmptyNode,ExceptHandler,Exec,ExtSlice,For, \
4444
From,Getattr,Global,If,IfExp,Import,Index,Keyword, \
4545
List,Name,Nonlocal,Pass,Print,Raise,Return,Set,Slice,Starred,Subscript, \
46-
TryExcept,TryFinally,Tuple,UnaryOp,While,With,Yield, \
46+
TryExcept,TryFinally,Tuple,UnaryOp,While,With,Yield,YieldFrom,\
4747
const_factory
4848
fromastroid.scoped_nodesimportModule,GenExpr,Lambda,DictComp, \
4949
ListComp,SetComp,Function,Class
@@ -68,6 +68,6 @@
6868
TryExcept,TryFinally,Tuple,
6969
UnaryOp,
7070
While,With,
71-
Yield,
71+
Yield,YieldFrom
7272
)
7373

‎pymode/libs/pylama/lint/pylama_pylint/astroid/rebuilder.py

Lines changed: 11 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,14 @@ def _infer_metaclass(node):
122122
elifisinstance(node,Attribute):
123123
returnnode.attr
124124

125+
def_create_yield_node(node,parent,rebuilder,factory):
126+
newnode=factory()
127+
_lineno_parent(node,newnode,parent)
128+
ifnode.valueisnotNone:
129+
newnode.value=rebuilder.visit(node.value,newnode)
130+
newnode.set_line_info(newnode.last_child())
131+
returnnewnode
132+
125133

126134
classTreeRebuilder(object):
127135
"""Rebuilds the _ast tree to become an Astroid tree"""
@@ -134,25 +142,7 @@ def __init__(self, manager):
134142
self._from_nodes= []
135143
self._delayed_assattr= []
136144
self._visit_meths= {}
137-
138-
def_transform(self,node):
139-
try:
140-
transforms=self._manager.transforms[type(node)]
141-
exceptKeyError:
142-
returnnode# no transform registered for this class of node
143-
orig_node=node# copy the reference
144-
fortransform_func,predicateintransforms:
145-
ifpredicateisNoneorpredicate(node):
146-
ret=transform_func(node)
147-
# if the transformation function returns something, it's
148-
# expected to be a replacement for the node
149-
ifretisnotNone:
150-
ifnodeisnotorig_node:
151-
# node has already be modified by some previous
152-
# transformation, warn about it
153-
warn('node %s substitued multiple times'%node)
154-
node=ret
155-
returnnode
145+
self._transform=manager.transform
156146

157147
defvisit_module(self,node,modname,package):
158148
"""visit a Module node by returning a fresh instance of it"""
@@ -837,13 +827,7 @@ def visit_with(self, node, parent):
837827

838828
defvisit_yield(self,node,parent):
839829
"""visit a Yield node by returning a fresh instance of it"""
840-
newnode=new.Yield()
841-
_lineno_parent(node,newnode,parent)
842-
ifnode.valueisnotNone:
843-
newnode.value=self.visit(node.value,newnode)
844-
newnode.set_line_info(newnode.last_child())
845-
returnnewnode
846-
830+
return_create_yield_node(node,parent,self,new.Yield)
847831

848832
classTreeRebuilder3k(TreeRebuilder):
849833
"""extend and overwrite TreeRebuilder for python3k"""
@@ -954,7 +938,7 @@ def visit_child(child):
954938
returnnewnode
955939

956940
defvisit_yieldfrom(self,node,parent):
957-
returnself.visit_yield(node,parent)
941+
return_create_yield_node(node,parent,self,new.YieldFrom)
958942

959943
defvisit_class(self,node,parent):
960944
newnode=super(TreeRebuilder3k,self).visit_class(node,parent)

‎pymode/libs/pylama/lint/pylama_pylint/astroid/scoped_nodes.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
fromastroid.exceptionsimportNotFoundError, \
3333
AstroidBuildingException,InferenceError
3434
fromastroid.node_classesimportConst,DelName,DelAttr, \
35-
Dict,From,List,Pass,Raise,Return,Tuple,Yield, \
35+
Dict,From,List,Pass,Raise,Return,Tuple,Yield,YieldFrom,\
3636
LookupMixIn,const_factoryascf,unpack_infer
3737
fromastroid.basesimportNodeNG,InferenceContext,Instance,\
3838
YES,Generator,UnboundMethod,BoundMethod,_infer_stmts,copy_context, \
@@ -620,7 +620,8 @@ def is_generator(self):
620620
"""return true if this is a generator function"""
621621
# XXX should be flagged, not computed
622622
try:
623-
returnself.nodes_of_class(Yield,skip_klass=(Function,Lambda)).next()
623+
returnself.nodes_of_class((Yield,YieldFrom),
624+
skip_klass=(Function,Lambda)).next()
624625
exceptStopIteration:
625626
returnFalse
626627

‎pymode/libs/pylama/lint/pylama_pylint/main.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,25 @@
11
""" Pylint support. """
22
fromosimportpathasop,environ
3+
importsys
34

45
frompylama.lintimportLinterasBaseLinter
56

7+
CURDIR=op.abspath(op.dirname(__file__))
8+
sys.path.insert(0,CURDIR)
9+
610
fromastroidimportMANAGER
711
frompylint.lintimportRun
812
frompylint.reportersimportBaseReporter
913

10-
11-
PYLINT_RC=op.abspath(op.join(op.dirname(__file__),'pylint.rc'))
14+
PYLINT_RC=op.abspath(op.join(CURDIR,'pylint.rc'))
1215

1316

1417
classLinter(BaseLinter):
1518

1619
""" Check code with pylint. """
1720

1821
@staticmethod
19-
defrun(path,**meta):# noqa
22+
defrun(path,code=None,**meta):# noqa
2023
""" Pylint code checking.
2124
2225
:return list: List of errors.

‎pymode/libs/pylama/lint/pylama_pylint/pylint/__pkginfo__.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# pylint: disable=W0622,C0103
2-
# Copyright (c) 2003-2013 LOGILAB S.A. (Paris, FRANCE).
2+
# Copyright (c) 2003-2014 LOGILAB S.A. (Paris, FRANCE).
33
# http://www.logilab.fr/ -- mailto:contact@logilab.fr
44
#
55
# This program is free software; you can redistribute it and/or modify it under
@@ -15,13 +15,18 @@
1515
# this program; if not, write to the Free Software Foundation, Inc.,
1616
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
1717
"""pylint packaging information"""
18+
importsys
1819

1920
modname=distname='pylint'
2021

2122
numversion= (1,1,0)
2223
version='.'.join([str(num)fornuminnumversion])
2324

24-
install_requires= ['logilab-common >= 0.53.0','astroid >= 1.0.1']
25+
ifsys.version_info< (2,6):
26+
install_requires= ['logilab-common >= 0.53.0','astroid >= 1.0.1',
27+
'StringFormat']
28+
else:
29+
install_requires= ['logilab-common >= 0.53.0','astroid >= 1.0.1']
2530

2631
license='GPL'
2732
description="python code static checker"

‎pymode/libs/pylama/lint/pylama_pylint/pylint/checkers/__init__.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@
4141
importsys
4242
importtokenize
4343
importwarnings
44-
fromos.pathimportdirname
4544

4645
fromastroid.utilsimportASTWalker
4746
fromlogilab.common.configurationimportOptionsProviderMixIn

‎pymode/libs/pylama/lint/pylama_pylint/pylint/checkers/utils.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -407,7 +407,7 @@ def get_argument_from_call(callfunc_node, position=None, keyword=None):
407407
try:
408408
ifpositionisnotNoneandnotisinstance(callfunc_node.args[position],astroid.Keyword):
409409
returncallfunc_node.args[position]
410-
exceptIndexErroraserror:
410+
exceptIndexError,error:
411411
raiseNoSuchArgumentError(error)
412412
ifkeyword:
413413
forargincallfunc_node.args:

‎pymode/libs/pylama/lint/pylama_pylint/pylint/checkers/variables.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -233,7 +233,7 @@ def leave_module(self, node):
233233
self.add_message('undefined-all-variable',
234234
args=elt_name,
235235
node=elt)
236-
exceptSyntaxErrorasexc:
236+
exceptSyntaxError,exc:
237237
# don't yield an syntax-error warning,
238238
# because it will be later yielded
239239
# when the file will be checked

‎pymode/libs/pylama/lint/pylama_pylint/pylint/lint.py

Lines changed: 21 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Copyright (c) 2003-2013 LOGILAB S.A. (Paris, FRANCE).
1+
# Copyright (c) 2003-2014 LOGILAB S.A. (Paris, FRANCE).
22
# http://www.logilab.fr/ -- mailto:contact@logilab.fr
33
#
44
# This program is free software; you can redistribute it and/or modify it under
@@ -873,15 +873,20 @@ def preprocess_options(args, search_for):
873873
option,val=arg[2:],None
874874
try:
875875
cb,takearg=search_for[option]
876+
exceptKeyError:
877+
i+=1
878+
else:
876879
delargs[i]
877880
iftakeargandvalisNone:
878881
ifi>=len(args)orargs[i].startswith('-'):
879-
raiseArgumentPreprocessingError(arg)
882+
msg='Option %s expects a value'%option
883+
raiseArgumentPreprocessingError(msg)
880884
val=args[i]
881885
delargs[i]
886+
elifnottakeargandvalisnotNone:
887+
msg="Option %s doesn't expects a value"%option
888+
raiseArgumentPreprocessingError(msg)
882889
cb(option,val)
883-
exceptKeyError:
884-
i+=1
885890
else:
886891
i+=1
887892

@@ -901,12 +906,13 @@ def __init__(self, args, reporter=None, exit=True):
901906
self._plugins= []
902907
try:
903908
preprocess_options(args, {
904-
# option: (callback, takearg)
905-
'rcfile': (self.cb_set_rcfile,True),
906-
'load-plugins': (self.cb_add_plugins,True),
907-
})
909+
# option: (callback, takearg)
910+
'init-hooks': (cb_init_hook,True),
911+
'rcfile': (self.cb_set_rcfile,True),
912+
'load-plugins': (self.cb_add_plugins,True),
913+
})
908914
exceptArgumentPreprocessingError,ex:
909-
print>>sys.stderr,'Argument %s expects a value.'% (ex.args[0],)
915+
print>>sys.stderr,ex
910916
sys.exit(32)
911917

912918
self.linter=linter=self.LinterClass((
@@ -916,8 +922,9 @@ def __init__(self, args, reporter=None, exit=True):
916922
'help' :'Specify a configuration file.'}),
917923

918924
('init-hook',
919-
{'action' :'callback','type' :'string','metavar':'<code>',
920-
'callback' :cb_init_hook,'level':1,
925+
{'action' :'callback','callback' :lambda*args:1,
926+
'type' :'string','metavar':'<code>',
927+
'level':1,
921928
'help' :'Python code to execute, usually for sys.path\
922929
manipulation such as pygtk.require().'}),
923930

@@ -1043,11 +1050,11 @@ def __init__(self, args, reporter=None, exit=True):
10431050
sys.exit(self.linter.msg_status)
10441051

10451052
defcb_set_rcfile(self,name,value):
1046-
"""callback for option preprocessing (i.e. beforeoptik parsing)"""
1053+
"""callback for option preprocessing (i.e. beforeoption parsing)"""
10471054
self._rcfile=value
10481055

10491056
defcb_add_plugins(self,name,value):
1050-
"""callback for option preprocessing (i.e. beforeoptik parsing)"""
1057+
"""callback for option preprocessing (i.e. beforeoption parsing)"""
10511058
self._plugins.extend(splitstrip(value))
10521059

10531060
defcb_error_mode(self,*args,**kwargs):
@@ -1086,7 +1093,7 @@ def cb_list_messages(self, option, optname, value, parser): # FIXME
10861093
self.linter.list_messages()
10871094
sys.exit(0)
10881095

1089-
defcb_init_hook(option,optname,value,parser):
1096+
defcb_init_hook(optname,value):
10901097
"""exec arbitrary code to set sys.path for instance"""
10911098
execvalue
10921099

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp