From 5986a20cc36b7fd719154a9a0e1998380cb30ef5 Mon Sep 17 00:00:00 2001 From: Jiang Date: Wed, 21 Jan 2026 17:41:52 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E5=BC=95=E7=94=A8=E8=B7=AF?= =?UTF-8?q?=E5=BE=84=EF=BC=9B=E6=81=A2=E5=A4=8Dproject=5Finfo.py=E5=88=B0s?= =?UTF-8?q?ervice=E7=9B=AE=E5=BD=95=EF=BC=8C=E6=96=B0=E5=A2=9Econfig/proje?= =?UTF-8?q?ct=5Finfo.yml=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/algorithms/online_Analysis.py | 4 ++-- app/algorithms/sensitivity.py | 2 +- app/algorithms/sensor_placement.py | 2 +- app/infra/db/influxdb/api.py | 4 ++-- app/main.py | 2 +- app/services/project_info.py | 22 ++++++++++++++++++++++ app/services/simulation.py | 8 ++++---- configs/project_info.py | 1 - configs/project_info.yml | 1 + scripts/clean_projects.py | 2 +- scripts/copy_project.py | 2 +- scripts/create_project.py | 2 +- scripts/create_project_v3.py | 2 +- scripts/delete_project.py | 2 +- scripts/demo.py | 2 +- scripts/dev.py | 2 +- scripts/dump_inp.py | 2 +- scripts/get_current_status.py | 2 +- scripts/get_current_total_Q.py | 2 +- scripts/open_szh.py | 2 +- scripts/restore_project.py | 2 +- scripts/restore_projects.py | 2 +- scripts/run_simlation.py | 2 +- scripts/run_simulation.py | 2 +- scripts/test_tjnetwork.py | 2 +- 25 files changed, 50 insertions(+), 28 deletions(-) create mode 100644 app/services/project_info.py delete mode 100644 configs/project_info.py create mode 100644 configs/project_info.yml diff --git a/app/algorithms/online_Analysis.py b/app/algorithms/online_Analysis.py index 509bd11..835a923 100644 --- a/app/algorithms/online_Analysis.py +++ b/app/algorithms/online_Analysis.py @@ -1,5 +1,5 @@ import os -from tjnetwork import * +from app.services.tjnetwork import * from app.native.api.project import copy_project from run_simulation import run_simulation_ex, from_clock_to_seconds_2 from math import sqrt, pi @@ -18,7 +18,7 @@ import geopandas as gpd from sqlalchemy import create_engine import ast import sensitivity -import configs.project_info as project_info +import app.services.project_info as project_info import app.algorithms.api_ex.kmeans_sensor import app.algorithms.api_ex.Fdataclean import app.algorithms.api_ex.Pdataclean diff --git a/app/algorithms/sensitivity.py b/app/algorithms/sensitivity.py index 68e7068..8eb66ca 100644 --- a/app/algorithms/sensitivity.py +++ b/app/algorithms/sensitivity.py @@ -11,7 +11,7 @@ from sklearn.cluster import KMeans from wntr.epanet.toolkit import EpanetException from numpy.linalg import slogdet import random -from tjnetwork import * +from app.services.tjnetwork import * from matplotlib.lines import Line2D from sklearn.cluster import SpectralClustering import libpysal as ps diff --git a/app/algorithms/sensor_placement.py b/app/algorithms/sensor_placement.py index 2782db9..be9e186 100644 --- a/app/algorithms/sensor_placement.py +++ b/app/algorithms/sensor_placement.py @@ -11,7 +11,7 @@ from sklearn.cluster import KMeans from wntr.epanet.toolkit import EpanetException from numpy.linalg import slogdet import random -from tjnetwork import * +from app.services.tjnetwork import * import project_info # 2025/03/12 diff --git a/app/infra/db/influxdb/api.py b/app/infra/db/influxdb/api.py index 4647740..e8fc7f7 100644 --- a/app/infra/db/influxdb/api.py +++ b/app/infra/db/influxdb/api.py @@ -18,7 +18,7 @@ import get_data import psycopg import time import app.services.simulation as simulation -from tjnetwork import * +from app.services.tjnetwork import * import schedule import threading import app.services.globals as globals @@ -27,7 +27,7 @@ import pandas as pd import openpyxl import pytz import app.infra.db.influxdb.info as influxdb_info -import configs.project_info as project_info +import app.services.project_info as project_info import app.services.time_api as time_api from app.native.api.postgresql_info import get_pgconn_string diff --git a/app/main.py b/app/main.py index 2ad347c..5be0bbd 100644 --- a/app/main.py +++ b/app/main.py @@ -47,7 +47,7 @@ import py_linq import app.services.time_api as time_api import app.services.simulation as simulation import app.services.globals as globals -import configs.project_info as project_info +import app.services.project_info as project_info from app.infra.db.timescaledb.database import db as tsdb from app.infra.db.postgresql.database import db as pgdb from app.algorithms.online_Analysis import * diff --git a/app/services/project_info.py b/app/services/project_info.py new file mode 100644 index 0000000..867a924 --- /dev/null +++ b/app/services/project_info.py @@ -0,0 +1,22 @@ +import os +import yaml + +# 获取当前项目根目录的路径 +_current_file = os.path.abspath(__file__) +project_root = os.path.dirname(os.path.dirname(os.path.dirname(_current_file))) + +# 尝试读取 .yml 或 .yaml 文件 +config_file = os.path.join(project_root, "configs", "project_info.yml") +if not os.path.exists(config_file): + config_file = os.path.join(project_root, "configs", "project_info.yaml") + +if not os.path.exists(config_file): + raise FileNotFoundError(f"未找到项目配置文件 (project_info.yaml 或 .yml): {os.path.dirname(config_file)}") + +with open(config_file, 'r', encoding='utf-8') as f: + _config = yaml.safe_load(f) + +if not _config or 'name' not in _config: + raise KeyError(f"项目配置文件中缺少 'name' 配置: {config_file}") + +name = _config['name'] diff --git a/app/services/simulation.py b/app/services/simulation.py index 31984a8..371e7dc 100644 --- a/app/services/simulation.py +++ b/app/services/simulation.py @@ -1,5 +1,5 @@ import numpy as np -from tjnetwork import * +from app.services.tjnetwork import * from app.native.api.s36_wda_cal import * # from get_real_status import * @@ -19,10 +19,10 @@ import psycopg import logging import app.services.globals as globals import uuid -import configs.project_info as project_info +import app.services.project_info as project_info from app.native.api.postgresql_info import get_pgconn_string -from timescaledb.internal_queries import InternalQueries as TimescaleInternalQueries -from timescaledb.internal_queries import InternalStorage as TimescaleInternalStorage +from app.infra.db.timescaledb.internal_queries import InternalQueries as TimescaleInternalQueries +from app.infra.db.timescaledb.internal_queries import InternalStorage as TimescaleInternalStorage logging.basicConfig( level=logging.INFO, format="%(asctime)s - %(levelname)s - %(message)s" diff --git a/configs/project_info.py b/configs/project_info.py deleted file mode 100644 index a5555d1..0000000 --- a/configs/project_info.py +++ /dev/null @@ -1 +0,0 @@ -name='szh' \ No newline at end of file diff --git a/configs/project_info.yml b/configs/project_info.yml new file mode 100644 index 0000000..76f368b --- /dev/null +++ b/configs/project_info.yml @@ -0,0 +1 @@ +name: szh diff --git a/scripts/clean_projects.py b/scripts/clean_projects.py index e0f0e44..de02330 100644 --- a/scripts/clean_projects.py +++ b/scripts/clean_projects.py @@ -1,4 +1,4 @@ -from tjnetwork import * +from app.services.tjnetwork import * if __name__ == '__main__': clean_project() diff --git a/scripts/copy_project.py b/scripts/copy_project.py index ae7364c..ad6a967 100644 --- a/scripts/copy_project.py +++ b/scripts/copy_project.py @@ -1,5 +1,5 @@ import sys -from tjnetwork import * +from app.services.tjnetwork import * def main(): argc = len(sys.argv) diff --git a/scripts/create_project.py b/scripts/create_project.py index fca7eea..1beb4d2 100644 --- a/scripts/create_project.py +++ b/scripts/create_project.py @@ -1,5 +1,5 @@ import sys -from tjnetwork import * +from app.services.tjnetwork import * def main(): if len(sys.argv) != 2: diff --git a/scripts/create_project_v3.py b/scripts/create_project_v3.py index 818e013..2ebe53d 100644 --- a/scripts/create_project_v3.py +++ b/scripts/create_project_v3.py @@ -1,5 +1,5 @@ import sys -from tjnetwork import * +from app.services.tjnetwork import * def main(): if len(sys.argv) != 2: diff --git a/scripts/delete_project.py b/scripts/delete_project.py index 8f3d990..c9552f4 100644 --- a/scripts/delete_project.py +++ b/scripts/delete_project.py @@ -1,5 +1,5 @@ import sys -from tjnetwork import * +from app.services.tjnetwork import * def main(): if len(sys.argv) != 2: diff --git a/scripts/demo.py b/scripts/demo.py index 2f1e348..072bddd 100644 --- a/scripts/demo.py +++ b/scripts/demo.py @@ -1,4 +1,4 @@ -from tjnetwork import * +from app.services.tjnetwork import * read_inp("beibeizone","beibeizone.inp") #open_project('beibeizone') #generate_service_area("beibeizone",0.00001) diff --git a/scripts/dev.py b/scripts/dev.py index fb603c1..8a4f8f2 100644 --- a/scripts/dev.py +++ b/scripts/dev.py @@ -1,4 +1,4 @@ -from tjnetwork import * +from app.services.tjnetwork import * p = 'dev' diff --git a/scripts/dump_inp.py b/scripts/dump_inp.py index 1355390..faad410 100644 --- a/scripts/dump_inp.py +++ b/scripts/dump_inp.py @@ -1,5 +1,5 @@ import sys -from tjnetwork import * +from app.services.tjnetwork import * def main(): if len(sys.argv) != 2: diff --git a/scripts/get_current_status.py b/scripts/get_current_status.py index 2b63f2b..eab2690 100644 --- a/scripts/get_current_status.py +++ b/scripts/get_current_status.py @@ -1,4 +1,4 @@ -from tjnetwork import * +from app.services.tjnetwork import * from get_realValue import * from get_hist_data import * import datetime diff --git a/scripts/get_current_total_Q.py b/scripts/get_current_total_Q.py index 69c4bad..3c7e2fd 100644 --- a/scripts/get_current_total_Q.py +++ b/scripts/get_current_total_Q.py @@ -1,4 +1,4 @@ -from tjnetwork import * +from app.services.tjnetwork import * from get_realValue import * def get_current_total_Q(): ids=['3489'] diff --git a/scripts/open_szh.py b/scripts/open_szh.py index 6858b40..093d54f 100644 --- a/scripts/open_szh.py +++ b/scripts/open_szh.py @@ -1,5 +1,5 @@ import sys -from tjnetwork import * +from app.services.tjnetwork import * def main(): open_project('szh') diff --git a/scripts/restore_project.py b/scripts/restore_project.py index d7cbcef..35876a0 100644 --- a/scripts/restore_project.py +++ b/scripts/restore_project.py @@ -1,5 +1,5 @@ import sys -from tjnetwork import * +from app.services.tjnetwork import * def main(): if len(sys.argv) != 2: diff --git a/scripts/restore_projects.py b/scripts/restore_projects.py index d984968..7251051 100644 --- a/scripts/restore_projects.py +++ b/scripts/restore_projects.py @@ -1,4 +1,4 @@ -from tjnetwork import * +from app.services.tjnetwork import * def main(): for p in list_project(): diff --git a/scripts/run_simlation.py b/scripts/run_simlation.py index 2d7408b..ef9fd11 100644 --- a/scripts/run_simlation.py +++ b/scripts/run_simlation.py @@ -1,4 +1,4 @@ -from tjnetwork import * +from app.services.tjnetwork import * from get_current_status import * def run_simulation(cur_datetime:str=None)->str: diff --git a/scripts/run_simulation.py b/scripts/run_simulation.py index e118aba..6eac185 100644 --- a/scripts/run_simulation.py +++ b/scripts/run_simulation.py @@ -1,5 +1,5 @@ import numpy as np -from tjnetwork import * +from app.services.tjnetwork import * from api.s36_wda_cal import * # from get_real_status import * from datetime import datetime,timedelta diff --git a/scripts/test_tjnetwork.py b/scripts/test_tjnetwork.py index 03055e4..2f7e4a1 100644 --- a/scripts/test_tjnetwork.py +++ b/scripts/test_tjnetwork.py @@ -1,6 +1,6 @@ import pytest import random -from tjnetwork import * +from app.services.tjnetwork import * class TestApi: def enter(self, p):