#       Licensed to the Apache Software Foundation (ASF) under one
#       or more contributor license agreements.  See the NOTICE file
#       distributed with this work for additional information
#       regarding copyright ownership.  The ASF licenses this file
#       to you 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.

line-length = 119
output-format = "full"
target-version = "py38"

lint.select = [
    # all flake8 & pep8 (except 'ignore' below)
    "F",
    "E",
    "W6",  # some deprecation checks
    "RUF100",  # unncessary noqa
    "RUF013",  # implicit Optional (=None)
    "ISC001",  # NIC001 in flake8 codes
    "B",
    "PGH",  # https://github.com/pre-commit/pygrep-hooks
    "S", # bandit
    "G010", # logging.warn
    "T10",  # debugger breakpoints
    "T20",  # print()
    "PLC",
    "PLE",
    "PLW",
    "SIM101",
    "SIM103",
    "SIM117",
    "SIM2",
    "SIM401",
    "FA",   # future annotations (to ensure compatibility with `target-version`)
]

lint.ignore = [
    'F401', # Imported but unused,
    'F811', # Redefinition of unused
    'F841', # Assigned to but never used
    'E731', # Do not assign a lambda expression, use a def
    'E741', # Ambiguous variable name: I,
    'E501', # Line too long
    'B006', # Do not use mutable data structures for argument defaults
    'B007', # Loop control variable not used within the loop body
    'B904', # use raise from
    'B905', # zip(strict=True) would be good, but need to closely evaluate all existing cases first
    'S101', # assert
    'S103', # permissive filesystem mask
    'S104', # network binding, which doesn't apply to our code, and gives false-positive on test IPs
    'S108', # temp files
    'S110', # try-except-pass, too many exist already
    'S303', # md5 & sha1
    'S311', # random
    'S324', # md5 & sha1
    'S603', # subprocess
    'S607', # partial path
    'PLW2901', # loop var overwritten
]

[lint.per-file-ignores]
'__init__.py' = ['F403']  # import *
'{**/alluratest/*,**/tests/*,run_tests}' = [
    'B011',  # assert False
    'T20',  # print
    'S105',  # hard-coded secrets
    'S106',  # hard-coded secrets
    'S107',  # hard-coded password
    'S314',  # XML parsing
    'S602',  # subprocess shell=True
    'S604',  # other shell=True
]
'{scripts,Allura/allura/scripts,Allura/allura/command}/*' = ['T20']  # print
'{fuse/accessfs.py,ForgeSVN/setup.py}' = ['T20']  # print
