summaryrefslogtreecommitdiff
path: root/Biz/Bild
diff options
context:
space:
mode:
Diffstat (limited to 'Biz/Bild')
-rw-r--r--Biz/Bild/Builder.nix12
-rw-r--r--Biz/Bild/Deps.nix3
-rw-r--r--Biz/Bild/Deps/interegular.nix26
-rw-r--r--Biz/Bild/Deps/outlines.nix49
-rw-r--r--Biz/Bild/Deps/perscache.nix39
-rw-r--r--Biz/Bild/Sources.json36
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",