diff --git a/pkgs/development/python-modules/fnllm/default.nix b/pkgs/development/python-modules/fnllm/default.nix index df778008efef..94f182abc218 100644 --- a/pkgs/development/python-modules/fnllm/default.nix +++ b/pkgs/development/python-modules/fnllm/default.nix @@ -1,34 +1,42 @@ { lib, - aiolimiter, - azure-identity, - azure-storage-blob, buildPythonPackage, fetchPypi, + pythonAtLeast, + + # build-system hatchling, + uv-dynamic-versioning, + + # dependencies + aiolimiter, httpx, json-repair, - openai, - polyfactory, pydantic, + tenacity, + + # optional-dependencies + # azure + azure-identity, + azure-storage-blob, + # openai + openai, + tiktoken, + + # tests + polyfactory, pytest-asyncio, pytest-cov-stub, pytestCheckHook, - pythonOlder, - tenacity, - tiktoken, - uv-dynamic-versioning, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "fnllm"; version = "0.4.1"; pyproject = true; - disabled = pythonOlder "3.11"; - src = fetchPypi { - inherit pname version; + inherit (finalAttrs) pname version; hash = "sha256-gKdFBpNpG/CDLhKi1wQgZHv+o1pDy5HEqcteLzkXK1A="; }; @@ -62,7 +70,7 @@ buildPythonPackage rec { pytest-cov-stub pytestCheckHook ] - ++ lib.concatAttrValues optional-dependencies; + ++ lib.concatAttrValues finalAttrs.passthru.optional-dependencies; pythonImportsCheck = [ "fnllm" ]; @@ -81,6 +89,10 @@ buildPythonPackage rec { "test_clear" "test_handles_common_errors" "test_children" + ] + ++ lib.optionals (pythonAtLeast "3.14") [ + # RuntimeError: There is no current event loop in thread 'MainThread' + "test_call_batch_raises_if_response_length_mismatch" ]; meta = { @@ -89,4 +101,4 @@ buildPythonPackage rec { license = lib.licenses.mit; maintainers = with lib.maintainers; [ fab ]; }; -} +}) diff --git a/pkgs/development/python-modules/litestar/default.nix b/pkgs/development/python-modules/litestar/default.nix index 06bc2b7720ff..2b1da81ceb9a 100644 --- a/pkgs/development/python-modules/litestar/default.nix +++ b/pkgs/development/python-modules/litestar/default.nix @@ -2,6 +2,7 @@ lib, buildPythonPackage, fetchFromGitHub, + pythonAtLeast, # build-system hatchling, @@ -31,7 +32,6 @@ prometheus-client, psutil, opentelemetry-instrumentation-asgi, - psycopg, pydantic-extra-types, pydantic, email-validator, @@ -47,6 +47,7 @@ # valkey, # tests + addBinToPathHook, httpx-sse, pytest-asyncio, pytest-lazy-fixtures, @@ -59,7 +60,7 @@ versionCheckHook, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "litestar"; version = "2.18.0"; pyproject = true; @@ -67,7 +68,7 @@ buildPythonPackage rec { src = fetchFromGitHub { owner = "litestar-org"; repo = "litestar"; - tag = "v${version}"; + tag = "v${finalAttrs.version}"; hash = "sha256-bqj7tvCNeMEEJKDF3g2beKfd0urbNszrbLdF96JygYk="; }; @@ -127,6 +128,7 @@ buildPythonPackage rec { }; nativeCheckInputs = [ + addBinToPathHook httpx-sse pytest-asyncio pytest-lazy-fixtures @@ -144,15 +146,16 @@ buildPythonPackage rec { __darwinAllowLocalNetworking = true; - preCheck = '' - export PATH=$out/bin:$PATH - ''; - enabledTestPaths = [ # Follow GitHub CI "docs/examples/" ]; + pytestFlags = lib.optionals (pythonAtLeast "3.14") [ + # UserWarning: Core Pydantic V1 functionality isn't compatible with Python 3.14 or greater. + "-Wignore::UserWarning" + ]; + disabledTests = [ # StartupError "test_subprocess_async_client" @@ -161,10 +164,10 @@ buildPythonPackage rec { meta = { description = "Production-ready, Light, Flexible and Extensible ASGI API framework"; homepage = "https://litestar.dev/"; - changelog = "https://github.com/litestar-org/litestar/releases/tag/${src.tag}"; + changelog = "https://github.com/litestar-org/litestar/releases/tag/${finalAttrs.src.tag}"; license = lib.licenses.mit; mainProgram = "litestar"; maintainers = with lib.maintainers; [ bot-wxt1221 ]; platforms = lib.platforms.unix; }; -} +}) diff --git a/pkgs/development/python-modules/polyfactory/default.nix b/pkgs/development/python-modules/polyfactory/default.nix index 91b6ba6eb535..3a1208d79cc8 100644 --- a/pkgs/development/python-modules/polyfactory/default.nix +++ b/pkgs/development/python-modules/polyfactory/default.nix @@ -1,22 +1,29 @@ { - buildPythonPackage, lib, + buildPythonPackage, fetchFromGitHub, + pythonAtLeast, + + # build-system hatchling, - hypothesis, - faker, - msgspec, - sqlalchemy, + + # dependencies aiosqlite, - typing-extensions, - pymongo, - pytest-asyncio, - pydantic, - pytestCheckHook, email-validator, + faker, + hypothesis, + msgspec, + pydantic, + pymongo, + sqlalchemy, + typing-extensions, + + # tests + pytest-asyncio, + pytestCheckHook, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "polyfactory"; version = "3.2.0"; pyproject = true; @@ -24,22 +31,22 @@ buildPythonPackage rec { src = fetchFromGitHub { owner = "litestar-org"; repo = "polyfactory"; - tag = "v${version}"; + tag = "v${finalAttrs.version}"; hash = "sha256-J/CHf85jomybMp2U9l5kbD5q0MtYlY9hZkjxjS2jXvg="; }; build-system = [ hatchling ]; dependencies = [ - faker - typing-extensions - hypothesis - pydantic - sqlalchemy - msgspec - pymongo aiosqlite email-validator + faker + hypothesis + msgspec + pydantic + pymongo + sqlalchemy + typing-extensions ]; nativeCheckInputs = [ @@ -48,14 +55,35 @@ buildPythonPackage rec { ]; disabledTestPaths = [ + # Requires unpackaged 'beanie' "tests/test_beanie_factory.py" ]; + enabledTestPaths = [ + "tests/test_msgspec_factory.py" + ]; + disabledTests = [ # Unsupported type: LiteralAlias "test_type_alias" # Unsupported type: 'JsonValue' on field '' from class RecursiveTypeModelFactory. "test_recursive_type_annotation" + ] + ++ lib.optionals (pythonAtLeast "3.14") [ + # AttributeError: 'Foo' object has no attribute 'set_field' + "test_other_basic_types" + + # KeyError: 'foo_field' + "test_with_nested_struct" + + # AttributeError: 'Foo' object has no attribute 'unset' + "test_msgspec_types" + + # Failed: DID NOT RAISE + "test_datetime_constraints" + + # assert == 10 + "test_use_default_with_callable_default" ]; pythonImportsCheck = [ "polyfactory" ]; @@ -64,8 +92,8 @@ buildPythonPackage rec { homepage = "https://polyfactory.litestar.dev/"; platforms = lib.platforms.unix; maintainers = with lib.maintainers; [ bot-wxt1221 ]; - changelog = "https://github.com/litestar-org/polyfactory/releases/tag/${src.tag}"; + changelog = "https://github.com/litestar-org/polyfactory/releases/tag/${finalAttrs.src.tag}"; description = "Simple and powerful factories for mock data generation"; license = lib.licenses.mit; }; -} +})