Skip to content
Snippets Groups Projects
pylintrc 9.91 KiB
Newer Older
  • Learn to ignore specific revisions
  • # ***************************
    # ** DO NOT EDIT THIS FILE **
    # ***************************
    #
    
    # This file was generated by edx-lint: https://github.com/edx/edx-lint
    
    # If you want to change this file, you have two choices, depending on whether
    # you want to make a local change that applies only to this repo, or whether
    # you want to make a central change that applies to all repos using edx-lint.
    
    # Note: If your pylintrc file is simply out-of-date relative to the latest
    # pylintrc rules in edx-lint, ensure you have the latest edx-lint installed
    # and then follow the steps for a "LOCAL CHANGE".
    
    # LOCAL CHANGE:
    
    # 1. Edit the local pylintrc_tweaks file to add changes just to this
    #    repo's file.
    
    # 2. Run:
    
    #       $ edx_lint write pylintrc
    
    # 3. This will modify the local file.  Submit a pull request to get it
    #    checked in so that others will benefit.
    
    #
    # CENTRAL CHANGE:
    #
    # 1. Edit the pylintrc file in the edx-lint repo at
    #    https://github.com/edx/edx-lint/blob/master/edx_lint/files/pylintrc
    #
    # 2. install the updated version of edx-lint (in edx-lint):
    #
    #       $ pip install .
    #
    # 3. Run (in edx-lint):
    #
    #       # uses pylintrc_tweaks from edx-lint for linting in edx-lint
    #       # NOTE: Use Python 3.x, which no longer includes comments in the output file
    #       $ edx_lint write pylintrc
    #
    # 4. Make a new version of edx_lint, submit and review a pull request with the
    #    pylintrc update, and after merging, update the edx-lint version by
    #    creating a new tag in the repo (uses pbr).
    #
    # 5. In your local repo, install the newer version of edx-lint.
    #
    # 6. Run:
    #
    #       # uses local pylintrc_tweaks
    #       $ edx_lint write pylintrc
    #
    # 7. This will modify the local file.  Submit a pull request to get it
    #    checked in so that others will benefit.
    #
    #
    #
    #
    #
    # STAY AWAY FROM THIS FILE!
    
    #
    #
    #
    #
    #
    # SERIOUSLY.
    #
    # ------------------------------
    [MASTER]
    
    load-plugins = edx_lint.pylint,pylint_django,pylint_celery
    
    	blacklisted-name,
    	line-too-long,
    
    	syntax-error,
    	init-is-generator,
    	return-in-init,
    	function-redefined,
    	not-in-loop,
    	return-outside-function,
    	yield-outside-function,
    	return-arg-in-generator,
    	nonexistent-operator,
    	duplicate-argument-name,
    	abstract-class-instantiated,
    	bad-reversed-sequence,
    	continue-in-finally,
    	method-hidden,
    	access-member-before-definition,
    	no-method-argument,
    	no-self-argument,
    	invalid-slots-object,
    	assigning-non-slot,
    	invalid-slots,
    	inherit-non-class,
    	inconsistent-mro,
    	duplicate-bases,
    	non-iterator-returned,
    	unexpected-special-method-signature,
    	invalid-length-returned,
    	import-error,
    	used-before-assignment,
    	undefined-variable,
    	undefined-all-variable,
    	invalid-all-object,
    	no-name-in-module,
    	unbalance-tuple-unpacking,
    	unpacking-non-sequence,
    	bad-except-order,
    	raising-bad-type,
    	misplaced-bare-raise,
    	raising-non-exception,
    	nonimplemented-raised,
    	catching-non-exception,
    	slots-on-old-class,
    	super-on-old-class,
    	bad-super-call,
    	missing-super-argument,
    	no-member,
    	not-callable,
    	assignment-from-no-return,
    	no-value-for-parameter,
    	too-many-function-args,
    	unexpected-keyword-arg,
    	redundant-keyword-arg,
    	invalid-sequence-index,
    	invalid-slice-index,
    	assignment-from-none,
    	not-context-manager,
    	invalid-unary-operand-type,
    	unsupported-binary-operation,
    	repeated-keyword,
    	not-an-iterable,
    	not-a-mapping,
    	unsupported-membership-test,
    	unsubscriptable-object,
    	logging-unsupported-format,
    	logging-too-many-args,
    	logging-too-few-args,
    	bad-format-character,
    	truncated-format-string,
    	mixed-fomat-string,
    	format-needs-mapping,
    	missing-format-string-key,
    	too-many-format-args,
    	too-few-format-args,
    	bad-str-strip-call,
    	model-unicode-not-callable,
    	super-method-not-called,
    	non-parent-method-called,
    	test-inherits-tests,
    	translation-of-non-string,
    	redefined-variable-type,
    	cyclical-import,
    	unreachable,
    	dangerous-default-value,
    	pointless-statement,
    	pointless-string-statement,
    	expression-not-assigned,
    	duplicate-key,
    	confusing-with-statement,
    	using-constant-test,
    	lost-exception,
    	assert-on-tuple,
    	attribute-defined-outside-init,
    	bad-staticmethod-argument,
    	arguments-differ,
    	signature-differs,
    	abstract-method,
    	super-init-not-called,
    	relative-import,
    	import-self,
    	misplaced-future,
    	invalid-encoded-data,
    	global-variable-undefined,
    	redefined-outer-name,
    	redefined-builtin,
    	redefined-in-handler,
    	undefined-loop-variable,
    	cell-var-from-loop,
    	duplicate-except,
    	nonstandard-exception,
    	binary-op-exception,
    	property-on-old-class,
    	bad-format-string-key,
    	unused-format-string-key,
    	bad-format-string,
    	missing-format-argument-key,
    	unused-format-string-argument,
    	format-combined-specification,
    	missing-format-attribute,
    	invalid-format-index,
    	anomalous-backslash-in-string,
    	anomalous-unicode-escape-in-string,
    	bad-open-mode,
    	boolean-datetime,
    
    	fatal,
    	astroid-error,
    	parse-error,
    	method-check-failed,
    	django-not-available,
    	raw-checker-failed,
    	django-not-available-placeholder,
    
    	empty-docstring,
    	invalid-characters-in-docstring,
    	missing-docstring,
    	wrong-spelling-in-comment,
    	wrong-spelling-in-docstring,
    
    	unused-import,
    	unused-variable,
    	unused-argument,
    
    	exec-used,
    	eval-used,
    
    	bad-classmethod-argument,
    	bad-mcs-classmethod-argument,
    	bad-mcs-method-argument,
    	bad-whitespace,
    	consider-iterating-dictionary,
    	consider-using-enumerate,
    	literal-used-as-attribute,
    	multiple-imports,
    	multiple-statements,
    	old-style-class,
    	simplifiable-range,
    	singleton-comparison,
    	superfluous-parens,
    	unidiomatic-typecheck,
    	unneeded-not,
    	wrong-assert-type,
    	simplifiable-if-statement,
    	no-classmethod-decorator,
    	no-staticmethod-decorator,
    	unnecessary-pass,
    	unnecessary-lambda,
    	useless-else-on-loop,
    	unnecessary-semicolon,
    	reimported,
    	global-variable-not-assigned,
    	global-at-module-level,
    	bare-except,
    	broad-except,
    	logging-not-lazy,
    	redundant-unittest-assert,
    	model-missing-unicode,
    	model-has-unicode,
    	model-no-explicit-unicode,
    	protected-access,
    
    	deprecated-module,
    	deprecated-method,
    
    	too-many-nested-blocks,
    	too-many-statements,
    	too-many-boolean-expressions,
    
    	wrong-import-order,
    	wrong-import-position,
    	wildcard-import,
    
    	missing-final-newline,
    	mixed-line-endings,
    	trailing-newlines,
    	trailing-whitespace,
    	unexpected-line-ending-format,
    	mixed-indentation,
    
    	bad-option-value,
    	unrecognized-inline-option,
    	useless-suppression,
    	bad-inline-option,
    	deprecated-pragma,
    
    	bad-continuation,
    	invalid-name,
    	misplaced-comparison-constant,
    	file-ignored,
    	bad-indentation,
    	lowercase-l-suffix,
    	unused-wildcard-import,
    	global-statement,
    	no-else-return,
    
        django-not-configured,
    
    	apply-builtin,
    	backtick,
    	basestring-builtin,
    	buffer-builtin,
    	cmp-builtin,
    	cmp-method,
    	coerce-builtin,
    	coerce-method,
    	delslice-method,
    	dict-iter-method,
    	dict-view-method,
    	duplicate-code,
    	execfile-builtin,
    	feature-toggle-needs-doc,
    	file-builtin,
    	filter-builtin-not-iterating,
    	fixme,
    	getslice-method,
    	hex-method,
    	illegal-waffle-usage,
    	import-star-module-level,
    	indexing-exception,
    	input-builtin,
    	intern-builtin,
    
    	logging-format-interpolation,
    	long-builtin,
    	long-suffix,
    	map-builtin-not-iterating,
    	metaclass-assignment,
    	next-method-called,
    	no-absolute-import,
    
    	nonzero-method,
    	oct-method,
    	old-division,
    	old-ne-operator,
    	old-octal-literal,
    	old-raise-syntax,
    	parameter-unpacking,
    	print-statement,
    	raising-string,
    	range-builtin-not-iterating,
    	raw_input-builtin,
    	reduce-builtin,
    	reload-builtin,
    	round-builtin,
    	setslice-method,
    	standarderror-builtin,
    	suppressed-message,
    	too-few-public-methods,
    
    	too-many-arguments,
    	too-many-branches,
    
    	too-many-lines,
    	too-many-locals,
    
    	too-many-public-methods,
    	too-many-return-statements,
    
    	ungrouped-imports,
    	unichr-builtin,
    	unicode-builtin,
    	unpacking-in-except,
    	using-cmp-argument,
    	xrange-builtin,
    	zip-builtin-not-iterating,
    
    
    [REPORTS]
    output-format = text
    files-output = no
    reports = no
    
    score = no
    
    
    [BASIC]
    bad-functions = map,filter,apply,input
    module-rgx = (([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$
    const-rgx = (([A-Z_][A-Z0-9_]*)|(__.*__)|log|urlpatterns)$
    class-rgx = [A-Z_][a-zA-Z0-9]+$
    
    function-rgx = ([a-z_][a-z0-9_]{2,40}|test_[a-z0-9_]+)$
    
    method-rgx = ([a-z_][a-z0-9_]{2,40}|setUp|set[Uu]pClass|tearDown|tear[Dd]ownClass|assert[A-Z]\w*|maxDiff|test_[a-z0-9_]+)$
    attr-rgx = [a-z_][a-z0-9_]{2,30}$
    argument-rgx = [a-z_][a-z0-9_]{2,30}$
    variable-rgx = [a-z_][a-z0-9_]{2,30}$
    class-attribute-rgx = ([A-Za-z_][A-Za-z0-9_]{2,30}|(__.*__))$
    inlinevar-rgx = [A-Za-z_][A-Za-z0-9_]*$
    good-names = f,i,j,k,db,ex,Run,_,__
    bad-names = foo,bar,baz,toto,tutu,tata
    no-docstring-rgx = __.*__$|test_.+|setUp$|setUpClass$|tearDown$|tearDownClass$|Meta$
    
    docstring-min-length = 5
    
    ignore-long-lines = ^\s*(# )?((<?https?://\S+>?)|(\.\. \w+: .*))$
    
    single-line-if-stmt = no
    no-space-check = trailing-comma,dict-separator
    max-module-lines = 1000
    indent-string = '    '
    
    [MISCELLANEOUS]
    notes = FIXME,XXX,TODO
    
    [SIMILARITIES]
    min-similarity-lines = 4
    ignore-comments = yes
    ignore-docstrings = yes
    ignore-imports = no
    
    [TYPECHECK]
    ignore-mixin-members = yes
    ignored-classes = SQLObject
    unsafe-load-any-extension = yes
    
    generated-members =
    
    	REQUEST,
    	acl_users,
    	aq_parent,
    	objects,
    	DoesNotExist,
    	can_read,
    	can_write,
    	get_url,
    	size,
    	content,
    	status_code,
    	create,
    	build,
    	fields,
    	tag,
    	org,
    	course,
    	category,
    	name,
    	revision,
    	_meta,
    
    [VARIABLES]
    init-import = no
    dummy-variables-rgx = _|dummy|unused|.*_unused
    
    additional-builtins =
    
    
    [CLASSES]
    defining-attr-methods = __init__,__new__,setUp
    valid-classmethod-first-arg = cls
    valid-metaclass-classmethod-first-arg = mcs
    
    [DESIGN]
    max-args = 5
    ignored-argument-names = _.*
    max-locals = 15
    max-returns = 6
    max-branches = 12
    max-statements = 50
    max-parents = 7
    max-attributes = 7
    min-public-methods = 2
    max-public-methods = 20
    
    [IMPORTS]
    deprecated-modules = regsub,TERMIOS,Bastion,rexec
    
    import-graph =
    ext-import-graph =
    int-import-graph =
    
    # 42226da5ce66bbfda9d557aac3602fd7a381f747