1{
2 lib,
3 buildPythonApplication,
4 fetchFromGitHub,
5 hatchling,
6 hatch-requirements-txt,
7 hatch-vcs,
8 pyserial,
9 importlib-metadata,
10}:
11buildPythonApplication rec {
12 pname = "mpremote";
13 version = "1.25.0";
14
15 src = fetchFromGitHub {
16 owner = "micropython";
17 repo = "micropython";
18 tag = "v${version}";
19 hash = "sha256-Hk/DHMb9U/mLLVRKe+K3u5snxzW5BW3+bYRPFEAmUBQ=";
20 };
21 sourceRoot = "${src.name}/tools/mpremote";
22 format = "pyproject";
23
24 nativeBuildInputs = [
25 hatchling
26 hatch-requirements-txt
27 hatch-vcs
28 ];
29 propagatedBuildInputs = [
30 pyserial
31 importlib-metadata
32 ];
33
34 pythonImportsCheck = [ "mpremote" ];
35
36 meta = with lib; {
37 description = "Integrated set of utilities to remotely interact with and automate a MicroPython device over a serial connection";
38 homepage = "https://github.com/micropython/micropython/blob/master/tools/mpremote/README.md";
39 platforms = platforms.unix;
40 license = licenses.mit;
41 maintainers = with maintainers; [ _999eagle ];
42 mainProgram = "mpremote";
43 };
44}