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 postgresql, 17 postgresqlTestHook, 18 psycopg, 19 psycopg2, 20 pytest-asyncio, 21 pytestCheckHook, 22 scipy, 23 sqlalchemy, 24 sqlmodel, 25}: 26 27buildPythonPackage rec { 28 pname = "pgvector"; 29 version = "0.3.6"; 30 pyproject = true; 31 32 src = fetchFromGitHub { 33 owner = "pgvector"; 34 repo = "pgvector-python"; 35 tag = "v${version}"; 36 hash = "sha256-ho0UgamZxsN+pv7QkpsDnN7f+I+SrexA2gVtmJF8/3Q="; 37 }; 38 39 build-system = [ setuptools ]; 40 41 dependencies = [ numpy ]; 42 43 nativeCheckInputs = [ 44 asyncpg 45 django 46 peewee 47 psycopg 48 psycopg2 49 (postgresql.withPackages (p: with p; [ pgvector ])) 50 postgresqlTestHook 51 pytest-asyncio 52 pytestCheckHook 53 scipy 54 sqlalchemy 55 sqlmodel 56 ]; 57 58 env = { 59 PGDATABASE = "pgvector_python_test"; 60 postgresqlEnableTCP = 1; 61 postgresqlTestUserOptions = "LOGIN SUPERUSER"; 62 }; 63 64 pythonImportsCheck = [ "pgvector" ]; 65 66 __darwinAllowLocalNetworking = true; 67 68 meta = { 69 description = "Pgvector support for Python"; 70 homepage = "https://github.com/pgvector/pgvector-python"; 71 changelog = "https://github.com/pgvector/pgvector-python/blob/${src.rev}/CHANGELOG.md"; 72 license = lib.licenses.mit; 73 maintainers = with lib.maintainers; [ natsukium ]; 74 }; 75}