diff --git a/app/__init__.py b/app/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/algorithms/__init__.py b/app/algorithms/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/api_ex/Fdataclean.py b/app/algorithms/api_ex/Fdataclean.py similarity index 100% rename from api_ex/Fdataclean.py rename to app/algorithms/api_ex/Fdataclean.py diff --git a/api_ex/Pdataclean.py b/app/algorithms/api_ex/Pdataclean.py similarity index 100% rename from api_ex/Pdataclean.py rename to app/algorithms/api_ex/Pdataclean.py diff --git a/api_ex/__init__.py b/app/algorithms/api_ex/__init__.py similarity index 100% rename from api_ex/__init__.py rename to app/algorithms/api_ex/__init__.py diff --git a/api_ex/kmeans_sensor.py b/app/algorithms/api_ex/kmeans_sensor.py similarity index 100% rename from api_ex/kmeans_sensor.py rename to app/algorithms/api_ex/kmeans_sensor.py diff --git a/api_ex/model/my_survival_forest_model_quxi.zip b/app/algorithms/api_ex/model/my_survival_forest_model_quxi.zip similarity index 100% rename from api_ex/model/my_survival_forest_model_quxi.zip rename to app/algorithms/api_ex/model/my_survival_forest_model_quxi.zip diff --git a/api_ex/pipeline_health_analyzer.py b/app/algorithms/api_ex/pipeline_health_analyzer.py similarity index 100% rename from api_ex/pipeline_health_analyzer.py rename to app/algorithms/api_ex/pipeline_health_analyzer.py diff --git a/online_Analysis.py b/app/algorithms/online_Analysis.py similarity index 99% rename from online_Analysis.py rename to app/algorithms/online_Analysis.py index c08b1c9..c9fc28d 100644 --- a/online_Analysis.py +++ b/app/algorithms/online_Analysis.py @@ -1,6 +1,6 @@ import os from tjnetwork import * -from api.project import copy_project +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 from epanet.epanet import Output @@ -13,16 +13,16 @@ from psycopg import sql import pandas as pd import csv import chardet -import simulation +import app.services.simulation as simulation import geopandas as gpd from sqlalchemy import create_engine import ast import sensitivity -import project_info -import api_ex.kmeans_sensor -import api_ex.Fdataclean -import api_ex.Pdataclean -from api.postgresql_info import get_pgconn_string +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 +from app.native.api.postgresql_info import get_pgconn_string ############################################################ diff --git a/sensitivity.py b/app/algorithms/sensitivity.py similarity index 100% rename from sensitivity.py rename to app/algorithms/sensitivity.py diff --git a/sensor_placement.py b/app/algorithms/sensor_placement.py similarity index 100% rename from sensor_placement.py rename to app/algorithms/sensor_placement.py diff --git a/app/api/__init__.py b/app/api/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/api/v1/__init__.py b/app/api/v1/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/api/v1/endpoints/__init__.py b/app/api/v1/endpoints/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/api/v1/endpoints/auth.py b/app/api/v1/endpoints/auth.py new file mode 100644 index 0000000..e69de29 diff --git a/app/api/v1/endpoints/extension.py b/app/api/v1/endpoints/extension.py new file mode 100644 index 0000000..e69de29 diff --git a/app/api/v1/endpoints/network_elements.py b/app/api/v1/endpoints/network_elements.py new file mode 100644 index 0000000..e69de29 diff --git a/app/api/v1/endpoints/project.py b/app/api/v1/endpoints/project.py new file mode 100644 index 0000000..e69de29 diff --git a/app/api/v1/endpoints/scada.py b/app/api/v1/endpoints/scada.py new file mode 100644 index 0000000..e69de29 diff --git a/app/api/v1/endpoints/simulation.py b/app/api/v1/endpoints/simulation.py new file mode 100644 index 0000000..e69de29 diff --git a/app/api/v1/endpoints/snapshots.py b/app/api/v1/endpoints/snapshots.py new file mode 100644 index 0000000..e69de29 diff --git a/app/api/v1/router.py b/app/api/v1/router.py new file mode 100644 index 0000000..724d907 --- /dev/null +++ b/app/api/v1/router.py @@ -0,0 +1,20 @@ +from fastapi import APIRouter +from app.api.v1.endpoints import ( + auth, + project, + network_elements, + simulation, + scada, + extension, + snapshots +) + +api_router = APIRouter() + +api_router.include_router(auth.router, prefix="/auth", tags=["auth"]) +api_router.include_router(project.router, prefix="/projects", tags=["projects"]) +api_router.include_router(network_elements.router, prefix="/elements", tags=["network-elements"]) +api_router.include_router(simulation.router, prefix="/simulation", tags=["simulation"]) +api_router.include_router(scada.router, prefix="/scada", tags=["scada"]) +api_router.include_router(extension.router, prefix="/extension", tags=["extension"]) +api_router.include_router(snapshots.router, prefix="/snapshots", tags=["snapshots"]) diff --git a/app/audit/__init__.py b/app/audit/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/auth/__init__.py b/app/auth/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/auth/dependencies.py b/app/auth/dependencies.py new file mode 100644 index 0000000..65299db --- /dev/null +++ b/app/auth/dependencies.py @@ -0,0 +1,21 @@ +from fastapi import Depends, HTTPException, status +from fastapi.security import OAuth2PasswordBearer +from app.core.config import settings +from jose import jwt, JWTError + +oauth2_scheme = OAuth2PasswordBearer(tokenUrl=f"{settings.API_V1_STR}/login/access-token") + +async def get_current_user(token: str = Depends(oauth2_scheme)): + credentials_exception = HTTPException( + status_code=status.HTTP_401_UNAUTHORIZED, + detail="Could not validate credentials", + headers={"WWW-Authenticate": "Bearer"}, + ) + try: + payload = jwt.decode(token, settings.SECRET_KEY, algorithms=[settings.ALGORITHM]) + username: str = payload.get("sub") + if username is None: + raise credentials_exception + except JWTError: + raise credentials_exception + return username diff --git a/app/core/__init__.py b/app/core/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/core/audit.py b/app/core/audit.py new file mode 100644 index 0000000..d015e1c --- /dev/null +++ b/app/core/audit.py @@ -0,0 +1,3 @@ +# Placeholder for audit logic +async def log_audit_event(event_type: str, user_id: str, details: dict): + pass diff --git a/app/core/config.py b/app/core/config.py new file mode 100644 index 0000000..26e9a28 --- /dev/null +++ b/app/core/config.py @@ -0,0 +1,30 @@ +from pydantic_settings import BaseSettings + +class Settings(BaseSettings): + PROJECT_NAME: str = "TJWater Server" + API_V1_STR: str = "/api/v1" + SECRET_KEY: str = "your-secret-key-here" # Change in production + ALGORITHM: str = "HS256" + ACCESS_TOKEN_EXPIRE_MINUTES: int = 30 + + # Database Config (PostgreSQL) + DB_NAME: str = "tjwater" + DB_HOST: str = "localhost" + DB_PORT: str = "5432" + DB_USER: str = "postgres" + DB_PASSWORD: str = "password" + + # InfluxDB + INFLUXDB_URL: str = "http://localhost:8086" + INFLUXDB_TOKEN: str = "token" + INFLUXDB_ORG: str = "org" + INFLUXDB_BUCKET: str = "bucket" + + @property + def SQLALCHEMY_DATABASE_URI(self) -> str: + return f"postgresql://{self.DB_USER}:{self.DB_PASSWORD}@{self.DB_HOST}:{self.DB_PORT}/{self.DB_NAME}" + + class Config: + env_file = ".env" + +settings = Settings() diff --git a/app/core/encryption.py b/app/core/encryption.py new file mode 100644 index 0000000..dd0dcb8 --- /dev/null +++ b/app/core/encryption.py @@ -0,0 +1,9 @@ +# Placeholder for encryption logic +class Encryptor: + def encrypt(self, data: str) -> str: + return data # Implement actual encryption + + def decrypt(self, data: str) -> str: + return data # Implement actual decryption + +encryptor = Encryptor() diff --git a/app/core/security.py b/app/core/security.py new file mode 100644 index 0000000..c2f71d6 --- /dev/null +++ b/app/core/security.py @@ -0,0 +1,23 @@ +from datetime import datetime, timedelta +from typing import Optional, Union, Any +from jose import jwt +from passlib.context import CryptContext +from app.core.config import settings + +pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto") + +def create_access_token(subject: Union[str, Any], expires_delta: Optional[timedelta] = None) -> str: + if expires_delta: + expire = datetime.utcnow() + expires_delta + else: + expire = datetime.utcnow() + timedelta(minutes=settings.ACCESS_TOKEN_EXPIRE_MINUTES) + + to_encode = {"exp": expire, "sub": str(subject)} + encoded_jwt = jwt.encode(to_encode, settings.SECRET_KEY, algorithm=settings.ALGORITHM) + return encoded_jwt + +def verify_password(plain_password: str, hashed_password: str) -> bool: + return pwd_context.verify(plain_password, hashed_password) + +def get_password_hash(password: str) -> str: + return pwd_context.hash(password) diff --git a/app/crypto/__init__.py b/app/crypto/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/domain/__init__.py b/app/domain/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/domain/models/__init__.py b/app/domain/models/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/domain/schemas/__init__.py b/app/domain/schemas/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/infra/__init__.py b/app/infra/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/infra/audit/__init__.py b/app/infra/audit/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/infra/cache/__init__.py b/app/infra/cache/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/infra/db/__init__.py b/app/infra/db/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/infra/db/influxdb/__init__.py b/app/infra/db/influxdb/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/influxdb_api.py b/app/infra/db/influxdb/api.py similarity index 99% rename from influxdb_api.py rename to app/infra/db/influxdb/api.py index b9afd39..71c7325 100644 --- a/influxdb_api.py +++ b/app/infra/db/influxdb/api.py @@ -17,19 +17,19 @@ import get_realValue import get_data import psycopg import time -import simulation +import app.services.simulation as simulation from tjnetwork import * import schedule import threading -import globals +import app.services.globals as globals import csv import pandas as pd import openpyxl import pytz -import influxdb_info -import project_info -import time_api -from api.postgresql_info import get_pgconn_string +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.api.postgresql_info import get_pgconn_string # influxdb数据库连接信息 url = influxdb_info.url diff --git a/influxdb_info.py b/app/infra/db/influxdb/info.py similarity index 100% rename from influxdb_info.py rename to app/infra/db/influxdb/info.py diff --git a/influxdb_query_SCADA_data.py b/app/infra/db/influxdb/query.py similarity index 100% rename from influxdb_query_SCADA_data.py rename to app/infra/db/influxdb/query.py diff --git a/postgresql/__init__.py b/app/infra/db/postgresql/__init__.py similarity index 100% rename from postgresql/__init__.py rename to app/infra/db/postgresql/__init__.py diff --git a/postgresql/database.py b/app/infra/db/postgresql/database.py similarity index 98% rename from postgresql/database.py rename to app/infra/db/postgresql/database.py index bf64648..c9b9fb2 100644 --- a/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 api.postgresql_info as postgresql_info +import app.native.api.postgresql_info as postgresql_info # Configure logging logger = logging.getLogger(__name__) diff --git a/postgresql/internal_queries.py b/app/infra/db/postgresql/internal_queries.py similarity index 100% rename from postgresql/internal_queries.py rename to app/infra/db/postgresql/internal_queries.py diff --git a/postgresql/router.py b/app/infra/db/postgresql/router.py similarity index 100% rename from postgresql/router.py rename to app/infra/db/postgresql/router.py diff --git a/postgresql/scada_info.py b/app/infra/db/postgresql/scada_info.py similarity index 100% rename from postgresql/scada_info.py rename to app/infra/db/postgresql/scada_info.py diff --git a/postgresql/scheme.py b/app/infra/db/postgresql/scheme.py similarity index 100% rename from postgresql/scheme.py rename to app/infra/db/postgresql/scheme.py diff --git a/timescaledb/__init__.py b/app/infra/db/timescaledb/__init__.py similarity index 100% rename from timescaledb/__init__.py rename to app/infra/db/timescaledb/__init__.py diff --git a/timescaledb/composite_queries.py b/app/infra/db/timescaledb/composite_queries.py similarity index 100% rename from timescaledb/composite_queries.py rename to app/infra/db/timescaledb/composite_queries.py diff --git a/timescaledb/database.py b/app/infra/db/timescaledb/database.py similarity index 98% rename from timescaledb/database.py rename to app/infra/db/timescaledb/database.py index 448b6bf..e3726fc 100644 --- a/timescaledb/database.py +++ b/app/infra/db/timescaledb/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 timescaledb.timescaledb_info as timescaledb_info +import app.infra.db.timescaledb.timescaledb_info as timescaledb_info # Configure logging logger = logging.getLogger(__name__) diff --git a/timescaledb/internal_queries.py b/app/infra/db/timescaledb/internal_queries.py similarity index 100% rename from timescaledb/internal_queries.py rename to app/infra/db/timescaledb/internal_queries.py diff --git a/timescaledb/router.py b/app/infra/db/timescaledb/router.py similarity index 100% rename from timescaledb/router.py rename to app/infra/db/timescaledb/router.py diff --git a/timescaledb/schemas/realtime.py b/app/infra/db/timescaledb/schemas/realtime.py similarity index 100% rename from timescaledb/schemas/realtime.py rename to app/infra/db/timescaledb/schemas/realtime.py diff --git a/timescaledb/schemas/scada.py b/app/infra/db/timescaledb/schemas/scada.py similarity index 100% rename from timescaledb/schemas/scada.py rename to app/infra/db/timescaledb/schemas/scada.py diff --git a/timescaledb/schemas/scheme.py b/app/infra/db/timescaledb/schemas/scheme.py similarity index 100% rename from timescaledb/schemas/scheme.py rename to app/infra/db/timescaledb/schemas/scheme.py diff --git a/timescaledb/timescaledb_info.py b/app/infra/db/timescaledb/timescaledb_info.py similarity index 100% rename from timescaledb/timescaledb_info.py rename to app/infra/db/timescaledb/timescaledb_info.py diff --git a/app/infra/repositories/__init__.py b/app/infra/repositories/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/main.py b/app/main.py similarity index 99% rename from main.py rename to app/main.py index db0300e..5be0bbd 100644 --- a/main.py +++ b/app/main.py @@ -40,18 +40,18 @@ import msgpack from datetime import datetime, timedelta, timezone # 第三方/自定义模块 -import influxdb_api -import timescaledb -import postgresql +import app.infra.db.influxdb.api as influxdb_api +import app.infra.db.timescaledb as timescaledb +import app.infra.db.postgresql as postgresql import py_linq -import time_api -import simulation -import globals -import project_info -from timescaledb.database import db as tsdb -from postgresql.database import db as pgdb -from online_Analysis import * -from tjnetwork import * +import app.services.time_api as time_api +import app.services.simulation as simulation +import app.services.globals as globals +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 * +from app.services.tjnetwork import * JUNCTION = 0 diff --git a/app/native/__init__.py b/app/native/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/api/__init__.cp312-win_amd64.pyd b/app/native/api/__init__.cp312-win_amd64.pyd similarity index 100% rename from api/__init__.cp312-win_amd64.pyd rename to app/native/api/__init__.cp312-win_amd64.pyd diff --git a/api/__init__.cpython-312-x86_64-linux-gnu.so b/app/native/api/__init__.cpython-312-x86_64-linux-gnu.so similarity index 100% rename from api/__init__.cpython-312-x86_64-linux-gnu.so rename to app/native/api/__init__.cpython-312-x86_64-linux-gnu.so diff --git a/api/batch_api.cp312-win_amd64.pyd b/app/native/api/batch_api.cp312-win_amd64.pyd similarity index 100% rename from api/batch_api.cp312-win_amd64.pyd rename to app/native/api/batch_api.cp312-win_amd64.pyd diff --git a/api/batch_api.cpython-312-x86_64-linux-gnu.so b/app/native/api/batch_api.cpython-312-x86_64-linux-gnu.so similarity index 100% rename from api/batch_api.cpython-312-x86_64-linux-gnu.so rename to app/native/api/batch_api.cpython-312-x86_64-linux-gnu.so diff --git a/api/batch_api_cs.cp312-win_amd64.pyd b/app/native/api/batch_api_cs.cp312-win_amd64.pyd similarity index 100% rename from api/batch_api_cs.cp312-win_amd64.pyd rename to app/native/api/batch_api_cs.cp312-win_amd64.pyd diff --git a/api/batch_api_cs.cpython-312-x86_64-linux-gnu.so b/app/native/api/batch_api_cs.cpython-312-x86_64-linux-gnu.so similarity index 100% rename from api/batch_api_cs.cpython-312-x86_64-linux-gnu.so rename to app/native/api/batch_api_cs.cpython-312-x86_64-linux-gnu.so diff --git a/api/batch_exe.cp312-win_amd64.pyd b/app/native/api/batch_exe.cp312-win_amd64.pyd similarity index 100% rename from api/batch_exe.cp312-win_amd64.pyd rename to app/native/api/batch_exe.cp312-win_amd64.pyd diff --git a/api/batch_exe.cpython-312-x86_64-linux-gnu.so b/app/native/api/batch_exe.cpython-312-x86_64-linux-gnu.so similarity index 100% rename from api/batch_exe.cpython-312-x86_64-linux-gnu.so rename to app/native/api/batch_exe.cpython-312-x86_64-linux-gnu.so diff --git a/api/clean_api.cp312-win_amd64.pyd b/app/native/api/clean_api.cp312-win_amd64.pyd similarity index 100% rename from api/clean_api.cp312-win_amd64.pyd rename to app/native/api/clean_api.cp312-win_amd64.pyd diff --git a/api/clean_api.cpython-312-x86_64-linux-gnu.so b/app/native/api/clean_api.cpython-312-x86_64-linux-gnu.so similarity index 100% rename from api/clean_api.cpython-312-x86_64-linux-gnu.so rename to app/native/api/clean_api.cpython-312-x86_64-linux-gnu.so diff --git a/api/connection.cp312-win_amd64.pyd b/app/native/api/connection.cp312-win_amd64.pyd similarity index 100% rename from api/connection.cp312-win_amd64.pyd rename to app/native/api/connection.cp312-win_amd64.pyd diff --git a/api/connection.cpython-312-x86_64-linux-gnu.so b/app/native/api/connection.cpython-312-x86_64-linux-gnu.so similarity index 100% rename from api/connection.cpython-312-x86_64-linux-gnu.so rename to app/native/api/connection.cpython-312-x86_64-linux-gnu.so diff --git a/api/database.cp312-win_amd64.pyd b/app/native/api/database.cp312-win_amd64.pyd similarity index 100% rename from api/database.cp312-win_amd64.pyd rename to app/native/api/database.cp312-win_amd64.pyd diff --git a/api/database.cpython-312-x86_64-linux-gnu.so b/app/native/api/database.cpython-312-x86_64-linux-gnu.so similarity index 100% rename from api/database.cpython-312-x86_64-linux-gnu.so rename to app/native/api/database.cpython-312-x86_64-linux-gnu.so diff --git a/api/extension_data.cp312-win_amd64.pyd b/app/native/api/extension_data.cp312-win_amd64.pyd similarity index 100% rename from api/extension_data.cp312-win_amd64.pyd rename to app/native/api/extension_data.cp312-win_amd64.pyd diff --git a/api/extension_data.cpython-312-x86_64-linux-gnu.so b/app/native/api/extension_data.cpython-312-x86_64-linux-gnu.so similarity index 100% rename from api/extension_data.cpython-312-x86_64-linux-gnu.so rename to app/native/api/extension_data.cpython-312-x86_64-linux-gnu.so diff --git a/api/inp_in.cp312-win_amd64.pyd b/app/native/api/inp_in.cp312-win_amd64.pyd similarity index 100% rename from api/inp_in.cp312-win_amd64.pyd rename to app/native/api/inp_in.cp312-win_amd64.pyd diff --git a/api/inp_in.cpython-312-x86_64-linux-gnu.so b/app/native/api/inp_in.cpython-312-x86_64-linux-gnu.so similarity index 100% rename from api/inp_in.cpython-312-x86_64-linux-gnu.so rename to app/native/api/inp_in.cpython-312-x86_64-linux-gnu.so diff --git a/api/inp_out.cp312-win_amd64.pyd b/app/native/api/inp_out.cp312-win_amd64.pyd similarity index 100% rename from api/inp_out.cp312-win_amd64.pyd rename to app/native/api/inp_out.cp312-win_amd64.pyd diff --git a/api/inp_out.cpython-312-x86_64-linux-gnu.so b/app/native/api/inp_out.cpython-312-x86_64-linux-gnu.so similarity index 100% rename from api/inp_out.cpython-312-x86_64-linux-gnu.so rename to app/native/api/inp_out.cpython-312-x86_64-linux-gnu.so diff --git a/api/postgresql_info.cp312-win_amd64.pyd b/app/native/api/postgresql_info.cp312-win_amd64.pyd similarity index 100% rename from api/postgresql_info.cp312-win_amd64.pyd rename to app/native/api/postgresql_info.cp312-win_amd64.pyd diff --git a/api/postgresql_info.cpython-312-x86_64-linux-gnu.so b/app/native/api/postgresql_info.cpython-312-x86_64-linux-gnu.so similarity index 100% rename from api/postgresql_info.cpython-312-x86_64-linux-gnu.so rename to app/native/api/postgresql_info.cpython-312-x86_64-linux-gnu.so diff --git a/api/project.cp312-win_amd64.pyd b/app/native/api/project.cp312-win_amd64.pyd similarity index 100% rename from api/project.cp312-win_amd64.pyd rename to app/native/api/project.cp312-win_amd64.pyd diff --git a/api/project.cpython-312-x86_64-linux-gnu.so b/app/native/api/project.cpython-312-x86_64-linux-gnu.so similarity index 100% rename from api/project.cpython-312-x86_64-linux-gnu.so rename to app/native/api/project.cpython-312-x86_64-linux-gnu.so diff --git a/api/s0_base.cp312-win_amd64.pyd b/app/native/api/s0_base.cp312-win_amd64.pyd similarity index 100% rename from api/s0_base.cp312-win_amd64.pyd rename to app/native/api/s0_base.cp312-win_amd64.pyd diff --git a/api/s0_base.cpython-312-x86_64-linux-gnu.so b/app/native/api/s0_base.cpython-312-x86_64-linux-gnu.so similarity index 100% rename from api/s0_base.cpython-312-x86_64-linux-gnu.so rename to app/native/api/s0_base.cpython-312-x86_64-linux-gnu.so diff --git a/api/s10_status.cp312-win_amd64.pyd b/app/native/api/s10_status.cp312-win_amd64.pyd similarity index 100% rename from api/s10_status.cp312-win_amd64.pyd rename to app/native/api/s10_status.cp312-win_amd64.pyd diff --git a/api/s10_status.cpython-312-x86_64-linux-gnu.so b/app/native/api/s10_status.cpython-312-x86_64-linux-gnu.so similarity index 100% rename from api/s10_status.cpython-312-x86_64-linux-gnu.so rename to app/native/api/s10_status.cpython-312-x86_64-linux-gnu.so diff --git a/api/s11_patterns.cp312-win_amd64.pyd b/app/native/api/s11_patterns.cp312-win_amd64.pyd similarity index 100% rename from api/s11_patterns.cp312-win_amd64.pyd rename to app/native/api/s11_patterns.cp312-win_amd64.pyd diff --git a/api/s11_patterns.cpython-312-x86_64-linux-gnu.so b/app/native/api/s11_patterns.cpython-312-x86_64-linux-gnu.so similarity index 100% rename from api/s11_patterns.cpython-312-x86_64-linux-gnu.so rename to app/native/api/s11_patterns.cpython-312-x86_64-linux-gnu.so diff --git a/api/s12_curves.cp312-win_amd64.pyd b/app/native/api/s12_curves.cp312-win_amd64.pyd similarity index 100% rename from api/s12_curves.cp312-win_amd64.pyd rename to app/native/api/s12_curves.cp312-win_amd64.pyd diff --git a/api/s12_curves.cpython-312-x86_64-linux-gnu.so b/app/native/api/s12_curves.cpython-312-x86_64-linux-gnu.so similarity index 100% rename from api/s12_curves.cpython-312-x86_64-linux-gnu.so rename to app/native/api/s12_curves.cpython-312-x86_64-linux-gnu.so diff --git a/api/s13_controls.cp312-win_amd64.pyd b/app/native/api/s13_controls.cp312-win_amd64.pyd similarity index 100% rename from api/s13_controls.cp312-win_amd64.pyd rename to app/native/api/s13_controls.cp312-win_amd64.pyd diff --git a/api/s13_controls.cpython-312-x86_64-linux-gnu.so b/app/native/api/s13_controls.cpython-312-x86_64-linux-gnu.so similarity index 100% rename from api/s13_controls.cpython-312-x86_64-linux-gnu.so rename to app/native/api/s13_controls.cpython-312-x86_64-linux-gnu.so diff --git a/api/s14_rules.cp312-win_amd64.pyd b/app/native/api/s14_rules.cp312-win_amd64.pyd similarity index 100% rename from api/s14_rules.cp312-win_amd64.pyd rename to app/native/api/s14_rules.cp312-win_amd64.pyd diff --git a/api/s14_rules.cpython-312-x86_64-linux-gnu.so b/app/native/api/s14_rules.cpython-312-x86_64-linux-gnu.so similarity index 100% rename from api/s14_rules.cpython-312-x86_64-linux-gnu.so rename to app/native/api/s14_rules.cpython-312-x86_64-linux-gnu.so diff --git a/api/s15_energy.cp312-win_amd64.pyd b/app/native/api/s15_energy.cp312-win_amd64.pyd similarity index 100% rename from api/s15_energy.cp312-win_amd64.pyd rename to app/native/api/s15_energy.cp312-win_amd64.pyd diff --git a/api/s15_energy.cpython-312-x86_64-linux-gnu.so b/app/native/api/s15_energy.cpython-312-x86_64-linux-gnu.so similarity index 100% rename from api/s15_energy.cpython-312-x86_64-linux-gnu.so rename to app/native/api/s15_energy.cpython-312-x86_64-linux-gnu.so diff --git a/api/s16_emitters.cp312-win_amd64.pyd b/app/native/api/s16_emitters.cp312-win_amd64.pyd similarity index 100% rename from api/s16_emitters.cp312-win_amd64.pyd rename to app/native/api/s16_emitters.cp312-win_amd64.pyd diff --git a/api/s16_emitters.cpython-312-x86_64-linux-gnu.so b/app/native/api/s16_emitters.cpython-312-x86_64-linux-gnu.so similarity index 100% rename from api/s16_emitters.cpython-312-x86_64-linux-gnu.so rename to app/native/api/s16_emitters.cpython-312-x86_64-linux-gnu.so diff --git a/api/s17_quality.cp312-win_amd64.pyd b/app/native/api/s17_quality.cp312-win_amd64.pyd similarity index 100% rename from api/s17_quality.cp312-win_amd64.pyd rename to app/native/api/s17_quality.cp312-win_amd64.pyd diff --git a/api/s17_quality.cpython-312-x86_64-linux-gnu.so b/app/native/api/s17_quality.cpython-312-x86_64-linux-gnu.so similarity index 100% rename from api/s17_quality.cpython-312-x86_64-linux-gnu.so rename to app/native/api/s17_quality.cpython-312-x86_64-linux-gnu.so diff --git a/api/s18_sources.cp312-win_amd64.pyd b/app/native/api/s18_sources.cp312-win_amd64.pyd similarity index 100% rename from api/s18_sources.cp312-win_amd64.pyd rename to app/native/api/s18_sources.cp312-win_amd64.pyd diff --git a/api/s18_sources.cpython-312-x86_64-linux-gnu.so b/app/native/api/s18_sources.cpython-312-x86_64-linux-gnu.so similarity index 100% rename from api/s18_sources.cpython-312-x86_64-linux-gnu.so rename to app/native/api/s18_sources.cpython-312-x86_64-linux-gnu.so diff --git a/api/s19_reactions.cp312-win_amd64.pyd b/app/native/api/s19_reactions.cp312-win_amd64.pyd similarity index 100% rename from api/s19_reactions.cp312-win_amd64.pyd rename to app/native/api/s19_reactions.cp312-win_amd64.pyd diff --git a/api/s19_reactions.cpython-312-x86_64-linux-gnu.so b/app/native/api/s19_reactions.cpython-312-x86_64-linux-gnu.so similarity index 100% rename from api/s19_reactions.cpython-312-x86_64-linux-gnu.so rename to app/native/api/s19_reactions.cpython-312-x86_64-linux-gnu.so diff --git a/api/s1_title.cp312-win_amd64.pyd b/app/native/api/s1_title.cp312-win_amd64.pyd similarity index 100% rename from api/s1_title.cp312-win_amd64.pyd rename to app/native/api/s1_title.cp312-win_amd64.pyd diff --git a/api/s1_title.cpython-312-x86_64-linux-gnu.so b/app/native/api/s1_title.cpython-312-x86_64-linux-gnu.so similarity index 100% rename from api/s1_title.cpython-312-x86_64-linux-gnu.so rename to app/native/api/s1_title.cpython-312-x86_64-linux-gnu.so diff --git a/api/s20_mixing.cp312-win_amd64.pyd b/app/native/api/s20_mixing.cp312-win_amd64.pyd similarity index 100% rename from api/s20_mixing.cp312-win_amd64.pyd rename to app/native/api/s20_mixing.cp312-win_amd64.pyd diff --git a/api/s20_mixing.cpython-312-x86_64-linux-gnu.so b/app/native/api/s20_mixing.cpython-312-x86_64-linux-gnu.so similarity index 100% rename from api/s20_mixing.cpython-312-x86_64-linux-gnu.so rename to app/native/api/s20_mixing.cpython-312-x86_64-linux-gnu.so diff --git a/api/s21_times.cp312-win_amd64.pyd b/app/native/api/s21_times.cp312-win_amd64.pyd similarity index 100% rename from api/s21_times.cp312-win_amd64.pyd rename to app/native/api/s21_times.cp312-win_amd64.pyd diff --git a/api/s21_times.cpython-312-x86_64-linux-gnu.so b/app/native/api/s21_times.cpython-312-x86_64-linux-gnu.so similarity index 100% rename from api/s21_times.cpython-312-x86_64-linux-gnu.so rename to app/native/api/s21_times.cpython-312-x86_64-linux-gnu.so diff --git a/api/s22_report.cp312-win_amd64.pyd b/app/native/api/s22_report.cp312-win_amd64.pyd similarity index 100% rename from api/s22_report.cp312-win_amd64.pyd rename to app/native/api/s22_report.cp312-win_amd64.pyd diff --git a/api/s22_report.cpython-312-x86_64-linux-gnu.so b/app/native/api/s22_report.cpython-312-x86_64-linux-gnu.so similarity index 100% rename from api/s22_report.cpython-312-x86_64-linux-gnu.so rename to app/native/api/s22_report.cpython-312-x86_64-linux-gnu.so diff --git a/api/s23_options.cp312-win_amd64.pyd b/app/native/api/s23_options.cp312-win_amd64.pyd similarity index 100% rename from api/s23_options.cp312-win_amd64.pyd rename to app/native/api/s23_options.cp312-win_amd64.pyd diff --git a/api/s23_options.cpython-312-x86_64-linux-gnu.so b/app/native/api/s23_options.cpython-312-x86_64-linux-gnu.so similarity index 100% rename from api/s23_options.cpython-312-x86_64-linux-gnu.so rename to app/native/api/s23_options.cpython-312-x86_64-linux-gnu.so diff --git a/api/s23_options_util.cp312-win_amd64.pyd b/app/native/api/s23_options_util.cp312-win_amd64.pyd similarity index 100% rename from api/s23_options_util.cp312-win_amd64.pyd rename to app/native/api/s23_options_util.cp312-win_amd64.pyd diff --git a/api/s23_options_util.cpython-312-x86_64-linux-gnu.so b/app/native/api/s23_options_util.cpython-312-x86_64-linux-gnu.so similarity index 100% rename from api/s23_options_util.cpython-312-x86_64-linux-gnu.so rename to app/native/api/s23_options_util.cpython-312-x86_64-linux-gnu.so diff --git a/api/s23_options_v3.cp312-win_amd64.pyd b/app/native/api/s23_options_v3.cp312-win_amd64.pyd similarity index 100% rename from api/s23_options_v3.cp312-win_amd64.pyd rename to app/native/api/s23_options_v3.cp312-win_amd64.pyd diff --git a/api/s23_options_v3.cpython-312-x86_64-linux-gnu.so b/app/native/api/s23_options_v3.cpython-312-x86_64-linux-gnu.so similarity index 100% rename from api/s23_options_v3.cpython-312-x86_64-linux-gnu.so rename to app/native/api/s23_options_v3.cpython-312-x86_64-linux-gnu.so diff --git a/api/s24_coordinates.cp312-win_amd64.pyd b/app/native/api/s24_coordinates.cp312-win_amd64.pyd similarity index 100% rename from api/s24_coordinates.cp312-win_amd64.pyd rename to app/native/api/s24_coordinates.cp312-win_amd64.pyd diff --git a/api/s24_coordinates.cpython-312-x86_64-linux-gnu.so b/app/native/api/s24_coordinates.cpython-312-x86_64-linux-gnu.so similarity index 100% rename from api/s24_coordinates.cpython-312-x86_64-linux-gnu.so rename to app/native/api/s24_coordinates.cpython-312-x86_64-linux-gnu.so diff --git a/api/s25_vertices.cp312-win_amd64.pyd b/app/native/api/s25_vertices.cp312-win_amd64.pyd similarity index 100% rename from api/s25_vertices.cp312-win_amd64.pyd rename to app/native/api/s25_vertices.cp312-win_amd64.pyd diff --git a/api/s25_vertices.cpython-312-x86_64-linux-gnu.so b/app/native/api/s25_vertices.cpython-312-x86_64-linux-gnu.so similarity index 100% rename from api/s25_vertices.cpython-312-x86_64-linux-gnu.so rename to app/native/api/s25_vertices.cpython-312-x86_64-linux-gnu.so diff --git a/api/s26_labels.cp312-win_amd64.pyd b/app/native/api/s26_labels.cp312-win_amd64.pyd similarity index 100% rename from api/s26_labels.cp312-win_amd64.pyd rename to app/native/api/s26_labels.cp312-win_amd64.pyd diff --git a/api/s26_labels.cpython-312-x86_64-linux-gnu.so b/app/native/api/s26_labels.cpython-312-x86_64-linux-gnu.so similarity index 100% rename from api/s26_labels.cpython-312-x86_64-linux-gnu.so rename to app/native/api/s26_labels.cpython-312-x86_64-linux-gnu.so diff --git a/api/s27_backdrop.cp312-win_amd64.pyd b/app/native/api/s27_backdrop.cp312-win_amd64.pyd similarity index 100% rename from api/s27_backdrop.cp312-win_amd64.pyd rename to app/native/api/s27_backdrop.cp312-win_amd64.pyd diff --git a/api/s27_backdrop.cpython-312-x86_64-linux-gnu.so b/app/native/api/s27_backdrop.cpython-312-x86_64-linux-gnu.so similarity index 100% rename from api/s27_backdrop.cpython-312-x86_64-linux-gnu.so rename to app/native/api/s27_backdrop.cpython-312-x86_64-linux-gnu.so diff --git a/api/s28_end.cp312-win_amd64.pyd b/app/native/api/s28_end.cp312-win_amd64.pyd similarity index 100% rename from api/s28_end.cp312-win_amd64.pyd rename to app/native/api/s28_end.cp312-win_amd64.pyd diff --git a/api/s28_end.cpython-312-x86_64-linux-gnu.so b/app/native/api/s28_end.cpython-312-x86_64-linux-gnu.so similarity index 100% rename from api/s28_end.cpython-312-x86_64-linux-gnu.so rename to app/native/api/s28_end.cpython-312-x86_64-linux-gnu.so diff --git a/api/s29_scada_device.cp312-win_amd64.pyd b/app/native/api/s29_scada_device.cp312-win_amd64.pyd similarity index 100% rename from api/s29_scada_device.cp312-win_amd64.pyd rename to app/native/api/s29_scada_device.cp312-win_amd64.pyd diff --git a/api/s29_scada_device.cpython-312-x86_64-linux-gnu.so b/app/native/api/s29_scada_device.cpython-312-x86_64-linux-gnu.so similarity index 100% rename from api/s29_scada_device.cpython-312-x86_64-linux-gnu.so rename to app/native/api/s29_scada_device.cpython-312-x86_64-linux-gnu.so diff --git a/api/s2_junctions.cp312-win_amd64.pyd b/app/native/api/s2_junctions.cp312-win_amd64.pyd similarity index 100% rename from api/s2_junctions.cp312-win_amd64.pyd rename to app/native/api/s2_junctions.cp312-win_amd64.pyd diff --git a/api/s2_junctions.cpython-312-x86_64-linux-gnu.so b/app/native/api/s2_junctions.cpython-312-x86_64-linux-gnu.so similarity index 100% rename from api/s2_junctions.cpython-312-x86_64-linux-gnu.so rename to app/native/api/s2_junctions.cpython-312-x86_64-linux-gnu.so diff --git a/api/s30_scada_device_data.cp312-win_amd64.pyd b/app/native/api/s30_scada_device_data.cp312-win_amd64.pyd similarity index 100% rename from api/s30_scada_device_data.cp312-win_amd64.pyd rename to app/native/api/s30_scada_device_data.cp312-win_amd64.pyd diff --git a/api/s30_scada_device_data.cpython-312-x86_64-linux-gnu.so b/app/native/api/s30_scada_device_data.cpython-312-x86_64-linux-gnu.so similarity index 100% rename from api/s30_scada_device_data.cpython-312-x86_64-linux-gnu.so rename to app/native/api/s30_scada_device_data.cpython-312-x86_64-linux-gnu.so diff --git a/api/s31_scada_element.cp312-win_amd64.pyd b/app/native/api/s31_scada_element.cp312-win_amd64.pyd similarity index 100% rename from api/s31_scada_element.cp312-win_amd64.pyd rename to app/native/api/s31_scada_element.cp312-win_amd64.pyd diff --git a/api/s31_scada_element.cpython-312-x86_64-linux-gnu.so b/app/native/api/s31_scada_element.cpython-312-x86_64-linux-gnu.so similarity index 100% rename from api/s31_scada_element.cpython-312-x86_64-linux-gnu.so rename to app/native/api/s31_scada_element.cpython-312-x86_64-linux-gnu.so diff --git a/api/s32_region.cp312-win_amd64.pyd b/app/native/api/s32_region.cp312-win_amd64.pyd similarity index 100% rename from api/s32_region.cp312-win_amd64.pyd rename to app/native/api/s32_region.cp312-win_amd64.pyd diff --git a/api/s32_region.cpython-312-x86_64-linux-gnu.so b/app/native/api/s32_region.cpython-312-x86_64-linux-gnu.so similarity index 100% rename from api/s32_region.cpython-312-x86_64-linux-gnu.so rename to app/native/api/s32_region.cpython-312-x86_64-linux-gnu.so diff --git a/api/s32_region_util.cp312-win_amd64.pyd b/app/native/api/s32_region_util.cp312-win_amd64.pyd similarity index 100% rename from api/s32_region_util.cp312-win_amd64.pyd rename to app/native/api/s32_region_util.cp312-win_amd64.pyd diff --git a/api/s32_region_util.cpython-312-x86_64-linux-gnu.so b/app/native/api/s32_region_util.cpython-312-x86_64-linux-gnu.so similarity index 100% rename from api/s32_region_util.cpython-312-x86_64-linux-gnu.so rename to app/native/api/s32_region_util.cpython-312-x86_64-linux-gnu.so diff --git a/api/s33_dma.cp312-win_amd64.pyd b/app/native/api/s33_dma.cp312-win_amd64.pyd similarity index 100% rename from api/s33_dma.cp312-win_amd64.pyd rename to app/native/api/s33_dma.cp312-win_amd64.pyd diff --git a/api/s33_dma.cpython-312-x86_64-linux-gnu.so b/app/native/api/s33_dma.cpython-312-x86_64-linux-gnu.so similarity index 100% rename from api/s33_dma.cpython-312-x86_64-linux-gnu.so rename to app/native/api/s33_dma.cpython-312-x86_64-linux-gnu.so diff --git a/api/s33_dma_cal.cp312-win_amd64.pyd b/app/native/api/s33_dma_cal.cp312-win_amd64.pyd similarity index 100% rename from api/s33_dma_cal.cp312-win_amd64.pyd rename to app/native/api/s33_dma_cal.cp312-win_amd64.pyd diff --git a/api/s33_dma_cal.cpython-312-x86_64-linux-gnu.so b/app/native/api/s33_dma_cal.cpython-312-x86_64-linux-gnu.so similarity index 100% rename from api/s33_dma_cal.cpython-312-x86_64-linux-gnu.so rename to app/native/api/s33_dma_cal.cpython-312-x86_64-linux-gnu.so diff --git a/api/s33_dma_gen.cp312-win_amd64.pyd b/app/native/api/s33_dma_gen.cp312-win_amd64.pyd similarity index 100% rename from api/s33_dma_gen.cp312-win_amd64.pyd rename to app/native/api/s33_dma_gen.cp312-win_amd64.pyd diff --git a/api/s33_dma_gen.cpython-312-x86_64-linux-gnu.so b/app/native/api/s33_dma_gen.cpython-312-x86_64-linux-gnu.so similarity index 100% rename from api/s33_dma_gen.cpython-312-x86_64-linux-gnu.so rename to app/native/api/s33_dma_gen.cpython-312-x86_64-linux-gnu.so diff --git a/api/s34_sa.cp312-win_amd64.pyd b/app/native/api/s34_sa.cp312-win_amd64.pyd similarity index 100% rename from api/s34_sa.cp312-win_amd64.pyd rename to app/native/api/s34_sa.cp312-win_amd64.pyd diff --git a/api/s34_sa.cpython-312-x86_64-linux-gnu.so b/app/native/api/s34_sa.cpython-312-x86_64-linux-gnu.so similarity index 100% rename from api/s34_sa.cpython-312-x86_64-linux-gnu.so rename to app/native/api/s34_sa.cpython-312-x86_64-linux-gnu.so diff --git a/api/s34_sa_cal.cp312-win_amd64.pyd b/app/native/api/s34_sa_cal.cp312-win_amd64.pyd similarity index 100% rename from api/s34_sa_cal.cp312-win_amd64.pyd rename to app/native/api/s34_sa_cal.cp312-win_amd64.pyd diff --git a/api/s34_sa_cal.cpython-312-x86_64-linux-gnu.so b/app/native/api/s34_sa_cal.cpython-312-x86_64-linux-gnu.so similarity index 100% rename from api/s34_sa_cal.cpython-312-x86_64-linux-gnu.so rename to app/native/api/s34_sa_cal.cpython-312-x86_64-linux-gnu.so diff --git a/api/s34_sa_gen.cp312-win_amd64.pyd b/app/native/api/s34_sa_gen.cp312-win_amd64.pyd similarity index 100% rename from api/s34_sa_gen.cp312-win_amd64.pyd rename to app/native/api/s34_sa_gen.cp312-win_amd64.pyd diff --git a/api/s34_sa_gen.cpython-312-x86_64-linux-gnu.so b/app/native/api/s34_sa_gen.cpython-312-x86_64-linux-gnu.so similarity index 100% rename from api/s34_sa_gen.cpython-312-x86_64-linux-gnu.so rename to app/native/api/s34_sa_gen.cpython-312-x86_64-linux-gnu.so diff --git a/api/s35_vd.cp312-win_amd64.pyd b/app/native/api/s35_vd.cp312-win_amd64.pyd similarity index 100% rename from api/s35_vd.cp312-win_amd64.pyd rename to app/native/api/s35_vd.cp312-win_amd64.pyd diff --git a/api/s35_vd.cpython-312-x86_64-linux-gnu.so b/app/native/api/s35_vd.cpython-312-x86_64-linux-gnu.so similarity index 100% rename from api/s35_vd.cpython-312-x86_64-linux-gnu.so rename to app/native/api/s35_vd.cpython-312-x86_64-linux-gnu.so diff --git a/api/s35_vd_cal.cp312-win_amd64.pyd b/app/native/api/s35_vd_cal.cp312-win_amd64.pyd similarity index 100% rename from api/s35_vd_cal.cp312-win_amd64.pyd rename to app/native/api/s35_vd_cal.cp312-win_amd64.pyd diff --git a/api/s35_vd_cal.cpython-312-x86_64-linux-gnu.so b/app/native/api/s35_vd_cal.cpython-312-x86_64-linux-gnu.so similarity index 100% rename from api/s35_vd_cal.cpython-312-x86_64-linux-gnu.so rename to app/native/api/s35_vd_cal.cpython-312-x86_64-linux-gnu.so diff --git a/api/s35_vd_gen.cp312-win_amd64.pyd b/app/native/api/s35_vd_gen.cp312-win_amd64.pyd similarity index 100% rename from api/s35_vd_gen.cp312-win_amd64.pyd rename to app/native/api/s35_vd_gen.cp312-win_amd64.pyd diff --git a/api/s35_vd_gen.cpython-312-x86_64-linux-gnu.so b/app/native/api/s35_vd_gen.cpython-312-x86_64-linux-gnu.so similarity index 100% rename from api/s35_vd_gen.cpython-312-x86_64-linux-gnu.so rename to app/native/api/s35_vd_gen.cpython-312-x86_64-linux-gnu.so diff --git a/api/s36_wda.cp312-win_amd64.pyd b/app/native/api/s36_wda.cp312-win_amd64.pyd similarity index 100% rename from api/s36_wda.cp312-win_amd64.pyd rename to app/native/api/s36_wda.cp312-win_amd64.pyd diff --git a/api/s36_wda.cpython-312-x86_64-linux-gnu.so b/app/native/api/s36_wda.cpython-312-x86_64-linux-gnu.so similarity index 100% rename from api/s36_wda.cpython-312-x86_64-linux-gnu.so rename to app/native/api/s36_wda.cpython-312-x86_64-linux-gnu.so diff --git a/api/s36_wda_cal.cp312-win_amd64.pyd b/app/native/api/s36_wda_cal.cp312-win_amd64.pyd similarity index 100% rename from api/s36_wda_cal.cp312-win_amd64.pyd rename to app/native/api/s36_wda_cal.cp312-win_amd64.pyd diff --git a/api/s36_wda_cal.cpython-312-x86_64-linux-gnu.so b/app/native/api/s36_wda_cal.cpython-312-x86_64-linux-gnu.so similarity index 100% rename from api/s36_wda_cal.cpython-312-x86_64-linux-gnu.so rename to app/native/api/s36_wda_cal.cpython-312-x86_64-linux-gnu.so diff --git a/api/s38_scada_info.cp312-win_amd64.pyd b/app/native/api/s38_scada_info.cp312-win_amd64.pyd similarity index 100% rename from api/s38_scada_info.cp312-win_amd64.pyd rename to app/native/api/s38_scada_info.cp312-win_amd64.pyd diff --git a/api/s38_scada_info.cpython-312-x86_64-linux-gnu.so b/app/native/api/s38_scada_info.cpython-312-x86_64-linux-gnu.so similarity index 100% rename from api/s38_scada_info.cpython-312-x86_64-linux-gnu.so rename to app/native/api/s38_scada_info.cpython-312-x86_64-linux-gnu.so diff --git a/api/s39_user.cp312-win_amd64.pyd b/app/native/api/s39_user.cp312-win_amd64.pyd similarity index 100% rename from api/s39_user.cp312-win_amd64.pyd rename to app/native/api/s39_user.cp312-win_amd64.pyd diff --git a/api/s39_user.cpython-312-x86_64-linux-gnu.so b/app/native/api/s39_user.cpython-312-x86_64-linux-gnu.so similarity index 100% rename from api/s39_user.cpython-312-x86_64-linux-gnu.so rename to app/native/api/s39_user.cpython-312-x86_64-linux-gnu.so diff --git a/api/s3_reservoirs.cp312-win_amd64.pyd b/app/native/api/s3_reservoirs.cp312-win_amd64.pyd similarity index 100% rename from api/s3_reservoirs.cp312-win_amd64.pyd rename to app/native/api/s3_reservoirs.cp312-win_amd64.pyd diff --git a/api/s3_reservoirs.cpython-312-x86_64-linux-gnu.so b/app/native/api/s3_reservoirs.cpython-312-x86_64-linux-gnu.so similarity index 100% rename from api/s3_reservoirs.cpython-312-x86_64-linux-gnu.so rename to app/native/api/s3_reservoirs.cpython-312-x86_64-linux-gnu.so diff --git a/api/s40_schema.cp312-win_amd64.pyd b/app/native/api/s40_schema.cp312-win_amd64.pyd similarity index 100% rename from api/s40_schema.cp312-win_amd64.pyd rename to app/native/api/s40_schema.cp312-win_amd64.pyd diff --git a/api/s40_schema.cpython-312-x86_64-linux-gnu.so b/app/native/api/s40_schema.cpython-312-x86_64-linux-gnu.so similarity index 100% rename from api/s40_schema.cpython-312-x86_64-linux-gnu.so rename to app/native/api/s40_schema.cpython-312-x86_64-linux-gnu.so diff --git a/api/s41_pipe_risk_probability.cp312-win_amd64.pyd b/app/native/api/s41_pipe_risk_probability.cp312-win_amd64.pyd similarity index 100% rename from api/s41_pipe_risk_probability.cp312-win_amd64.pyd rename to app/native/api/s41_pipe_risk_probability.cp312-win_amd64.pyd diff --git a/api/s41_pipe_risk_probability.cpython-312-x86_64-linux-gnu.so b/app/native/api/s41_pipe_risk_probability.cpython-312-x86_64-linux-gnu.so similarity index 100% rename from api/s41_pipe_risk_probability.cpython-312-x86_64-linux-gnu.so rename to app/native/api/s41_pipe_risk_probability.cpython-312-x86_64-linux-gnu.so diff --git a/api/s42_sensor_placement.cp312-win_amd64.pyd b/app/native/api/s42_sensor_placement.cp312-win_amd64.pyd similarity index 100% rename from api/s42_sensor_placement.cp312-win_amd64.pyd rename to app/native/api/s42_sensor_placement.cp312-win_amd64.pyd diff --git a/api/s42_sensor_placement.cpython-312-x86_64-linux-gnu.so b/app/native/api/s42_sensor_placement.cpython-312-x86_64-linux-gnu.so similarity index 100% rename from api/s42_sensor_placement.cpython-312-x86_64-linux-gnu.so rename to app/native/api/s42_sensor_placement.cpython-312-x86_64-linux-gnu.so diff --git a/api/s43_burst_locate_result.cp312-win_amd64.pyd b/app/native/api/s43_burst_locate_result.cp312-win_amd64.pyd similarity index 100% rename from api/s43_burst_locate_result.cp312-win_amd64.pyd rename to app/native/api/s43_burst_locate_result.cp312-win_amd64.pyd diff --git a/api/s43_burst_locate_result.cpython-312-x86_64-linux-gnu.so b/app/native/api/s43_burst_locate_result.cpython-312-x86_64-linux-gnu.so similarity index 100% rename from api/s43_burst_locate_result.cpython-312-x86_64-linux-gnu.so rename to app/native/api/s43_burst_locate_result.cpython-312-x86_64-linux-gnu.so diff --git a/api/s4_tanks.cp312-win_amd64.pyd b/app/native/api/s4_tanks.cp312-win_amd64.pyd similarity index 100% rename from api/s4_tanks.cp312-win_amd64.pyd rename to app/native/api/s4_tanks.cp312-win_amd64.pyd diff --git a/api/s4_tanks.cpython-312-x86_64-linux-gnu.so b/app/native/api/s4_tanks.cpython-312-x86_64-linux-gnu.so similarity index 100% rename from api/s4_tanks.cpython-312-x86_64-linux-gnu.so rename to app/native/api/s4_tanks.cpython-312-x86_64-linux-gnu.so diff --git a/api/s5_pipes.cp312-win_amd64.pyd b/app/native/api/s5_pipes.cp312-win_amd64.pyd similarity index 100% rename from api/s5_pipes.cp312-win_amd64.pyd rename to app/native/api/s5_pipes.cp312-win_amd64.pyd diff --git a/api/s5_pipes.cpython-312-x86_64-linux-gnu.so b/app/native/api/s5_pipes.cpython-312-x86_64-linux-gnu.so similarity index 100% rename from api/s5_pipes.cpython-312-x86_64-linux-gnu.so rename to app/native/api/s5_pipes.cpython-312-x86_64-linux-gnu.so diff --git a/api/s6_pumps.cp312-win_amd64.pyd b/app/native/api/s6_pumps.cp312-win_amd64.pyd similarity index 100% rename from api/s6_pumps.cp312-win_amd64.pyd rename to app/native/api/s6_pumps.cp312-win_amd64.pyd diff --git a/api/s6_pumps.cpython-312-x86_64-linux-gnu.so b/app/native/api/s6_pumps.cpython-312-x86_64-linux-gnu.so similarity index 100% rename from api/s6_pumps.cpython-312-x86_64-linux-gnu.so rename to app/native/api/s6_pumps.cpython-312-x86_64-linux-gnu.so diff --git a/api/s7_valves.cp312-win_amd64.pyd b/app/native/api/s7_valves.cp312-win_amd64.pyd similarity index 100% rename from api/s7_valves.cp312-win_amd64.pyd rename to app/native/api/s7_valves.cp312-win_amd64.pyd diff --git a/api/s7_valves.cpython-312-x86_64-linux-gnu.so b/app/native/api/s7_valves.cpython-312-x86_64-linux-gnu.so similarity index 100% rename from api/s7_valves.cpython-312-x86_64-linux-gnu.so rename to app/native/api/s7_valves.cpython-312-x86_64-linux-gnu.so diff --git a/api/s8_tags.cp312-win_amd64.pyd b/app/native/api/s8_tags.cp312-win_amd64.pyd similarity index 100% rename from api/s8_tags.cp312-win_amd64.pyd rename to app/native/api/s8_tags.cp312-win_amd64.pyd diff --git a/api/s8_tags.cpython-312-x86_64-linux-gnu.so b/app/native/api/s8_tags.cpython-312-x86_64-linux-gnu.so similarity index 100% rename from api/s8_tags.cpython-312-x86_64-linux-gnu.so rename to app/native/api/s8_tags.cpython-312-x86_64-linux-gnu.so diff --git a/api/s9_demands.cp312-win_amd64.pyd b/app/native/api/s9_demands.cp312-win_amd64.pyd similarity index 100% rename from api/s9_demands.cp312-win_amd64.pyd rename to app/native/api/s9_demands.cp312-win_amd64.pyd diff --git a/api/s9_demands.cpython-312-x86_64-linux-gnu.so b/app/native/api/s9_demands.cpython-312-x86_64-linux-gnu.so similarity index 100% rename from api/s9_demands.cpython-312-x86_64-linux-gnu.so rename to app/native/api/s9_demands.cpython-312-x86_64-linux-gnu.so diff --git a/api/sections.cp312-win_amd64.pyd b/app/native/api/sections.cp312-win_amd64.pyd similarity index 100% rename from api/sections.cp312-win_amd64.pyd rename to app/native/api/sections.cp312-win_amd64.pyd diff --git a/api/sections.cpython-312-x86_64-linux-gnu.so b/app/native/api/sections.cpython-312-x86_64-linux-gnu.so similarity index 100% rename from api/sections.cpython-312-x86_64-linux-gnu.so rename to app/native/api/sections.cpython-312-x86_64-linux-gnu.so diff --git a/app/services/__init__.py b/app/services/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/epanet/__init__.py b/app/services/epanet/__init__.py similarity index 100% rename from epanet/__init__.py rename to app/services/epanet/__init__.py diff --git a/epanet/epanet-output.dll b/app/services/epanet/epanet-output.dll similarity index 100% rename from epanet/epanet-output.dll rename to app/services/epanet/epanet-output.dll diff --git a/epanet/epanet.py b/app/services/epanet/epanet.py similarity index 100% rename from epanet/epanet.py rename to app/services/epanet/epanet.py diff --git a/epanet/epanet2.dll b/app/services/epanet/epanet2.dll similarity index 100% rename from epanet/epanet2.dll rename to app/services/epanet/epanet2.dll diff --git a/epanet/linux/libepanet-output.so b/app/services/epanet/linux/libepanet-output.so similarity index 100% rename from epanet/linux/libepanet-output.so rename to app/services/epanet/linux/libepanet-output.so diff --git a/epanet/linux/libepanet2.so b/app/services/epanet/linux/libepanet2.so similarity index 100% rename from epanet/linux/libepanet2.so rename to app/services/epanet/linux/libepanet2.so diff --git a/epanet/linux/runepanet b/app/services/epanet/linux/runepanet similarity index 100% rename from epanet/linux/runepanet rename to app/services/epanet/linux/runepanet diff --git a/epanet/runepanet.exe b/app/services/epanet/runepanet.exe similarity index 100% rename from epanet/runepanet.exe rename to app/services/epanet/runepanet.exe diff --git a/globals.py b/app/services/globals.py similarity index 100% rename from globals.py rename to app/services/globals.py diff --git a/mcp/router.py b/app/services/mcp/router.py similarity index 100% rename from mcp/router.py rename to app/services/mcp/router.py diff --git a/project_info.py b/app/services/project_info.py similarity index 100% rename from project_info.py rename to app/services/project_info.py diff --git a/simulation.py b/app/services/simulation.py similarity index 99% rename from simulation.py rename to app/services/simulation.py index 783a0c3..af085f9 100644 --- a/simulation.py +++ b/app/services/simulation.py @@ -1,6 +1,6 @@ import numpy as np from tjnetwork import * -from api.s36_wda_cal import * +from app.native.api.s36_wda_cal import * # from get_real_status import * from datetime import datetime, timedelta @@ -13,14 +13,14 @@ import time import shutil from epanet.epanet import Output from typing import Optional, Tuple -import influxdb_api +import app.infra.db.influxdb.api as influxdb_api import typing import psycopg import logging -import globals +import app.services.globals as globals import uuid -import project_info -from api.postgresql_info import get_pgconn_string +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 diff --git a/time_api.py b/app/services/time_api.py similarity index 100% rename from time_api.py rename to app/services/time_api.py diff --git a/tjnetwork.py b/app/services/tjnetwork.py similarity index 99% rename from tjnetwork.py rename to app/services/tjnetwork.py index 402496d..358e90d 100644 --- a/tjnetwork.py +++ b/app/services/tjnetwork.py @@ -1,6 +1,6 @@ from typing import Any -import api -import epanet +import app.native.api as api +import app.services.epanet as epanet ############################################################ diff --git a/app/tasks/__init__.py b/app/tasks/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/utils/__init__.py b/app/utils/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/infra/docker/Dockerfile b/infra/docker/Dockerfile new file mode 100644 index 0000000..6801213 --- /dev/null +++ b/infra/docker/Dockerfile @@ -0,0 +1,13 @@ +FROM python:3.10-slim + +WORKDIR /app + +COPY requirements.txt . +RUN pip install --no-cache-dir -r requirements.txt + +COPY app ./app +COPY resources ./resources + +ENV PYTHONPATH=/app + +CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000"] diff --git a/infra/docker/docker-compose.yml b/infra/docker/docker-compose.yml new file mode 100644 index 0000000..3f54ba1 --- /dev/null +++ b/infra/docker/docker-compose.yml @@ -0,0 +1,23 @@ +version: '3.8' + +services: + api: + build: + context: ../.. + dockerfile: infra/docker/Dockerfile + ports: + - "8000:8000" + volumes: + - ../../app:/app/app + - ../../resources:/app/resources + environment: + - PYTHONPATH=/app + depends_on: + - redis + + redis: + image: redis:alpine + ports: + - "6379:6379" + +# Add other services as needed (postgres, influxdb, timescaledb) diff --git a/postgresql_info.py b/postgresql_info.py deleted file mode 100644 index be5b0c4..0000000 --- a/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/requirements.txt b/requirements.txt index 7f52fa1..5b04d85 100644 Binary files a/requirements.txt and b/requirements.txt differ diff --git a/20250309beibei_v2.inp b/resources/20250309beibei_v2.inp similarity index 100% rename from 20250309beibei_v2.inp rename to resources/20250309beibei_v2.inp diff --git a/fx0217-mass injection.inp b/resources/fx0217-mass injection.inp similarity index 100% rename from fx0217-mass injection.inp rename to resources/fx0217-mass injection.inp diff --git a/history_pattern_flow.csv b/resources/history_pattern_flow.csv similarity index 100% rename from history_pattern_flow.csv rename to resources/history_pattern_flow.csv diff --git a/model22_1223.inp b/resources/model22_1223.inp similarity index 100% rename from model22_1223.inp rename to resources/model22_1223.inp diff --git a/requirements2.txt b/resources/requirements2.txt similarity index 100% rename from requirements2.txt rename to resources/requirements2.txt diff --git a/scada_info.csv b/resources/scada_info.csv similarity index 100% rename from scada_info.csv rename to resources/scada_info.csv diff --git a/script/sql/create/0.base.sql b/resources/sql/create/0.base.sql similarity index 100% rename from script/sql/create/0.base.sql rename to resources/sql/create/0.base.sql diff --git a/script/sql/create/1.title.sql b/resources/sql/create/1.title.sql similarity index 100% rename from script/sql/create/1.title.sql rename to resources/sql/create/1.title.sql diff --git a/script/sql/create/10.status.sql b/resources/sql/create/10.status.sql similarity index 100% rename from script/sql/create/10.status.sql rename to resources/sql/create/10.status.sql diff --git a/script/sql/create/11.patterns.sql b/resources/sql/create/11.patterns.sql similarity index 100% rename from script/sql/create/11.patterns.sql rename to resources/sql/create/11.patterns.sql diff --git a/script/sql/create/12.curves.sql b/resources/sql/create/12.curves.sql similarity index 100% rename from script/sql/create/12.curves.sql rename to resources/sql/create/12.curves.sql diff --git a/script/sql/create/13.controls.sql b/resources/sql/create/13.controls.sql similarity index 100% rename from script/sql/create/13.controls.sql rename to resources/sql/create/13.controls.sql diff --git a/script/sql/create/14.rules.sql b/resources/sql/create/14.rules.sql similarity index 100% rename from script/sql/create/14.rules.sql rename to resources/sql/create/14.rules.sql diff --git a/script/sql/create/15.energy.sql b/resources/sql/create/15.energy.sql similarity index 100% rename from script/sql/create/15.energy.sql rename to resources/sql/create/15.energy.sql diff --git a/script/sql/create/16.emitters.sql b/resources/sql/create/16.emitters.sql similarity index 100% rename from script/sql/create/16.emitters.sql rename to resources/sql/create/16.emitters.sql diff --git a/script/sql/create/17.quality.sql b/resources/sql/create/17.quality.sql similarity index 100% rename from script/sql/create/17.quality.sql rename to resources/sql/create/17.quality.sql diff --git a/script/sql/create/18.sources.sql b/resources/sql/create/18.sources.sql similarity index 100% rename from script/sql/create/18.sources.sql rename to resources/sql/create/18.sources.sql diff --git a/script/sql/create/19.reactions.sql b/resources/sql/create/19.reactions.sql similarity index 100% rename from script/sql/create/19.reactions.sql rename to resources/sql/create/19.reactions.sql diff --git a/script/sql/create/2.junctions.sql b/resources/sql/create/2.junctions.sql similarity index 100% rename from script/sql/create/2.junctions.sql rename to resources/sql/create/2.junctions.sql diff --git a/script/sql/create/20.mixing.sql b/resources/sql/create/20.mixing.sql similarity index 100% rename from script/sql/create/20.mixing.sql rename to resources/sql/create/20.mixing.sql diff --git a/script/sql/create/21.times.sql b/resources/sql/create/21.times.sql similarity index 100% rename from script/sql/create/21.times.sql rename to resources/sql/create/21.times.sql diff --git a/script/sql/create/22.report.sql b/resources/sql/create/22.report.sql similarity index 100% rename from script/sql/create/22.report.sql rename to resources/sql/create/22.report.sql diff --git a/script/sql/create/23.options.sql b/resources/sql/create/23.options.sql similarity index 100% rename from script/sql/create/23.options.sql rename to resources/sql/create/23.options.sql diff --git a/script/sql/create/24.coordinates.sql b/resources/sql/create/24.coordinates.sql similarity index 100% rename from script/sql/create/24.coordinates.sql rename to resources/sql/create/24.coordinates.sql diff --git a/script/sql/create/25.vertices.sql b/resources/sql/create/25.vertices.sql similarity index 100% rename from script/sql/create/25.vertices.sql rename to resources/sql/create/25.vertices.sql diff --git a/script/sql/create/26.labels.sql b/resources/sql/create/26.labels.sql similarity index 100% rename from script/sql/create/26.labels.sql rename to resources/sql/create/26.labels.sql diff --git a/script/sql/create/27.backdrop.sql b/resources/sql/create/27.backdrop.sql similarity index 100% rename from script/sql/create/27.backdrop.sql rename to resources/sql/create/27.backdrop.sql diff --git a/script/sql/create/28.end.sql b/resources/sql/create/28.end.sql similarity index 100% rename from script/sql/create/28.end.sql rename to resources/sql/create/28.end.sql diff --git a/script/sql/create/29.scada_device.sql b/resources/sql/create/29.scada_device.sql similarity index 100% rename from script/sql/create/29.scada_device.sql rename to resources/sql/create/29.scada_device.sql diff --git a/script/sql/create/3.reservoirs.sql b/resources/sql/create/3.reservoirs.sql similarity index 100% rename from script/sql/create/3.reservoirs.sql rename to resources/sql/create/3.reservoirs.sql diff --git a/script/sql/create/30.scada_device_data.sql b/resources/sql/create/30.scada_device_data.sql similarity index 100% rename from script/sql/create/30.scada_device_data.sql rename to resources/sql/create/30.scada_device_data.sql diff --git a/script/sql/create/31.scada_element.sql b/resources/sql/create/31.scada_element.sql similarity index 100% rename from script/sql/create/31.scada_element.sql rename to resources/sql/create/31.scada_element.sql diff --git a/script/sql/create/32.region.sql b/resources/sql/create/32.region.sql similarity index 100% rename from script/sql/create/32.region.sql rename to resources/sql/create/32.region.sql diff --git a/script/sql/create/33.dma.sql b/resources/sql/create/33.dma.sql similarity index 100% rename from script/sql/create/33.dma.sql rename to resources/sql/create/33.dma.sql diff --git a/script/sql/create/34.sa.sql b/resources/sql/create/34.sa.sql similarity index 100% rename from script/sql/create/34.sa.sql rename to resources/sql/create/34.sa.sql diff --git a/script/sql/create/35.vd.sql b/resources/sql/create/35.vd.sql similarity index 100% rename from script/sql/create/35.vd.sql rename to resources/sql/create/35.vd.sql diff --git a/script/sql/create/36.wda.sql b/resources/sql/create/36.wda.sql similarity index 100% rename from script/sql/create/36.wda.sql rename to resources/sql/create/36.wda.sql diff --git a/script/sql/create/37.history_patterns_flows.sql b/resources/sql/create/37.history_patterns_flows.sql similarity index 100% rename from script/sql/create/37.history_patterns_flows.sql rename to resources/sql/create/37.history_patterns_flows.sql diff --git a/script/sql/create/38.scada_info.sql b/resources/sql/create/38.scada_info.sql similarity index 100% rename from script/sql/create/38.scada_info.sql rename to resources/sql/create/38.scada_info.sql diff --git a/script/sql/create/39.users.sql b/resources/sql/create/39.users.sql similarity index 100% rename from script/sql/create/39.users.sql rename to resources/sql/create/39.users.sql diff --git a/script/sql/create/4.tanks.sql b/resources/sql/create/4.tanks.sql similarity index 100% rename from script/sql/create/4.tanks.sql rename to resources/sql/create/4.tanks.sql diff --git a/script/sql/create/40.scheme_list.sql b/resources/sql/create/40.scheme_list.sql similarity index 100% rename from script/sql/create/40.scheme_list.sql rename to resources/sql/create/40.scheme_list.sql diff --git a/script/sql/create/41.pipe_risk_probability.sql b/resources/sql/create/41.pipe_risk_probability.sql similarity index 100% rename from script/sql/create/41.pipe_risk_probability.sql rename to resources/sql/create/41.pipe_risk_probability.sql diff --git a/script/sql/create/42.sensor_placement.sql b/resources/sql/create/42.sensor_placement.sql similarity index 100% rename from script/sql/create/42.sensor_placement.sql rename to resources/sql/create/42.sensor_placement.sql diff --git a/script/sql/create/43.burst_locate_result.sql b/resources/sql/create/43.burst_locate_result.sql similarity index 100% rename from script/sql/create/43.burst_locate_result.sql rename to resources/sql/create/43.burst_locate_result.sql diff --git a/script/sql/create/5.pipes.sql b/resources/sql/create/5.pipes.sql similarity index 100% rename from script/sql/create/5.pipes.sql rename to resources/sql/create/5.pipes.sql diff --git a/script/sql/create/6.pumps.sql b/resources/sql/create/6.pumps.sql similarity index 100% rename from script/sql/create/6.pumps.sql rename to resources/sql/create/6.pumps.sql diff --git a/script/sql/create/7.valves.sql b/resources/sql/create/7.valves.sql similarity index 100% rename from script/sql/create/7.valves.sql rename to resources/sql/create/7.valves.sql diff --git a/script/sql/create/8.tags.sql b/resources/sql/create/8.tags.sql similarity index 100% rename from script/sql/create/8.tags.sql rename to resources/sql/create/8.tags.sql diff --git a/script/sql/create/9.demands.sql b/resources/sql/create/9.demands.sql similarity index 100% rename from script/sql/create/9.demands.sql rename to resources/sql/create/9.demands.sql diff --git a/script/sql/create/extension_data.sql b/resources/sql/create/extension_data.sql similarity index 100% rename from script/sql/create/extension_data.sql rename to resources/sql/create/extension_data.sql diff --git a/script/sql/create/operation.sql b/resources/sql/create/operation.sql similarity index 100% rename from script/sql/create/operation.sql rename to resources/sql/create/operation.sql diff --git a/script/sql/drop/0.base.sql b/resources/sql/drop/0.base.sql similarity index 100% rename from script/sql/drop/0.base.sql rename to resources/sql/drop/0.base.sql diff --git a/script/sql/drop/1.title.sql b/resources/sql/drop/1.title.sql similarity index 100% rename from script/sql/drop/1.title.sql rename to resources/sql/drop/1.title.sql diff --git a/script/sql/drop/10.status.sql b/resources/sql/drop/10.status.sql similarity index 100% rename from script/sql/drop/10.status.sql rename to resources/sql/drop/10.status.sql diff --git a/script/sql/drop/11.patterns.sql b/resources/sql/drop/11.patterns.sql similarity index 100% rename from script/sql/drop/11.patterns.sql rename to resources/sql/drop/11.patterns.sql diff --git a/script/sql/drop/12.curves.sql b/resources/sql/drop/12.curves.sql similarity index 100% rename from script/sql/drop/12.curves.sql rename to resources/sql/drop/12.curves.sql diff --git a/script/sql/drop/13.controls.sql b/resources/sql/drop/13.controls.sql similarity index 100% rename from script/sql/drop/13.controls.sql rename to resources/sql/drop/13.controls.sql diff --git a/script/sql/drop/14.rules.sql b/resources/sql/drop/14.rules.sql similarity index 100% rename from script/sql/drop/14.rules.sql rename to resources/sql/drop/14.rules.sql diff --git a/script/sql/drop/15.energy.sql b/resources/sql/drop/15.energy.sql similarity index 100% rename from script/sql/drop/15.energy.sql rename to resources/sql/drop/15.energy.sql diff --git a/script/sql/drop/16.emitters.sql b/resources/sql/drop/16.emitters.sql similarity index 100% rename from script/sql/drop/16.emitters.sql rename to resources/sql/drop/16.emitters.sql diff --git a/script/sql/drop/17.quality.sql b/resources/sql/drop/17.quality.sql similarity index 100% rename from script/sql/drop/17.quality.sql rename to resources/sql/drop/17.quality.sql diff --git a/script/sql/drop/18.sources.sql b/resources/sql/drop/18.sources.sql similarity index 100% rename from script/sql/drop/18.sources.sql rename to resources/sql/drop/18.sources.sql diff --git a/script/sql/drop/19.reactions.sql b/resources/sql/drop/19.reactions.sql similarity index 100% rename from script/sql/drop/19.reactions.sql rename to resources/sql/drop/19.reactions.sql diff --git a/script/sql/drop/2.junctions.sql b/resources/sql/drop/2.junctions.sql similarity index 100% rename from script/sql/drop/2.junctions.sql rename to resources/sql/drop/2.junctions.sql diff --git a/script/sql/drop/20.mixing.sql b/resources/sql/drop/20.mixing.sql similarity index 100% rename from script/sql/drop/20.mixing.sql rename to resources/sql/drop/20.mixing.sql diff --git a/script/sql/drop/21.times.sql b/resources/sql/drop/21.times.sql similarity index 100% rename from script/sql/drop/21.times.sql rename to resources/sql/drop/21.times.sql diff --git a/script/sql/drop/22.report.sql b/resources/sql/drop/22.report.sql similarity index 100% rename from script/sql/drop/22.report.sql rename to resources/sql/drop/22.report.sql diff --git a/script/sql/drop/23.options.sql b/resources/sql/drop/23.options.sql similarity index 100% rename from script/sql/drop/23.options.sql rename to resources/sql/drop/23.options.sql diff --git a/script/sql/drop/24.coordinates.sql b/resources/sql/drop/24.coordinates.sql similarity index 100% rename from script/sql/drop/24.coordinates.sql rename to resources/sql/drop/24.coordinates.sql diff --git a/script/sql/drop/25.vertices.sql b/resources/sql/drop/25.vertices.sql similarity index 100% rename from script/sql/drop/25.vertices.sql rename to resources/sql/drop/25.vertices.sql diff --git a/script/sql/drop/26.labels.sql b/resources/sql/drop/26.labels.sql similarity index 100% rename from script/sql/drop/26.labels.sql rename to resources/sql/drop/26.labels.sql diff --git a/script/sql/drop/27.backdrop.sql b/resources/sql/drop/27.backdrop.sql similarity index 100% rename from script/sql/drop/27.backdrop.sql rename to resources/sql/drop/27.backdrop.sql diff --git a/script/sql/drop/28.end.sql b/resources/sql/drop/28.end.sql similarity index 100% rename from script/sql/drop/28.end.sql rename to resources/sql/drop/28.end.sql diff --git a/script/sql/drop/29.scada_device.sql b/resources/sql/drop/29.scada_device.sql similarity index 100% rename from script/sql/drop/29.scada_device.sql rename to resources/sql/drop/29.scada_device.sql diff --git a/script/sql/drop/3.reservoirs.sql b/resources/sql/drop/3.reservoirs.sql similarity index 100% rename from script/sql/drop/3.reservoirs.sql rename to resources/sql/drop/3.reservoirs.sql diff --git a/script/sql/drop/30.scada_device_data.sql b/resources/sql/drop/30.scada_device_data.sql similarity index 100% rename from script/sql/drop/30.scada_device_data.sql rename to resources/sql/drop/30.scada_device_data.sql diff --git a/script/sql/drop/31.scada_element.sql b/resources/sql/drop/31.scada_element.sql similarity index 100% rename from script/sql/drop/31.scada_element.sql rename to resources/sql/drop/31.scada_element.sql diff --git a/script/sql/drop/32.region.sql b/resources/sql/drop/32.region.sql similarity index 100% rename from script/sql/drop/32.region.sql rename to resources/sql/drop/32.region.sql diff --git a/script/sql/drop/33.dma.sql b/resources/sql/drop/33.dma.sql similarity index 100% rename from script/sql/drop/33.dma.sql rename to resources/sql/drop/33.dma.sql diff --git a/script/sql/drop/34.sa.sql b/resources/sql/drop/34.sa.sql similarity index 100% rename from script/sql/drop/34.sa.sql rename to resources/sql/drop/34.sa.sql diff --git a/script/sql/drop/35.vd.sql b/resources/sql/drop/35.vd.sql similarity index 100% rename from script/sql/drop/35.vd.sql rename to resources/sql/drop/35.vd.sql diff --git a/script/sql/drop/36.wda.sql b/resources/sql/drop/36.wda.sql similarity index 100% rename from script/sql/drop/36.wda.sql rename to resources/sql/drop/36.wda.sql diff --git a/script/sql/drop/37.history_patterns_flows.sql b/resources/sql/drop/37.history_patterns_flows.sql similarity index 100% rename from script/sql/drop/37.history_patterns_flows.sql rename to resources/sql/drop/37.history_patterns_flows.sql diff --git a/script/sql/drop/38.scada_info.sql b/resources/sql/drop/38.scada_info.sql similarity index 100% rename from script/sql/drop/38.scada_info.sql rename to resources/sql/drop/38.scada_info.sql diff --git a/script/sql/drop/39.users.sql b/resources/sql/drop/39.users.sql similarity index 100% rename from script/sql/drop/39.users.sql rename to resources/sql/drop/39.users.sql diff --git a/script/sql/drop/4.tanks.sql b/resources/sql/drop/4.tanks.sql similarity index 100% rename from script/sql/drop/4.tanks.sql rename to resources/sql/drop/4.tanks.sql diff --git a/script/sql/drop/40.scheme_list.sql b/resources/sql/drop/40.scheme_list.sql similarity index 100% rename from script/sql/drop/40.scheme_list.sql rename to resources/sql/drop/40.scheme_list.sql diff --git a/script/sql/drop/41.pipe_risk_probability.sql b/resources/sql/drop/41.pipe_risk_probability.sql similarity index 100% rename from script/sql/drop/41.pipe_risk_probability.sql rename to resources/sql/drop/41.pipe_risk_probability.sql diff --git a/script/sql/drop/42.sensor_placement.sql b/resources/sql/drop/42.sensor_placement.sql similarity index 100% rename from script/sql/drop/42.sensor_placement.sql rename to resources/sql/drop/42.sensor_placement.sql diff --git a/script/sql/drop/43.burst_locate_result.sql b/resources/sql/drop/43.burst_locate_result.sql similarity index 100% rename from script/sql/drop/43.burst_locate_result.sql rename to resources/sql/drop/43.burst_locate_result.sql diff --git a/script/sql/drop/5.pipes.sql b/resources/sql/drop/5.pipes.sql similarity index 100% rename from script/sql/drop/5.pipes.sql rename to resources/sql/drop/5.pipes.sql diff --git a/script/sql/drop/6.pumps.sql b/resources/sql/drop/6.pumps.sql similarity index 100% rename from script/sql/drop/6.pumps.sql rename to resources/sql/drop/6.pumps.sql diff --git a/script/sql/drop/7.valves.sql b/resources/sql/drop/7.valves.sql similarity index 100% rename from script/sql/drop/7.valves.sql rename to resources/sql/drop/7.valves.sql diff --git a/script/sql/drop/8.tags.sql b/resources/sql/drop/8.tags.sql similarity index 100% rename from script/sql/drop/8.tags.sql rename to resources/sql/drop/8.tags.sql diff --git a/script/sql/drop/9.demands.sql b/resources/sql/drop/9.demands.sql similarity index 100% rename from script/sql/drop/9.demands.sql rename to resources/sql/drop/9.demands.sql diff --git a/script/sql/drop/extension_data.sql b/resources/sql/drop/extension_data.sql similarity index 100% rename from script/sql/drop/extension_data.sql rename to resources/sql/drop/extension_data.sql diff --git a/script/sql/drop/operation.sql b/resources/sql/drop/operation.sql similarity index 100% rename from script/sql/drop/operation.sql rename to resources/sql/drop/operation.sql diff --git a/temp.rpt b/resources/temp.rpt similarity index 100% rename from temp.rpt rename to resources/temp.rpt diff --git a/北碚市政管线风险评价结果.xlsx b/resources/北碚市政管线风险评价结果.xlsx similarity index 100% rename from 北碚市政管线风险评价结果.xlsx rename to resources/北碚市政管线风险评价结果.xlsx diff --git a/市政管线.dbf b/resources/市政管线.dbf similarity index 100% rename from 市政管线.dbf rename to resources/市政管线.dbf diff --git a/市政管线.prj b/resources/市政管线.prj similarity index 100% rename from 市政管线.prj rename to resources/市政管线.prj diff --git a/市政管线.shp b/resources/市政管线.shp similarity index 100% rename from 市政管线.shp rename to resources/市政管线.shp diff --git a/市政管线.shx b/resources/市政管线.shx similarity index 100% rename from 市政管线.shx rename to resources/市政管线.shx diff --git a/标准cleaned_demand_data.csv b/resources/标准cleaned_demand_data.csv similarity index 100% rename from 标准cleaned_demand_data.csv rename to resources/标准cleaned_demand_data.csv diff --git a/AutoPullGitChanges.bat b/scripts/AutoPullGitChanges.bat similarity index 100% rename from AutoPullGitChanges.bat rename to scripts/AutoPullGitChanges.bat diff --git a/all_auto_task.py b/scripts/all_auto_task.py similarity index 100% rename from all_auto_task.py rename to scripts/all_auto_task.py diff --git a/auto_cache.py b/scripts/auto_cache.py similarity index 100% rename from auto_cache.py rename to scripts/auto_cache.py diff --git a/auto_realtime.py b/scripts/auto_realtime.py similarity index 100% rename from auto_realtime.py rename to scripts/auto_realtime.py diff --git a/auto_store_non_realtime_SCADA_data.py b/scripts/auto_store_non_realtime_SCADA_data.py similarity index 100% rename from auto_store_non_realtime_SCADA_data.py rename to scripts/auto_store_non_realtime_SCADA_data.py diff --git a/build_pyd.cmd b/scripts/build_pyd.cmd similarity index 100% rename from build_pyd.cmd rename to scripts/build_pyd.cmd diff --git a/build_pyd.py b/scripts/build_pyd.py similarity index 100% rename from build_pyd.py rename to scripts/build_pyd.py diff --git a/clean_projects.py b/scripts/clean_projects.py similarity index 100% rename from clean_projects.py rename to scripts/clean_projects.py diff --git a/copy_project.py b/scripts/copy_project.py similarity index 100% rename from copy_project.py rename to scripts/copy_project.py diff --git a/create_project.py b/scripts/create_project.py similarity index 100% rename from create_project.py rename to scripts/create_project.py diff --git a/create_project_v3.py b/scripts/create_project_v3.py similarity index 100% rename from create_project_v3.py rename to scripts/create_project_v3.py diff --git a/create_template.py b/scripts/create_template.py similarity index 100% rename from create_template.py rename to scripts/create_template.py diff --git a/delete_project.py b/scripts/delete_project.py similarity index 100% rename from delete_project.py rename to scripts/delete_project.py diff --git a/demo.py b/scripts/demo.py similarity index 100% rename from demo.py rename to scripts/demo.py diff --git a/dev.py b/scripts/dev.py similarity index 100% rename from dev.py rename to scripts/dev.py diff --git a/drawpipe.py b/scripts/drawpipe.py similarity index 100% rename from drawpipe.py rename to scripts/drawpipe.py diff --git a/dump_inp.py b/scripts/dump_inp.py similarity index 100% rename from dump_inp.py rename to scripts/dump_inp.py diff --git a/get_current_status.py b/scripts/get_current_status.py similarity index 100% rename from get_current_status.py rename to scripts/get_current_status.py diff --git a/get_current_total_Q.py b/scripts/get_current_total_Q.py similarity index 100% rename from get_current_total_Q.py rename to scripts/get_current_total_Q.py diff --git a/get_data.py b/scripts/get_data.py similarity index 100% rename from get_data.py rename to scripts/get_data.py diff --git a/get_hist_data.py b/scripts/get_hist_data.py similarity index 100% rename from get_hist_data.py rename to scripts/get_hist_data.py diff --git a/get_realValue.py b/scripts/get_realValue.py similarity index 100% rename from get_realValue.py rename to scripts/get_realValue.py diff --git a/install.py b/scripts/install.py similarity index 100% rename from install.py rename to scripts/install.py diff --git a/open_szh.py b/scripts/open_szh.py similarity index 100% rename from open_szh.py rename to scripts/open_szh.py diff --git a/redis_clear_all_keys.py b/scripts/redis_clear_all_keys.py similarity index 100% rename from redis_clear_all_keys.py rename to scripts/redis_clear_all_keys.py diff --git a/restartpg.bat b/scripts/restartpg.bat similarity index 100% rename from restartpg.bat rename to scripts/restartpg.bat diff --git a/restore_project.py b/scripts/restore_project.py similarity index 100% rename from restore_project.py rename to scripts/restore_project.py diff --git a/restore_projects.py b/scripts/restore_projects.py similarity index 100% rename from restore_projects.py rename to scripts/restore_projects.py diff --git a/run_server.py b/scripts/run_server.py similarity index 94% rename from run_server.py rename to scripts/run_server.py index 958ce34..674b846 100644 --- a/run_server.py +++ b/scripts/run_server.py @@ -10,7 +10,7 @@ if __name__ == "__main__": # 用 uvicorn.run 支持 workers 参数 uvicorn.run( - "main:app", + "app.main:app", host="0.0.0.0", port=8000, workers=2, # 这里可以设置多进程 diff --git a/run_simlation.py b/scripts/run_simlation.py similarity index 100% rename from run_simlation.py rename to scripts/run_simlation.py diff --git a/run_simulation.py b/scripts/run_simulation.py similarity index 100% rename from run_simulation.py rename to scripts/run_simulation.py diff --git a/startfastapiserver.bat b/scripts/startfastapiserver.bat similarity index 100% rename from startfastapiserver.bat rename to scripts/startfastapiserver.bat diff --git a/startpg.bat b/scripts/startpg.bat similarity index 100% rename from startpg.bat rename to scripts/startpg.bat diff --git a/test_tjnetwork.py b/scripts/test_tjnetwork.py similarity index 100% rename from test_tjnetwork.py rename to scripts/test_tjnetwork.py