[tool.poetry] name = "dbus-fast" version = "2.42.0" description = "A faster version of dbus-next" authors = ["Bluetooth Devices Authors "] license = "MIT" readme = "README.md" repository = "https://github.com/bluetooth-devices/dbus-fast" documentation = "https://dbus-fast.readthedocs.io" classifiers = [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "Natural Language :: English", "Operating System :: OS Independent", "Topic :: Software Development :: Libraries", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", ] packages = [ { include = "dbus_fast", from = "src" }, ] # Make sure we don't package temporary C files generated by the build process exclude = [ "**/*.c" ] [tool.poetry.build] generate-setup-file = true script = "build_ext.py" [tool.poetry.urls] "Bug Tracker" = "https://github.com/bluetooth-devices/dbus-fast/issues" "Changelog" = "https://github.com/bluetooth-devices/dbus-fast/blob/main/CHANGELOG.md" [tool.poetry.dependencies] python = ">=3.9" # duplicated in docs/requirements.txt for readthedocs compatibility [tool.poetry.group.docs.dependencies] myst-parser = ">=0.18,<3.1" sphinx = ">=5.1.1,<8.0.0" sphinx-rtd-theme = ">=1,<4" sphinxcontrib-asyncio = "^0.3.0" sphinxcontrib-fulltoc = "^1.2.0" [tool.poetry.group.dev.dependencies] pytest = ">=7,<9" pytest-cov = ">=3,<7" pytest-asyncio = ">=0.19,<0.26" pycairo = "^1.21.0" PyGObject = {version = ">=3.50,<3.51", python = "<4"} Cython = ">=3,<3.1.0" setuptools = ">=65.4.1,<77.0.0" pytest-timeout = "^2.1.0" pytest-codspeed = "^3.1.1" covdefaults = "^2.3.0" [tool.semantic_release] branch = "main" version_toml = ["pyproject.toml:tool.poetry.version"] version_variables = ["src/dbus_fast/__version__.py:__version__"] build_command = "pip install poetry && poetry build" [tool.pytest.ini_options] addopts = "-v -Wdefault --cov=dbus_fast --cov-report=term-missing:skip-covered" pythonpath = ["src"] [tool.coverage.run] branch = true plugins = ["covdefaults"] [tool.coverage.report] fail_under = 30 # cython version will have low cover because we do not have Cython tracing exclude_also = [ "if cython.compiled:", ] [tool.isort] profile = "black" known_first_party = ["dbus_fast", "tests"] [tool.mypy] check_untyped_defs = true disallow_any_generics = false # turn this on when we drop 3.7/3.8 support disallow_incomplete_defs = true disallow_untyped_defs = true mypy_path = "src/" no_implicit_optional = true show_error_codes = true warn_unreachable = true warn_unused_ignores = true exclude = [ 'docs/.*', 'setup.py', ] [[tool.mypy.overrides]] module = "tests.*" allow_untyped_defs = true [[tool.mypy.overrides]] module = "docs.*" ignore_errors = true [build-system] requires = ['setuptools>=65.4.1', 'wheel', 'Cython>=3,<3.1.0', "poetry-core>=1.0.0"] build-backend = "poetry.core.masonry.api" [tool.ruff] target-version = "py39" line-length = 88 [tool.ruff.lint] ignore = [ "F821", # undefined names are used for decorators "S101", # use of assert detected "S105", # too many false positives "SLF001", # intended "SIM109", # intended for cython "SIM102", # intended for cython "E501", # too many to fix, "TID252", # intended "PLC0414", # intended "TRY003", # too many to fix "PLR2004", # way too many to fix right now "PLR0911", # api is public "PYI036", # too many to fix "PYI034", # too many to fix "E721", # many are as intended ## should fix these sooner "B007", # too many to fix -- should fix sooner "SIM103", # too many to fix -- should fix sooner "SIM110", # too many to fix -- should fix sooner "RUF012", # too many to fix -- should fix sooner "TRY002", # too many to fix -- should fix sooner "B904", # too many to fix -- should fix sooner "PERF401", # too many to fix -- should fix sooner "B904", # too many to fix -- should fix sooner "B006", # too many to fix -- should fix sooner "G004", # too many to fix -- should fix sooner "PT015", # too many to fix -- should fix sooner "B011", # too many to fix -- should fix sooner "PLR1714", # too many to fix -- should fix sooner "PLR0915", # too many to fix -- should fix sooner "PERF102", # too many to fix -- should fix sooner "TRY401", # too many to fix -- should fix sooner "PLR0913", # too many to fix -- should fix sooner "PLR0912", # too many to fix -- should fix sooner "PERF203", # too many to fix -- should fix sooner "G201", # too many to fix -- should fix sooner "TRY301", # too many to fix -- should fix sooner "B020", # too many to fix -- should fix sooner "S314", # too many to fix -- should fix sooner "RET504", # too many to fix -- should fix sooner "SIM105", # too many to fix -- should fix sooner "TRY300", # too many to fix -- should fix sooner "PLW2901", # too many to fix -- should fix sooner "PERF402", # too many to fix -- should fix sooner ] select = [ "ASYNC", # async rules "B", # flake8-bugbear "C4", # flake8-comprehensions "S", # flake8-bandit "F", # pyflake "E", # pycodestyle "W", # pycodestyle "UP", # pyupgrade "I", # isort "LOG", # log "RUF", # ruff specific "FLY", # flynt "FURB", # refurb "G", # flake8-logging-format , "PERF", # Perflint "PGH", # pygrep-hooks "PIE", # flake8-pie "PL", # pylint "PT", # flake8-pytest-style "PYI", # flake8-pyi "RET", # flake8-return "RSE", # flake8-raise , "SIM", # flake8-simplify "SLF", # flake8-self "SLOT", # flake8-slots "T100", # Trace found: {name} used "T20", # flake8-print "TID", # Tidy imports "TRY", # tryceratops ] [tool.ruff.lint.per-file-ignores] "tests/**/*" = [ "D100", "D101", "D102", "D103", "D104", "S101", "S108", "SLF001", "PLW", # too many to fix "TRY",# too many to fix right now "PT",# too many to fix right now "B",# too many to fix right now "RET",# too many to fix right now "PLR2004", # too many to fix right now "PT011", # too many to fix right now "PT006", # too many to fix right now "PGH003", # too many to fix right now "PT007", # too many to fix right now "PT027", # too many to fix right now "PLW0603" , # too many to fix right now "PLR0915", # too many to fix right now "FLY002", # too many to fix right now "PT018", # too many to fix right now "PLR0124", # too many to fix right now "SIM202" , # too many to fix right now "PT012" , # too many to fix right now "TID252", # too many to fix right now "PLR0913", # skip this one "SIM102" , # too many to fix right now "SIM108", # too many to fix right now "T201", # too many to fix right now ] "bench/**/*" = [ "T201", # intended ] "examples/**/*" = [ "T201", # intended "RSE102", # too many to fix "C408", # too many to fix "E402", # as intended ] "docs/**/*" = [ "E402", # as intended ]