2013-02-26 13 views
6

मैं एक सी # अनुप्रयोग के अंदर आयरनपीथन की मेजबानी कर रहा हूं और मेजबान के लिए वैश्विक क्षेत्र में एक एपीआई इंजेक्शन दे रहा हूं।फ़ाइल में किसी विशिष्ट चर के लिए पिलिंट 'अपरिभाषित चर' त्रुटि को कैसे अक्षम करें?

मैंने अपनी स्क्रिप्ट की जांच के लिए pylint के साथ vim के लिए syntastic से प्यार करना शुरू कर दिया है। लेकिन इंजेक्शन चर के लिए सभी [E0602, method_name] Undefined variable 'variable_name' त्रुटि संदेशों से मुझे परेशान हो रहा है।

मुझे इस त्रुटि संदेश को अक्षम करने के लिए # pylint: disable=E0602 का उपयोग करने के बारे में पता है, लेकिन मैं कुछ विशिष्ट चर नामों के लिए वास्तव में उपयोगी सुविधा को अपंग नहीं करना चाहता हूं।

आप इससे कैसे निपटते हैं?

वर्तमान में, मैं अपने स्क्रिप्ट के शीर्ष पर यह कर रहा हूं:

try: 
    host_object = getattr(__builtins__, 'host_object') 
except AttributeError: 
    pass # oops, run this script inside the host application!! 

क्या मैं सच में करना चाहते हैं यह है:

# pylint: declare=host_object, other_stuff 
+1

क्या यह [डुप्लिकेट] है [http://stackoverflow.com/questions/14233867/pylint-ignore-sp ecific-नाम)? –

+0

काफी संभवतः ... उस प्रश्न को छोड़कर कोई अच्छा जवाब नहीं मिला। मुझे लगता है कि @sthenault यहाँ एक अच्छा सूचक है। हमें बस आरसी फाइल प्रलेखन और शायद एक उदाहरण के लिए एक लिंक शामिल करने के लिए अपने जवाब को ठीक करने की जरूरत है। लेकिन ऐसा लगता है कि यह काम कर सकता है! –

+0

@DarenThomas क्या यहां जवाबों में से एक था काम किया, या आप एक और समाधान मिला? –

उत्तर

1
नहीं चर के लिए

, लेकिन आप इसे निष्क्रिय कर सकते हैं वे लाइनों के लिए जो var है। ref देखें।

5

आप अपने चर को 'अतिरिक्त-निर्मित' विकल्प में जोड़ सकते हैं ताकि पिलिंट उन्हें परिभाषित मान सके।

यह एक आरसी फाइल में किया जाना है, इसे कोड में रेखांकित नहीं किया जा सकता है।

5

अक्षम करना E0602:

# make pylint think that it knows about 'injected_var' variable 
injected_var = injected_var # pylint:disable=invalid-name,used-before-assignment 

जाहिर है, कि एक बार मॉड्यूल प्रति किया जाना चाहिए, इस लाइन के बाद injected_var की सभी घटनाओं pylint के लिए कानूनी होगा।

+0

कार्य करता है; एक चालाक कामकाज। –

1

मुझे अभी इस समस्या का सामना करना पड़ा और मैंने अभी pylintrc फ़ाइल में अक्षम विकल्प जोड़े। मेरे मामले में, मैं एक छोटी लिपि पर काम कर रहा हूं और कुछ पिलिंट चेक थोड़ा अधिक है। इसलिए मैं विकलांग अपरिभाषित चर त्रुटि

E: 32,40: Undefined variable 'description' (undefined-variable) 

अक्षम = E0602, E0603 द्वारा

आपको कम से कोड और अर्थ पा सकते हैं: http://pylint-messages.wikidot.com/all-codes

मेरे pylintrc फ़ाइल:

# The format of this file isn't really documented; just use --generate-rcfile 
[MASTER] 
# Add <file or directory> to the black list. It should be a base name, not a 
# path. You may set this option multiple times. 
# 
# dirname, then we'll need to expand the ignore features in pylint :/ 
ignore=.git,tools, etc 
[MESSAGES CONTROL] 
# NOTE(gus): This is a long list. A number of these are important and 
# should be re-enabled once the offending code is fixed (or marked 
# with a local disable) 
disable=E0602, E0603, 
# "F" Fatal errors that prevent further processing 
import-error, 
# "I" Informational noise 
locally-disabled, 
# "E" Error for important programming issues (likely bugs) 
access-member-before-definition, 
no-member, 
no-method-argument, 
no-self-argument, 
# "W" Warnings for stylistic problems or minor programming issues 
abstract-method, 
arguments-differ, 
attribute-defined-outside-init, 
bad-builtin, 
bad-indentation, 
broad-except, 
dangerous-default-value, 
deprecated-lambda, 
deprecated-module, 
duplicate-key, 
expression-not-assigned, 
fixme, 
global-statement, 
no-init, 
non-parent-init-called, 
not-callable, 
protected-access, 
redefined-builtin, 
redefined-outer-name, 
signature-differs, 
star-args, 
super-init-not-called, 
super-on-old-class, 
unpacking-non-sequence, 
unused-argument, 
unused-import, 
# "C" Coding convention violations 
invalid-name, 
missing-docstring, 
superfluous-parens, 
bad-continuation, 
Undefined variable, 
# "R" Refactor recommendations 
abstract-class-little-used, 
abstract-class-not-used, 
duplicate-code, 
interface-not-implemented, 
no-self-use, 
too-few-public-methods, 
too-many-ancestors, 
too-many-arguments, 
too-many-branches, 
too-many-instance-attributes, 
too-many-lines, 
too-many-locals, 
too-many-public-methods, 
too-many-return-statements, 
too-many-statements 


[BASIC] 
# Variable names can be 1 to 31 characters long, with lowercase and underscores 
variable-rgx=[a-z_][a-z0-9_]{0,30}$ 

# Argument names can be 2 to 31 characters long, with lowercase and underscores 
argument-rgx=[a-z_][a-z0-9_]{1,30}$ 

# Method names should be at least 3 characters long 
# and be lowecased with underscores 
method-rgx=([a-z_][a-z0-9_]{2,}|setUp|tearDown)$ 

# Module names matching vulcan-* are ok (files in bin/) 
# module-rgx=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+)|(vulcan-[a-z0-9_-]+))$ 
module-rgx=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+)|([a-z0-9_-]+))$ 



# Don't require docstrings on tests. 
no-docstring-rgx=((__.*__)|([tT]est.*)|setUp|tearDown)$ 

[FORMAT] 
# Maximum number of characters on a single line. 
max-line-length=79 

[VARIABLES] 
# List of additional names supposed to be defined in builtins. Remember that 
# you should avoid to define new builtins when possible. 
# _ is used by our localization 
additional-builtins=_ 

[CLASSES] 
# List of interface methods to ignore, separated by a comma. 
ignore-iface-methods= 

[IMPORTS] 
# Deprecated modules which should not be used, separated by a comma 
deprecated-modules= 
# should use openstack.common.jsonutils 
json 

[TYPECHECK] 
# List of module names for which member attributes should not be checked 
ignored-modules=six.moves,_MovedItems 

[REPORTS] 
# Tells whether to display a full report or only the messages 
reports=no 
संबंधित मुद्दे