#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

[GLOBAL]
pants_version: 1.3.0.dev3

plugins: [
    'pantsbuild.pants.contrib.python.checks==%(pants_version)s',
  ]

backend_packages: [
    # Pants built-ins:
    'pants.backend.codegen',
    'pants.backend.graph_info',
    'pants.backend.project_info',
    'pants.backend.python',
  ]

[binaries]
# Force pants to grab the thrift binary from the local one we build for gradle to use.
baseurls: ['%(buildroot)s/build-support/thrift/serve']

# Not needed once updated to >= pants 1.4.0.dev13.
# See below issue/comment for context.
# https://github.com/pantsbuild/pants/issues/4893#issuecomment-332019335
path_by_id: {('darwin', '17'): ('mac', '10.12')}


[thrift-binary]
# Pants 0.0.57 defaults to 0.9.2, we want to stay pinned down to 0.9.1 for now.
version: 0.9.1


[python-setup]
interpreter_requirement: CPython>=2.7,<3


# We have some modules that have side-effects upon import, including starting a repl, so we can't
# use python-eval to validate our BUILD deps currently.
[compile.python-eval]
skip: True


# We use isort for this.
[pycheck-import-order]
skip: True


[pycheck-pep8]
# Code reference is here: http://pep8.readthedocs.org/en/latest/intro.html#error-codes
ignore: [
    # Aurora custom ignores:
    'E114',  # indentation is not a multiple of four (comment)
    'E116',  # unexpected indentation (comment)
    'E122',  # continuation line missing indentation or outdented
    'E126',  # continuation line over-indented for hanging indent
    'E129',  # visually indented line with same indent as next logical line
    'E131',  # continuation line unaligned for hanging indent
    'E731',  # do not assign a lambda expression, use a def
    'W503',  # line break before binary operator

    # These are a subset of the standard ignores pre-packaged for pycheck-pep8/pep8, but we need to
    # repeat here since we add our own above:
    'E111',  # indentation is not a multiple of four
    'E121',  # continuation line under-indented for hanging indent
    'E125',  # continuation line with same indent as next logical line
    'E127',  # continuation line over-indented for visual indent
    'E128',  # continuation line under-indented for visual indent
    'E301',  # expected 1 blank line, found 0  # We allow consecutive exception declarations.
    'E401',  # multiple imports on one line
    'E701',  # multiple statements on one line (colon)  # We allow: `class Exc(Exception): pass`.
  ]


# We disable the class factoring check since it flags calls to superclass constructors from nested
# classes.  We do this commonly enough in nested exception classes.
# The error looks like so:
# T800 Instead of Context.CommandError use self.CommandError or cls.CommandError with
#      instancemethods and classmethods respectively.
[pycheck-class-factoring]
skip: True
