Replace per-interaction Oracle queries with a two-phase model: - POST /query: single Oracle hit, cache full LOT-level DataFrame (L1+L2) - GET /view: read cache, apply supplementary/interactive filters via pandas Add container query mode (LOT/工單/WAFER LOT with wildcard support), supplementary filters (Package/WC GROUP/Reason) from cached data, PB_* series exclusion (was PB_Diode only), and query loading spinner. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
48 lines
1.3 KiB
YAML
48 lines
1.3 KiB
YAML
# Conda environment for MES Dashboard
|
|
# Usage: conda env create -f environment.yml
|
|
# conda activate mes-dashboard
|
|
#
|
|
# Note: Packages use bounded ranges (>=,<) to avoid accidental major-version breaks.
|
|
# For reproducible builds, generate a lock file: pip freeze > requirements.lock
|
|
|
|
name: mes-dashboard
|
|
channels:
|
|
- conda-forge
|
|
- defaults
|
|
dependencies:
|
|
# Python version - pinned for consistency across deployments
|
|
- python=3.11
|
|
# Frontend build toolchain (Vite)
|
|
- nodejs>=22
|
|
|
|
# Use pip for Python packages (better compatibility with pypi packages)
|
|
- pip
|
|
- pip:
|
|
# Core Framework
|
|
- flask>=3.0.0,<4.0.0
|
|
|
|
# Database
|
|
- oracledb>=2.0.0,<4.0.0
|
|
- sqlalchemy>=2.0.0,<3.0.0
|
|
|
|
# Data Processing
|
|
- pandas==2.3.3 # Pin DBAPI2-compatible release for current pd.read_sql flow
|
|
- pyarrow>=17.0.0,<20.0.0 # Parquet serialization for Redis DataFrame cache
|
|
- openpyxl>=3.0.0
|
|
|
|
# Cache (Redis)
|
|
- redis>=5.0.0,<6.0.0
|
|
- hiredis>=2.0.0,<4.0.0 # C parser for better performance
|
|
|
|
# HTTP Client
|
|
- requests>=2.28.0,<3.0.0
|
|
|
|
# Configuration
|
|
- python-dotenv>=1.0.0,<2.0.0
|
|
|
|
# WSGI Server (Production)
|
|
- gunicorn>=21.2.0,<25.0.0
|
|
|
|
# System Monitoring
|
|
- psutil>=5.9.0,<7.0.0
|