From 87d334ed73374f8fcf31684e2f822da30bedaa9e Mon Sep 17 00:00:00 2001 From: MrWaradana Date: Thu, 18 Dec 2025 15:44:26 +0700 Subject: [PATCH] fix script equipment --- src/modules/equipment/Prediksi.py | 23 +++++++++++---- .../__pycache__/Prediksi.cpython-311.pyc | Bin 48125 -> 49082 bytes src/modules/equipment/run.py | 27 +++++++++--------- 3 files changed, 32 insertions(+), 18 deletions(-) diff --git a/src/modules/equipment/Prediksi.py b/src/modules/equipment/Prediksi.py index f7f9ee1..a07f067 100644 --- a/src/modules/equipment/Prediksi.py +++ b/src/modules/equipment/Prediksi.py @@ -292,8 +292,8 @@ class Prediksi: # append record using the difference for raw_cm_interval records_to_insert.append( ( - str(uuid4()), - int(max_seq), + str(uuid4()), # id + int(max_seq), # seq float(row["pm_interval"]) if not pd.isna(row.get("pm_interval", None)) else 0.0, float(row["year"]) if not pd.isna(row.get("year", None)) else 0.0, equipment_id, @@ -312,8 +312,6 @@ class Prediksi: float(row["predictive_material_cost"]) if not pd.isna(row.get("predictive_material_cost", None)) else 0.0, float(row["predictive_labor_time"]) if not pd.isna(row.get("predictive_labor_time", None)) else 0.0, float(row["predictive_labor_human"]) if not pd.isna(row.get("predictive_labor_human", None)) else 0.0, - float(row["loss_output_mw"]) if not pd.isna(row.get("loss_output_mw", None)) else 0.0, - float(row["loss_price"]) if not pd.isna(row.get("loss_price", None)) else 0.0, ) ) @@ -651,7 +649,7 @@ class Prediksi: # Authentication: sign-in and refresh helpers - async def sign_in(self, username: str = "Admin", password: str = "password") -> dict: + async def sign_in(self, username: str = "lcca_admin", password: str = "password") -> dict: """Sign in to AUTH_APP_URL/sign-in using provided username/password. Stores access_token and refresh_token on the instance when successful and returns the parsed response dict. @@ -673,6 +671,21 @@ class Prediksi: return data except httpx.HTTPError as e: print(f"Sign-in failed: {e}") + # Try to sign out if sign-in failed + try: + signout_url = f"{self.AUTH_APP_URL}/sign-out" + async with httpx.AsyncClient() as client: + await client.get(signout_url, timeout=10.0) + print("Signed out due to sign-in failure.") + except Exception as signout_exc: + print(f"Sign-out failed: {signout_exc}") + # Try to sign in again + try: + signin_res = await self.sign_in() + if getattr(self, "access_token", None): + return signin_res + except Exception as signin_exc: + print(f"Sign-in failed after sign-out: {signin_exc}") return None async def refresh_access_token(self) -> str: diff --git a/src/modules/equipment/__pycache__/Prediksi.cpython-311.pyc b/src/modules/equipment/__pycache__/Prediksi.cpython-311.pyc index 6c90897512a01fbaf6a1e0dd5393a70b15e59b84..91779118bfbbf2b8573f9b30c913f2645d9f9ea1 100644 GIT binary patch delta 2699 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 diff --git a/src/modules/equipment/run.py b/src/modules/equipment/run.py index fbf1859..941f4d0 100644 --- a/src/modules/equipment/run.py +++ b/src/modules/equipment/run.py @@ -17,31 +17,32 @@ except ImportError: async def main(): start_time = time.time() + # try: + # await query_data() + # except Exception as e: + # print(f"Error in query_data: {str(e)}") + # return + try: - await query_data() - except Exception as e: - print(f"Error in query_data: {str(e)}") - return - - try: - await predict_run() + prediction_result = await predict_run() + if prediction_result is False: + print("Prediction step failed or was skipped. Skipping EAC run.") + return except Exception as e: - print(f"Error in predict_equipment_data: {str(e)}") + print(f"Error in predict_run: {str(e)}") return try: - # eac = Eac() - # eac.hitung_eac_equipment(assetnum) result = eac_run() - result = result if not asyncio.iscoroutine(result) else await result + if asyncio.iscoroutine(result): + result = await result - # if the function returned a list of objects, optionally log or handle it if isinstance(result, (list, tuple)): print(f"EAC run returned {len(result)} items.") else: print("EAC run completed.") except Exception as e: - print(f"Error in hitung_eac_equipment: {str(e)}") + print(f"Error in eac_run: {str(e)}") return end_time = time.time()