From ed1eb74cfb501b5298fdee625f3e2589be5d9dae Mon Sep 17 00:00:00 2001 From: Jiang Date: Mon, 9 Mar 2026 14:41:50 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=86=20postgresql=5Finfo.py=20=E7=A7=BB?= =?UTF-8?q?=E5=87=BA=20native/=EF=BC=8C=E5=90=88=E5=B9=B6=E5=88=B0=20core/?= =?UTF-8?q?config.py=20=E6=88=96=20infra/db/=EF=BC=8C=E4=BE=BF=E4=BA=8E?= =?UTF-8?q?=E5=90=8E=E7=BB=AD=E9=A1=B9=E7=9B=AE=E7=8E=AF=E5=A2=83=E5=8F=98?= =?UTF-8?q?=E9=87=8F=E8=AF=BB=E5=8F=96=E5=8F=91=E7=94=9F=E5=8F=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/algorithms/sensors.py | 2 +- app/core/config.py | 35 ++++++++++++++++++++ app/infra/db/influxdb/api.py | 2 +- app/infra/db/postgresql/database.py | 2 +- app/infra/db/postgresql/internal_queries.py | 2 +- app/native/wndb/postgresql_info.py | 36 --------------------- app/native/wndb/project.py | 2 +- app/native/wndb/project_backup.py | 2 +- app/services/network_import.py | 2 +- app/services/scheme_management.py | 2 +- app/services/simulation.py | 2 +- scripts/online_Analysis.py | 2 +- 12 files changed, 45 insertions(+), 46 deletions(-) delete mode 100644 app/native/wndb/postgresql_info.py diff --git a/app/algorithms/sensors.py b/app/algorithms/sensors.py index f43ab3b..0286dcc 100644 --- a/app/algorithms/sensors.py +++ b/app/algorithms/sensors.py @@ -2,7 +2,7 @@ import psycopg import app.algorithms.api_ex.kmeans_sensor as kmeans_sensor import app.algorithms.api_ex.sensitivity as sensitivity -from app.native.wndb.postgresql_info import get_pgconn_string +from app.core.config import get_pgconn_string from app.services.tjnetwork import dump_inp diff --git a/app/core/config.py b/app/core/config.py index bbde235..c80d0c3 100644 --- a/app/core/config.py +++ b/app/core/config.py @@ -1,4 +1,5 @@ from pathlib import Path +from typing import Optional from urllib.parse import quote_plus from pydantic_settings import BaseSettings, SettingsConfigDict @@ -80,3 +81,37 @@ class Settings(BaseSettings): settings = Settings() + + +def get_pgconn_string( + db_name: Optional[str] = None, + db_host: Optional[str] = None, + db_port: Optional[str] = None, + db_user: Optional[str] = None, + db_password: Optional[str] = None, +) -> str: + """Return PostgreSQL connection string in psycopg conninfo format.""" + resolved_db_name = db_name or settings.DB_NAME + resolved_db_host = db_host or settings.DB_HOST + resolved_db_port = db_port or settings.DB_PORT + resolved_db_user = db_user or settings.DB_USER + resolved_db_password = db_password or settings.DB_PASSWORD + return ( + f"dbname={resolved_db_name} host={resolved_db_host} port={resolved_db_port} " + f"user={resolved_db_user} password={resolved_db_password}" + ) + + +def get_pg_config() -> dict: + """Return PostgreSQL configuration except password.""" + return { + "name": settings.DB_NAME, + "host": settings.DB_HOST, + "port": settings.DB_PORT, + "user": settings.DB_USER, + } + + +def get_pg_password() -> str: + """Return PostgreSQL password (use with care).""" + return settings.DB_PASSWORD diff --git a/app/infra/db/influxdb/api.py b/app/infra/db/influxdb/api.py index 543ff90..7016d29 100644 --- a/app/infra/db/influxdb/api.py +++ b/app/infra/db/influxdb/api.py @@ -29,7 +29,7 @@ import pytz import app.infra.db.influxdb.info as influxdb_info import app.services.project_info as project_info import app.services.time_api as time_api -from app.native.wndb.postgresql_info import get_pgconn_string +from app.core.config import get_pgconn_string # influxdb数据库连接信息 url = influxdb_info.url diff --git a/app/infra/db/postgresql/database.py b/app/infra/db/postgresql/database.py index db5c970..938db68 100644 --- a/app/infra/db/postgresql/database.py +++ b/app/infra/db/postgresql/database.py @@ -3,7 +3,7 @@ from contextlib import asynccontextmanager from typing import AsyncGenerator, Dict, Optional import psycopg_pool from psycopg.rows import dict_row -import app.native.wndb.postgresql_info as postgresql_info +import app.core.config as postgresql_info # Configure logging logger = logging.getLogger(__name__) diff --git a/app/infra/db/postgresql/internal_queries.py b/app/infra/db/postgresql/internal_queries.py index 0aa86ea..07cc254 100644 --- a/app/infra/db/postgresql/internal_queries.py +++ b/app/infra/db/postgresql/internal_queries.py @@ -2,7 +2,7 @@ import time from typing import List, Optional from fastapi.logger import logger -import app.native.wndb.postgresql_info as postgresql_info +import app.core.config as postgresql_info import psycopg diff --git a/app/native/wndb/postgresql_info.py b/app/native/wndb/postgresql_info.py deleted file mode 100644 index be5b0c4..0000000 --- a/app/native/wndb/postgresql_info.py +++ /dev/null @@ -1,36 +0,0 @@ -from dotenv import load_dotenv -import os - -load_dotenv() - -pg_name = os.getenv("DB_NAME") -pg_host = os.getenv("DB_HOST") -pg_port = os.getenv("DB_PORT") -pg_user = os.getenv("DB_USER") -pg_password = os.getenv("DB_PASSWORD") - - -def get_pgconn_string( - db_name=pg_name, - db_host=pg_host, - db_port=pg_port, - db_user=pg_user, - db_password=pg_password, -): - """返回 PostgreSQL 连接字符串""" - return f"dbname={db_name} host={db_host} port={db_port} user={db_user} password={db_password}" - - -def get_pg_config(): - """返回 PostgreSQL 配置变量的字典""" - return { - "name": pg_name, - "host": pg_host, - "port": pg_port, - "user": pg_user, - } - - -def get_pg_password(): - """返回密码(谨慎使用)""" - return pg_password diff --git a/app/native/wndb/project.py b/app/native/wndb/project.py index fbb572b..25b9328 100644 --- a/app/native/wndb/project.py +++ b/app/native/wndb/project.py @@ -3,7 +3,7 @@ import psycopg as pg from psycopg import sql from psycopg.rows import dict_row from .connection import g_conn_dict as conn -from .postgresql_info import get_pgconn_string, get_pg_config, get_pg_password +from app.core.config import get_pgconn_string, get_pg_config, get_pg_password # no undo/redo diff --git a/app/native/wndb/project_backup.py b/app/native/wndb/project_backup.py index e578e40..bfe2e83 100644 --- a/app/native/wndb/project_backup.py +++ b/app/native/wndb/project_backup.py @@ -3,7 +3,7 @@ import psycopg as pg from psycopg import sql from psycopg.rows import dict_row from .connection import g_conn_dict as conn -from .postgresql_info import get_pgconn_string +from app.core.config import get_pgconn_string # no undo/redo diff --git a/app/services/network_import.py b/app/services/network_import.py index 7bf4e67..3c8e5df 100644 --- a/app/services/network_import.py +++ b/app/services/network_import.py @@ -6,7 +6,7 @@ import psycopg from psycopg import sql import app.services.project_info as project_info -from app.native.wndb.postgresql_info import get_pgconn_string +from app.core.config import get_pgconn_string from app.services.tjnetwork import read_inp diff --git a/app/services/scheme_management.py b/app/services/scheme_management.py index c4697de..80fc3b3 100644 --- a/app/services/scheme_management.py +++ b/app/services/scheme_management.py @@ -7,7 +7,7 @@ import pandas as pd import psycopg from sqlalchemy import create_engine -from app.native.wndb.postgresql_info import get_pgconn_string +from app.core.config import get_pgconn_string # 2025/03/23 diff --git a/app/services/simulation.py b/app/services/simulation.py index 990e35f..6dcc976 100644 --- a/app/services/simulation.py +++ b/app/services/simulation.py @@ -20,7 +20,7 @@ import logging import app.services.globals as globals import uuid import app.services.project_info as project_info -from app.native.wndb.postgresql_info import get_pgconn_string +from app.core.config import get_pgconn_string from app.infra.db.timescaledb.internal_queries import ( InternalQueries as TimescaleInternalQueries, ) diff --git a/scripts/online_Analysis.py b/scripts/online_Analysis.py index 9fb5865..b9f46a3 100644 --- a/scripts/online_Analysis.py +++ b/scripts/online_Analysis.py @@ -22,7 +22,7 @@ import app.algorithms.api_ex.kmeans_sensor as kmeans_sensor import app.algorithms.api_ex.flow_data_clean as flow_data_clean import app.algorithms.api_ex.pressure_data_clean as pressure_data_clean import app.algorithms.api_ex.sensitivity as sensitivity -from app.native.wndb.postgresql_info import get_pgconn_string +from app.core.config import get_pgconn_string ############################################################