pyproject.toml (2468B)
1 [build-system] 2 requires = ["setuptools"] 3 build-backend = "setuptools.build_meta" 4 5 [project] 6 name = "websockets" 7 description = "An implementation of the WebSocket Protocol (RFC 6455 & 7692)" 8 requires-python = ">=3.8" 9 license = { text = "BSD-3-Clause" } 10 authors = [ 11 { name = "Aymeric Augustin", email = "aymeric.augustin@m4x.org" }, 12 ] 13 keywords = ["WebSocket"] 14 classifiers = [ 15 "Development Status :: 5 - Production/Stable", 16 "Environment :: Web Environment", 17 "Intended Audience :: Developers", 18 "License :: OSI Approved :: BSD License", 19 "Operating System :: OS Independent", 20 "Programming Language :: Python", 21 "Programming Language :: Python :: 3", 22 "Programming Language :: Python :: 3.8", 23 "Programming Language :: Python :: 3.9", 24 "Programming Language :: Python :: 3.10", 25 "Programming Language :: Python :: 3.11", 26 ] 27 dynamic = ["version", "readme"] 28 29 [project.urls] 30 Homepage = "https://github.com/python-websockets/websockets" 31 Changelog = "https://websockets.readthedocs.io/en/stable/project/changelog.html" 32 Documentation = "https://websockets.readthedocs.io/" 33 Funding = "https://tidelift.com/subscription/pkg/pypi-websockets?utm_source=pypi-websockets&utm_medium=referral&utm_campaign=readme" 34 Tracker = "https://github.com/python-websockets/websockets/issues" 35 36 # On a macOS runner, build Intel, Universal, and Apple Silicon wheels. 37 [tool.cibuildwheel.macos] 38 archs = ["x86_64", "universal2", "arm64"] 39 40 # On an Linux Intel runner with QEMU installed, build Intel and ARM wheels. 41 [tool.cibuildwheel.linux] 42 archs = ["auto", "aarch64"] 43 44 [tool.coverage.run] 45 branch = true 46 omit = [ 47 # */websockets matches src/websockets and .tox/**/site-packages/websockets 48 "*/websockets/__main__.py", 49 "*/websockets/legacy/async_timeout.py", 50 "*/websockets/legacy/compatibility.py", 51 "tests/maxi_cov.py", 52 ] 53 54 [tool.coverage.paths] 55 source = [ 56 "src/websockets", 57 ".tox/*/lib/python*/site-packages/websockets", 58 ] 59 60 [tool.coverage.report] 61 exclude_lines = [ 62 "except ImportError:", 63 "if self.debug:", 64 "if sys.platform != \"win32\":", 65 "if typing.TYPE_CHECKING:", 66 "pragma: no cover", 67 "raise AssertionError", 68 "raise NotImplementedError", 69 "self.fail\\(\".*\"\\)", 70 "@unittest.skip", 71 ] 72 73 [tool.ruff] 74 select = [ 75 "E", # pycodestyle 76 "F", # Pyflakes 77 "W", # pycodestyle 78 "I", # isort 79 ] 80 ignore = [ 81 "F403", 82 "F405", 83 ] 84 85 [tool.ruff.isort] 86 combine-as-imports = true 87 lines-after-imports = 2