diff --git a/pkgs/by-name/ow/owocr/package.nix b/pkgs/by-name/ow/owocr/package.nix new file mode 100644 index 000000000000..b0900bee6478 --- /dev/null +++ b/pkgs/by-name/ow/owocr/package.nix @@ -0,0 +1,54 @@ +{ + lib, + python3Packages, + fetchFromGitHub, +}: + +python3Packages.buildPythonApplication { + pname = "owocr"; + version = "1.7.5-unstable-2024-06-26"; + pyproject = true; + + src = fetchFromGitHub { + owner = "AuroraWright"; + repo = "owocr"; + rev = "743c64aa16a760f87bf5ea1f54364d828eb3eddb"; # no tags + hash = "sha256-TXQwJRgRp7fZBN0r4XGVtlb+iOMRqEUf+LbfBG/vsr8="; + }; + + build-system = [ python3Packages.setuptools ]; + + dependencies = with python3Packages; [ + fire + jaconv + loguru + numpy + pillow + pyperclipfix + pynput + websockets + desktop-notifier + mss + pysbd + langid + psutil + pywinctl + # extra optional libs for OCR engines + azure-ai-vision-imageanalysis + easyocr + pyjson5 # Google Lens + google-cloud-vision + manga-ocr + rapidocr-onnxruntime + requests # winRT OCR + ]; + + doCheck = false; # no tests + + meta = { + description = "Optical character recognition for Japanese text"; + homepage = "https://github.com/AuroraWright/owocr"; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ sigmanificient ]; + }; +} diff --git a/pkgs/development/python-modules/azure-ai-vision-imageanalysis/default.nix b/pkgs/development/python-modules/azure-ai-vision-imageanalysis/default.nix new file mode 100644 index 000000000000..0c56ff666530 --- /dev/null +++ b/pkgs/development/python-modules/azure-ai-vision-imageanalysis/default.nix @@ -0,0 +1,42 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + setuptools, + azure-core, + isodate, + pytestCheckHook, +}: + +buildPythonPackage rec { + pname = "azure-ai-vision-imageanalysis"; + version = "1.0.0b3"; + pyproject = true; + + src = fetchFromGitHub { + owner = "Azure"; + repo = "azure-sdk-for-python"; + rev = "refs/tags/azure-ai-vision-imageanalysis_${version}"; + hash = "sha256-Hkj9mrjCc8Li8z6e1BjpzANRVx6+DjN0MhTLANMT78E="; + }; + + sourceRoot = "${src.name}/sdk/vision/azure-ai-vision-imageanalysis"; + + build-system = [ setuptools ]; + + dependencies = [ + azure-core + isodate + ]; + + pythonImportsCheck = [ "azure.ai.vision.imageanalysis" ]; + + doCheck = false; # cannot import 'devtools_testutils' + + meta = { + homepage = "https://github.com/Kalmat/PyMonCtl"; + license = lib.licenses.bsd3; + description = "Cross-Platform toolkit to get info on and control monitors connected"; + maintainers = with lib.maintainers; [ sigmanificient ]; + }; +} diff --git a/pkgs/development/python-modules/ewmhlib/default.nix b/pkgs/development/python-modules/ewmhlib/default.nix new file mode 100644 index 000000000000..378aff81da0f --- /dev/null +++ b/pkgs/development/python-modules/ewmhlib/default.nix @@ -0,0 +1,40 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + setuptools, + + xlib, + typing-extensions, +}: + +buildPythonPackage rec { + version = "0.2"; + pname = "ewmhlib"; + pyproject = true; + + src = fetchFromGitHub { + owner = "Kalmat"; + repo = "EWMHlib"; + rev = "refs/tags/v${version}"; + hash = "sha256-NELOgUV8KuN+CqmoSbLYImguHlp8dyhGmJtoxJjOBkA="; + }; + + build-system = [ setuptools ]; + + dependencies = [ + xlib + typing-extensions + ]; + + # requires x session (call to defaultDisplay.screen() on import) + pythonImportsCheck = [ ]; + doCheck = false; + + meta = { + homepage = "https://github.com/Kalmat/EWMHlib"; + license = lib.licenses.bsd3; + description = "Extended Window Manager Hints implementation in Python 3"; + maintainers = with lib.maintainers; [ sigmanificient ]; + }; +} diff --git a/pkgs/development/python-modules/pymonctl/default.nix b/pkgs/development/python-modules/pymonctl/default.nix new file mode 100644 index 000000000000..157eedf6cd9f --- /dev/null +++ b/pkgs/development/python-modules/pymonctl/default.nix @@ -0,0 +1,42 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + setuptools, + + ewmhlib, + xlib, + typing-extensions, +}: + +buildPythonPackage rec { + pname = "pymonctl"; + version = "0.92"; + pyproject = true; + + src = fetchFromGitHub { + owner = "Kalmat"; + repo = "PyMonCtl"; + rev = "refs/tags/v${version}"; + hash = "sha256-eFB+HqYBud836VNEA8q8o1KQKA+GHwSC0YfU1KCbDXw="; + }; + + build-system = [ setuptools ]; + + dependencies = [ + ewmhlib + xlib + typing-extensions + ]; + + # requires x session (use ewmhlib) + pythonImportsCheck = [ ]; + doCheck = false; + + meta = { + homepage = "https://github.com/Kalmat/PyMonCtl"; + license = lib.licenses.bsd3; + description = "Cross-Platform toolkit to get info on and control monitors connected"; + maintainers = with lib.maintainers; [ sigmanificient ]; + }; +} diff --git a/pkgs/development/python-modules/pyperclipfix/default.nix b/pkgs/development/python-modules/pyperclipfix/default.nix new file mode 100644 index 000000000000..2c17833ff0e7 --- /dev/null +++ b/pkgs/development/python-modules/pyperclipfix/default.nix @@ -0,0 +1,41 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + pytestCheckHook, + setuptools, +}: + +buildPythonPackage { + version = "1.9.4-unstable-2024-01-23"; + pname = "pyperclipfix"; + pyproject = true; + + src = fetchFromGitHub { + owner = "AuroraWright"; + repo = "pyperclipfix"; + rev = "8c6c61de35b44ddbc927b37ade5579825db40826"; # no tags + hash = "sha256-sREtSNEMj0Q+XWQsJu/7u9M1UdiocDq/YkrCPGRLhHA="; + }; + + build-system = [ setuptools ]; + + nativeCheckInputs = [ pytestCheckHook ]; + + preCheck = '' + substituteInPlace tests/test_pyperclip.py \ + --replace-fail "pyperclip" "pyperclipfix" + ''; + + pythonImportsCheck = [ "pyperclipfix" ]; + + # test file is trying to import pyperclip + doCheck = false; + + meta = { + homepage = "https://github.com/AuroraWright/pyperclipfix"; + license = lib.licenses.bsd3; + description = "Cross-platform clipboard module with various fixes"; + maintainers = with lib.maintainers; [ sigmanificient ]; + }; +} diff --git a/pkgs/development/python-modules/pywinbox/default.nix b/pkgs/development/python-modules/pywinbox/default.nix new file mode 100644 index 000000000000..6d857e11fa22 --- /dev/null +++ b/pkgs/development/python-modules/pywinbox/default.nix @@ -0,0 +1,42 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + setuptools, + + ewmhlib, + xlib, + typing-extensions, +}: + +buildPythonPackage rec { + pname = "pywinbox"; + version = "0.7"; + pyproject = true; + + src = fetchFromGitHub { + owner = "Kalmat"; + repo = "PyWinBox"; + rev = "refs/tags/v${version}"; + hash = "sha256-Z/gedrIFNpQvzRWqGxMEl5MoEIo9znZz/FZLMVl0Eb4="; + }; + + build-system = [ setuptools ]; + + dependencies = [ + ewmhlib + xlib + typing-extensions + ]; + + # requires x session (use ewmhlib) + pythonImportsCheck = [ ]; + doCheck = false; + + meta = { + homepage = "https://github.com/Kalmat/PyWinBox"; + license = lib.licenses.bsd3; + description = "Cross-Platform and multi-monitor toolkit to handle rectangular areas and windows box"; + maintainers = with lib.maintainers; [ sigmanificient ]; + }; +} diff --git a/pkgs/development/python-modules/pywinctl/default.nix b/pkgs/development/python-modules/pywinctl/default.nix new file mode 100644 index 000000000000..e5e1726e5522 --- /dev/null +++ b/pkgs/development/python-modules/pywinctl/default.nix @@ -0,0 +1,45 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + setuptools, + ewmhlib, + pymonctl, + pywinbox, + xlib, + typing-extensions, +}: + +buildPythonPackage rec { + version = "0.4"; + pname = "pywinctl"; + pyproject = true; + + src = fetchFromGitHub { + owner = "Kalmat"; + repo = "pywinctl"; + rev = "refs/tags/v${version}"; + hash = "sha256-n7P12+8e1pPnJQrsYnRiYlzsKJTIYPH+iF1FuRx8A7M="; + }; + + build-system = [ setuptools ]; + + dependencies = [ + ewmhlib + pymonctl + pywinbox + xlib + typing-extensions + ]; + + # requires x session (use ewmhlib) + pythonImportsCheck = [ ]; + doCheck = false; + + meta = { + homepage = "https://github.com/Kalmat/PyWinCtl"; + license = lib.licenses.bsd3; + description = "Cross-Platform module to get info on and control windows on screen"; + maintainers = with lib.maintainers; [ sigmanificient ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 1f170af2aa66..684703722a82 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -1175,6 +1175,8 @@ self: super: with self; { azure-ai-documentintelligence = callPackage ../development/python-modules/azure-ai-documentintelligence { }; + azure-ai-vision-imageanalysis = callPackage ../development/python-modules/azure-ai-vision-imageanalysis { }; + azure-appconfiguration = callPackage ../development/python-modules/azure-appconfiguration { }; azure-applicationinsights = callPackage ../development/python-modules/azure-applicationinsights { }; @@ -4409,6 +4411,8 @@ self: super: with self; { ewmh = callPackage ../development/python-modules/ewmh { }; + ewmhlib = callPackage ../development/python-modules/ewmhlib { }; + example-robot-data = toPythonModule (pkgs.example-robot-data.override { pythonSupport = true; python3Packages = self; @@ -12439,6 +12443,8 @@ self: super: with self; { pymodbus = callPackage ../development/python-modules/pymodbus { }; + pymonctl = callPackage ../development/python-modules/pymonctl { }; + pymongo = callPackage ../development/python-modules/pymongo { }; pymongo-inmemory = callPackage ../development/python-modules/pymongo-inmemory { }; @@ -12639,6 +12645,8 @@ self: super: with self; { pyperclip = callPackage ../development/python-modules/pyperclip { }; + pyperclipfix = callPackage ../development/python-modules/pyperclipfix { }; + pyperscan = callPackage ../development/python-modules/pyperscan { }; pyperf = callPackage ../development/python-modules/pyperf { }; @@ -13908,6 +13916,10 @@ self: super: with self; { pywilight = callPackage ../development/python-modules/pywilight { }; + pywinbox = callPackage ../development/python-modules/pywinbox { }; + + pywinctl = callPackage ../development/python-modules/pywinctl { }; + pywinrm = callPackage ../development/python-modules/pywinrm { }; pywizlight = callPackage ../development/python-modules/pywizlight { };