Skip to content

Commit 985bda7

Browse files
committed
run pre-commit on all files
1 parent 58ab51c commit 985bda7

10 files changed

+246
-106
lines changed

.github/workflows/test.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,4 @@ jobs:
1515
run: |
1616
docker run -v ${GITHUB_WORKSPACE}:/src -w /src opengisch/qgis:stable sh -c 'xvfb-run pytest-3'
1717
env:
18-
DOCKER_IMAGE: ${{ steps.docker-build.outputs.FULL_IMAGE_NAME }}
18+
DOCKER_IMAGE: ${{ steps.docker-build.outputs.FULL_IMAGE_NAME }}

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,4 @@ __pycache__
66
i18n
77
.DS_Store
88
github_deploy_key.out
9-
ordered_relation_editor/resources_rcs.py
9+
ordered_relation_editor/resources_rcs.py

.pre-commit-config.yaml

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
exclude: ".venv|tests/dev/|tests/fixtures/"
2+
fail_fast: false
3+
repos:
4+
- repo: https://github.com/pre-commit/pre-commit-hooks
5+
rev: v4.5.0
6+
hooks:
7+
- id: check-added-large-files
8+
args: ["--maxkb=500"]
9+
- id: check-case-conflict
10+
- id: check-toml
11+
- id: check-xml
12+
- id: check-yaml
13+
- id: detect-private-key
14+
- id: end-of-file-fixer
15+
- id: fix-byte-order-marker
16+
- id: fix-encoding-pragma
17+
args: [--remove]
18+
- id: trailing-whitespace
19+
args: [--markdown-linebreak-ext=md]
20+
21+
- repo: https://github.com/asottile/pyupgrade
22+
rev: v3.15.0
23+
hooks:
24+
- id: pyupgrade
25+
args: [--py39-plus]
26+
27+
- repo: https://github.com/psf/black
28+
rev: 23.9.1
29+
hooks:
30+
- id: black
31+
32+
- repo: https://github.com/pycqa/isort
33+
rev: 5.12.0
34+
hooks:
35+
- id: isort
36+
args: ["--profile", "black", "--filter-files"]
37+
38+
ci:
39+
autofix_prs: true
40+
autoupdate_schedule: quarterly

