[build-system] requires = ["hatchling"] build-backend = "hatchling.build" [project] name = "muxplex" version = "0.1.1" description = "Web-based tmux session dashboard — access all your tmux sessions from any browser" readme = "README.md" license = { text = "MIT" } authors = [{name = "Brian Krabach", email = "brian@krabach.com"}] classifiers = [ "Development Status :: 4 - Beta", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Topic :: System :: Systems Administration", "Topic :: Terminals :: Terminal Emulators/X Terminals", "Environment :: Web Environment", "Framework :: FastAPI", ] keywords = ["tmux", "terminal", "dashboard", "web", "session-manager"] requires-python = ">=3.11" dependencies = [ "fastapi>=0.115.0", "uvicorn[standard]>=0.30.0", "aiofiles>=23.0", "websockets>=11.0", "python-pam>=1.8.4", "six>=1.16.0", # undeclared dep of python-pam (needed on macOS clean envs) "itsdangerous>=2.1.0", "python-multipart>=0.0.9", "httpx>=0.27.0", "cryptography", ] [project.optional-dependencies] dev = [ "pytest>=8.0.0", "pytest-asyncio>=0.23.0", "beautifulsoup4>=4.12", ] [project.scripts] muxplex = "muxplex.cli:main" [project.urls] Repository = "https://github.com/bkrabach/muxplex" Issues = "https://github.com/bkrabach/muxplex/issues" [tool.hatch.build.targets.wheel] packages = ["muxplex"] exclude = ["muxplex/tests", "muxplex/frontend/tests"] [tool.pytest.ini_options] testpaths = ["muxplex/tests"] asyncio_mode = "auto" addopts = "--import-mode=importlib -m 'not integration'" markers = [ "integration: marks tests as integration tests requiring real tmux (deselect with '-m not integration')", ] [dependency-groups] dev = [ "pytest-timeout>=2.4.0", ]