chore(interviews): add deps and pytest scaffold for interview subsystem
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
815e4758b2
commit
f63bc5542a
|
|
@ -32,6 +32,11 @@ dependencies = [
|
||||||
# 工具库
|
# 工具库
|
||||||
"python-dotenv>=1.0.0",
|
"python-dotenv>=1.0.0",
|
||||||
"pydantic>=2.0.0",
|
"pydantic>=2.0.0",
|
||||||
|
"PyYAML>=6.0",
|
||||||
|
"scikit-learn>=1.4",
|
||||||
|
"scipy>=1.12",
|
||||||
|
"numpy>=1.26",
|
||||||
|
"pandas>=2.1",
|
||||||
]
|
]
|
||||||
|
|
||||||
[project.optional-dependencies]
|
[project.optional-dependencies]
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
[pytest]
|
||||||
|
testpaths = tests
|
||||||
|
python_files = test_*.py
|
||||||
|
python_classes = Test*
|
||||||
|
python_functions = test_*
|
||||||
|
addopts = -ra --strict-markers
|
||||||
|
markers =
|
||||||
|
integration: marks integration tests (deselect with -m 'not integration')
|
||||||
|
|
@ -0,0 +1,17 @@
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
import pathlib
|
||||||
|
import pytest
|
||||||
|
|
||||||
|
ROOT = pathlib.Path(__file__).resolve().parents[1]
|
||||||
|
sys.path.insert(0, str(ROOT))
|
||||||
|
|
||||||
|
os.environ.setdefault("LLM_API_KEY", "test")
|
||||||
|
os.environ.setdefault("LLM_BASE_URL", "https://example.invalid")
|
||||||
|
os.environ.setdefault("LLM_MODEL_NAME", "test-model")
|
||||||
|
os.environ.setdefault("ZEP_API_KEY", "test")
|
||||||
|
|
||||||
|
@pytest.fixture
|
||||||
|
def tmp_uploads(tmp_path, monkeypatch):
|
||||||
|
monkeypatch.setenv("UPLOADS_DIR", str(tmp_path))
|
||||||
|
return tmp_path
|
||||||
|
|
@ -1248,10 +1248,15 @@ dependencies = [
|
||||||
{ name = "charset-normalizer" },
|
{ name = "charset-normalizer" },
|
||||||
{ name = "flask" },
|
{ name = "flask" },
|
||||||
{ name = "flask-cors" },
|
{ name = "flask-cors" },
|
||||||
|
{ name = "numpy" },
|
||||||
{ name = "openai" },
|
{ name = "openai" },
|
||||||
|
{ name = "pandas" },
|
||||||
{ name = "pydantic" },
|
{ name = "pydantic" },
|
||||||
{ name = "pymupdf" },
|
{ name = "pymupdf" },
|
||||||
{ name = "python-dotenv" },
|
{ name = "python-dotenv" },
|
||||||
|
{ name = "pyyaml" },
|
||||||
|
{ name = "scikit-learn" },
|
||||||
|
{ name = "scipy" },
|
||||||
{ name = "zep-cloud" },
|
{ name = "zep-cloud" },
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
@ -1276,13 +1281,18 @@ requires-dist = [
|
||||||
{ name = "charset-normalizer", specifier = ">=3.0.0" },
|
{ name = "charset-normalizer", specifier = ">=3.0.0" },
|
||||||
{ name = "flask", specifier = ">=3.0.0" },
|
{ name = "flask", specifier = ">=3.0.0" },
|
||||||
{ name = "flask-cors", specifier = ">=6.0.0" },
|
{ name = "flask-cors", specifier = ">=6.0.0" },
|
||||||
|
{ name = "numpy", specifier = ">=1.26" },
|
||||||
{ name = "openai", specifier = ">=1.0.0" },
|
{ name = "openai", specifier = ">=1.0.0" },
|
||||||
|
{ name = "pandas", specifier = ">=2.1" },
|
||||||
{ name = "pipreqs", marker = "extra == 'dev'", specifier = ">=0.5.0" },
|
{ name = "pipreqs", marker = "extra == 'dev'", specifier = ">=0.5.0" },
|
||||||
{ name = "pydantic", specifier = ">=2.0.0" },
|
{ name = "pydantic", specifier = ">=2.0.0" },
|
||||||
{ name = "pymupdf", specifier = ">=1.24.0" },
|
{ name = "pymupdf", specifier = ">=1.24.0" },
|
||||||
{ name = "pytest", marker = "extra == 'dev'", specifier = ">=8.0.0" },
|
{ name = "pytest", marker = "extra == 'dev'", specifier = ">=8.0.0" },
|
||||||
{ name = "pytest-asyncio", marker = "extra == 'dev'", specifier = ">=0.23.0" },
|
{ name = "pytest-asyncio", marker = "extra == 'dev'", specifier = ">=0.23.0" },
|
||||||
{ name = "python-dotenv", specifier = ">=1.0.0" },
|
{ name = "python-dotenv", specifier = ">=1.0.0" },
|
||||||
|
{ name = "pyyaml", specifier = ">=6.0" },
|
||||||
|
{ name = "scikit-learn", specifier = ">=1.4" },
|
||||||
|
{ name = "scipy", specifier = ">=1.12" },
|
||||||
{ name = "zep-cloud", specifier = "==3.13.0" },
|
{ name = "zep-cloud", specifier = "==3.13.0" },
|
||||||
]
|
]
|
||||||
provides-extras = ["dev"]
|
provides-extras = ["dev"]
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue