# Screen Locker — runtime + development dependencies # Runtime: tkinter/subprocess/socket/sqlite3 (stdlib) plus gatelock (below). bandit==1.9.4 codespell==2.4.3 coverage==7.16.2 crdt-sync @ git+https://github.com/kuhyx/utils@crdt-sync-v0.9.1#subdirectory=crdt-sync earned-time @ git+https://github.com/kuhyx/utils@earned-time-v0.4.0#subdirectory=earned_time freedays @ git+https://github.com/kuhyx/utils@freedays-v0.3.0#subdirectory=freedays gatelock @ git+https://github.com/kuhyx/utils@gatelock-v0.9.0#subdirectory=gatelock mcp==2.3.0 mypy==2.4.0 pre-commit==4.6.2 pylint==4.1.2 pytest==9.1.1 pytest-cov==7.1.0 pytest-randomly==5.0.0 pytest-sugar==1.1.1 pytest-xdist==3.8.0 # Direct dependency since the Firebase session recovery exchanges a refresh # token over the REST endpoint; crdt-sync already pulls requests in, but this # module imports it itself, so it is declared rather than assumed. requests==2.34.2 ruff==0.16.10 types-requests==2.33.0.20261006 # Direct dependency since the Firebase session stream (_session_stream) catches # urllib3's own errors on the long-lived SSE read; requests pulls it in, but # the module imports it itself, so it is declared rather than assumed. urllib3==2.8.0