# ***************************
# ** DO NOT EDIT THIS FILE **
# ***************************
#
# This file was generated by edx-lint: http://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.
#
# 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. Make a new version of edx_lint, which involves the usual steps of
#    incrementing the version number, submitting and reviewing a pull
#    request, and updating the edx-lint version reference in this repo.
#
# 3. Install the newer version of edx-lint.
#
# 4. Run:
#
#       $ edx_lint write pylintrc
#
# 5. 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]
ignore = ,.git,.tox,migrations,node_modules,.pycharm_helpers
persistent = yes
load-plugins = edx_lint.pylint,pylint_django,pylint_celery
init-hook = "import sys; sys.path.extend(['lms/djangoapps', 'cms/djangoapps', 'common/djangoapps'])"

[MESSAGES CONTROL]
enable = 
	# These are controlled by explicit choices in the pylintrc files
	blacklisted-name,
	line-too-long,
	# These affect the correctness of the code
	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,
	# Checking failed for some reason
	fatal,
	astroid-error,
	parse-error,
	method-check-failed,
	django-not-available,
	raw-checker-failed,
	django-not-available-placeholder,
	# Documentation is important
	empty-docstring,
	invalid-characters-in-docstring,
	missing-docstring,
	wrong-spelling-in-comment,
	wrong-spelling-in-docstring,
	# Unused code should be deleted
	unused-import,
	unused-variable,
	unused-argument,
	# These are dangerous!
	exec-used,
	eval-used,
	# These represent idiomatic python. Not adhering to them
	# will raise red flags with future readers.
	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,
	# Don't use things that are deprecated
	deprecated-module,
	deprecated-method,
	# These help manage code complexity
	too-many-nested-blocks,
	too-many-statements,
	too-many-boolean-expressions,
	# Consistent import order makes finding where code is
	# imported from easier
	ungrouped-imports,
	wrong-import-order,
	wrong-import-position,
	wildcard-import,
	# These should be auto-fixed by any competent editor
	missing-final-newline,
	mixed-line-endings,
	trailing-newlines,
	trailing-whitespace,
	unexpected-line-ending-format,
	mixed-indentation,
	# These attempt to limit pylint line-noise
	bad-option-value,
	unrecognized-inline-option,
	useless-suppression,
	bad-inline-option,
	deprecated-pragma,
disable = 
	# These should be left to the discretion of the reviewer
	bad-continuation,
	invalid-name,
	misplaced-comparison-constant,
	file-ignored,
	bad-indentation,
	lowercase-l-suffix,
	unused-wildcard-import,
	global-statement,
	no-else-return,
	# These are disabled by pylint by default
	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,
	file-builtin,
	filter-builtin-not-iterating,
	fixme,
	getslice-method,
	hex-method,
	import-star-module-level,
	indexing-exception,
	input-builtin,
	intern-builtin,
	locally-disabled,
	locally-enabled,
	logging-format-interpolation,
	long-builtin,
	long-suffix,
	map-builtin-not-iterating,
	metaclass-assignment,
	next-method-called,
	no-absolute-import,
	no-init,
	no-self-use,
	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-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,
	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
evaluation = 10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10)

[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,40}$
argument-rgx = [a-z_][a-z0-9_]{2,40}$
variable-rgx = [a-z_][a-z0-9_]{2,40}$
class-attribute-rgx = ([A-Za-z_][A-Za-z0-9_]{2,40}|(__.*__))$
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

[FORMAT]
max-line-length = 120
ignore-long-lines = ^\s*(# )?<?https?://\S+>?$
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 = 

[EXCEPTIONS]
overgeneral-exceptions = Exception

# cb770bb6272f6fe1edfd74aa1fb912be5541481c