[project] name = "mvt" dynamic = ["version"] authors = [ {name = "Claudio Guarnieri", email = "nex@nex.sx"} ] maintainers = [ {name = "Etienne Maynier", email = "tek@randhome.io"}, {name = "Donncha Ó Cearbhaill", email = "donncha.ocearbhaill@amnesty.org"}, {name = "Rory Flynn", email = "rory.flynn@amnesty.org"} ] description = "Mobile Verification Toolkit" readme = "README.md" keywords = ["security", "mobile", "forensics", "malware"] classifiers = [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Information Technology", "Operating System :: OS Independent", "Programming Language :: Python" ] dependencies = [ "click==8.2.1", "rich==14.1.0", "tld==0.13.1", "requests==2.32.4", "simplejson==3.20.1", "packaging==25.0", "appdirs==1.4.4", "iOSbackup==0.9.925", "adb-shell[usb]==0.4.4", "libusb1==3.3.1", "cryptography==45.0.5", "PyYAML>=6.0.2", "pyahocorasick==2.2.0", "betterproto==1.2.5", "pydantic==2.11.7", "pydantic-settings==2.10.1", "NSKeyedUnArchiver==1.5.2", "python-dateutil==2.9.0.post0", ] requires-python = ">= 3.10" [project.urls] homepage = "https://docs.mvt.re/en/latest/" repository = "https://github.com/mvt-project/mvt" [project.scripts] mvt-ios = "mvt.ios:cli" mvt-android = "mvt.android:cli" [build-system] requires = ["setuptools>=61.0"] build-backend = "setuptools.build_meta" [tool.coverage.run] omit = [ "tests/*", ] [tool.coverage.html] directory= "htmlcov" [tool.mypy] install_types = true non_interactive = true ignore_missing_imports = true packages = "src" [tool.pytest.ini_options] addopts = "-ra -q --cov=mvt --cov-report html --junitxml=pytest.xml --cov-report=term-missing:skip-covered" testpaths = [ "tests" ] [tool.ruff.lint] select = ["C90", "E", "F", "W"] # flake8 default set ignore = [ "E501", # don't enforce line length violations "C901", # complex-structure # These were previously ignored but don't seem to be required: # "E265", # no-space-after-block-comment # "F401", # unused-import # "E127", # not included in ruff # "W503", # not included in ruff # "E226", # missing-whitespace-around-arithmetic-operator # "E203", # whitespace-before-punctuation ] [tool.ruff.lint.per-file-ignores] "__init__.py" = ["F401"] # unused-import [tool.ruff.lint.mccabe] max-complexity = 10 [tool.setuptools] include-package-data = true package-dir = {"" = "src"} [tool.setuptools.packages.find] where = ["src"] [tool.setuptools.package-data] mvt = ["ios/data/*.json"] [tool.setuptools.dynamic] version = {attr = "mvt.common.version.MVT_VERSION"}