From 597b5bf73c1b98db782d007e5ca3a1d6e70145ab Mon Sep 17 00:00:00 2001 From: Jonas Bengtsson Date: Mon, 5 Oct 2026 07:13:04 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=9A=A7=20Add=20requirements=20files?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- requirements-dev.txt | 14 ++++++++++++++ requirements-lock.txt | 45 +++++++++++++++++++++++++++++++++++++++++++ requirements.txt | 11 +++++++++++ 3 files changed, 70 insertions(+) create mode 100644 requirements-dev.txt create mode 100644 requirements-lock.txt create mode 100644 requirements.txt diff --git a/requirements-dev.txt b/requirements-dev.txt new file mode 100644 index 0000000..80ae734 --- /dev/null +++ b/requirements-dev.txt @@ -0,0 +1,14 @@ +# Development / test dependencies for wago-modbustcp-simulator. +# Mirrors [project.optional-dependencies].dev in pyproject.toml. +# Includes everything from requirements.txt, plus: +# - pytest / pytest-asyncio: test suite +# - pymodbus: integration tests acting as a real Modbus TCP master +# - debugpy: VS Code debugging setup +# - httpx: ASGI test client for the FastAPI Web UI +# Fully pinned versions for reproducible installs: requirements-lock.txt. +-r requirements.txt +pytest>=8.0 +pytest-asyncio>=0.23 +pymodbus>=3.6 +debugpy>=1.8 +httpx>=0.27 \ No newline at end of file diff --git a/requirements-lock.txt b/requirements-lock.txt new file mode 100644 index 0000000..7fc85c7 --- /dev/null +++ b/requirements-lock.txt @@ -0,0 +1,45 @@ +# Locked dependency versions for wago-modbustcp-simulator. +# Generated 2026-10-05 from the tested .venv (Python 3.14.5, Windows). +# Install exactly; do not edit by hand. Regenerate with: +# pip install -r requirements.txt +# pip freeze --exclude-editable > requirements-lock.txt +# (then re-add the section comments below). +# +# Sections mirror pyproject.toml [project].dependencies (production) and +# [project.optional-dependencies].dev (dev/test) — the same package set +# pip freeze would emit, just organized for review. + +# --- Production (pyproject [project].dependencies) --- +pyyaml==6.0.3 +fastapi==0.142.2 +uvicorn==0.54.0 +websockets==17.2 + # Transitive production dependencies + annotated-doc==0.0.5 + annotated-types==0.8.0 + anyio==4.15.1 + opentelemetry-api==1.45.0 + click==8.5.0 + h11==0.16.0 + pydantic==2.13.5 + pydantic-core==2.46.5 + starlette==1.7.0 + typing-extensions==4.16.0 + typing-inspection==0.4.4 + # anyio (required unconditionally by starlette) pulls idna + idna==3.20 + +# --- Dev / test (pyproject [project.optional-dependencies].dev) --- +pytest==9.1.1 +pytest-asyncio==1.4.0 +pymodbus==3.15.0 +debugpy==1.8.22 +httpx==0.28.1 + # Transitive dev/test dependencies + certifi==2026.7.22 + httpcore==1.0.9 + iniconfig==2.3.0 + packaging==26.3 + pluggy==1.6.0 + pygments==2.21.0 + colorama==0.4.6; sys_platform == "win32" # pytest dep on Windows only \ No newline at end of file diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..4e539b0 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,11 @@ +# Production runtime dependencies for wago-modbustcp-simulator. +# Mirrors [project].dependencies in pyproject.toml — the set that +# `pip install .` (and the Docker image) actually needs: +# - PyYAML: node config / scenario DSL files +# - fastapi + uvicorn + websockets: optional Web UI (serve --web) +# Development and test dependencies live in requirements-dev.txt. +# Fully pinned versions for reproducible installs: requirements-lock.txt. +PyYAML>=6.0 +fastapi>=0.110 +uvicorn>=0.29 +websockets>=12.0 \ No newline at end of file