diff options
Diffstat (limited to 'Biz/Bild')
-rw-r--r-- | Biz/Bild/Builder.nix | 12 | ||||
-rw-r--r-- | Biz/Bild/Deps.nix | 3 | ||||
-rw-r--r-- | Biz/Bild/Deps/interegular.nix | 26 | ||||
-rw-r--r-- | Biz/Bild/Deps/outlines.nix | 49 | ||||
-rw-r--r-- | Biz/Bild/Deps/perscache.nix | 39 | ||||
-rw-r--r-- | Biz/Bild/Sources.json | 36 |
6 files changed, 162 insertions, 3 deletions
diff --git a/Biz/Bild/Builder.nix b/Biz/Bild/Builder.nix index 8f42733..f9eb31d 100644 --- a/Biz/Bild/Builder.nix +++ b/Biz/Bild/Builder.nix @@ -92,16 +92,22 @@ let python = bild.python.buildPythonApplication rec { inherit name src BIZ_ROOT; - propagatedBuildInputs = [ (bild.python.pythonWith (_: langdeps_)) ] ++ sysdeps_; + propagatedBuildInputs = langdeps_ ++ sysdeps_; buildInputs = sysdeps_; - checkInputs = [(bild.python.pythonWith (p: with p; [black mypy])) ruff]; + nativeCheckInputs = [ black mypy ruff ]; checkPhase = '' check() { $@ || { echo "fail: $name: $3"; exit 1; } } + cp ${../../pyproject.toml} ./pyproject.toml check python -m black --quiet --exclude 'setup\.py$' --check . check ${ruff}/bin/ruff check . - check python -m mypy --strict --no-error-summary --exclude 'setup\.py$' . + touch ./py.typed + check python -m mypy \ + --explicit-package-bases \ + --no-error-summary \ + --exclude 'setup\.py$' \ + . check python -m ${mainModule} test ''; preBuild = '' diff --git a/Biz/Bild/Deps.nix b/Biz/Bild/Deps.nix index da18d89..dcb7d50 100644 --- a/Biz/Bild/Deps.nix +++ b/Biz/Bild/Deps.nix @@ -36,6 +36,9 @@ in rec exllama = callPackage ./Deps/exllama.nix { cudaPackages = super.pkgs.cudaPackages_11_7; }; + interegular = callPackage ./Deps/interegular.nix {}; + outlines = callPackage ./Deps/outlines.nix {}; + perscache = callPackage ./Deps/perscache.nix {}; }; }; diff --git a/Biz/Bild/Deps/interegular.nix b/Biz/Bild/Deps/interegular.nix new file mode 100644 index 0000000..8b0bc86 --- /dev/null +++ b/Biz/Bild/Deps/interegular.nix @@ -0,0 +1,26 @@ +{ lib +, sources +, buildPythonPackage +}: + +buildPythonPackage rec { + pname = "interegular"; + version = sources.interegular.rev; + format = "setuptools"; + + src = sources.interegular; + + propagatedBuildInputs = [ ]; + + doCheck = false; # no tests currently + pythonImportsCheck = [ + "interegular" + ]; + + meta = with lib; { + description = "Allows to check regexes for overlaps."; + homepage = "https://github.com/MegaIng/interegular"; + license = licenses.mit; + maintainers = with maintainers; [ bsima ]; + }; +} diff --git a/Biz/Bild/Deps/outlines.nix b/Biz/Bild/Deps/outlines.nix new file mode 100644 index 0000000..013581b --- /dev/null +++ b/Biz/Bild/Deps/outlines.nix @@ -0,0 +1,49 @@ +{ lib +, sources +, buildPythonPackage +, interegular +, jinja2 +, lark +, numpy +, perscache +, pillow +, pydantic +, regex +, scipy +, tenacity +, torch +}: + +buildPythonPackage rec { + pname = "outlines"; + version = sources.outlines.rev; + format = "pyproject"; + + src = sources.outlines; + + propagatedBuildInputs = [ + interegular + jinja2 + lark + numpy + perscache + pillow + pydantic + regex + scipy + tenacity + torch + ]; + + doCheck = false; # no tests currently + pythonImportsCheck = [ + "outlines" + ]; + + meta = with lib; { + description = "Probabilistic Generative Model Programming"; + homepage = "https://github.com/normal-computing/outlines"; + license = licenses.asl20; + maintainers = with maintainers; [ bsima ]; + }; +} diff --git a/Biz/Bild/Deps/perscache.nix b/Biz/Bild/Deps/perscache.nix new file mode 100644 index 0000000..d757e1a --- /dev/null +++ b/Biz/Bild/Deps/perscache.nix @@ -0,0 +1,39 @@ +{ lib +, sources +, buildPythonPackage +, beartype +, cloudpickle +, icontract +, pbr +}: + +buildPythonPackage rec { + pname = "perscache"; + version = sources.perscache.rev; + + src = sources.perscache; + + propagatedBuildInputs = [ + beartype + cloudpickle + icontract + pbr + ]; + PBR_VERSION = version; + + doCheck = false; # no tests currently + pythonImportsCheck = [ + "perscache" + ]; + + meta = with lib; { + description = '' + An easy to use decorator for persistent memoization: like + `functools.lrucache`, but results can be saved in any format to any + storage. + ''; + homepage = "https://github.com/leshchenko1979/perscache"; + license = licenses.mit; + maintainers = with maintainers; [ bsima ]; + }; +} diff --git a/Biz/Bild/Sources.json b/Biz/Bild/Sources.json index e4fcfd4..6cc4d48 100644 --- a/Biz/Bild/Sources.json +++ b/Biz/Bild/Sources.json @@ -64,6 +64,18 @@ "url_template": "https://gitlab.com/kavalogic-inc/inspekt3d/-/archive/<version>/inspekt3d-<version>.tar.gz", "version": "703f52ccbfedad2bf5240bf8183d1b573c9d54ef" }, + "interegular": { + "branch": "master", + "description": "Allows to check regexes for overlaps. Based on greenery by @qntm.", + "homepage": null, + "owner": "MegaIng", + "repo": "interegular", + "rev": "v0.2.1", + "sha256": "14f3jvnczq6qay2qp4rxchbdhkj00qs8kpacl0nrxgr0785km36k", + "type": "tarball", + "url": "https://github.com/MegaIng/interegular/archive/v0.2.1.tar.gz", + "url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz" + }, "llama-cpp": { "branch": "master", "description": "Port of Facebook's LLaMA model in C/C++", @@ -110,6 +122,30 @@ "url": "https://github.com/nixos/nixpkgs/archive/61676e4dcfeeb058f255294bcb08ea7f3bc3ce56.tar.gz", "url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz" }, + "outlines": { + "branch": "main", + "description": "Generative Model Programming", + "homepage": "https://normal-computing.github.io/outlines/", + "owner": "normal-computing", + "repo": "outlines", + "rev": "0.0.8", + "sha256": "1yvx5c5kplmr56nffqcb6ssjnmlikkaw32hxl6i4b607v3s0s6jv", + "type": "tarball", + "url": "https://github.com/normal-computing/outlines/archive/0.0.8.tar.gz", + "url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz" + }, + "perscache": { + "branch": "master", + "description": "An easy to use decorator for persistent memoization: like `functools.lrucache`, but results can be saved in any format to any storage.", + "homepage": null, + "owner": "leshchenko1979", + "repo": "perscache", + "rev": "0.6.1", + "sha256": "0j2775pjll4vw1wmxkjhnb5z6z83x5lhg89abj2d8ivd17n4rhjf", + "type": "tarball", + "url": "https://github.com/leshchenko1979/perscache/archive/0.6.1.tar.gz", + "url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz" + }, "regex-applicative": { "branch": "master", "description": "Regex-based parsing with applicative interface", |