1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 pydantic,
6 interegular,
7 pyyaml,
8 poetry-core,
9}:
10
11buildPythonPackage rec {
12 pname = "lm-format-enforcer";
13 version = "0.11.3";
14 pyproject = true;
15
16 src = fetchFromGitHub {
17 owner = "noamgat";
18 repo = "lm-format-enforcer";
19 tag = "v${version}";
20 hash = "sha256-aUZo7Nlk5A9SRyQFFGhy3LAJO29ygRFwNC4WbRuXvYE=";
21 };
22
23 build-system = [ poetry-core ];
24
25 dependencies = [
26 interegular
27 pydantic
28 pyyaml
29 ];
30
31 doCheck = false; # most tests require internet access
32
33 pythonImportsCheck = [ "lmformatenforcer" ];
34
35 meta = with lib; {
36 description = "Enforce the output format (JSON Schema, Regex etc) of a language model";
37 changelog = "https://github.com/noamgat/lm-format-enforcer/releases/tag/${src.tag}";
38 homepage = "https://github.com/noamgat/lm-format-enforcer";
39 license = licenses.mit;
40 maintainers = with maintainers; [ cfhammill ];
41 };
42}