# -*- coding: utf-8 -*-
"""Uji script @alg: folder skrip didaftarkan sebagai folder scripts. python-qgis.bat uji_alg.py"""
import os, sys, tempfile, shutil
os.environ.setdefault("QT_QPA_PLATFORM", "offscreen")
from qgis.core import QgsApplication, QgsVectorLayer
app = QgsApplication([], False); app.initQgis()
sys.path.append(r"C:/Program Files/QGIS 4.0.2/apps/qgis/python/plugins")
import processing
from processing.core.Processing import Processing
from processing.core.ProcessingConfig import ProcessingConfig
AQ = os.path.dirname(os.path.abspath(__file__))
tmp = tempfile.mkdtemp()
shutil.copy(os.path.join(AQ, "tambah_luas_ha.py"), tmp)       # folder scripts hanya berisi satu berkas
Processing.initialize()
ProcessingConfig.setSettingValue("SCRIPTS_FOLDERS", tmp)
Processing.initialize()
QgsApplication.processingRegistry().providerById("script").refreshAlgorithms()
print("terdaftar:", QgsApplication.processingRegistry().algorithmById("script:tambah_luas_ha") is not None)
D = os.path.abspath(os.path.join(AQ, "..", "..", "..", "data-sintetis"))
p = QgsVectorLayer(D + "/paket-m4/Petak_KPH.gpkg", "p", "ogr")
r = processing.run("script:tambah_luas_ha", {"INPUT": p, "OUTPUT": "memory:"})
o = r["OUTPUT"]
print("jumlah:", o.featureCount(), "total ha:", round(sum(f["Luas_Ha_Hitung"] for f in o.getFeatures()), 3))
app.exitQgis()
