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}