From 77101de3be5342abdbe35c8f3465747d1ed8d328 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philipp=20H=C3=B6rist?= Date: Sat, 25 Jan 2025 19:16:37 +0100 Subject: [PATCH] other: Add pyroject.toml --- pyproject.toml | 168 +++++++++++++++++++++++++++++++++++++++++++++ pyrightconfig.json | 14 ---- 2 files changed, 168 insertions(+), 14 deletions(-) create mode 100644 pyproject.toml delete mode 100644 pyrightconfig.json diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..b897dc7 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,168 @@ +[tool.black] +line-length = 88 +target-version = ["py310", "py311", "py312"] +required-version = "24.10.0" + +[tool.codespell] +skip = "*__pycache__*,build,dist,test,./acronyms_expander/acronyms.py,.egg-info,.git,*.po,*.pot,*.nsi,*.spec,*.svg" +ignore-words-list = "THIRDPARTY,Toi,fpr" + +[tool.pyright] +pythonVersion = "3.10" +pythonPlatform = "All" +typeCheckingMode = "strict" + +reportUnnecessaryTypeIgnoreComment = "error" +reportPropertyTypeMismatch = "error" +reportMissingModuleSource = "none" + +[tool.ruff] +line-length = 88 +target-version = "py310" + +[tool.ruff.lint] + +select = [ + "A", # flake8-builtins + # "AIR", # Airflow + # "ANN", # flake8-annotations + # "ARG", # flake8-unused-arguments + # "ASYNC", # flake8-async + "B", # flake8-bugbear + "BLE", # flake8-blind-except + "C4", # flake8-comprehensions + "C90", # mccabe + "COM", # flake8-commas + # "CPY", # flake8-copyright + # "D", # pydocstyle + # "DJ", # flake8-django + # "DTZ", # flake8-datetimez + "E", # Error + # "EM", # flake8-errmsg + # "ERA", # eradicate + "EXE", # flake8-executable + "F", # Pyflakes + "FA", # flake8-future-annotations + # "FBT", # flake8-boolean-trap + # "FIX", # flake8-fixme + # "FLY", # flynt + "G", # flake8-logging-format + # "I", # isort + "ICN", # flake8-import-conventions + # "INP", # flake8-no-pep420 + "INT", # flake8-gettext + # "ISC", # flake8-implicit-str-concat + "N", # pep8-naming + # "NPY", # NumPy-specific rules + # "PD", # pandas-vet + # "PERF", # Perflint + "PGH", # pygrep-hooks + "PIE", # flake8-pie + "PL", # Pylint + # "PT", # flake8-pytest-style + # "PTH", # flake8-use-pathlib + # "PYI", # flake8-pyi + # "Q", # flake8-quotes + # "RET", # flake8-return + "RSE", # flake8-raise + "RUF", # Ruff-specific rules + "S", # flake8-bandit + "SIM", # flake8-simplify + # "SLF", # flake8-self + "SLOT", # flake8-slots + "T10", # flake8-debugger + # "T20", # flake8-print + # "TCH", # flake8-type-checking + # "TD", # flake8-todos + # "TID", # flake8-tidy-imports + # "TRY", # tryceratops + "UP", # pyupgrade + "W", # Warning + "YTT", # flake8-2020 +] + +ignore = [ + "A003", # Class attribute is shadowing python builtin + "B904", # Within an except clause .. + "BLE001", # Blind except Exception: statement + "C901", # too complex + "COM812", # Trailing comma missing + "FBT003", # Boolean positional value in function call + "ICN001", # Unconventional-import-alias + "N802", # Function name should be lower case + "N806", # Variable should be lower case + "N817", # CamelCase imported as acronym + "N818", # Exception name should be named with an Error suffix + "PGH003", # Use specific rule codes when ignoring type issues + "PLC1901",# Expression can be simplified to x as an empty string is falsey + "PLR0911",# Too many return statements + "PLR0912",# Too many branches + "PLR0913",# Too many arguments to function call + "PLR0915",# Too many statements + "PLR2004",# Magic value used in comparison, consider replacing x with a constant variable + "PLR5501",# Consider using `elif` instead of `else` then `if` to remove one indentation level + "PLW0603",# Using the global statement to update `x` is discouraged + "PLW2901",# `for` loop variable `x` overwritten by assignment target + "RUF001", # AmbiguousUnicodeCharacterString + "RUF002", # AmbiguousUnicodeCharacterDocstring + "RUF003", # AmbiguousUnicodeCharacterComment + "RUF005", # Consider x instead of concatenation + "RUF012", # Mutable class attributes should be annotated with `typing.ClassVar` + "RUF100", # Unused `noqa` directive + "S101", # Use of `assert` detected + "S110", # `try`-`except`-`pass` detected, consider logging the exception + "S301", # `pickle` and modules that wrap it can be unsafe when used to deserialize untrusted data, possible security issue + "S303", # Use of insecure MD2, MD4, MD5, or SHA1 hash function + "S310", # Audit URL open for permitted schemes + "S311", # Standard pseudo-random generators are not suitable for cryptographic purposes + "S314", # Using `xml` to parse untrusted data is known to be vulnerable to XML attacks; use `defusedxml` equivalents + "S324", # Probable use of insecure hash functions + "S608", # Possible SQL injection vector through string-based query construction + "SIM102", # Use a single `if` statement instead of nested `if` statements + "SIM105", # Use `contextlib.suppress(Exception)` instead of try-except-pass + "SIM108", # Use ternary operator + "SIM114", # Combine `if` branches using logical `or` operator" + "SIM115", # Use context handler for opening files + "SIM201", # Use x instead of not x + "SIM212", # Use `value if value else ''` instead of `'' if not value else value` + "SIM300", # Yoda conditions are discouraged use x instead + "UP031", # Use format specifiers instead of percent format + "UP037", # Remove quotes from type annotation +] + +exclude = [ + ".eggs", + ".git", + ".ruff_cache", + ".venv", + "build", + "dist", + "venv", + "*.pyi", + # Code Folders + "typings", +] + +# Allow unused variables when underscore-prefixed. +dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$" + +[tool.ruff.lint.mccabe] +max-complexity = 15 + +[tool.isort] +profile = "black" +force_alphabetical_sort_within_sections = true +force_single_line = true +group_by_package = true +known_typing = ["typing"] +known_gajim = ["gajim"] +sections = [ + "FUTURE", + "TYPING", + "STDLIB", + "THIRDPARTY", + "GAJIM", + "FIRSTPARTY", + "LOCALFOLDER" +] +skip_gitignore = true diff --git a/pyrightconfig.json b/pyrightconfig.json deleted file mode 100644 index a79a060..0000000 --- a/pyrightconfig.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "pythonPlatform": "All", - "pythonVersion": "3.10", - "typeCheckingMode": "strict", - "reportImportCycles": "none", - "reportImplicitStringConcatenation": "none", - "reportMissingModuleSource": "none", - "exclude": [ - "**/__pycache__", - ".git", - "openpgp", - "pgp", - ], -}