1[tox]
2envlist =
3    py3{9,10,11,12,13}
4    pypy3
5    docs
6    types
7    lint
8skip_missing_interpreters = True
9
10[testenv]
11usedevelop = true
12deps =
13    -r requirements-tests.txt
14extras =
15    watchmedo
16commands =
17    python -bb -m pytest {posargs}
18
19[testenv:docs]
20usedevelop = true
21deps =
22    -r requirements-tests.txt
23extras =
24    watchmedo
25commands =
26    sphinx-build -aEWb html docs/source docs/build/html
27
28[testenv:lint]
29usedevelop = true
30deps =
31    -r requirements-tests.txt
32extras =
33    watchmedo
34commands =
35    python -m ruff format docs/source/examples src tests
36    python -m ruff check --fix src docs/source/examples tests
37
38[testenv:types]
39usedevelop = true
40deps =
41    -r requirements-tests.txt
42commands =
43    # General
44    python -m mypy docs/source/examples
45    python -m mypy src
46
47    # OS specific
48    python -m mypy --platform darwin --disable-error-code unused-ignore \
49        src/watchdog/observers/fsevents.py \
50        src/watchdog/observers/fsevents2.py
51    python -m mypy --platform freebsd --disable-error-code unused-ignore \
52        src/watchdog/observers/kqueue.py
53    python -m mypy --platform linux --disable-error-code unused-ignore \
54        src/watchdog/observers/inotify.py \
55        src/watchdog/observers/inotify_buffer.py \
56        src/watchdog/observers/inotify_c.py
57    python -m mypy --platform win32 --disable-error-code unused-ignore \
58        src/watchdog/observers/read_directory_changes.py \
59        src/watchdog/observers/winapi.py
60