diff --git a/pkgs/by-name/ma/markitdown/package.nix b/pkgs/by-name/ma/markitdown/package.nix new file mode 100644 index 0000000000000..a2f5664b3bdd6 --- /dev/null +++ b/pkgs/by-name/ma/markitdown/package.nix @@ -0,0 +1,4 @@ +{ python3Packages }: + +with python3Packages; +toPythonApplication markitdown diff --git a/pkgs/development/python-modules/markitdown/default.nix b/pkgs/development/python-modules/markitdown/default.nix new file mode 100644 index 0000000000000..f63140d8c38ce --- /dev/null +++ b/pkgs/development/python-modules/markitdown/default.nix @@ -0,0 +1,75 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + hatchling, + beautifulsoup4, + ffmpeg-headless, + mammoth, + markdownify, + numpy, + openpyxl, + pandas, + pathvalidate, + pdfminer-six, + puremagic, + pydub, + python-pptx, + requests, + speechrecognition, + youtube-transcript-api, + pytestCheckHook, +}: + +buildPythonPackage { + pname = "markitdown"; + version = "unstable-2024-12-15"; + pyproject = true; + + src = fetchFromGitHub { + owner = "microsoft"; + repo = "markitdown"; + rev = "81e3f24acd0049a59cd2dcb2d01d0a98cc57c734"; + hash = "sha256-ejj7ARvLDzB1WRNkc1zUtzYAujZVysB0MkY/PQKv/nQ="; + }; + + build-system = [ + hatchling + ]; + + dependencies = [ + beautifulsoup4 + ffmpeg-headless + mammoth + markdownify + numpy + openpyxl + pandas + pathvalidate + pdfminer-six + puremagic + pydub + python-pptx + requests + speechrecognition + youtube-transcript-api + ]; + + pythonImportsCheck = [ + "markitdown" + ]; + + nativeCheckInputs = [ pytestCheckHook ]; + + disabledTests = [ + # Require network access + "test_markitdown_remote" + ]; + + meta = { + description = "Python tool for converting files and office documents to Markdown"; + homepage = "https://github.com/microsoft/markitdown"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ drupol ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 2cde190b84c89..8a36ec46fd2cd 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -7855,6 +7855,8 @@ self: super: with self; { markdownify = callPackage ../development/python-modules/markdownify { }; + markitdown = callPackage ../development/python-modules/markitdown { }; + marko = callPackage ../development/python-modules/marko { }; markupsafe = callPackage ../development/python-modules/markupsafe { };