ordered_relation_editor/__init__.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
# -*- coding: utf-8 -*-
21
# -----------------------------------------------------------
32
#
43
# QGIS Ordered Relation Editor Plugin
@@ -15,5 +14,8 @@ def classFactory(iface):
1514
:type iface: QgsInterface
1615
"""
1716
#
18-
from ordered_relation_editor.core.ordered_relation_editor_plugin import OrderedRelationEditorPlugin
17+
from ordered_relation_editor.core.ordered_relation_editor_plugin import (
18+
OrderedRelationEditorPlugin,
19+
)
20+
1921
return OrderedRelationEditorPlugin(iface)

ordered_relation_editor/core/ordered_relation_editor_plugin.py

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
# -*- coding: utf-8 -*-
21
# -----------------------------------------------------------
32
#
43
# QGIS Ordered Relation Editor Plugin
@@ -9,31 +8,36 @@
98
# -----------------------------------------------------------
109

1110
import os
12-
from qgis.PyQt.QtCore import QCoreApplication, QTranslator, QObject, QLocale, QSettings
11+
1312
from qgis.gui import QgisInterface, QgsGui
14-
from ordered_relation_editor.gui.ordered_relation_editor_widget_factory import OrderedRelationEditorWidgetFactory, WIDGET_TYPE
13+
from qgis.PyQt.QtCore import QCoreApplication, QLocale, QObject, QSettings, QTranslator
14+
15+
from ordered_relation_editor.gui.ordered_relation_editor_widget_factory import (
16+
WIDGET_TYPE,
17+
OrderedRelationEditorWidgetFactory,
18+
)
1519

1620
DEBUG = True
1721

1822

1923
class OrderedRelationEditorPlugin(QObject):
20-
2124
plugin_name = "&Ordered Relation Editor"
2225

2326
def __init__(self, iface: QgisInterface):
2427
QObject.__init__(self)
2528
self.iface = iface
2629

2730
# initialize translation
28-
qgis_locale = QLocale(QSettings().value('locale/userLocale'))
29-
locale_path = os.path.join(os.path.dirname(__file__), 'i18n')
31+
qgis_locale = QLocale(QSettings().value("locale/userLocale"))
32+
locale_path = os.path.join(os.path.dirname(__file__), "i18n")
3033
self.translator = QTranslator()
31-
self.translator.load(qgis_locale, 'actions_for_relations', '_', locale_path)
34+
self.translator.load(qgis_locale, "actions_for_relations", "_", locale_path)
3235
QCoreApplication.installTranslator(self.translator)
3336

3437
def initGui(self):
35-
QgsGui.relationWidgetRegistry().addRelationWidget(OrderedRelationEditorWidgetFactory())
38+
QgsGui.relationWidgetRegistry().addRelationWidget(
39+
OrderedRelationEditorWidgetFactory()
40+
)
3641

3742
def unload(self):
3843
QgsGui.relationWidgetRegistry().removeRelationWidget(WIDGET_TYPE)
39-

ordered_relation_editor/core/ordered_relation_model.py

Lines changed: 80 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
# -*- coding: utf-8 -*-
21
# -----------------------------------------------------------
32
#
43
# QGIS Ordered Relation Editor Plugin
@@ -9,13 +8,29 @@
98
# -----------------------------------------------------------
109

1110
from enum import Enum
12-
from qgis.PyQt.QtCore import pyqtSlot, pyqtSignal, pyqtProperty, Qt, QObject, QAbstractTableModel, QModelIndex
13-
from qgis.core import QgsRelation, QgsFeature, QgsExpression, QgsExpressionContext, QgsExpressionContextUtils, QgsMessageLog
11+
12+
from qgis.core import (
13+
QgsExpression,
14+
QgsExpressionContext,
15+
QgsExpressionContextUtils,
16+
QgsFeature,
17+
QgsMessageLog,
18+
QgsRelation,
19+
)
20+
from qgis.PyQt.QtCore import (
21+
QAbstractTableModel,
22+
QModelIndex,
23+
QObject,
24+
Qt,
25+
pyqtProperty,
26+
pyqtSignal,
27+
pyqtSlot,
28+
)
1429

1530
Debug = True
1631

17-
class OrderedRelationModel(QAbstractTableModel):
1832

33+
class OrderedRelationModel(QAbstractTableModel):
1934
ImagePathRole = Qt.UserRole + 1
2035
DescriptionRole = Qt.UserRole + 2
2136
FeatureIdRole = Qt.UserRole + 5
@@ -24,15 +39,22 @@ class OrderedRelationModel(QAbstractTableModel):
2439
currentFeatureChanged = pyqtSignal(QgsFeature)
2540

2641
def __init__(self, parent: QObject = None):
27-
super(OrderedRelationModel, self).__init__(parent)
42+
super().__init__(parent)
2843
self._relation = QgsRelation()
29-
self._ordering_field = str()
30-
self._image_path = str()
31-
self._description = str()
44+
self._ordering_field = ""
45+
self._image_path = ""
46+
self._description = ""
3247
self._feature = QgsFeature()
3348
self._related_features = []
3449

35-
def init(self, relation: QgsRelation, ordering_field: str, feature: QgsFeature, image_path: str, description: str):
50+
def init(
51+
self,
52+
relation: QgsRelation,
53+
ordering_field: str,
54+
feature: QgsFeature,
55+
image_path: str,
56+
description: str,
57+
):
3658
self._relation = relation
3759
self._ordering_field = ordering_field
3860
self._image_path = image_path
@@ -85,25 +107,33 @@ def data(self, index: QModelIndex, role: int = ...):
85107
if role == self.ImagePathRole:
86108
exp = QgsExpression(self._image_path)
87109
context = QgsExpressionContext()
88-
context.appendScopes(QgsExpressionContextUtils.globalProjectLayerScopes(self._relation.referencingLayer()))
110+
context.appendScopes(
111+
QgsExpressionContextUtils.globalProjectLayerScopes(
112+
self._relation.referencingLayer()
113+
)
114+
)
89115
context.setFeature(self._related_features[index.row()])
90116
res = exp.evaluate(context)
91117
if res is None:
92-
res = str()
118+
res = ""
93119
if Debug:
94-
QgsMessageLog.logMessage("ImagePath role: '{0}'".format(str(res)))
120+
QgsMessageLog.logMessage(f"ImagePath role: '{str(res)}'")
95121
return res
96122

97123
elif role == self.DescriptionRole:
98124
exp = QgsExpression(self._description)
99125
context = QgsExpressionContext()
100-
context.appendScopes(QgsExpressionContextUtils.globalProjectLayerScopes(self._relation.referencingLayer()))
126+
context.appendScopes(
127+
QgsExpressionContextUtils.globalProjectLayerScopes(
128+
self._relation.referencingLayer()
129+
)
130+
)
101131
context.setFeature(self._related_features[index.row()])
102132
res = exp.evaluate(context)
103133
if res is None:
104-
res = str()
134+
res = ""
105135
if Debug:
106-
QgsMessageLog.logMessage("Description role: '{0}'".format(str(res)))
136+
QgsMessageLog.logMessage(f"Description role: '{str(res)}'")
107137
return res
108138

109139
elif role == self.FeatureIdRole:
@@ -123,7 +153,11 @@ def moveitems(self, index_from, index_to):
123153
if index_from == index_to:
124154
return
125155

126-
field_index = self._relation.referencingLayer().fields().indexFromName(self._ordering_field)
156+
field_index = (
157+
self._relation.referencingLayer()
158+
.fields()
159+
.indexFromName(self._ordering_field)
160+
)
127161
if field_index < 0:
128162
return
129163

@@ -133,17 +167,23 @@ def moveitems(self, index_from, index_to):
133167

134168
self.beginResetModel()
135169

136-
for i in range(start_index, end_index+1):
170+
for i in range(start_index, end_index + 1):
137171
f = self._related_features[i]
138172
if i == index_from:
139-
self._related_features[i][self._ordering_field] = index_to + 1 # ranks are index +1 (start at 1)
173+
self._related_features[i][self._ordering_field] = (
174+
index_to + 1
175+
) # ranks are index +1 (start at 1)
140176
else:
141177
self._related_features[i][self._ordering_field] += delta
142178

143-
res = self._relation.referencingLayer().changeAttributeValue(f.id(), field_index, f[self._ordering_field])
179+
res = self._relation.referencingLayer().changeAttributeValue(
180+
f.id(), field_index, f[self._ordering_field]
181+
)
144182
print(res)
145183

146-
self._related_features = sorted(self._related_features, key=lambda _f: _f[self._ordering_field])
184+
self._related_features = sorted(
185+
self._related_features, key=lambda _f: _f[self._ordering_field]
186+
)
147187

148188
self.endResetModel()
149189

@@ -154,28 +194,36 @@ def onViewCurrentFeatureChanged(self, index):
154194

155195
def roleNames(self):
156196
return {
157-
self.ImagePathRole: b'ImagePath',
158-
self.DescriptionRole: b'Description',
159-
self.FeatureIdRole: b'FeatureId'
197+
self.ImagePathRole: b"ImagePath",
198+
self.DescriptionRole: b"Description",
199+
self.FeatureIdRole: b"FeatureId",
160200
}
161201

162202
def reloadData(self):
163203
self.beginResetModel()
164204
self._related_features = []
165205

166206
if Debug:
167-
QgsMessageLog.logMessage("Reload data: Ordering field='{0}', Relation valid/id={1}/'{2}', Feature valid={3}"
168-
.format(self._ordering_field, self._relation.isValid(), self._relation.id(), self._feature.isValid()))
169-
170-
if len(self._ordering_field) > 0 and self._relation.isValid() and self._feature.isValid():
207+
QgsMessageLog.logMessage(
208+
"Reload data: Ordering field='{}', Relation valid/id={}/'{}', Feature valid={}".format(
209+
self._ordering_field,
210+
self._relation.isValid(),
211+
self._relation.id(),
212+
self._feature.isValid(),
213+
)
214+
)
215+
216+
if (
217+
len(self._ordering_field) > 0
218+
and self._relation.isValid()
219+
and self._feature.isValid()
220+
):
171221
request = self._relation.getRelatedFeaturesRequest(self._feature)
172222
for f in self._relation.referencingLayer().getFeatures(request):
173223
self._related_features.append(f)
174224

175-
self._related_features = sorted(self._related_features, key=lambda _f: _f[self._ordering_field])
225+
self._related_features = sorted(
226+
self._related_features, key=lambda _f: _f[self._ordering_field]
227+
)
176228

177229
self.endResetModel()
178-
179-
180-
181-
Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
# -*- coding: utf-8 -*-
21
# -----------------------------------------------------------
32
#
43
# QGIS Ordered Relation Editor Plugin
@@ -9,15 +8,21 @@
98
# -----------------------------------------------------------
109

1110
import os
12-
from qgis.PyQt.uic import loadUiType
13-
from qgis.PyQt.QtWidgets import QGridLayout, QLabel
14-
from qgis.gui import QgsAbstractRelationEditorConfigWidget
1511

16-
WidgetUi, _ = loadUiType(os.path.join(os.path.dirname(__file__), '../ui/ordered_relation_editor_config_widget.ui'))
12+
from qgis.gui import QgsAbstractRelationEditorConfigWidget
13+
from qgis.PyQt.QtWidgets import QGridLayout, QLabel
14+
from qgis.PyQt.uic import loadUiType
1715

16+
WidgetUi, _ = loadUiType(
17+
os.path.join(
18+
os.path.dirname(__file__), "../ui/ordered_relation_editor_config_widget.ui"
19+
)
20+
)
1821

19-
class OrderedRelationEditorConfigWidget(QgsAbstractRelationEditorConfigWidget, WidgetUi):
2022

23+
class OrderedRelationEditorConfigWidget(
24+
QgsAbstractRelationEditorConfigWidget, WidgetUi
25+
):
2126
def __init__(self, relation, parent):
2227
super().__init__(relation, parent)
2328
self.setupUi(self)
@@ -28,12 +33,12 @@ def __init__(self, relation, parent):
2833

2934
def config(self):
3035
return {
31-
'ordering_field': self.mOrderingFieldComboBox.currentField(),
32-
'description': self.mDescriptionExpressionWidget.currentField()[0],
33-
'image_path': self.mImagePathExpressionWidget.currentField()[0]
36+
"ordering_field": self.mOrderingFieldComboBox.currentField(),
37+
"description": self.mDescriptionExpressionWidget.currentField()[0],
38+
"image_path": self.mImagePathExpressionWidget.currentField()[0],
3439
}
3540

3641
def setConfig(self, config):
37-
self.mOrderingFieldComboBox.setField(config.get('ordering_field'))
38-
self.mDescriptionExpressionWidget.setField(config.get('description'))
39-
self.mImagePathExpressionWidget.setField(config.get('image_path'))
42+
self.mOrderingFieldComboBox.setField(config.get("ordering_field"))
43+
self.mDescriptionExpressionWidget.setField(config.get("description"))
44+
self.mImagePathExpressionWidget.setField(config.get("image_path"))

0 commit comments

Comments
 (0)