198 lines
6.2 KiB
TOML
198 lines
6.2 KiB
TOML
[project]
|
|
name = "gajim-plugins"
|
|
requires-python = ">=3.11"
|
|
license = {text = "GPL-3.0-or-later"}
|
|
version = "0.0.1"
|
|
|
|
[dependency-groups]
|
|
dev = [
|
|
"codespell==2.4.1",
|
|
"gajim@git+https://dev.gajim.org/gajim/gajim.git",
|
|
"isort==7.0.0",
|
|
"nbxmpp@git+https://dev.gajim.org/gajim/python-nbxmpp.git",
|
|
"pre-commit",
|
|
"pygobject-stubs@git+https://github.com/pygobject/pygobject-stubs.git",
|
|
"python-gnupg>=0.5.6",
|
|
"rich>=14.2.0",
|
|
"ruff==0.14.8",
|
|
]
|
|
|
|
[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,*.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"
|
|
|
|
exclude = [
|
|
"**/__pycache__",
|
|
".git",
|
|
".venv",
|
|
]
|
|
|
|
[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
|
|
"PLC0415",# `import` should be at the top-level of a file
|
|
"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.per-file-ignores]
|
|
"scripts/*" = ["S603", "S607"]
|
|
|
|
[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
|