at master 1.6 kB view raw
1{ 2 lib, 3 buildPythonPackage, 4 fetchFromGitHub, 5 6 # build-system 7 setuptools, 8 9 # dependencies 10 numpy, 11 12 # tests 13 asyncpg, 14 django, 15 peewee, 16 pg8000, 17 postgresql, 18 postgresqlTestHook, 19 psycopg-pool, 20 psycopg, 21 psycopg2, 22 pytest-asyncio, 23 pytestCheckHook, 24 scipy, 25 sqlalchemy, 26 sqlmodel, 27}: 28 29buildPythonPackage rec { 30 pname = "pgvector"; 31 version = "0.4.1"; 32 pyproject = true; 33 34 src = fetchFromGitHub { 35 owner = "pgvector"; 36 repo = "pgvector-python"; 37 tag = "v${version}"; 38 hash = "sha256-QbNzEQctKgxdH1cpMmf2Yg05Q3KOT9tGtK4YSr9GiC4="; 39 }; 40 41 build-system = [ setuptools ]; 42 43 dependencies = [ numpy ]; 44 45 nativeCheckInputs = [ 46 asyncpg 47 django 48 peewee 49 pg8000 50 psycopg 51 psycopg.pool 52 psycopg2 53 psycopg-pool 54 (postgresql.withPackages (p: with p; [ pgvector ])) 55 postgresqlTestHook 56 pytest-asyncio 57 pytestCheckHook 58 scipy 59 sqlalchemy 60 sqlmodel 61 ]; 62 63 env = { 64 PGDATABASE = "pgvector_python_test"; 65 postgresqlEnableTCP = 1; 66 postgresqlTestUserOptions = "LOGIN SUPERUSER"; 67 USER = "test_user"; 68 }; 69 70 disabledTestPaths = [ 71 # DB error 72 "tests/test_pg8000.py" 73 "tests/test_sqlalchemy.py" 74 ]; 75 76 pythonImportsCheck = [ "pgvector" ]; 77 78 __darwinAllowLocalNetworking = true; 79 80 meta = { 81 description = "Pgvector support for Python"; 82 homepage = "https://github.com/pgvector/pgvector-python"; 83 changelog = "https://github.com/pgvector/pgvector-python/blob/${src.rev}/CHANGELOG.md"; 84 license = lib.licenses.mit; 85 maintainers = with lib.maintainers; [ natsukium ]; 86 }; 87}