python3Packages.rapidocr-onnxruntime: init at 1.4.4
This commit is contained in:
@@ -0,0 +1,133 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
|
||||
fetchzip,
|
||||
replaceVars,
|
||||
|
||||
setuptools,
|
||||
pyclipper,
|
||||
opencv-python,
|
||||
numpy,
|
||||
six,
|
||||
shapely,
|
||||
pyyaml,
|
||||
pillow,
|
||||
onnxruntime,
|
||||
tqdm,
|
||||
|
||||
pytestCheckHook,
|
||||
requests,
|
||||
}:
|
||||
let
|
||||
version = "1.4.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "RapidAI";
|
||||
repo = "RapidOCR";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-x0VELDKOffxbV3v0aDFJFuDC4YfsGM548XWgINmRc3M=";
|
||||
};
|
||||
|
||||
models =
|
||||
fetchzip {
|
||||
url = "https://github.com/RapidAI/RapidOCR/releases/download/v1.1.0/required_for_whl_v1.3.0.zip";
|
||||
hash = "sha256-j/0nzyvu/HfNTt5EZ+2Phe5dkyPOdQw/OZTz0yS63aA=";
|
||||
stripRoot = false;
|
||||
}
|
||||
+ "/required_for_whl_v1.3.0/resources/models";
|
||||
in
|
||||
buildPythonPackage {
|
||||
pname = "rapidocr-onnxruntime";
|
||||
inherit version src;
|
||||
pyproject = true;
|
||||
|
||||
sourceRoot = "${src.name}/python";
|
||||
|
||||
# HACK:
|
||||
# Upstream uses a very unconventional structure to organize the packages, and we have to coax the
|
||||
# existing infrastructure to work with it.
|
||||
# See https://github.com/RapidAI/RapidOCR/blob/02829ef986bc2a5c4f33e9c45c9267bcf2d07a1d/.github/workflows/gen_whl_to_pypi_rapidocr_ort.yml#L80-L92
|
||||
# for the "intended" way of building this package.
|
||||
|
||||
# The setup.py supplied by upstream tries to determine the current version by
|
||||
# fetching the latest version of the package from PyPI, and then bumping the version number.
|
||||
# This is not allowed in the Nix build environment as we do not have internet access,
|
||||
# hence we patch that out and get the version from the build environment directly.
|
||||
patches = [
|
||||
(replaceVars ./setup-py-override-version-checking.patch {
|
||||
inherit version;
|
||||
})
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
mv setup_onnxruntime.py setup.py
|
||||
|
||||
ln -s ${models}/* rapidocr_onnxruntime/models
|
||||
|
||||
echo "from .rapidocr_onnxruntime.main import RapidOCR, VisRes" > __init__.py
|
||||
'';
|
||||
|
||||
# Upstream expects the source files to be under rapidocr_onnxruntime/rapidocr_onnxruntime
|
||||
# instead of rapidocr_onnxruntime for the wheel to build correctly.
|
||||
preBuild = ''
|
||||
mkdir rapidocr_onnxruntime_t
|
||||
mv rapidocr_onnxruntime rapidocr_onnxruntime_t
|
||||
mv rapidocr_onnxruntime_t rapidocr_onnxruntime
|
||||
'';
|
||||
|
||||
# Revert the above hack
|
||||
postBuild = ''
|
||||
mv rapidocr_onnxruntime rapidocr_onnxruntime_t
|
||||
mv rapidocr_onnxruntime_t/* .
|
||||
'';
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
dependencies = [
|
||||
pyclipper
|
||||
opencv-python
|
||||
numpy
|
||||
six
|
||||
shapely
|
||||
pyyaml
|
||||
pillow
|
||||
onnxruntime
|
||||
tqdm
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "rapidocr_onnxruntime" ];
|
||||
|
||||
nativeCheckInputs = [
|
||||
pytestCheckHook
|
||||
requests
|
||||
];
|
||||
|
||||
# These are tests for different backends.
|
||||
disabledTestPaths = [
|
||||
"tests/test_vino.py"
|
||||
"tests/test_paddle.py"
|
||||
];
|
||||
|
||||
disabledTests = [
|
||||
# Needs Internet access
|
||||
"test_long_img"
|
||||
];
|
||||
|
||||
# rapidocr-onnxruntime has been renamed to rapidocr by upstream since 2.0.0. However, some packages like open-webui still requires rapidocr-onnxruntime 1.4.4. Therefore we set no auto update here.
|
||||
# nixpkgs-update: no auto update
|
||||
passthru.skipBulkUpdate = true;
|
||||
|
||||
meta = {
|
||||
# This seems to be related to https://github.com/microsoft/onnxruntime/issues/10038
|
||||
# Also some related issue: https://github.com/NixOS/nixpkgs/pull/319053#issuecomment-2167713362
|
||||
badPlatforms = [ "aarch64-linux" ];
|
||||
changelog = "https://github.com/RapidAI/RapidOCR/releases/tag/${src.tag}";
|
||||
description = "Cross platform OCR Library based on OnnxRuntime";
|
||||
homepage = "https://github.com/RapidAI/RapidOCR";
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = with lib.maintainers; [ wrvsrx ];
|
||||
mainProgram = "rapidocr_onnxruntime";
|
||||
};
|
||||
}
|
||||
+31
@@ -0,0 +1,31 @@
|
||||
diff --git i/setup_onnxruntime.py w/setup_onnxruntime.py
|
||||
index e9572e9..f5f3b32 100644
|
||||
--- i/setup_onnxruntime.py
|
||||
+++ w/setup_onnxruntime.py
|
||||
@@ -6,7 +6,6 @@ from pathlib import Path
|
||||
from typing import List, Union
|
||||
|
||||
import setuptools
|
||||
-from get_pypi_latest_version import GetPyPiLatestVersion
|
||||
|
||||
|
||||
def read_txt(txt_path: Union[Path, str]) -> List[str]:
|
||||
@@ -25,17 +24,7 @@ def get_readme():
|
||||
|
||||
|
||||
MODULE_NAME = "rapidocr_onnxruntime"
|
||||
-
|
||||
-obtainer = GetPyPiLatestVersion()
|
||||
-latest_version = obtainer(MODULE_NAME)
|
||||
-VERSION_NUM = obtainer.version_add_one(latest_version, add_patch=True)
|
||||
-
|
||||
-if len(sys.argv) > 2:
|
||||
- match_str = " ".join(sys.argv[2:])
|
||||
- matched_versions = obtainer.extract_version(match_str)
|
||||
- if matched_versions:
|
||||
- VERSION_NUM = matched_versions
|
||||
-sys.argv = sys.argv[:2]
|
||||
+VERSION_NUM = "@version@"
|
||||
|
||||
project_urls = {
|
||||
"Documentation": "https://rapidai.github.io/RapidOCRDocs",
|
||||
@@ -15555,6 +15555,8 @@ self: super: with self; {
|
||||
|
||||
rapidocr = callPackage ../development/python-modules/rapidocr { };
|
||||
|
||||
rapidocr-onnxruntime = callPackage ../development/python-modules/rapidocr-onnxruntime { };
|
||||
|
||||
rapt-ble = callPackage ../development/python-modules/rapt-ble { };
|
||||
|
||||
rarfile = callPackage ../development/python-modules/rarfile { inherit (pkgs) libarchive; };
|
||||
|
||||
Reference in New Issue
Block a user