summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSylvain Thénault <sylvain.thenault@logilab.fr>2008-03-27 12:21:47 +0100
committerSylvain Thénault <sylvain.thenault@logilab.fr>2008-03-27 12:21:47 +0100
commit04f60edd9450ca0dca27944a661fea16ab6ad089 (patch)
treebcf514c6c4f5ae5ee8521d6d12edf796a39a03b1
parent6fbbe18d627d451fd25ea815a612298207c341af (diff)
downloadpylint-git-04f60edd9450ca0dca27944a661fea16ab6ad089.tar.gz
* typecheck: acquired-members option has been dropped in favor of the more
generic generated-members option. If the zope option is set, the behaviour is now to add some default values to generated-members.
-rw-r--r--ChangeLog3
-rw-r--r--checkers/typecheck.py24
2 files changed, 17 insertions, 10 deletions
diff --git a/ChangeLog b/ChangeLog
index f4542d93d..d1f5d4957 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -5,6 +5,9 @@ ChangeLog for PyLint
* included Stefan Rank's patch to deal with 2.4 relative import
* included Robert Kirkpatrick's tutorial and typos fixes
* fix bug in reenabling message
+ * typecheck: acquired-members option has been dropped in favor of the more
+ generic generated-members option. If the zope option is set, the behaviour
+ is now to add some default values to generated-members.
2008-01-14 -- 0.14.0
* fix #3733: Messages (dis)appear depending on order of file names
diff --git a/checkers/typecheck.py b/checkers/typecheck.py
index c0cc6d082..cbcbddd2d 100644
--- a/checkers/typecheck.py
+++ b/checkers/typecheck.py
@@ -70,20 +70,25 @@ should not be checked (useful for classes with attributes dynamicaly set).'}
('zope',
{'default' : False, 'type' : 'yn', 'metavar': '<y_or_n>',
- 'help' : 'When zope mode is activated, consider the \
-acquired-members option to ignore access to some undefined attributes.'}
+ 'help' : 'When zope mode is activated, add a predefined set \
+of Zope acquired attributes to generated-members.'}
),
- ('acquired-members',
+ ('generated-members',
{'default' : (
'REQUEST', 'acl_users', 'aq_parent'),
'type' : 'csv',
'metavar' : '<members names>',
- 'help' : 'List of members which are usually get through \
-zope\'s acquisition mecanism and so shouldn\'t trigger E0201 when accessed \
-(need zope=yes to be considered).'}
+ 'help' : 'List of members which are set dynamically and \
+missed by pylint inference system, and so shouldn\'t trigger E0201 when \
+accessed.'}
),
)
-
+ def __init__(self, linter=None):
+ BaseChecker.__init__(self, linter)
+ self.generated_members = list(self.config.generated_members)
+ if self.config.zope:
+ self.generated_members.extend(('REQUEST', 'acl_users', 'aq_parent'))
+
def visit_getattr(self, node):
"""check that the accessed attribute exists
@@ -92,9 +97,8 @@ zope\'s acquisition mecanism and so shouldn\'t trigger E0201 when accessed \
function/method, super call and metaclasses are ignored
"""
- # if we are running in zope mode and this is an acquired attribute,
- # stop there
- if self.config.zope and node.attrname in self.config.acquired_members:
+ if node.attrname in self.config.generated_members:
+ # attribute is marked as generated, stop here
return
try:
infered = list(node.expr.infer())