# ================================================= # flake8: # pycodestyle: E### (error), W### (warning) # pyflake: F### (error) # flake8-blind-except: B### # flake8-bugbear: B### # flake8-quotes: Q### # flake8-black : BLK### # flake8-commas: C8## (in case installed locally) # flake8-pie : PIE### (in case installed locally) # flake8-sfs : SFS### (in case installed locally) # flake8-pydocstyle: D### (in case installed locally) # ================================================= [flake8] doctests = True rst-roles = class, func, meth, mod, data, rst-directives = seealso, todo, # Exclude some file types and folders that shouldn't be checked: exclude = .svn,CVS,.bzr,.hg,.git,__pycache__,.tox,.github,build ignore = # ============================================================= # Biopython's 'standard' ignores we can agree to always accept: # ============================================================= W503, # line-break before binary operator # deliberately ignore (in favour of enforcing W504) # =========================================== # Ignores that we have to accept for a while: # =========================================== E203, # whitespace before ':' # gives false positives after running black, see # https://github.com/PyCQA/pycodestyle/issues/373 E122,E131,E124,E126,E127,E128,E201,E241, # E112 continuation line missing indentation or outdented # E131 continuation line unaligned for hanging indent # E124 closing bracket does not match visual indentation # E126 continuation line over-indented for hanging indent # E127 continuation line over-indented for visual indent # E128 continuation line under-indented for visual indent # E201 whitespace after '[' # E241 multiple spaces after ',' # ignoring as using black for layout (if this is triggered, # it would be in a snippet explicitly excluded from black) E501, # line too long # Maybe we find a sensible limit, e.g. 88 (black) and enforce it E704, # multiple statements on one line (def) # seeing some false positives with @overload ... for type annotation B007, # Loop control variable not used within the loop body. # If this is intended, start the name with an underscore B028, # No explicit stacklevel keyword argument found. # The warn method from the warnings module uses a stacklevel of 1 # by default... It is therefore recommended to use a stacklevel of # 2 or greater to provide more information to the user B902, # ========================================= # Optional ignores for local installations: # ========================================= PIE781, # Assigning to temp variable and then returning, not enforcing SFS101,SFS301, # typical string formatting C8, # everything from flake8-commas - just use black D, # using ruff for the historic flake8-pydocstyle codes # ======================== # Folder specific ignores: # ======================== per-file-ignores = Bio/*:F401,F841,B009,B010 Tests/*:F401,F841,W291,B009,B010,B015 # Due to a bug in flake8, we need the following lines for running the # pre-commit hook. If you made edits above, please change also here! /Bio/*:F401,F841,B009,B010 /Tests/*:F401,F841,D101,W291,B009,B010,B015 #Explanation of the codes being ignored in Bio/ and Tests/: # #Bio/*:F401 module imported but unused TODO? (97 occurrences) # F841 local variable is assigned to but never used TODO? (58 occurrences) # B009 do not call getattr with a constant attribute value (5 occurrences), # it is not any safer than normal property access # B010 do not call setattr with a constant attribute value (11 occurrences), # it is not any safer than normal property access #Tests/*:F401 module imported but unused TODO? (115 occurrences) # F841 local variable is assigned to but never used TODO? (93 occurrences) # D101 missing docstring in public class (244 occurrences) # D102 missing docstring in public method (1368 occurrences) # D103 missing docstring in public functions (20 occurrences) # W291 trailing whitespace (due to alignment tests) # B009 do not call getattr with a constant attribute value (10 occurrences), # it is not any safer than normal property access # B010 do not call setattr with a constant attribute value (7 occurrences), # it is not any safer than normal property access # B015 Pointless comparison. This comparison does nothing ... (108 occurrences) # (Intended to trigger exceptions in our tests) # ======================= # flake8-quotes settings: # ======================= inline-quotes = double