nixos-conf/custom/pkgs/by-category/pythonPackages/python-packages.nix

371 lines
9.8 KiB
Nix

# {
# lib,
# fetchFromGitHub,
# buildPythonPackage,
# setuptools,
# wheel,
# hatchling,
# poetry-core,
# python,
# huggingface-hub,
# tqdm,
# aiohttp,
# configparser,
# google-api-core,
# google-genai,
# json-repair,
# networkx,
# numpy,
# pandas,
# pydantic,
# pypinyin,
# python-dotenv,
# tenacity,
# tiktoken,
# xlsxwriter,
# boto3,
# click,
# loguru,
# pdfminer-six,
# requests,
# httpx,
# pillow,
# pypdfium2,
# pypdf,
# reportlab,
# modelscope,
# opencv-python,
# scikit-image,
# openai,
# beautifulsoup4,
# magika,
# av,
# pdm-backend,
# fasttext-predict,
# pydantic-settings,
# aiofiles,
# hatch-fancy-pypi-readme,
# colorlog,
# torch,
# torchvision,
# wcwidth,
# }:
# let
# prefab =
# {
# url,
# hash,
# force ? { },
# meta ? { },
# propagatedBuildDeps ? [ ],
# nativeBuildDeps ? [ ],
# pythonRelaxDeps ? [ ],
# pythonImportsCheck ? null,
# optional-dependencies ? null,
# }:
# let
# x = (import ../../lib/parse-github-url.nix { inherit lib; }) url;
# pname = x.pname;
# rev = force.rev or x.rev;
# version = force.version or x.version;
# defaultImports = [ (lib.toLower (lib.replaceStrings [ "-" ] [ "_" ] pname)) ];
# imports = if pythonImportsCheck == null then defaultImports else pythonImportsCheck;
# rawSubdir = force.subdir or x.subdir or null;
# subdir = if rawSubdir == null then null else lib.removeSuffix "/" (lib.removePrefix "/" rawSubdir);
# src = fetchFromGitHub {
# owner = x.owner;
# repo = x.repo;
# rev = rev;
# hash = hash;
# };
# in
# buildPythonPackage (
# {
# inherit pname version src;
# pyproject = true;
# build-system = [
# setuptools
# wheel
# ]
# ++ nativeBuildDeps;
# dependencies = propagatedBuildDeps;
# optional-dependencies = optional-dependencies;
# pythonRelaxDeps = pythonRelaxDeps;
# pythonImportsCheck = imports;
# installCheckPhase = ''
# runHook preInstallCheck
# ${builtins.concatStringsSep "\n" (
# map (lib: ''
# ${python.interpreter} -c "import ${lib}; print(getattr(${lib},'__version__','unknown'))"
# '') imports
# )}
# runHook postInstallCheck
# '';
# meta = {
# homepage = x.homepage;
# }
# // meta;
# }
# // lib.optionalAttrs (subdir != null && subdir != "") {
# sourceRoot = "${src.name}/${subdir}";
# }
# );
# in
# rec {
# raganything = prefab {
# url = "https://github.com/HKUDS/RAG-Anything/tree/v1.2.9";
# hash = "sha256-yepiLYzPD6UcJRbAbovg/BwFE8nh903o/tHypiHGKSw=";
# propagatedBuildDeps = [
# huggingface-hub
# lightrag-hku
# tqdm
# # mineru
# ]
# ++ mineru.optional-dependencies.core;
# pythonImportsCheck = [ "raganything" ];
# meta = {
# description = "RAGAnything: All-in-One RAG System";
# license = lib.licenses.mit;
# };
# };
# lightrag-hku = prefab {
# url = "https://github.com/HKUDS/LightRAG/tree/v1.4.9.11";
# hash = "sha256-TX/HSF2ZqoDo2SRlFzM+bkUxQXiUpnrl6kwI+lljjdo=";
# propagatedBuildDeps = [
# aiohttp
# configparser
# google-api-core
# google-genai
# json-repair
# nano-vectordb
# networkx
# numpy
# pandas
# pipmaster
# pydantic
# pypinyin
# python-dotenv
# tenacity
# tiktoken
# xlsxwriter
# ];
# meta = {
# description = "LightRAG: Simple and Fast Retrieval-Augmented Generation";
# license = lib.licenses.mit;
# };
# };
# pipmaster = prefab {
# url = "https://github.com/ParisNeo/pipmaster/tree/820acdbc9d541443942bd8afd6ba968036bd8452";
# hash = "sha256-IJ6VG4WvoEm584vbZDLTtRcEZekZh7HJto1hnABoodo=";
# force.version = "1.1.0";
# propagatedBuildDeps = [
# ascii-colors
# ];
# meta = with lib; {
# description = "A versatile Python package manager utility for simplifying package installation, updates, checks, and environment management.";
# license = licenses.asl20;
# };
# };
# nano-vectordb = prefab {
# url = "https://github.com/gusye1234/nano-vectordb/tree/03f821348f04a93a9c36bb575faae05b61f4c02e";
# hash = "sha256-jLco+1TAncF8Ep+VGd3DhsoiZTW7G/H8fAEwnNsovTY=";
# force.version = "0.0.4.3";
# propagatedBuildDeps = [
# numpy
# ];
# meta = {
# description = "A simple, easy-to-hack Vector Database implementation";
# license = lib.licenses.mit;
# };
# };
# ascii-colors = prefab {
# url = "https://github.com/ParisNeo/ascii_colors/tree/817a21485136635e3da89ff08444183254b25aab";
# hash = "sha256-jiolJzsBQMp9/DHdHTixJGvXoS19vAp/S7+8PyLARoo=";
# force.version = "0.11.12";
# propagatedBuildDeps = [
# wcwidth
# ];
# meta = {
# description = "A python library for displaying stuff on the console in a pretty way";
# license = lib.licenses.asl20;
# };
# };
# mineru = prefab {
# url = "https://github.com/opendatalab/MinerU/tree/mineru-2.7.6-released";
# hash = "sha256-A/nFNQYGEfmWUdpX8N1lbex3mdiF8+eN8s0UKQFc42E=";
# propagatedBuildDeps = [
# boto3
# click
# loguru
# numpy
# pdfminer-six
# tqdm
# requests
# httpx
# pillow
# pypdfium2
# pypdf
# reportlab
# pdftext
# modelscope
# huggingface-hub
# json-repair
# opencv-python
# fast-langdetect
# scikit-image
# openai
# beautifulsoup4
# magika
# mineru-vl-utils
# qwen-vl-utils
# ];
# optional-dependencies = {
# core = [ doclayout-yolo ]
# # ++ (with mineru.optional-dependencies; [
# # vlm
# # pipeline
# # api
# # gradio
# # ])
# ;
# vlm = [ ];
# pipeline = [
# doclayout-yolo
# ];
# api = [ ];
# gradio = [ ];
# };
# pythonRelaxDeps = [
# "fast-langdetect"
# ];
# meta = {
# description = "Transforms complex documents like PDFs into LLM-ready markdown/JSON for your Agentic workflows.";
# license = lib.licenses.gpl3;
# };
# };
# doclayout-yolo = prefab {
# # reason for creating fetcher construct
# url = "https://github.com/opendatalab/DocLayout-YOLO/tree/main"; # master is 10 months old and last version was set in Oct 18, 2024
# hash = "sha256-wLCmJuWyw7Gqou7awsHtxqVyr4AN+yJSkF0q3GUSQh8=";
# force.version = "0.0.4"; # NOT 0.0.4 on github but fuck it we ball
# meta = {
# description = "DocLayout-YOLO: Enhancing Document Layout Analysis through Diverse Synthetic Data and Global-to-Local Adaptive Perception";
# license = lib.licenses.agpl3Only;
# };
# };
# qwen-vl-utils = prefab {
# url = "https://github.com/QwenLM/Qwen3-VL/tree/main/qwen-vl-utils";
# hash = "sha256-Vha/Tc4q2v5RCL31hB9U4ZrfIFxfZjgwM6PYlvDeoAQ=";
# force = {
# version = "0.0.14";
# rev = "fe12058";
# };
# propagatedBuildDeps = [
# hatchling
# av
# pillow
# requests
# torch
# torchvision
# ];
# pythonImportsCheck = [ "qwen_vl_utils" ];
# meta = {
# description = "Qwen-VL Utils contains a set of helper functions for processing and integrating visual language information with Qwen-VL Series Model.";
# license = lib.licenses.asl20;
# };
# };
# mineru-vl-utils = prefab {
# url = "https://github.com/opendatalab/mineru-vl-utils/tree/mineru_vl_utils-0.1.22-released";
# hash = "sha256-hpTW/1nwXPxfld4nx0XHZBMerWj+UL1vzDhYpwjezRU=";
# propagatedBuildDeps = [
# httpx
# httpx-retries
# aiofiles
# pillow
# pydantic
# loguru
# ];
# meta = {
# description = "A Python package for interacting with the MinerU Vision-Language Model.";
# license = lib.licenses.gpl3;
# };
# };
# httpx-retries = prefab {
# url = "https://github.com/will-ockmore/httpx-retries/tree/0.4.5";
# hash = "sha256-zJ3ExSEWxlHFluSdYA8/XZ3zb4KBelU+IOFyUu4ezvo=";
# propagatedBuildDeps = [
# hatchling
# hatch-fancy-pypi-readme
# httpx
# ];
# meta = {
# description = "A retry layer for HTTPX.";
# license = lib.licenses.mit;
# };
# };
# fast-langdetect = prefab {
# url = "https://github.com/LlmKira/fast-langdetect/tree/pypi_1.0.0";
# hash = "sha256-pj46gHG9cjkSjnYc88bSctL/1LAUe0jkBuM/GZWMsUI=";
# propagatedBuildDeps = [
# pdm-backend
# robust-downloader
# requests
# fasttext-predict
# ];
# meta = {
# description = "⚡️ 80x faster Fasttext language detection out of the box | Split text by language ";
# license = lib.licenses.mit;
# };
# };
# robust-downloader = prefab {
# url = "https://github.com/fedebotu/robust-downloader/tree/0.0.2";
# hash = "sha256-UmzfEIPiMtUkOG6sIMYgLxc8YwL5wRgMBRlywqKomv0=";
# propagatedBuildDeps = [
# tqdm
# colorlog
# requests
# ];
# meta = {
# description = "Minimal Python downloader with robustness in mind - resumable downloads, retries, and more";
# license = lib.licenses.asl20;
# };
# };
# pdftext = prefab {
# url = "https://github.com/datalab-to/pdftext/tree/v0.6.3";
# hash = "sha256-EGVjzjDWtdcEPX//cOm5+xm9FvX0aP+h6fsD25hC8gA=";
# propagatedBuildDeps = [
# poetry-core
# click
# pydantic
# pydantic-settings
# pypdfium2
# ];
# pythonRelaxDeps = [
# "pypdfium2"
# ];
# meta = {
# description = "Extract structured text from pdfs quickly";
# license = lib.licenses.asl20;
# };
# };
# }