From d23f75c0afecf115cb121c94669bfa4538057f09 Mon Sep 17 00:00:00 2001 From: Pol Dellaiera Date: Thu, 24 Jul 2025 11:04:14 +0200 Subject: [PATCH] python3Packages.mkdocs-puml: init at 2.3.0 --- .../python-modules/mkdocs-puml/default.nix | 61 +++++++++++++++++++ .../mkdocs-puml/fix-permissions.patch | 17 ++++++ pkgs/top-level/python-packages.nix | 2 + 3 files changed, 80 insertions(+) create mode 100644 pkgs/development/python-modules/mkdocs-puml/default.nix create mode 100644 pkgs/development/python-modules/mkdocs-puml/fix-permissions.patch diff --git a/pkgs/development/python-modules/mkdocs-puml/default.nix b/pkgs/development/python-modules/mkdocs-puml/default.nix new file mode 100644 index 000000000000..b6d9ccfda794 --- /dev/null +++ b/pkgs/development/python-modules/mkdocs-puml/default.nix @@ -0,0 +1,61 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + poetry-core, + httpx, + markdown, + mkdocs, + msgpack, + rich, + pytestCheckHook, + pytest-httpx, +}: + +buildPythonPackage rec { + pname = "mkdocs-puml"; + version = "2.3.0"; + pyproject = true; + + src = fetchFromGitHub { + owner = "MikhailKravets"; + repo = "mkdocs_puml"; + tag = "v${version}"; + hash = "sha256-DOGS2lnFIpFdpJxIw9PJ/kvtAOhVtAJOQeMR+CVjkE0="; + }; + + patches = [ + # Fix permission of copied files from the store so that they are + # overwritable. + ./fix-permissions.patch + ]; + + build-system = [ poetry-core ]; + + pythonRelaxDeps = [ + "httpx" + "rich" + ]; + + dependencies = [ + httpx + markdown + mkdocs + msgpack + rich + ]; + + pythonImportsCheck = [ "mkdocs_puml" ]; + + nativeCheckInputs = [ + pytestCheckHook + pytest-httpx + ]; + + meta = { + description = "Brings PlantUML to MkDocs"; + homepage = "https://github.com/MikhailKravets/mkdocs_puml"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ drupol ]; + }; +} diff --git a/pkgs/development/python-modules/mkdocs-puml/fix-permissions.patch b/pkgs/development/python-modules/mkdocs-puml/fix-permissions.patch new file mode 100644 index 000000000000..25beca4d6eac --- /dev/null +++ b/pkgs/development/python-modules/mkdocs-puml/fix-permissions.patch @@ -0,0 +1,17 @@ +diff --git i/mkdocs_puml/plugin.py w/mkdocs_puml/plugin.py +index e9e0f5b..7435327 100644 +--- i/mkdocs_puml/plugin.py ++++ w/mkdocs_puml/plugin.py +@@ -221,6 +221,12 @@ class PlantUMLPlugin(BasePlugin[PlantUMLConfig]): + # shutil.copy(puml_js, dest_dir) + shutil.copytree(static_dir, dest_dir, dirs_exist_ok=True) + ++ # Make sure all the files in dest_dir are writable ++ for root, dirs, files in os.walk(dest_dir): ++ for file in files: ++ file_path = Path(root).joinpath(file) ++ file_path.chmod(0o644) ++ + self.storage.save() + + def _replace(self, key: str, content: str) -> str: diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 28aa7a7dddb1..e9f5ca92c6c1 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -9305,6 +9305,8 @@ self: super: with self; { mkdocs-minify-plugin = callPackage ../development/python-modules/mkdocs-minify-plugin { }; + mkdocs-puml = callPackage ../development/python-modules/mkdocs-puml { }; + mkdocs-redirects = callPackage ../development/python-modules/mkdocs-redirects { }; mkdocs-redoc-tag = callPackage ../development/python-modules/mkdocs-redoc-tag { };