diff --git a/pkgs/development/python-modules/bk7231tools/default.nix b/pkgs/development/python-modules/bk7231tools/default.nix new file mode 100644 index 000000000000..cde2416c8126 --- /dev/null +++ b/pkgs/development/python-modules/bk7231tools/default.nix @@ -0,0 +1,46 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + poetry-core, + pycryptodome, + py-datastruct, + pyserial, +}: + +buildPythonPackage rec { + pname = "bk7231tools"; + version = "2.0.2"; + pyproject = true; + + src = fetchFromGitHub { + owner = "tuya-cloudcutter"; + repo = "bk7231tools"; + tag = "v${version}"; + hash = "sha256-Ag63VNBSKEPDaxhS40SVB8rKIJRS1IsrZ9wSD0FglSU="; + }; + + pythonRelaxDeps = [ + "pycryptodome" + "py-datastruct" + "pyserial" + ]; + + build-system = [ poetry-core ]; + + dependencies = [ + pycryptodome + py-datastruct + pyserial + ]; + + pythonImportsCheck = [ "bk7231tools" ]; + + meta = { + description = "Tools to interact with and analyze artifacts for BK7231 MCUs"; + homepage = "https://github.com/tuya-cloudcutter/bk7231tools"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ mevatron ]; + mainProgram = "bk7231tools"; + }; +} diff --git a/pkgs/development/python-modules/py-datastruct/default.nix b/pkgs/development/python-modules/py-datastruct/default.nix new file mode 100644 index 000000000000..e735eacb5a56 --- /dev/null +++ b/pkgs/development/python-modules/py-datastruct/default.nix @@ -0,0 +1,33 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + poetry-core, +}: + +buildPythonPackage rec { + pname = "py-datastruct"; + version = "1.1.0"; + pyproject = true; + + src = fetchFromGitHub { + owner = "kuba2k2"; + repo = "datastruct"; + tag = "v${version}"; + hash = "sha256-KEIvibGnQnIDMpmodWN2Az/ypc37ZyGvgVPC7voFmlA="; + }; + + build-system = [ poetry-core ]; + + pythonImportsCheck = [ "datastruct" ]; + + # Add nativeCheckInputs = [ pytestCheckHook ]; once we update to v2.0.0 tag and remove below line + doCheck = false; + + meta = { + description = "Combination of struct and dataclasses for easy parsing of binary formats"; + homepage = "https://github.com/kuba2k2/datastruct"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ mevatron ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 7294f354a1cd..afdff1e77072 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -1725,6 +1725,8 @@ self: super: with self; { bjoern = callPackage ../development/python-modules/bjoern { }; + bk7231tools = callPackage ../development/python-modules/bk7231tools { }; + bkcharts = callPackage ../development/python-modules/bkcharts { }; black = callPackage ../development/python-modules/black { }; @@ -9512,6 +9514,8 @@ self: super: with self; { py-ccm15 = callPackage ../development/python-modules/py-ccm15 { }; + py-datastruct = callPackage ../development/python-modules/py-datastruct { }; + py-deprecate = callPackage ../development/python-modules/py-deprecate { }; py-ecc = callPackage ../development/python-modules/py-ecc { };