1089 lines
56 KiB
Plaintext
1089 lines
56 KiB
Plaintext
command=python -m ruff check backend scripts tests
|
||
exit_code=1
|
||
captured_at=2026-08-01T18:34:08.5284079+02:00
|
||
|
||
backend\app\models.py:1:1: F403 `from app.models import *` used; unable to detect undefined names
|
||
|
|
||
1 | from app.models import *
|
||
| ^^^^^^^^^^^^^^^^^^^^^^^^ F403
|
||
|
|
||
|
||
backend\app\schemas\__init__.py:101:5: F401 `.bathymetry.BathymetryRasterMetric` imported but unused; consider removing, adding to `__all__`, or using a redundant alias
|
||
|
|
||
99 | BathymetryProfileAcquireRequest,
|
||
100 | BathymetryProfileAcquisitionResult,
|
||
101 | BathymetryRasterMetric,
|
||
| ^^^^^^^^^^^^^^^^^^^^^^ F401
|
||
102 | BathymetryRasterSelectionRequest,
|
||
103 | BathymetryRasterSelectionResponse,
|
||
|
|
||
= help: Add unused import `BathymetryRasterMetric` to __all__
|
||
|
||
backend\app\schemas\__init__.py:102:5: F401 `.bathymetry.BathymetryRasterSelectionRequest` imported but unused; consider removing, adding to `__all__`, or using a redundant alias
|
||
|
|
||
100 | BathymetryProfileAcquisitionResult,
|
||
101 | BathymetryRasterMetric,
|
||
102 | BathymetryRasterSelectionRequest,
|
||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ F401
|
||
103 | BathymetryRasterSelectionResponse,
|
||
104 | BathymetryRasterSelectionSummary,
|
||
|
|
||
= help: Add unused import `BathymetryRasterSelectionRequest` to __all__
|
||
|
||
backend\app\schemas\__init__.py:103:5: F401 `.bathymetry.BathymetryRasterSelectionResponse` imported but unused; consider removing, adding to `__all__`, or using a redundant alias
|
||
|
|
||
101 | BathymetryRasterMetric,
|
||
102 | BathymetryRasterSelectionRequest,
|
||
103 | BathymetryRasterSelectionResponse,
|
||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ F401
|
||
104 | BathymetryRasterSelectionSummary,
|
||
105 | BathymetrySourceProbeRead,
|
||
|
|
||
= help: Add unused import `BathymetryRasterSelectionResponse` to __all__
|
||
|
||
backend\app\schemas\__init__.py:104:5: F401 `.bathymetry.BathymetryRasterSelectionSummary` imported but unused; consider removing, adding to `__all__`, or using a redundant alias
|
||
|
|
||
102 | BathymetryRasterSelectionRequest,
|
||
103 | BathymetryRasterSelectionResponse,
|
||
104 | BathymetryRasterSelectionSummary,
|
||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ F401
|
||
105 | BathymetrySourceProbeRead,
|
||
106 | BathymetrySourceRead,
|
||
|
|
||
= help: Add unused import `BathymetryRasterSelectionSummary` to __all__
|
||
|
||
backend\app\services\aoi_operation_executor.py:56:26: E702 Multiple statements on one line (semicolon)
|
||
|
|
||
54 | partition = db.get(AoiOperationPartition, partition.id)
|
||
55 | partition.child_job_id = child.id
|
||
56 | db.add(partition); db.commit()
|
||
| ^ E702
|
||
57 | JobService.mark_running(db, child.id)
|
||
58 | try:
|
||
|
|
||
|
||
backend\app\services\aoi_operation_service.py:210:37: E702 Multiple statements on one line (semicolon)
|
||
|
|
||
208 | return None
|
||
209 | now = datetime.now(timezone.utc)
|
||
210 | partition.status = "running"; partition.started_at = now; partition.attempt_count += 1; partition.error_message = None
|
||
| ^ E702
|
||
211 | operation.status = "running"; operation.started_at = operation.started_at or now
|
||
212 | db.add(partition); db.add(operation); db.commit(); db.refresh(partition)
|
||
|
|
||
|
||
backend\app\services\aoi_operation_service.py:210:65: E702 Multiple statements on one line (semicolon)
|
||
|
|
||
208 | return None
|
||
209 | now = datetime.now(timezone.utc)
|
||
210 | partition.status = "running"; partition.started_at = now; partition.attempt_count += 1; partition.error_message = None
|
||
| ^ E702
|
||
211 | operation.status = "running"; operation.started_at = operation.started_at or now
|
||
212 | db.add(partition); db.add(operation); db.commit(); db.refresh(partition)
|
||
|
|
||
|
||
backend\app\services\aoi_operation_service.py:210:95: E702 Multiple statements on one line (semicolon)
|
||
|
|
||
208 | return None
|
||
209 | now = datetime.now(timezone.utc)
|
||
210 | partition.status = "running"; partition.started_at = now; partition.attempt_count += 1; partition.error_message = None
|
||
| ^ E702
|
||
211 | operation.status = "running"; operation.started_at = operation.started_at or now
|
||
212 | db.add(partition); db.add(operation); db.commit(); db.refresh(partition)
|
||
|
|
||
|
||
backend\app\services\aoi_operation_service.py:211:37: E702 Multiple statements on one line (semicolon)
|
||
|
|
||
209 | now = datetime.now(timezone.utc)
|
||
210 | partition.status = "running"; partition.started_at = now; partition.attempt_count += 1; partition.error_message = None
|
||
211 | operation.status = "running"; operation.started_at = operation.started_at or now
|
||
| ^ E702
|
||
212 | db.add(partition); db.add(operation); db.commit(); db.refresh(partition)
|
||
213 | return partition
|
||
|
|
||
|
||
backend\app\services\aoi_operation_service.py:212:26: E702 Multiple statements on one line (semicolon)
|
||
|
|
||
210 | partition.status = "running"; partition.started_at = now; partition.attempt_count += 1; partition.error_message = None
|
||
211 | operation.status = "running"; operation.started_at = operation.started_at or now
|
||
212 | db.add(partition); db.add(operation); db.commit(); db.refresh(partition)
|
||
| ^ E702
|
||
213 | return partition
|
||
|
|
||
|
||
backend\app\services\aoi_operation_service.py:212:45: E702 Multiple statements on one line (semicolon)
|
||
|
|
||
210 | partition.status = "running"; partition.started_at = now; partition.attempt_count += 1; partition.error_message = None
|
||
211 | operation.status = "running"; operation.started_at = operation.started_at or now
|
||
212 | db.add(partition); db.add(operation); db.commit(); db.refresh(partition)
|
||
| ^ E702
|
||
213 | return partition
|
||
|
|
||
|
||
backend\app\services\aoi_operation_service.py:212:58: E702 Multiple statements on one line (semicolon)
|
||
|
|
||
210 | partition.status = "running"; partition.started_at = now; partition.attempt_count += 1; partition.error_message = None
|
||
211 | operation.status = "running"; operation.started_at = operation.started_at or now
|
||
212 | db.add(partition); db.add(operation); db.commit(); db.refresh(partition)
|
||
| ^ E702
|
||
213 | return partition
|
||
|
|
||
|
||
backend\app\services\aoi_operation_service.py:220:47: E702 Multiple statements on one line (semicolon)
|
||
|
|
||
218 | if partition.status != "running":
|
||
219 | raise AppError(code="AOI_PARTITION_NOT_RUNNING", message="Only a running partition can be checkpointed", status_code=409)
|
||
220 | partition.checkpoint_json = checkpoint; db.add(partition); db.commit(); db.refresh(partition)
|
||
| ^ E702
|
||
221 | return partition
|
||
|
|
||
|
||
backend\app\services\aoi_operation_service.py:220:66: E702 Multiple statements on one line (semicolon)
|
||
|
|
||
218 | if partition.status != "running":
|
||
219 | raise AppError(code="AOI_PARTITION_NOT_RUNNING", message="Only a running partition can be checkpointed", status_code=409)
|
||
220 | partition.checkpoint_json = checkpoint; db.add(partition); db.commit(); db.refresh(partition)
|
||
| ^ E702
|
||
221 | return partition
|
||
|
|
||
|
||
backend\app\services\aoi_operation_service.py:220:79: E702 Multiple statements on one line (semicolon)
|
||
|
|
||
218 | if partition.status != "running":
|
||
219 | raise AppError(code="AOI_PARTITION_NOT_RUNNING", message="Only a running partition can be checkpointed", status_code=409)
|
||
220 | partition.checkpoint_json = checkpoint; db.add(partition); db.commit(); db.refresh(partition)
|
||
| ^ E702
|
||
221 | return partition
|
||
|
|
||
|
||
backend\app\services\aoi_operation_service.py:230:63: E702 Multiple statements on one line (semicolon)
|
||
|
|
||
228 | … if partition.status != "running":
|
||
229 | … raise AppError(code="AOI_PARTITION_NOT_RUNNING", message="Only a running partition can complete", status_code=409)
|
||
230 | … partition.status = "skipped" if skipped else "success"; partition.result_json = result; partition.finished_at = datetime.now(ti…
|
||
| ^ E702
|
||
231 | … db.add(partition); db.commit(); AoiOperationService._refresh_parent(db, operation_id)
|
||
232 | … return AoiOperationService.read(db, project_id, operation_id)
|
||
|
|
||
|
||
backend\app\services\aoi_operation_service.py:230:95: E702 Multiple statements on one line (semicolon)
|
||
|
|
||
228 | … if partition.status != "running":
|
||
229 | … raise AppError(code="AOI_PARTITION_NOT_RUNNING", message="Only a running partition can complete", status_code=409)
|
||
230 | … partition.status = "skipped" if skipped else "success"; partition.result_json = result; partition.finished_at = datetime.now(ti…
|
||
| ^ E702
|
||
231 | … db.add(partition); db.commit(); AoiOperationService._refresh_parent(db, operation_id)
|
||
232 | … return AoiOperationService.read(db, project_id, operation_id)
|
||
|
|
||
|
||
backend\app\services\aoi_operation_service.py:231:26: E702 Multiple statements on one line (semicolon)
|
||
|
|
||
229 | … raise AppError(code="AOI_PARTITION_NOT_RUNNING", message="Only a running partition can complete", status_code=409)
|
||
230 | … partition.status = "skipped" if skipped else "success"; partition.result_json = result; partition.finished_at = datetime.now(ti…
|
||
231 | … db.add(partition); db.commit(); AoiOperationService._refresh_parent(db, operation_id)
|
||
| ^ E702
|
||
232 | … return AoiOperationService.read(db, project_id, operation_id)
|
||
|
|
||
|
||
backend\app\services\aoi_operation_service.py:231:39: E702 Multiple statements on one line (semicolon)
|
||
|
|
||
229 | … raise AppError(code="AOI_PARTITION_NOT_RUNNING", message="Only a running partition can complete", status_code=409)
|
||
230 | … partition.status = "skipped" if skipped else "success"; partition.result_json = result; partition.finished_at = datetime.now(ti…
|
||
231 | … db.add(partition); db.commit(); AoiOperationService._refresh_parent(db, operation_id)
|
||
| ^ E702
|
||
232 | … return AoiOperationService.read(db, project_id, operation_id)
|
||
|
|
||
|
||
backend\app\services\aoi_operation_service.py:237:42: E702 Multiple statements on one line (semicolon)
|
||
|
|
||
235 | def fail(db, project_id: UUID, operation_id: UUID, partition_id: UUID, message: str, retryable: bool, details: dict):
|
||
236 | partition = AoiOperationService._partition_row(db, project_id, operation_id, partition_id)
|
||
237 | partition.error_message = message; partition.result_json = {"details": details}
|
||
| ^ E702
|
||
238 | partition.status = "queued" if retryable and partition.attempt_count < partition.max_attempts else "failed"
|
||
239 | partition.finished_at = None if partition.status == "queued" else datetime.now(timezone.utc)
|
||
|
|
||
|
||
backend\app\services\aoi_operation_service.py:240:26: E702 Multiple statements on one line (semicolon)
|
||
|
|
||
238 | partition.status = "queued" if retryable and partition.attempt_count < partition.max_attempts else "failed"
|
||
239 | partition.finished_at = None if partition.status == "queued" else datetime.now(timezone.utc)
|
||
240 | db.add(partition); db.commit(); AoiOperationService._refresh_parent(db, operation_id)
|
||
| ^ E702
|
||
241 | return AoiOperationService.read(db, project_id, operation_id)
|
||
|
|
||
|
||
backend\app\services\aoi_operation_service.py:240:39: E702 Multiple statements on one line (semicolon)
|
||
|
|
||
238 | partition.status = "queued" if retryable and partition.attempt_count < partition.max_attempts else "failed"
|
||
239 | partition.finished_at = None if partition.status == "queued" else datetime.now(timezone.utc)
|
||
240 | db.add(partition); db.commit(); AoiOperationService._refresh_parent(db, operation_id)
|
||
| ^ E702
|
||
241 | return AoiOperationService.read(db, project_id, operation_id)
|
||
|
|
||
|
||
backend\app\services\aoi_operation_service.py:245:55: E702 Multiple statements on one line (semicolon)
|
||
|
|
||
243 | @staticmethod
|
||
244 | def _partition_row(db, project_id, operation_id, partition_id):
|
||
245 | operation = db.get(AoiOperation, operation_id); partition = db.get(AoiOperationPartition, partition_id)
|
||
| ^ E702
|
||
246 | if operation is None or operation.project_id != project_id or partition is None or partition.operation_id != operation_id:
|
||
247 | raise AppError(code="AOI_PARTITION_NOT_FOUND", message="AOI partition not found", status_code=404)
|
||
|
|
||
|
||
backend\app\services\aoi_operation_service.py:272:41: E702 Multiple statements on one line (semicolon)
|
||
|
|
||
270 | … now = datetime.now(timezone.utc)
|
||
271 | … if statuses and all(status in {"success", "skipped"} for status in statuses):
|
||
272 | … operation.status = "success"; operation.finished_at = now; operation.error_message = None
|
||
| ^ E702
|
||
273 | … elif "failed" in statuses and not any(status in {"queued", "running"} for status in statuses):
|
||
274 | … operation.status = "partial" if any(status in {"success", "skipped"} for status in statuses) else "failed"; operation.finis…
|
||
|
|
||
|
||
backend\app\services\aoi_operation_service.py:272:70: E702 Multiple statements on one line (semicolon)
|
||
|
|
||
270 | … now = datetime.now(timezone.utc)
|
||
271 | … if statuses and all(status in {"success", "skipped"} for status in statuses):
|
||
272 | … operation.status = "success"; operation.finished_at = now; operation.error_message = None
|
||
| ^ E702
|
||
273 | … elif "failed" in statuses and not any(status in {"queued", "running"} for status in statuses):
|
||
274 | … operation.status = "partial" if any(status in {"success", "skipped"} for status in statuses) else "failed"; operation.finis…
|
||
|
|
||
|
||
backend\app\services\aoi_operation_service.py:274:119: E702 Multiple statements on one line (semicolon)
|
||
|
|
||
272 | … operation.status = "success"; operation.finished_at = now; operation.error_message = None
|
||
273 | … elif "failed" in statuses and not any(status in {"queued", "running"} for status in statuses):
|
||
274 | … operation.status = "partial" if any(status in {"success", "skipped"} for status in statuses) else "failed"; operation.finis…
|
||
| ^ E702
|
||
275 | … operation.error_message = "One or more bounded source partitions failed; inspect partition evidence."
|
||
276 | … db.add(operation); db.commit()
|
||
|
|
||
|
||
backend\app\services\aoi_operation_service.py:276:26: E702 Multiple statements on one line (semicolon)
|
||
|
|
||
274 | … operation.status = "partial" if any(status in {"success", "skipped"} for status in statuses) else "failed"; operation.finis…
|
||
275 | … operation.error_message = "One or more bounded source partitions failed; inspect partition evidence."
|
||
276 | … db.add(operation); db.commit()
|
||
| ^ E702
|
||
|
|
||
|
||
backend\app\services\demo_workflow_service.py:253:9: F841 Local variable `rasterio` is assigned to but never used
|
||
|
|
||
251 | def _create_demo_raster_bytes() -> bytes:
|
||
252 | numpy = importlib.import_module("numpy")
|
||
253 | rasterio = importlib.import_module("rasterio")
|
||
| ^^^^^^^^ F841
|
||
254 | rasterio_io = importlib.import_module("rasterio.io")
|
||
255 | rasterio_transform = importlib.import_module("rasterio.transform")
|
||
|
|
||
= help: Remove assignment to unused variable `rasterio`
|
||
|
||
backend\app\services\detection_review_service.py:4:20: F401 [*] `typing.Any` imported but unused
|
||
|
|
||
3 | from collections import Counter
|
||
4 | from typing import Any
|
||
| ^^^ F401
|
||
5 | from uuid import UUID
|
||
|
|
||
= help: Remove unused import: `typing.Any`
|
||
|
||
backend\app\services\qa_service.py:14:30: F401 [*] `shapely.geometry.shape` imported but unused
|
||
|
|
||
12 | from shapely.ops import unary_union
|
||
13 | from shapely.validation import make_valid
|
||
14 | from shapely.geometry import shape
|
||
| ^^^^^ F401
|
||
15 | from app.core.errors import AppError
|
||
16 | from app.models import Area, Dataset
|
||
|
|
||
= help: Remove unused import: `shapely.geometry.shape`
|
||
|
||
backend\app\services\thematic_raster_acquisition_service.py:409:20: F401 `rasterio` imported but unused; consider using `importlib.util.find_spec` to test for availability
|
||
|
|
||
407 | return coverages[0]
|
||
408 | try:
|
||
409 | import rasterio
|
||
| ^^^^^^^^ F401
|
||
410 | from rasterio.io import MemoryFile
|
||
411 | from rasterio.merge import merge
|
||
|
|
||
= help: Remove unused import: `rasterio`
|
||
|
||
backend\scripts\cleanup_demo_artifacts.py:17:1: E402 Module level import not at top of file
|
||
|
|
||
15 | sys.path.insert(0, str(SCRIPTS_ROOT))
|
||
16 |
|
||
17 | from app.core.config import get_settings
|
||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E402
|
||
18 | from app.db.session import SessionLocal
|
||
19 | from app.models import Export, Project
|
||
|
|
||
|
||
backend\scripts\cleanup_demo_artifacts.py:18:1: E402 Module level import not at top of file
|
||
|
|
||
17 | from app.core.config import get_settings
|
||
18 | from app.db.session import SessionLocal
|
||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E402
|
||
19 | from app.models import Export, Project
|
||
20 | from release_backup_guard import require_confirmation, verify_current_backup
|
||
|
|
||
|
||
backend\scripts\cleanup_demo_artifacts.py:19:1: E402 Module level import not at top of file
|
||
|
|
||
17 | from app.core.config import get_settings
|
||
18 | from app.db.session import SessionLocal
|
||
19 | from app.models import Export, Project
|
||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E402
|
||
20 | from release_backup_guard import require_confirmation, verify_current_backup
|
||
|
|
||
|
||
backend\scripts\cleanup_demo_artifacts.py:20:1: E402 Module level import not at top of file
|
||
|
|
||
18 | from app.db.session import SessionLocal
|
||
19 | from app.models import Export, Project
|
||
20 | from release_backup_guard import require_confirmation, verify_current_backup
|
||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E402
|
||
|
|
||
|
||
backend\tests\test_auth.py:189:5: F841 Local variable `client` is assigned to but never used
|
||
|
|
||
188 | def test_guest_session_tokens_fail_closed_without_a_project_scope(monkeypatch) -> None:
|
||
189 | client = auth_client(monkeypatch, guest_access=True)
|
||
| ^^^^^^ F841
|
||
190 | settings = get_settings()
|
||
|
|
||
= help: Remove assignment to unused variable `client`
|
||
|
||
backend\tests\test_qa_service.py:5:19: F401 [*] `types.SimpleNamespace` imported but unused
|
||
|
|
||
3 | import json
|
||
4 | from pathlib import Path
|
||
5 | from types import SimpleNamespace
|
||
| ^^^^^^^^^^^^^^^ F401
|
||
6 | from uuid import uuid4
|
||
|
|
||
= help: Remove unused import: `types.SimpleNamespace`
|
||
|
||
backend\tests\test_qa_service.py:8:24: F401 [*] `app.models.Area` imported but unused
|
||
|
|
||
6 | from uuid import uuid4
|
||
7 |
|
||
8 | from app.models import Area, Dataset
|
||
| ^^^^ F401
|
||
9 | from app.services.qa_service import QaService
|
||
|
|
||
= help: Remove unused import: `app.models.Area`
|
||
|
||
backend\tests\test_raster_operations_service.py:3:19: F401 [*] `types.ModuleType` imported but unused
|
||
|
|
||
1 | from __future__ import annotations
|
||
2 |
|
||
3 | from types import ModuleType, SimpleNamespace
|
||
| ^^^^^^^^^^ F401
|
||
4 | from uuid import uuid4
|
||
5 | from pathlib import Path
|
||
|
|
||
= help: Remove unused import: `types.ModuleType`
|
||
|
||
backend\tests\test_sprint108_map_selection_derived_dataset.py:10:33: F401 [*] `app.models.VectorFeature` imported but unused
|
||
|
|
||
9 | from app.main import app
|
||
10 | from app.models import Dataset, VectorFeature
|
||
| ^^^^^^^^^^^^^ F401
|
||
11 | from app.schemas.dataset import DatasetCreateResponse
|
||
12 | from app.services.storage_service import StorageService
|
||
|
|
||
= help: Remove unused import: `app.models.VectorFeature`
|
||
|
||
backend\tests\test_sprint205_agricultural_parcel_history.py:4:8: F401 [*] `json` imported but unused
|
||
|
|
||
3 | import importlib.util
|
||
4 | import json
|
||
| ^^^^ F401
|
||
5 | import sys
|
||
6 | import zipfile
|
||
|
|
||
= help: Remove unused import: `json`
|
||
|
||
backend\tests\test_sprint205_agricultural_parcel_history.py:79:9: F811 Redefinition of unused `json` from line 4
|
||
|
|
||
77 | self.data = data
|
||
78 |
|
||
79 | def json(self):
|
||
| ^^^^ F811
|
||
80 | return {"data": self.data}
|
||
|
|
||
= help: Remove definition: `json`
|
||
|
||
backend\tests\test_sprint213_thematic_rasters.py:10:8: F401 [*] `rasterio` imported but unused
|
||
|
|
||
8 | import numpy as np
|
||
9 | import pytest
|
||
10 | import rasterio
|
||
| ^^^^^^^^ F401
|
||
11 | from fastapi.testclient import TestClient
|
||
12 | from pyproj import Transformer
|
||
|
|
||
= help: Remove unused import: `rasterio`
|
||
|
||
backend\tests\test_sprint233_operational_completion.py:5:19: F401 [*] `types.SimpleNamespace` imported but unused
|
||
|
|
||
3 | import json
|
||
4 | from pathlib import Path
|
||
5 | from types import SimpleNamespace
|
||
| ^^^^^^^^^^^^^^^ F401
|
||
6 | from uuid import uuid4
|
||
|
|
||
= help: Remove unused import: `types.SimpleNamespace`
|
||
|
||
backend\tests\test_sprint236_bathymetry_expansion.py:4:8: F401 [*] `json` imported but unused
|
||
|
|
||
3 | from datetime import UTC, datetime
|
||
4 | import json
|
||
| ^^^^ F401
|
||
5 | from pathlib import Path
|
||
6 | import ssl
|
||
|
|
||
= help: Remove unused import: `json`
|
||
|
||
backend\tests\test_sprint236_bathymetry_expansion.py:59:9: F811 Redefinition of unused `json` from line 4
|
||
|
|
||
57 | return None
|
||
58 |
|
||
59 | def json(self):
|
||
| ^^^^ F811
|
||
60 | return self.payload
|
||
|
|
||
= help: Remove definition: `json`
|
||
|
||
backend\tests\test_sprint241_spw_bathymetry_raster.py:4:8: F401 [*] `io` imported but unused
|
||
|
|
||
3 | import importlib.util
|
||
4 | import io
|
||
| ^^ F401
|
||
5 | from pathlib import Path
|
||
6 | import sys
|
||
|
|
||
= help: Remove unused import: `io`
|
||
|
||
backend\tests\test_vector_operations_service.py:4:19: F401 [*] `types.SimpleNamespace` imported but unused
|
||
|
|
||
3 | from pathlib import Path
|
||
4 | from types import SimpleNamespace
|
||
| ^^^^^^^^^^^^^^^ F401
|
||
5 | from uuid import UUID, uuid4
|
||
|
|
||
= help: Remove unused import: `types.SimpleNamespace`
|
||
|
||
scripts\archive_technical_projects.py:20:1: E402 Module level import not at top of file
|
||
|
|
||
18 | sys.path.insert(0, str(BACKEND_ROOT))
|
||
19 |
|
||
20 | from app.db.session import SessionLocal
|
||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E402
|
||
21 | from app.models import Project
|
||
|
|
||
|
||
scripts\archive_technical_projects.py:21:1: E402 Module level import not at top of file
|
||
|
|
||
20 | from app.db.session import SessionLocal
|
||
21 | from app.models import Project
|
||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E402
|
||
|
|
||
|
||
scripts\audit_data_operations.py:23:1: E402 Module level import not at top of file
|
||
|
|
||
21 | sys.path.insert(0, str(BACKEND_ROOT))
|
||
22 |
|
||
23 | from app.core.config import get_settings
|
||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E402
|
||
24 | from app.db.session import SessionLocal
|
||
25 | from sqlalchemy import func
|
||
|
|
||
|
||
scripts\audit_data_operations.py:24:1: E402 Module level import not at top of file
|
||
|
|
||
23 | from app.core.config import get_settings
|
||
24 | from app.db.session import SessionLocal
|
||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E402
|
||
25 | from sqlalchemy import func
|
||
|
|
||
|
||
scripts\audit_data_operations.py:25:1: E402 Module level import not at top of file
|
||
|
|
||
23 | from app.core.config import get_settings
|
||
24 | from app.db.session import SessionLocal
|
||
25 | from sqlalchemy import func
|
||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^ E402
|
||
26 |
|
||
27 | from app.models import AnalysisRun, Dataset, DatasetVersion, Detection, Export, Job, Project, Segmentation
|
||
|
|
||
|
||
scripts\audit_data_operations.py:27:1: E402 Module level import not at top of file
|
||
|
|
||
25 | from sqlalchemy import func
|
||
26 |
|
||
27 | from app.models import AnalysisRun, Dataset, DatasetVersion, Detection, Export, Job, Project, Segmentation
|
||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E402
|
||
|
|
||
|
||
scripts\build_building_proposal_classifier_dataset.py:20:1: E402 Module level import not at top of file
|
||
|
|
||
18 | sys.path.insert(0, str(SCRIPT_DIR))
|
||
19 |
|
||
20 | from evaluate_belgium_building_candidate import iou, read_references
|
||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E402
|
||
|
|
||
|
||
scripts\create_portfolio_case_study.py:127:26: E702 Multiple statements on one line (semicolon)
|
||
|
|
||
126 | def draw_challenge(c: canvas.Canvas) -> None:
|
||
127 | c.setFillColor(white); c.rect(0, 0, W, H, fill=1, stroke=0)
|
||
| ^ E702
|
||
128 | title(c, "01 / Productvraag", "Niet alleen zien, maar kunnen verdedigen")
|
||
129 | y = paragraph(c, "Geoportalen tonen vaak lagen en losse metingen. GeoIntel maakt van bron, gebied, analyse en bewijs één operatio…
|
||
|
|
||
|
||
scripts\create_portfolio_case_study.py:137:29: E702 Multiple statements on one line (semicolon)
|
||
|
|
||
135 | for index, (num, head, body) in enumerate(cards):
|
||
136 | cy = y - 42 - index * 78
|
||
137 | c.setFillColor(PALE); c.roundRect(42, cy - 54, 330, 64, 10, fill=1, stroke=0)
|
||
| ^ E702
|
||
138 | c.setFillColor(TEAL); c.setFont(FONT_BOLD, 8); c.drawString(56, cy - 6, num)
|
||
139 | c.setFillColor(INK); c.setFont(FONT_BOLD, 11); c.drawString(86, cy - 7, head)
|
||
|
|
||
|
||
scripts\create_portfolio_case_study.py:138:29: E702 Multiple statements on one line (semicolon)
|
||
|
|
||
136 | cy = y - 42 - index * 78
|
||
137 | c.setFillColor(PALE); c.roundRect(42, cy - 54, 330, 64, 10, fill=1, stroke=0)
|
||
138 | c.setFillColor(TEAL); c.setFont(FONT_BOLD, 8); c.drawString(56, cy - 6, num)
|
||
| ^ E702
|
||
139 | c.setFillColor(INK); c.setFont(FONT_BOLD, 11); c.drawString(86, cy - 7, head)
|
||
140 | paragraph(c, body, 86, cy - 18, 266, 8.2, MUTED, 12)
|
||
|
|
||
|
||
scripts\create_portfolio_case_study.py:138:54: E702 Multiple statements on one line (semicolon)
|
||
|
|
||
136 | cy = y - 42 - index * 78
|
||
137 | c.setFillColor(PALE); c.roundRect(42, cy - 54, 330, 64, 10, fill=1, stroke=0)
|
||
138 | c.setFillColor(TEAL); c.setFont(FONT_BOLD, 8); c.drawString(56, cy - 6, num)
|
||
| ^ E702
|
||
139 | c.setFillColor(INK); c.setFont(FONT_BOLD, 11); c.drawString(86, cy - 7, head)
|
||
140 | paragraph(c, body, 86, cy - 18, 266, 8.2, MUTED, 12)
|
||
|
|
||
|
||
scripts\create_portfolio_case_study.py:139:28: E702 Multiple statements on one line (semicolon)
|
||
|
|
||
137 | c.setFillColor(PALE); c.roundRect(42, cy - 54, 330, 64, 10, fill=1, stroke=0)
|
||
138 | c.setFillColor(TEAL); c.setFont(FONT_BOLD, 8); c.drawString(56, cy - 6, num)
|
||
139 | c.setFillColor(INK); c.setFont(FONT_BOLD, 11); c.drawString(86, cy - 7, head)
|
||
| ^ E702
|
||
140 | paragraph(c, body, 86, cy - 18, 266, 8.2, MUTED, 12)
|
||
141 | image_cover(c, ASSETS / "geointel-landing-hero.png", 410, 53, 385, 415)
|
||
|
|
||
|
||
scripts\create_portfolio_case_study.py:139:54: E702 Multiple statements on one line (semicolon)
|
||
|
|
||
137 | c.setFillColor(PALE); c.roundRect(42, cy - 54, 330, 64, 10, fill=1, stroke=0)
|
||
138 | c.setFillColor(TEAL); c.setFont(FONT_BOLD, 8); c.drawString(56, cy - 6, num)
|
||
139 | c.setFillColor(INK); c.setFont(FONT_BOLD, 11); c.drawString(86, cy - 7, head)
|
||
| ^ E702
|
||
140 | paragraph(c, body, 86, cy - 18, 266, 8.2, MUTED, 12)
|
||
141 | image_cover(c, ASSETS / "geointel-landing-hero.png", 410, 53, 385, 415)
|
||
|
|
||
|
||
scripts\create_portfolio_case_study.py:146:40: E702 Multiple statements on one line (semicolon)
|
||
|
|
||
145 | def draw_experience(c: canvas.Canvas) -> None:
|
||
146 | c.setFillColor(HexColor("#f5faf8")); c.rect(0, 0, W, H, fill=1, stroke=0)
|
||
| ^ E702
|
||
147 | title(c, "02 / Experience design", "De kaart blijft het werkblad", "Rustige hiërarchie, zichtbare herkomst en bewijs op het momen…
|
||
148 | image_cover(c, ASSETS / "geointel-workbench-map.png", 42, 73, 485, 360)
|
||
|
|
||
|
||
scripts\create_portfolio_case_study.py:157:24: E702 Multiple statements on one line (semicolon)
|
||
|
|
||
156 | def draw_ai(c: canvas.Canvas) -> None:
|
||
157 | c.setFillColor(INK); c.rect(0, 0, W, H, fill=1, stroke=0)
|
||
| ^ E702
|
||
158 | c.setFillColor(MINT); c.setFont(FONT_BOLD, 8); c.drawString(42, H - 44, "03 / PYTORCH + NVIDIA")
|
||
159 | c.setFillColor(white); c.setFont(FONT_BOLD, 25); c.drawString(42, H - 78, "Van bronpixel naar gecontroleerde detectie")
|
||
|
|
||
|
||
scripts\create_portfolio_case_study.py:158:25: E702 Multiple statements on one line (semicolon)
|
||
|
|
||
156 | def draw_ai(c: canvas.Canvas) -> None:
|
||
157 | c.setFillColor(INK); c.rect(0, 0, W, H, fill=1, stroke=0)
|
||
158 | c.setFillColor(MINT); c.setFont(FONT_BOLD, 8); c.drawString(42, H - 44, "03 / PYTORCH + NVIDIA")
|
||
| ^ E702
|
||
159 | c.setFillColor(white); c.setFont(FONT_BOLD, 25); c.drawString(42, H - 78, "Van bronpixel naar gecontroleerde detectie")
|
||
160 | c.setFillColor(HexColor("#b8d4cd")); c.setFont(FONT, 9); c.drawString(42, H - 99, "Elke schakel bewaart de context die nodig is o…
|
||
|
|
||
|
||
scripts\create_portfolio_case_study.py:158:50: E702 Multiple statements on one line (semicolon)
|
||
|
|
||
156 | def draw_ai(c: canvas.Canvas) -> None:
|
||
157 | c.setFillColor(INK); c.rect(0, 0, W, H, fill=1, stroke=0)
|
||
158 | c.setFillColor(MINT); c.setFont(FONT_BOLD, 8); c.drawString(42, H - 44, "03 / PYTORCH + NVIDIA")
|
||
| ^ E702
|
||
159 | c.setFillColor(white); c.setFont(FONT_BOLD, 25); c.drawString(42, H - 78, "Van bronpixel naar gecontroleerde detectie")
|
||
160 | c.setFillColor(HexColor("#b8d4cd")); c.setFont(FONT, 9); c.drawString(42, H - 99, "Elke schakel bewaart de context die nodig is o…
|
||
|
|
||
|
||
scripts\create_portfolio_case_study.py:159:26: E702 Multiple statements on one line (semicolon)
|
||
|
|
||
157 | c.setFillColor(INK); c.rect(0, 0, W, H, fill=1, stroke=0)
|
||
158 | c.setFillColor(MINT); c.setFont(FONT_BOLD, 8); c.drawString(42, H - 44, "03 / PYTORCH + NVIDIA")
|
||
159 | c.setFillColor(white); c.setFont(FONT_BOLD, 25); c.drawString(42, H - 78, "Van bronpixel naar gecontroleerde detectie")
|
||
| ^ E702
|
||
160 | c.setFillColor(HexColor("#b8d4cd")); c.setFont(FONT, 9); c.drawString(42, H - 99, "Elke schakel bewaart de context die nodig is o…
|
||
161 | stages = [
|
||
|
|
||
|
||
scripts\create_portfolio_case_study.py:159:52: E702 Multiple statements on one line (semicolon)
|
||
|
|
||
157 | c.setFillColor(INK); c.rect(0, 0, W, H, fill=1, stroke=0)
|
||
158 | c.setFillColor(MINT); c.setFont(FONT_BOLD, 8); c.drawString(42, H - 44, "03 / PYTORCH + NVIDIA")
|
||
159 | c.setFillColor(white); c.setFont(FONT_BOLD, 25); c.drawString(42, H - 78, "Van bronpixel naar gecontroleerde detectie")
|
||
| ^ E702
|
||
160 | c.setFillColor(HexColor("#b8d4cd")); c.setFont(FONT, 9); c.drawString(42, H - 99, "Elke schakel bewaart de context die nodig is o…
|
||
161 | stages = [
|
||
|
|
||
|
||
scripts\create_portfolio_case_study.py:160:40: E702 Multiple statements on one line (semicolon)
|
||
|
|
||
158 | c.setFillColor(MINT); c.setFont(FONT_BOLD, 8); c.drawString(42, H - 44, "03 / PYTORCH + NVIDIA")
|
||
159 | c.setFillColor(white); c.setFont(FONT_BOLD, 25); c.drawString(42, H - 78, "Van bronpixel naar gecontroleerde detectie")
|
||
160 | c.setFillColor(HexColor("#b8d4cd")); c.setFont(FONT, 9); c.drawString(42, H - 99, "Elke schakel bewaart de context die nodig is o…
|
||
| ^ E702
|
||
161 | stages = [
|
||
162 | ("01", "Orthofoto", "CRS + dekking"),
|
||
|
|
||
|
||
scripts\create_portfolio_case_study.py:160:60: E702 Multiple statements on one line (semicolon)
|
||
|
|
||
158 | c.setFillColor(MINT); c.setFont(FONT_BOLD, 8); c.drawString(42, H - 44, "03 / PYTORCH + NVIDIA")
|
||
159 | c.setFillColor(white); c.setFont(FONT_BOLD, 25); c.drawString(42, H - 78, "Van bronpixel naar gecontroleerde detectie")
|
||
160 | c.setFillColor(HexColor("#b8d4cd")); c.setFont(FONT, 9); c.drawString(42, H - 99, "Elke schakel bewaart de context die nodig is o…
|
||
| ^ E702
|
||
161 | stages = [
|
||
162 | ("01", "Orthofoto", "CRS + dekking"),
|
||
|
|
||
|
||
scripts\create_portfolio_case_study.py:169:42: E702 Multiple statements on one line (semicolon)
|
||
|
|
||
167 | ]
|
||
168 | x0, gap, bw = 42, 13, 139
|
||
169 | c.setStrokeColor(HexColor("#4bb99f")); c.setLineWidth(2); c.line(95, 285, 746, 285)
|
||
| ^ E702
|
||
170 | for i, (num, head, body) in enumerate(stages):
|
||
171 | x = x0 + i * (bw + gap)
|
||
|
|
||
|
||
scripts\create_portfolio_case_study.py:169:61: E702 Multiple statements on one line (semicolon)
|
||
|
|
||
167 | ]
|
||
168 | x0, gap, bw = 42, 13, 139
|
||
169 | c.setStrokeColor(HexColor("#4bb99f")); c.setLineWidth(2); c.line(95, 285, 746, 285)
|
||
| ^ E702
|
||
170 | for i, (num, head, body) in enumerate(stages):
|
||
171 | x = x0 + i * (bw + gap)
|
||
|
|
||
|
||
scripts\create_portfolio_case_study.py:172:44: E702 Multiple statements on one line (semicolon)
|
||
|
|
||
170 | for i, (num, head, body) in enumerate(stages):
|
||
171 | x = x0 + i * (bw + gap)
|
||
172 | c.setFillColor(HexColor("#12443d")); c.roundRect(x, 205, bw, 160, 12, fill=1, stroke=0)
|
||
| ^ E702
|
||
173 | c.setFillColor(MINT); c.setFont(FONT_BOLD, 8); c.drawString(x + 14, 340, num)
|
||
174 | c.setFillColor(white); c.setFont(FONT_BOLD, 10); c.drawString(x + 14, 295, head)
|
||
|
|
||
|
||
scripts\create_portfolio_case_study.py:173:29: E702 Multiple statements on one line (semicolon)
|
||
|
|
||
171 | x = x0 + i * (bw + gap)
|
||
172 | c.setFillColor(HexColor("#12443d")); c.roundRect(x, 205, bw, 160, 12, fill=1, stroke=0)
|
||
173 | c.setFillColor(MINT); c.setFont(FONT_BOLD, 8); c.drawString(x + 14, 340, num)
|
||
| ^ E702
|
||
174 | c.setFillColor(white); c.setFont(FONT_BOLD, 10); c.drawString(x + 14, 295, head)
|
||
175 | c.setFillColor(HexColor("#9fc9bf")); c.setFont(FONT, 7.4); c.drawString(x + 14, 275, body)
|
||
|
|
||
|
||
scripts\create_portfolio_case_study.py:173:54: E702 Multiple statements on one line (semicolon)
|
||
|
|
||
171 | x = x0 + i * (bw + gap)
|
||
172 | c.setFillColor(HexColor("#12443d")); c.roundRect(x, 205, bw, 160, 12, fill=1, stroke=0)
|
||
173 | c.setFillColor(MINT); c.setFont(FONT_BOLD, 8); c.drawString(x + 14, 340, num)
|
||
| ^ E702
|
||
174 | c.setFillColor(white); c.setFont(FONT_BOLD, 10); c.drawString(x + 14, 295, head)
|
||
175 | c.setFillColor(HexColor("#9fc9bf")); c.setFont(FONT, 7.4); c.drawString(x + 14, 275, body)
|
||
|
|
||
|
||
scripts\create_portfolio_case_study.py:174:30: E702 Multiple statements on one line (semicolon)
|
||
|
|
||
172 | c.setFillColor(HexColor("#12443d")); c.roundRect(x, 205, bw, 160, 12, fill=1, stroke=0)
|
||
173 | c.setFillColor(MINT); c.setFont(FONT_BOLD, 8); c.drawString(x + 14, 340, num)
|
||
174 | c.setFillColor(white); c.setFont(FONT_BOLD, 10); c.drawString(x + 14, 295, head)
|
||
| ^ E702
|
||
175 | c.setFillColor(HexColor("#9fc9bf")); c.setFont(FONT, 7.4); c.drawString(x + 14, 275, body)
|
||
176 | c.setFillColor(MINT if i < 3 else AMBER); c.circle(x + bw / 2, 230, 6, fill=1, stroke=0)
|
||
|
|
||
|
||
scripts\create_portfolio_case_study.py:174:56: E702 Multiple statements on one line (semicolon)
|
||
|
|
||
172 | c.setFillColor(HexColor("#12443d")); c.roundRect(x, 205, bw, 160, 12, fill=1, stroke=0)
|
||
173 | c.setFillColor(MINT); c.setFont(FONT_BOLD, 8); c.drawString(x + 14, 340, num)
|
||
174 | c.setFillColor(white); c.setFont(FONT_BOLD, 10); c.drawString(x + 14, 295, head)
|
||
| ^ E702
|
||
175 | c.setFillColor(HexColor("#9fc9bf")); c.setFont(FONT, 7.4); c.drawString(x + 14, 275, body)
|
||
176 | c.setFillColor(MINT if i < 3 else AMBER); c.circle(x + bw / 2, 230, 6, fill=1, stroke=0)
|
||
|
|
||
|
||
scripts\create_portfolio_case_study.py:175:44: E702 Multiple statements on one line (semicolon)
|
||
|
|
||
173 | c.setFillColor(MINT); c.setFont(FONT_BOLD, 8); c.drawString(x + 14, 340, num)
|
||
174 | c.setFillColor(white); c.setFont(FONT_BOLD, 10); c.drawString(x + 14, 295, head)
|
||
175 | c.setFillColor(HexColor("#9fc9bf")); c.setFont(FONT, 7.4); c.drawString(x + 14, 275, body)
|
||
| ^ E702
|
||
176 | c.setFillColor(MINT if i < 3 else AMBER); c.circle(x + bw / 2, 230, 6, fill=1, stroke=0)
|
||
177 | paragraph(c, "Fail-closed runtime: wanneer CUDA vereist maar niet beschikbaar is, of wanneer een lokaal model ontbreekt, toont Ge…
|
||
|
|
||
|
||
scripts\create_portfolio_case_study.py:175:66: E702 Multiple statements on one line (semicolon)
|
||
|
|
||
173 | c.setFillColor(MINT); c.setFont(FONT_BOLD, 8); c.drawString(x + 14, 340, num)
|
||
174 | c.setFillColor(white); c.setFont(FONT_BOLD, 10); c.drawString(x + 14, 295, head)
|
||
175 | c.setFillColor(HexColor("#9fc9bf")); c.setFont(FONT, 7.4); c.drawString(x + 14, 275, body)
|
||
| ^ E702
|
||
176 | c.setFillColor(MINT if i < 3 else AMBER); c.circle(x + bw / 2, 230, 6, fill=1, stroke=0)
|
||
177 | paragraph(c, "Fail-closed runtime: wanneer CUDA vereist maar niet beschikbaar is, of wanneer een lokaal model ontbreekt, toont Ge…
|
||
|
|
||
|
||
scripts\create_portfolio_case_study.py:176:49: E702 Multiple statements on one line (semicolon)
|
||
|
|
||
174 | c.setFillColor(white); c.setFont(FONT_BOLD, 10); c.drawString(x + 14, 295, head)
|
||
175 | c.setFillColor(HexColor("#9fc9bf")); c.setFont(FONT, 7.4); c.drawString(x + 14, 275, body)
|
||
176 | c.setFillColor(MINT if i < 3 else AMBER); c.circle(x + bw / 2, 230, 6, fill=1, stroke=0)
|
||
| ^ E702
|
||
177 | paragraph(c, "Fail-closed runtime: wanneer CUDA vereist maar niet beschikbaar is, of wanneer een lokaal model ontbreekt, toont Ge…
|
||
178 | footer(c, 4)
|
||
|
|
||
|
||
scripts\create_portfolio_case_study.py:182:26: E702 Multiple statements on one line (semicolon)
|
||
|
|
||
181 | def draw_architecture(c: canvas.Canvas) -> None:
|
||
182 | c.setFillColor(white); c.rect(0, 0, W, H, fill=1, stroke=0)
|
||
| ^ E702
|
||
183 | title(c, "04 / Architectuur", "Eén keten, expliciete verantwoordelijkheden")
|
||
184 | nodes = [
|
||
|
|
||
|
||
scripts\create_portfolio_case_study.py:193:79: E702 Multiple statements on one line (semicolon)
|
||
|
|
||
191 | ]
|
||
192 | for x, y, w, h, head, body in nodes:
|
||
193 | c.setFillColor(PALE if "PyTorch" not in head else HexColor("#0d5047")); c.roundRect(x, y, w, h, 10, fill=1, stroke=0)
|
||
| ^ E702
|
||
194 | c.setFillColor(white if "PyTorch" in head else INK); c.setFont(FONT_BOLD, 9); c.drawString(x + 12, y + 39, head)
|
||
195 | c.setFillColor(HexColor("#b9d8d0") if "PyTorch" in head else MUTED); c.setFont(FONT, 7.2); c.drawString(x + 12, y + 21, body)
|
||
|
|
||
|
||
scripts\create_portfolio_case_study.py:194:60: E702 Multiple statements on one line (semicolon)
|
||
|
|
||
192 | for x, y, w, h, head, body in nodes:
|
||
193 | c.setFillColor(PALE if "PyTorch" not in head else HexColor("#0d5047")); c.roundRect(x, y, w, h, 10, fill=1, stroke=0)
|
||
194 | c.setFillColor(white if "PyTorch" in head else INK); c.setFont(FONT_BOLD, 9); c.drawString(x + 12, y + 39, head)
|
||
| ^ E702
|
||
195 | c.setFillColor(HexColor("#b9d8d0") if "PyTorch" in head else MUTED); c.setFont(FONT, 7.2); c.drawString(x + 12, y + 21, body)
|
||
196 | c.setStrokeColor(TEAL); c.setLineWidth(1.5)
|
||
|
|
||
|
||
scripts\create_portfolio_case_study.py:194:85: E702 Multiple statements on one line (semicolon)
|
||
|
|
||
192 | for x, y, w, h, head, body in nodes:
|
||
193 | c.setFillColor(PALE if "PyTorch" not in head else HexColor("#0d5047")); c.roundRect(x, y, w, h, 10, fill=1, stroke=0)
|
||
194 | c.setFillColor(white if "PyTorch" in head else INK); c.setFont(FONT_BOLD, 9); c.drawString(x + 12, y + 39, head)
|
||
| ^ E702
|
||
195 | c.setFillColor(HexColor("#b9d8d0") if "PyTorch" in head else MUTED); c.setFont(FONT, 7.2); c.drawString(x + 12, y + 21, body)
|
||
196 | c.setStrokeColor(TEAL); c.setLineWidth(1.5)
|
||
|
|
||
|
||
scripts\create_portfolio_case_study.py:195:76: E702 Multiple statements on one line (semicolon)
|
||
|
|
||
193 | c.setFillColor(PALE if "PyTorch" not in head else HexColor("#0d5047")); c.roundRect(x, y, w, h, 10, fill=1, stroke=0)
|
||
194 | c.setFillColor(white if "PyTorch" in head else INK); c.setFont(FONT_BOLD, 9); c.drawString(x + 12, y + 39, head)
|
||
195 | c.setFillColor(HexColor("#b9d8d0") if "PyTorch" in head else MUTED); c.setFont(FONT, 7.2); c.drawString(x + 12, y + 21, body)
|
||
| ^ E702
|
||
196 | c.setStrokeColor(TEAL); c.setLineWidth(1.5)
|
||
197 | arrows = [((185,303),(220,303)),((350,303),(385,388)),((350,303),(385,218)),((535,388),(645,336)),((535,218),(570,303)),((645,270…
|
||
|
|
||
|
||
scripts\create_portfolio_case_study.py:195:98: E702 Multiple statements on one line (semicolon)
|
||
|
|
||
193 | c.setFillColor(PALE if "PyTorch" not in head else HexColor("#0d5047")); c.roundRect(x, y, w, h, 10, fill=1, stroke=0)
|
||
194 | c.setFillColor(white if "PyTorch" in head else INK); c.setFont(FONT_BOLD, 9); c.drawString(x + 12, y + 39, head)
|
||
195 | c.setFillColor(HexColor("#b9d8d0") if "PyTorch" in head else MUTED); c.setFont(FONT, 7.2); c.drawString(x + 12, y + 21, body)
|
||
| ^ E702
|
||
196 | c.setStrokeColor(TEAL); c.setLineWidth(1.5)
|
||
197 | arrows = [((185,303),(220,303)),((350,303),(385,388)),((350,303),(385,218)),((535,388),(645,336)),((535,218),(570,303)),((645,270…
|
||
|
|
||
|
||
scripts\create_portfolio_case_study.py:196:27: E702 Multiple statements on one line (semicolon)
|
||
|
|
||
194 | c.setFillColor(white if "PyTorch" in head else INK); c.setFont(FONT_BOLD, 9); c.drawString(x + 12, y + 39, head)
|
||
195 | c.setFillColor(HexColor("#b9d8d0") if "PyTorch" in head else MUTED); c.setFont(FONT, 7.2); c.drawString(x + 12, y + 21, body)
|
||
196 | c.setStrokeColor(TEAL); c.setLineWidth(1.5)
|
||
| ^ E702
|
||
197 | arrows = [((185,303),(220,303)),((350,303),(385,388)),((350,303),(385,218)),((535,388),(645,336)),((535,218),(570,303)),((645,270…
|
||
198 | for (x1,y1),(x2,y2) in arrows:
|
||
|
|
||
|
||
scripts\create_portfolio_case_study.py:199:28: E702 Multiple statements on one line (semicolon)
|
||
|
|
||
197 | arrows = [((185,303),(220,303)),((350,303),(385,388)),((350,303),(385,218)),((535,388),(645,336)),((535,218),(570,303)),((645,270…
|
||
198 | for (x1,y1),(x2,y2) in arrows:
|
||
199 | c.line(x1,y1,x2,y2); c.circle(x2,y2,2.5,fill=1,stroke=0)
|
||
| ^ E702
|
||
200 | paragraph(c, "PostGIS bewaart querybare geometrie en lifecycle-records. Grote raster-, mask- en modelbestanden blijven versioned …
|
||
201 | footer(c, 5)
|
||
|
|
||
|
||
scripts\create_portfolio_case_study.py:206:40: E702 Multiple statements on one line (semicolon)
|
||
|
|
||
204 | def draw_outcomes(c: canvas.Canvas) -> None:
|
||
205 | image_cover(c, PUBLIC / "geointel-dark-case-study-cover.png", 0, 0, W, H)
|
||
206 | c.setFillColor(HexColor("#041d19")); c.rect(0, 0, W, H, fill=1, stroke=0)
|
||
| ^ E702
|
||
207 | c.setFillColor(MINT); c.setFont(FONT_BOLD, 8); c.drawString(42, H - 44, "05 / RESULTAAT")
|
||
208 | c.setFillColor(white); c.setFont(FONT_BOLD, 27); c.drawString(42, H - 82, "Een professionele GeoAI-workbench")
|
||
|
|
||
|
||
scripts\create_portfolio_case_study.py:207:25: E702 Multiple statements on one line (semicolon)
|
||
|
|
||
205 | image_cover(c, PUBLIC / "geointel-dark-case-study-cover.png", 0, 0, W, H)
|
||
206 | c.setFillColor(HexColor("#041d19")); c.rect(0, 0, W, H, fill=1, stroke=0)
|
||
207 | c.setFillColor(MINT); c.setFont(FONT_BOLD, 8); c.drawString(42, H - 44, "05 / RESULTAAT")
|
||
| ^ E702
|
||
208 | c.setFillColor(white); c.setFont(FONT_BOLD, 27); c.drawString(42, H - 82, "Een professionele GeoAI-workbench")
|
||
209 | c.setFillColor(HexColor("#c0dad4")); c.setFont(FONT, 10); c.drawString(42, H - 104, "Nationaal/maritiem van scope, lokaal control…
|
||
|
|
||
|
||
scripts\create_portfolio_case_study.py:207:50: E702 Multiple statements on one line (semicolon)
|
||
|
|
||
205 | image_cover(c, PUBLIC / "geointel-dark-case-study-cover.png", 0, 0, W, H)
|
||
206 | c.setFillColor(HexColor("#041d19")); c.rect(0, 0, W, H, fill=1, stroke=0)
|
||
207 | c.setFillColor(MINT); c.setFont(FONT_BOLD, 8); c.drawString(42, H - 44, "05 / RESULTAAT")
|
||
| ^ E702
|
||
208 | c.setFillColor(white); c.setFont(FONT_BOLD, 27); c.drawString(42, H - 82, "Een professionele GeoAI-workbench")
|
||
209 | c.setFillColor(HexColor("#c0dad4")); c.setFont(FONT, 10); c.drawString(42, H - 104, "Nationaal/maritiem van scope, lokaal control…
|
||
|
|
||
|
||
scripts\create_portfolio_case_study.py:208:26: E702 Multiple statements on one line (semicolon)
|
||
|
|
||
206 | c.setFillColor(HexColor("#041d19")); c.rect(0, 0, W, H, fill=1, stroke=0)
|
||
207 | c.setFillColor(MINT); c.setFont(FONT_BOLD, 8); c.drawString(42, H - 44, "05 / RESULTAAT")
|
||
208 | c.setFillColor(white); c.setFont(FONT_BOLD, 27); c.drawString(42, H - 82, "Een professionele GeoAI-workbench")
|
||
| ^ E702
|
||
209 | c.setFillColor(HexColor("#c0dad4")); c.setFont(FONT, 10); c.drawString(42, H - 104, "Nationaal/maritiem van scope, lokaal control…
|
||
210 | outcomes = [
|
||
|
|
||
|
||
scripts\create_portfolio_case_study.py:208:52: E702 Multiple statements on one line (semicolon)
|
||
|
|
||
206 | c.setFillColor(HexColor("#041d19")); c.rect(0, 0, W, H, fill=1, stroke=0)
|
||
207 | c.setFillColor(MINT); c.setFont(FONT_BOLD, 8); c.drawString(42, H - 44, "05 / RESULTAAT")
|
||
208 | c.setFillColor(white); c.setFont(FONT_BOLD, 27); c.drawString(42, H - 82, "Een professionele GeoAI-workbench")
|
||
| ^ E702
|
||
209 | c.setFillColor(HexColor("#c0dad4")); c.setFont(FONT, 10); c.drawString(42, H - 104, "Nationaal/maritiem van scope, lokaal control…
|
||
210 | outcomes = [
|
||
|
|
||
|
||
scripts\create_portfolio_case_study.py:209:40: E702 Multiple statements on one line (semicolon)
|
||
|
|
||
207 | c.setFillColor(MINT); c.setFont(FONT_BOLD, 8); c.drawString(42, H - 44, "05 / RESULTAAT")
|
||
208 | c.setFillColor(white); c.setFont(FONT_BOLD, 27); c.drawString(42, H - 82, "Een professionele GeoAI-workbench")
|
||
209 | c.setFillColor(HexColor("#c0dad4")); c.setFont(FONT, 10); c.drawString(42, H - 104, "Nationaal/maritiem van scope, lokaal control…
|
||
| ^ E702
|
||
210 | outcomes = [
|
||
211 | ("Map-first", "De gebruiker blijft in dezelfde ruimtelijke context."),
|
||
|
|
||
|
||
scripts\create_portfolio_case_study.py:209:61: E702 Multiple statements on one line (semicolon)
|
||
|
|
||
207 | c.setFillColor(MINT); c.setFont(FONT_BOLD, 8); c.drawString(42, H - 44, "05 / RESULTAAT")
|
||
208 | c.setFillColor(white); c.setFont(FONT_BOLD, 27); c.drawString(42, H - 82, "Een professionele GeoAI-workbench")
|
||
209 | c.setFillColor(HexColor("#c0dad4")); c.setFont(FONT, 10); c.drawString(42, H - 104, "Nationaal/maritiem van scope, lokaal control…
|
||
| ^ E702
|
||
210 | outcomes = [
|
||
211 | ("Map-first", "De gebruiker blijft in dezelfde ruimtelijke context."),
|
||
|
|
||
|
||
scripts\create_portfolio_case_study.py:219:44: E702 Multiple statements on one line (semicolon)
|
||
|
|
||
217 | x = 42 + (i % 2) * 375
|
||
218 | y = 330 - (i // 2) * 105
|
||
219 | c.setFillColor(HexColor("#123f38")); c.roundRect(x, y, 350, 78, 11, fill=1, stroke=0)
|
||
| ^ E702
|
||
220 | c.setFillColor(MINT); c.setFont(FONT_BOLD, 11); c.drawString(x + 16, y + 48, head)
|
||
221 | paragraph(c, body, x + 16, y + 38, 316, 8, HexColor("#b8d2cc"), 12)
|
||
|
|
||
|
||
scripts\create_portfolio_case_study.py:220:29: E702 Multiple statements on one line (semicolon)
|
||
|
|
||
218 | y = 330 - (i // 2) * 105
|
||
219 | c.setFillColor(HexColor("#123f38")); c.roundRect(x, y, 350, 78, 11, fill=1, stroke=0)
|
||
220 | c.setFillColor(MINT); c.setFont(FONT_BOLD, 11); c.drawString(x + 16, y + 48, head)
|
||
| ^ E702
|
||
221 | paragraph(c, body, x + 16, y + 38, 316, 8, HexColor("#b8d2cc"), 12)
|
||
222 | c.setFillColor(white); c.setFont(FONT_BOLD, 11); c.drawString(42, 58, "GeoIntel · Jens / ITWorx.tech")
|
||
|
|
||
|
||
scripts\create_portfolio_case_study.py:220:55: E702 Multiple statements on one line (semicolon)
|
||
|
|
||
218 | y = 330 - (i // 2) * 105
|
||
219 | c.setFillColor(HexColor("#123f38")); c.roundRect(x, y, 350, 78, 11, fill=1, stroke=0)
|
||
220 | c.setFillColor(MINT); c.setFont(FONT_BOLD, 11); c.drawString(x + 16, y + 48, head)
|
||
| ^ E702
|
||
221 | paragraph(c, body, x + 16, y + 38, 316, 8, HexColor("#b8d2cc"), 12)
|
||
222 | c.setFillColor(white); c.setFont(FONT_BOLD, 11); c.drawString(42, 58, "GeoIntel · Jens / ITWorx.tech")
|
||
|
|
||
|
||
scripts\create_portfolio_case_study.py:222:26: E702 Multiple statements on one line (semicolon)
|
||
|
|
||
220 | c.setFillColor(MINT); c.setFont(FONT_BOLD, 11); c.drawString(x + 16, y + 48, head)
|
||
221 | paragraph(c, body, x + 16, y + 38, 316, 8, HexColor("#b8d2cc"), 12)
|
||
222 | c.setFillColor(white); c.setFont(FONT_BOLD, 11); c.drawString(42, 58, "GeoIntel · Jens / ITWorx.tech")
|
||
| ^ E702
|
||
223 | c.setFillColor(HexColor("#8fb9af")); c.setFont(FONT, 8); c.drawString(42, 42, "Belgium and the Belgian North Sea · v1.0.0")
|
||
|
|
||
|
||
scripts\create_portfolio_case_study.py:222:52: E702 Multiple statements on one line (semicolon)
|
||
|
|
||
220 | c.setFillColor(MINT); c.setFont(FONT_BOLD, 11); c.drawString(x + 16, y + 48, head)
|
||
221 | paragraph(c, body, x + 16, y + 38, 316, 8, HexColor("#b8d2cc"), 12)
|
||
222 | c.setFillColor(white); c.setFont(FONT_BOLD, 11); c.drawString(42, 58, "GeoIntel · Jens / ITWorx.tech")
|
||
| ^ E702
|
||
223 | c.setFillColor(HexColor("#8fb9af")); c.setFont(FONT, 8); c.drawString(42, 42, "Belgium and the Belgian North Sea · v1.0.0")
|
||
|
|
||
|
||
scripts\create_portfolio_case_study.py:223:40: E702 Multiple statements on one line (semicolon)
|
||
|
|
||
221 | paragraph(c, body, x + 16, y + 38, 316, 8, HexColor("#b8d2cc"), 12)
|
||
222 | c.setFillColor(white); c.setFont(FONT_BOLD, 11); c.drawString(42, 58, "GeoIntel · Jens / ITWorx.tech")
|
||
223 | c.setFillColor(HexColor("#8fb9af")); c.setFont(FONT, 8); c.drawString(42, 42, "Belgium and the Belgian North Sea · v1.0.0")
|
||
| ^ E702
|
||
|
|
||
|
||
scripts\create_portfolio_case_study.py:223:60: E702 Multiple statements on one line (semicolon)
|
||
|
|
||
221 | paragraph(c, body, x + 16, y + 38, 316, 8, HexColor("#b8d2cc"), 12)
|
||
222 | c.setFillColor(white); c.setFont(FONT_BOLD, 11); c.drawString(42, 58, "GeoIntel · Jens / ITWorx.tech")
|
||
223 | c.setFillColor(HexColor("#8fb9af")); c.setFont(FONT, 8); c.drawString(42, 42, "Belgium and the Belgian North Sea · v1.0.0")
|
||
| ^ E702
|
||
|
|
||
|
||
scripts\provision_regional_grb_context.py:46:5: F401 [*] `provision_regional_grb_buildings.response_data` imported but unused
|
||
|
|
||
44 | next_page_url,
|
||
45 | observed_at,
|
||
46 | response_data,
|
||
| ^^^^^^^^^^^^^ F401
|
||
47 | reusable_manifest,
|
||
48 | safe_slug,
|
||
|
|
||
= help: Remove unused import: `provision_regional_grb_buildings.response_data`
|
||
|
||
scripts\provision_waterinfo_station_history.py:26:30: F401 [*] `shapely.geometry.Point` imported but unused
|
||
|
|
||
24 | import requests
|
||
25 | from requests.adapters import HTTPAdapter
|
||
26 | from shapely.geometry import Point, mapping, shape
|
||
| ^^^^^ F401
|
||
27 | from urllib3.util.retry import Retry
|
||
|
|
||
= help: Remove unused import
|
||
|
||
scripts\provision_waterinfo_station_history.py:26:37: F401 [*] `shapely.geometry.mapping` imported but unused
|
||
|
|
||
24 | import requests
|
||
25 | from requests.adapters import HTTPAdapter
|
||
26 | from shapely.geometry import Point, mapping, shape
|
||
| ^^^^^^^ F401
|
||
27 | from urllib3.util.retry import Retry
|
||
|
|
||
= help: Remove unused import
|
||
|
||
scripts\refine_yolo_labels_with_sam.py:14:20: F401 [*] `typing.Any` imported but unused
|
||
|
|
||
12 | import shutil
|
||
13 | from pathlib import Path
|
||
14 | from typing import Any
|
||
| ^^^ F401
|
||
|
|
||
= help: Remove unused import: `typing.Any`
|
||
|
||
scripts\run_golden_qa_benchmark.py:15:24: F401 [*] `app.models.Area` imported but unused
|
||
|
|
||
13 | sys.path.insert(0, str(BACKEND_ROOT))
|
||
14 |
|
||
15 | from app.models import Area, Dataset, Metric, QualityCheck # noqa: E402
|
||
| ^^^^ F401
|
||
16 | from app.services.qa_service import QaService # noqa: E402
|
||
17 | from app.services.quality_service import QualityService # noqa: E402
|
||
|
|
||
= help: Remove unused import: `app.models.Area`
|
||
|
||
scripts\seed_demo_workflow.py:11:1: E402 Module level import not at top of file
|
||
|
|
||
9 | sys.path.insert(0, str(ROOT / "backend"))
|
||
10 |
|
||
11 | from app.db.session import SessionLocal
|
||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E402
|
||
12 | from app.services.demo_workflow_service import DemoWorkflowService
|
||
|
|
||
|
||
scripts\seed_demo_workflow.py:12:1: E402 Module level import not at top of file
|
||
|
|
||
11 | from app.db.session import SessionLocal
|
||
12 | from app.services.demo_workflow_service import DemoWorkflowService
|
||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E402
|
||
|
|
||
|
||
scripts\smoke_contracts.py:4:11: E701 Multiple statements on one line (colon)
|
||
|
|
||
2 | ROOT = Path(__file__).resolve().parents[1]
|
||
3 | missing=[d for d in ["contracts/api","contracts/database","contracts/events"] if not (ROOT/d).exists()]
|
||
4 | if missing: raise SystemExit("Missing contract directories: "+", ".join(missing))
|
||
| ^ E701
|
||
5 | print("Contracts smoke OK")
|
||
|
|
||
|
||
scripts\smoke_docs.py:5:11: E701 Multiple statements on one line (colon)
|
||
|
|
||
3 | required_docs = ["docs/M5_OPERATIONAL_READINESS.md","docs/BUILD_GOVERNANCE.md","docs/CI_CD_SPECIFICATION.md","docs/HEALTHCHECK_CONTRACT…
|
||
4 | missing=[p for p in required_docs if not (ROOT/p).exists()]
|
||
5 | if missing: raise SystemExit("Missing docs:\n"+"\n".join(missing))
|
||
| ^ E701
|
||
6 | print("Documentation smoke OK")
|
||
|
|
||
|
||
scripts\train_building_proposal_filter.py:136:39: F401 [*] `torchvision.transforms` imported but unused
|
||
|
|
||
134 | from torch import nn
|
||
135 | from torch.utils.data import DataLoader
|
||
136 | from torchvision import datasets, transforms
|
||
| ^^^^^^^^^^ F401
|
||
137 | from torchvision.models import ResNet18_Weights, resnet18
|
||
138 | from ultralytics import YOLO
|
||
|
|
||
= help: Remove unused import: `torchvision.transforms`
|
||
|
||
Found 112 errors.
|
||
[*] 18 fixable with the `--fix` option (2 hidden fixes can be enabled with the `--unsafe-fixes` option).
|