blob: 6df46f41d915b1a586bf0deef700a36a8185a05f [file] [log] [blame]
# 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