diff --git a/pkgs/development/python-modules/pymobiledevice3/default.nix b/pkgs/development/python-modules/pymobiledevice3/default.nix new file mode 100644 index 000000000000..301251829f6a --- /dev/null +++ b/pkgs/development/python-modules/pymobiledevice3/default.nix @@ -0,0 +1,127 @@ +{ + bpylist2, + buildPythonPackage, + click, + coloredlogs, + construct, + cryptography, + daemonize, + developer-disk-image, + fastapi, + fetchFromGitHub, + gpxpy, + hexdump, + hyperframe, + ifaddr, + inquirer3, + ipsw-parser, + ipython, + lib, + nest-asyncio, + opack2, + packaging, + parameter-decorators, + pillow, + plumbum, + psutil, + pycrashreport, + pygments, + pygnuutils, + pykdebugparser, + pytest-asyncio, + pytestCheckHook, + python-pcapng, + pytun-pmd3, + pyusb, + qh3, + requests, + setuptools, + setuptools-scm, + srptools, + sslpsk-pmd3, + tqdm, + uvicorn, + wsproto, + xonsh, + zeroconf, +}: + +buildPythonPackage rec { + pname = "pymobiledevice3"; + version = "4.27.3"; + pyproject = true; + + src = fetchFromGitHub { + owner = "doronz88"; + repo = "pymobiledevice3"; + tag = "v${version}"; + hash = "sha256-YYRDsE/rfTAnjDrJ0sMLeTyKshhl8NXhdspQUql2RAE="; + }; + + build-system = [ + setuptools + setuptools-scm + ]; + + dependencies = [ + bpylist2 + click + coloredlogs + construct + cryptography + daemonize + developer-disk-image + fastapi + gpxpy + hexdump + hyperframe + ifaddr + inquirer3 + ipsw-parser + ipython + nest-asyncio + opack2 + packaging + parameter-decorators + pillow + plumbum + psutil + pycrashreport + pygments + pygnuutils + pykdebugparser + python-pcapng + pytun-pmd3 + pyusb + qh3 + requests + srptools + sslpsk-pmd3 + tqdm + uvicorn + wsproto + xonsh + zeroconf + ] + ++ fastapi.optional-dependencies.all; + + pythonImportsCheck = [ "pymobiledevice3" ]; + + nativeCheckInputs = [ + pytest-asyncio + pytestCheckHook + ]; + + # Upstream only runs tests marked with 'cli' in CI: + # https://github.com/doronz88/pymobiledevice3/blob/v4.27.1/.github/workflows/python-app.yml#L45 + enabledTestMarks = [ "cli" ]; + + meta = { + changelog = "https://github.com/doronz88/pymobiledevice3/releases/tag/${src.tag}"; + description = "Pure python3 implementation for working with iDevices (iPhone, etc.)"; + homepage = "https://github.com/doronz88/pymobiledevice3"; + license = lib.licenses.gpl3Plus; + mainProgram = "pymobiledevice3"; + maintainers = [ lib.maintainers.dotlambda ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 56384a32704c..9e960d8fb6f8 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -13571,6 +13571,8 @@ self: super: with self; { pymitv = callPackage ../development/python-modules/pymitv { }; + pymobiledevice3 = callPackage ../development/python-modules/pymobiledevice3 { }; + pymochad = callPackage ../development/python-modules/pymochad { }; pymodbus = callPackage ../development/python-modules/pymodbus { };