[flake8]
max-line-length = 120
exclude = 
    .git,
    __pycache__,
    .env,
    venv,
    .venv,
    .venv*,
    build,
    dist,
    local,
    node_modules,
    */node_modules/*,
    *.egg-info
# E501: 行太长（有些地方确实需要长行）
# W503: 运算符在换行前（与 black 冲突）
# E203: 切片前的空格（与 black 冲突）
# E402: 模块级导入不在文件顶部（有时需要先设置环境变量）
ignore = E501,W503,E203,E402

[tool:pytest]
testpaths = .
python_files = test_*.py
python_functions = test_*
addopts = -v --tb=short
norecursedirs =
    .git
    __pycache__
    .env
    venv
    .venv
    .venv*
    build
    dist
    local
    node_modules
    */node_modules/*
markers =
    unit: fast offline unit tests
    integration: service-level integration tests without external network dependency
    network: tests requiring external network or third-party services

[isort]
profile = black
line_length = 120
skip = .git,__pycache__,.env,venv,.venv,local,node_modules
skip_glob = */node_modules/*
known_first_party = config,storage,analyzer,notification,scheduler,search_service,market_analyzer,stock_analyzer,data_provider
