@@ -113,3 +113,38 @@ dependencies = [
113113 " xor-cipher" ,
114114 " yfinance" ,
115115]
116+ [tool .ruff ]
117+ line-length = 88
118+ target-version = " py313"
119+ select = [
120+ " E" , " W" , " F" , " I" , " B" , " C4" , " UP" , " YTT" ,
121+ " EM" , " EXE" , " G" , " ISC" , " PLC" , " PLW" , " PT" , " S" , " SIM" , " SLF"
122+ ]
123+
124+ ignore = [
125+ " B101" ,
126+ " B904" , # Within an `except` clause, raise exceptions with `raise ... from err`
127+ " B905" , # `zip()` without an explicit `strict=` parameter
128+ " EM101" , # Exception must not use a string literal
129+ " EXE001" , # Shebang is present but file is not executable
130+ " G004" , # Logging statement uses f-string
131+ " ISC001" , # Conflicts with ruff format
132+ " PLC0415" ,# import-outside-top-level
133+ " PLC1901" ,# `{}` can be simplified to `{}` as an empty string is falsey
134+ " PLW060" , # Using global without assignment
135+ " PLW1641" ,# eq-without-hash
136+ " PLW2901" ,# Redefined loop variable
137+ " PT011" , # pytest.raises(Exception) is too broad
138+ " PT018" , # Assertion should be broken down
139+ " PT028" , # pytest-parameter-with-default-argument
140+ " S101" , # Use of `assert` detected
141+ " S311" , # Standard pseudo-random generators
142+ " SIM905" , # Consider using a list literal instead of `str.split`
143+ " SLF001" , # Private member accessed
144+ " UP038" , # Use `X | Y` in `{}` call
145+ ]
146+
147+ max-args = 10
148+ max-branches = 20
149+ max-returns = 8
150+ max-statements = 88
0 commit comments