[project] name = "FindMy" version = "0.8.0" description = "Everything you need to work with Apple's Find My network!" readme = "README.md" authors = [ {name = "Mike Almeloo", email = "git@mikealmel.ooo"}, ] license-files = ["LICENSE.md"] requires-python = ">=3.9,<3.14" dependencies = [ "srp>=1.0.21,<2.0.0", "cryptography>=42.0.0,<46.0.0", "beautifulsoup4>=4.12.3,<5.0.0", "aiohttp>=3.9.5,<4.0.0", "bleak>=0.22.2,<1.0.0", "typing-extensions>=4.12.2,<5.0.0", "anisette>=1.2.1", ] [dependency-groups] dev = [ "pre-commit>=4.0.0,<5.0.0", "pyright>=1.1.391,<2.0.0", "ruff>=0.8.4,<1.0.0", "tomli>=2.0.1,<3.0.0", "packaging>=25.0,<26.0", ] test = [ "pytest>=8.3.2,<9.0.0", ] docs = [ "sphinx>=7.2.6,<8.0.0", "sphinx-autoapi==3.6.0", ] [tool.pyright] venvPath = "." venv = ".venv" # rule overrides typeCheckingMode = "standard" reportImplicitOverride = true [tool.ruff] line-length = 100 exclude = [ "docs/", "tests/" ] [tool.ruff.lint] select = [ "ALL", ] ignore = [ "FIX002", # resolving TODOs "D203", # one blank line before class docstring "D212", # multi-line docstring start at first line "D105", # docstrings in magic methods "S101", # assert statements "S603", # false-positive subprocess call (https://github.com/astral-sh/ruff/issues/4045) "PLR2004", # "magic" values >.> "FBT", # boolean "traps" ] [tool.ruff.lint.per-file-ignores] "examples/*" = [ "T201", # use of "print" "S101", # use of "assert" "D", # documentation "INP001", # namespacing ] "scripts/*" = [ "T201", # use of "print" "D", # documentation ] [build-system] requires = ["setuptools", "setuptools-scm"] build-backend = "setuptools.build_meta"