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