diff --git a/amcr_viewer/.flake8 b/amcr_viewer/.flake8 new file mode 100644 index 0000000..4ea6cc1 --- /dev/null +++ b/amcr_viewer/.flake8 @@ -0,0 +1,12 @@ +# Konfigurace flake8 pro plugin AMČR Viewer. +# +# Soubor leží vedle metadata.txt schválně: scanner na plugins.qgis.org +# hledá .flake8 pouze v kořeni balíčku uvnitř ZIPu, takže stejná pravidla +# platí v CI, lokálně i při uploadu. +# https://plugins.qgis.org/docs/security-scanning/config-files +[flake8] +# resources.py je vygenerovaný výstup pyrcc ("All changes made in this +# file will be lost"), není nikde importovaný a zdrojový .qrc v repu není. +# Ručně se neformátuje. +per-file-ignores = + *resources.py: E302,E305,E501 diff --git a/amcr_viewer/amcr_codelists.py b/amcr_viewer/amcr_codelists.py index c409359..8646b38 100644 --- a/amcr_viewer/amcr_codelists.py +++ b/amcr_viewer/amcr_codelists.py @@ -65,7 +65,7 @@ def parse_codelist_file(filename, target_dict=None): try: # Open the file using standard UTF-8 encoding - with open(path, 'r', encoding='utf-8') as f: + with open(path, encoding='utf-8') as f: reader = csv.reader(f, delimiter=';') # Skip the CSV header row diff --git a/amcr_viewer/amcr_dialog.py b/amcr_viewer/amcr_dialog.py index 3cd69b9..1fac5f7 100644 --- a/amcr_viewer/amcr_dialog.py +++ b/amcr_viewer/amcr_dialog.py @@ -659,8 +659,7 @@ class AmcrFilterDialog(QDialog): def get_komponenty(self): if self.typ_dat in ["akce", "lokalita"]: return "true" if self.chk_komponenty.isChecked() else "false" - else: - return "false" + return "false" def get_filters(self): """Compiles the user selections from the cache into diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..d60d6e9 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,44 @@ +# Konfigurace lintů pro tento repozitář. +# +# Plugin se nedistribuuje jako Python balíček (do QGISu jde ZIP složky +# amcr_viewer/), takže tenhle soubor nic nebalí ani neinstaluje – slouží +# jen k tomu, aby ruff choval stejně v CI, lokálně i za rok. Bez explicitní +# konfigurace se výchozí sada pravidel mezi verzemi ruffu mění. +# +# Konfigurace flake8 je záměrně jinde: v amcr_viewer/.flake8, protože ji +# musí najít i scanner na plugins.qgis.org. + +[tool.ruff] +line-length = 79 +# QGIS 3.44 běží na Pythonu 3.9 a novějším +target-version = "py39" +# Generovaný výstup pyrcc, "All changes made in this file will be lost" +extend-exclude = ["amcr_viewer/resources.py"] + +[tool.ruff.lint] +select = [ + "E", # pycodestyle – chyby + "W", # pycodestyle – varování + "F", # pyflakes + "I", # pořadí importů + "UP", # zastaralé konstrukce + "B", # bugbear + "C4", # comprehensions + "SIM", # zjednodušení + "RET", # návratové hodnoty + "BLE", # holé except +] +ignore = [ + # Hlavička "# -*- coding: utf-8 -*-" je konvence šablony Plugin + # Builderu a drží se v celém projektu jednotně. + "UP009", + # "except Exception" je v pluginu záměr: výjimka nesmí propadnout do + # QGISu, chyba se uživateli ukáže v liště zpráv. + "BLE001", + # Obě dotčená místa mají ke každé větvi vysvětlující komentář, + # sloučením do jednoho výrazu by se čitelnost zhoršila. + "SIM103", + # contextlib.suppress() by kvůli jednomu místu přidal import a odsunul + # komentář, který vysvětluje, proč tam ta výjimka je. + "SIM105", +]