1{
2 buildPythonPackage,
3 lib,
4 fetchFromGitHub,
5 hatchling,
6 hypothesis,
7 faker,
8 msgspec,
9 sqlalchemy,
10 aiosqlite,
11 typing-extensions,
12 pymongo,
13 pytest-asyncio,
14 pydantic,
15 pytestCheckHook,
16 email-validator,
17}:
18
19buildPythonPackage rec {
20 pname = "polyfactory";
21 version = "2.22.2";
22 pyproject = true;
23
24 src = fetchFromGitHub {
25 owner = "litestar-org";
26 repo = "polyfactory";
27 tag = "v${version}";
28 hash = "sha256-Mm9Yj8yBaH1KQJxQJY/sbrkfL/eDpMyWd/9ThQfmzx8=";
29 };
30
31 build-system = [ hatchling ];
32
33 dependencies = [
34 faker
35 typing-extensions
36 hypothesis
37 pydantic
38 sqlalchemy
39 msgspec
40 pymongo
41 aiosqlite
42 email-validator
43 ];
44
45 nativeCheckInputs = [
46 pytestCheckHook
47 pytest-asyncio
48 ];
49
50 disabledTestPaths = [
51 "tests/test_beanie_factory.py"
52 ];
53
54 disabledTests = [
55 # Unsupported type: LiteralAlias
56 "test_type_alias"
57 # Unsupported type: 'JsonValue' on field '' from class RecursiveTypeModelFactory.
58 "test_recursive_type_annotation"
59 ];
60
61 pythonImportsCheck = [ "polyfactory" ];
62
63 meta = {
64 homepage = "https://polyfactory.litestar.dev/";
65 platforms = lib.platforms.unix;
66 maintainers = with lib.maintainers; [ bot-wxt1221 ];
67 changelog = "https://github.com/litestar-org/polyfactory/releases/tag/${src.tag}";
68 description = "Simple and powerful factories for mock data generation";
69 license = lib.licenses.mit;
70 };
71}