AuditLog deadlock: log() held self._lock and called _open() which called close() which tried to acquire self._lock again — RLock not needed, refactored to _close_locked() (called while already holding lock). pyproject.toml: pytest-asyncio + httpx in dev deps. test_main.py: - lifecycle integration test (MUST-HAVE): IDLE→ARMED→PRIMED→auto-poll starts→FIRE→auto-poll stops, asserts scheduler event order - asyncio import for async test marker Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
46 lines
855 B
TOML
46 lines
855 B
TOML
[build-system]
|
|
requires = ["setuptools>=68", "wheel"]
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
[project]
|
|
name = "atm"
|
|
version = "0.1.0"
|
|
description = "M2D Trading Monitor — TradeStation chart watcher, Discord/Telegram notifier"
|
|
requires-python = ">=3.11"
|
|
dependencies = [
|
|
"numpy>=1.26",
|
|
"opencv-python>=4.9",
|
|
"pillow>=10.0",
|
|
"requests>=2.31",
|
|
"rich>=13.0",
|
|
]
|
|
|
|
[project.optional-dependencies]
|
|
windows = [
|
|
"mss>=9.0",
|
|
"pygetwindow>=0.0.9",
|
|
"pywin32>=306",
|
|
]
|
|
dev = [
|
|
"pytest>=8.0",
|
|
"pytest-cov>=5.0",
|
|
"pytest-asyncio>=0.23",
|
|
"httpx>=0.27",
|
|
]
|
|
|
|
[project.scripts]
|
|
atm = "atm.main:main"
|
|
|
|
[tool.setuptools.packages.find]
|
|
where = ["src"]
|
|
|
|
[tool.pytest.ini_options]
|
|
testpaths = ["tests"]
|
|
pythonpath = ["src"]
|
|
|
|
[tool.pyright]
|
|
include = ["src"]
|
|
extraPaths = ["src"]
|
|
pythonVersion = "3.11"
|
|
reportMissingImports = true
|