From f41518ce88b7e62e00e361ac07f07cb05f75f65c Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Mon, 25 Aug 2025 00:37:26 +0200 Subject: [PATCH] python3Packages.outlines: 1.2.1 -> 1.2.3 Diff: https://github.com/outlines-dev/outlines/compare/1.2.1...1.2.3 Changelog: https://github.com/dottxt-ai/outlines/releases/tag/1.2.3 --- .../python-modules/outlines/default.nix | 156 ++++++++++++++++-- 1 file changed, 140 insertions(+), 16 deletions(-) diff --git a/pkgs/development/python-modules/outlines/default.nix b/pkgs/development/python-modules/outlines/default.nix index 6cef333055bd..e9162d6bf51b 100644 --- a/pkgs/development/python-modules/outlines/default.nix +++ b/pkgs/development/python-modules/outlines/default.nix @@ -2,37 +2,55 @@ lib, buildPythonPackage, fetchFromGitHub, + + # build-system setuptools, setuptools-scm, + + # dependencies airportsdata, - interegular, cloudpickle, datasets, diskcache, + genson, + interegular, + iso3166, jinja2, jsonschema, + lark, + nest-asyncio, numpy, outlines-core, pycountry, pydantic, - lark, - nest-asyncio, referencing, requests, torch, transformers, + + # tests + anthropic, + google-genai, + jax, + llama-cpp-python, + ollama, + openai, + pytest-asyncio, + pytest-mock, + pytestCheckHook, + tensorflow, }: buildPythonPackage rec { pname = "outlines"; - version = "1.2.1"; + version = "1.2.3"; pyproject = true; src = fetchFromGitHub { owner = "outlines-dev"; repo = "outlines"; tag = version; - hash = "sha256-WmkA+plIouEzleo3yoSxfCjK0E3EfMGQIPl20aIKxl8="; + hash = "sha256-t1YSkFC56De9HkdDJN9WIpKDdHxZRfGRbFOtAiJxKUI="; }; build-system = [ @@ -42,33 +60,139 @@ buildPythonPackage rec { dependencies = [ airportsdata - interegular cloudpickle datasets diskcache + genson + interegular + iso3166 jinja2 jsonschema - outlines-core - pydantic lark nest-asyncio numpy + outlines-core + pycountry + pydantic referencing requests torch transformers - pycountry ]; - checkPhase = '' - export HOME=$(mktemp -d) - python3 -c 'import outlines' - ''; + pythonImportsCheck = [ "outlines" ]; - meta = with lib; { + nativeCheckInputs = [ + anthropic + google-genai + jax + llama-cpp-python + ollama + openai + pytest-asyncio + pytest-mock + pytestCheckHook + tensorflow + ]; + + disabledTests = [ + # Try to dowload models from Hugging Face Hub + "test_application_callable_call" + "test_application_generator_reuse" + "test_application_template_call" + "test_application_template_error" + "test_generator_black_box_async_processor" + "test_generator_black_box_sync_processor" + "test_generator_init_multiple_output_type" + "test_generator_steerable_output_type" + "test_generator_steerable_processor" + "test_llamacpp_type_adapter_format_output_type" + "test_steerable_generator_call" + "test_steerable_generator_init_cfg_output_type" + "test_steerable_generator_init_invalid_output_type" + "test_steerable_generator_init_other_output_type" + "test_steerable_generator_init_valid_processor" + "test_steerable_generator_stream" + "test_transformer_tokenizer_convert_token_to_string" + "test_transformer_tokenizer_decode" + "test_transformer_tokenizer_encode" + "test_transformer_tokenizer_eq" + "test_transformer_tokenizer_getstate_setstate" + "test_transformer_tokenizer_hash" + "test_transformer_tokenizer_init" + + # TypeError: "Could not resolve authentication method. + # Expected either api_key or auth_token to be set. + # Or for one of the `X-Api-Key` or `Authorization` headers to be explicitly omitted. + "test_anthopic_streaming" + "test_anthropic_chat" + "test_anthropic_simple_call" + "test_anthropic_simple_vision" + + # ConnectionError: Failed to connect to Ollama. + "test_ollama_async_chat" + "test_ollama_async_direct" + "test_ollama_async_json" + "test_ollama_async_simple" + "test_ollama_async_simple_vision" + "test_ollama_async_stream" + "test_ollama_async_stream_json" + "test_ollama_chat" + "test_ollama_direct" + "test_ollama_json" + "test_ollama_simple" + "test_ollama_simple_vision" + "test_ollama_stream" + "test_ollama_stream_json" + + # openai.APIConnectionError: Connection error. + "test_openai_async_chat" + "test_openai_async_direct_call" + "test_openai_async_simple_call" + "test_openai_async_simple_call_multiple_samples" + "test_openai_async_simple_json_schema" + "test_openai_async_simple_pydantic" + "test_openai_async_simple_pydantic_refusal" + "test_openai_async_simple_vision" + "test_openai_async_simple_vision_pydantic" + "test_openai_async_streaming" + "test_openai_chat" + "test_openai_direct_call" + "test_openai_simple_call" + "test_openai_simple_call_multiple_samples" + "test_openai_simple_json_schema" + "test_openai_simple_pydantic" + "test_openai_simple_pydantic_refusal" + "test_openai_simple_vision" + "test_openai_simple_vision_pydantic" + "test_openai_streaming" + ]; + + disabledTestPaths = [ + # Try to dowload models from Hugging Face Hub + "tests/backends/test_backends.py" + "tests/backends/test_llguidance.py" + "tests/backends/test_outlines_core.py" + "tests/backends/test_xgrammar.py" + "tests/models/test_llamacpp.py" + "tests/models/test_llamacpp_tokenizer.py" + "tests/models/test_transformers.py" + "tests/models/test_transformers_multimodal.py" + "tests/models/test_transformers_multimodal_type_adapter.py" + "tests/models/test_transformers_type_adapter.py" + + # Requires unpackaged dottxt + "tests/models/test_dottxt.py" + + # ValueError: Missing key inputs argument! To use the Google AI API, provide (`api_key`) arguments. + "tests/models/test_gemini.py" + ]; + + meta = { description = "Structured text generation"; homepage = "https://github.com/outlines-dev/outlines"; - license = licenses.asl20; - maintainers = with maintainers; [ lach ]; + changelog = "https://github.com/dottxt-ai/outlines/releases/tag/${version}"; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ lach ]; }; }