1{
2 lib,
3 asyncpg,
4 buildPythonPackage,
5 django,
6 fetchFromGitHub,
7 numpy,
8 peewee,
9 postgresql,
10 postgresqlTestHook,
11 psycopg,
12 psycopg2,
13 pytest-asyncio,
14 pytestCheckHook,
15 pythonOlder,
16 sqlalchemy,
17 sqlmodel,
18}:
19
20buildPythonPackage rec {
21 pname = "pgvector";
22 version = "0.2.4";
23 format = "setuptools";
24
25 disabled = pythonOlder "3.8";
26
27 src = fetchFromGitHub {
28 owner = "pgvector";
29 repo = "pgvector-python";
30 rev = "refs/tags/v${version}";
31 hash = "sha256-XKoaEwLW59pV4Dwis7p2L65XoO2zUEa1kXxz6Lgs2d8=";
32 };
33
34 propagatedBuildInputs = [ numpy ];
35
36 nativeCheckInputs = [
37 asyncpg
38 django
39 peewee
40 (postgresql.withPackages (p: with p; [ pgvector ]))
41 postgresqlTestHook
42 psycopg
43 psycopg2
44 pytest-asyncio
45 pytestCheckHook
46 sqlalchemy
47 sqlmodel
48 ];
49
50 env = {
51 PGDATABASE = "pgvector_python_test";
52 postgresqlEnableTCP = 1;
53 postgresqlTestUserOptions = "LOGIN SUPERUSER";
54 };
55
56 pythonImportsCheck = [ "pgvector" ];
57
58 meta = with lib; {
59 description = "Pgvector support for Python";
60 homepage = "https://github.com/pgvector/pgvector-python";
61 changelog = "https://github.com/pgvector/pgvector-python/blob/${src.rev}/CHANGELOG.md";
62 license = licenses.mit;
63 maintainers = with maintainers; [ natsukium ];
64 };
65}