From 4733e42a5a649ef70264059b5de3c9ed31e1f1d9 Mon Sep 17 00:00:00 2001 From: natsukium Date: Wed, 28 Jun 2023 23:55:46 +0900 Subject: [PATCH 1/2] python310Packages.pgvector: init at 0.1.8 --- .../python-modules/pgvector/default.nix | 62 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 64 insertions(+) create mode 100644 pkgs/development/python-modules/pgvector/default.nix diff --git a/pkgs/development/python-modules/pgvector/default.nix b/pkgs/development/python-modules/pgvector/default.nix new file mode 100644 index 000000000000..9713669f159c --- /dev/null +++ b/pkgs/development/python-modules/pgvector/default.nix @@ -0,0 +1,62 @@ +{ lib +, asyncpg +, buildPythonPackage +, django +, fetchFromGitHub +, numpy +, postgresql +, postgresqlTestHook +, psycopg +, psycopg2 +, pytest-asyncio +, pytestCheckHook +, pythonOlder +, sqlalchemy +}: + +buildPythonPackage rec { + pname = "pgvector"; + version = "0.1.8"; + format = "setuptools"; + + disabled = pythonOlder "3.6"; + + src = fetchFromGitHub { + owner = "pgvector"; + repo = "pgvector-python"; + rev = "refs/tags/v${version}"; + hash = "sha256-+0daPPZGVkqfZw0gOZwIl+knL/zZki9fs5kA3dYqPpE="; + }; + + propagatedBuildInputs = [ + numpy + ]; + + nativeCheckInputs = [ + asyncpg + django + (postgresql.withPackages (p: with p; [ pgvector ])) + postgresqlTestHook + psycopg + psycopg2 + pytest-asyncio + pytestCheckHook + sqlalchemy + ]; + + env = { + PGDATABASE = "pgvector_python_test"; + postgresqlEnableTCP = 1; + postgresqlTestUserOptions = "LOGIN SUPERUSER"; + }; + + pythonImportsCheck = [ "pgvector" ]; + + meta = with lib; { + description = "Pgvector support for Python"; + homepage = "https://github.com/pgvector/pgvector-python"; + changelog = "https://github.com/pgvector/pgvector-python/blob/${src.rev}/CHANGELOG.md"; + license = licenses.mit; + maintainers = with maintainers; [ natsukium ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 05d7bde590a0..d8bc60b8797c 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -7586,6 +7586,8 @@ self: super: with self; { pgspecial = callPackage ../development/python-modules/pgspecial { }; + pgvector = callPackage ../development/python-modules/pgvector { }; + phe = callPackage ../development/python-modules/phe { }; phik = callPackage ../development/python-modules/phik { }; From 9a20ab36d9f9f035ac70a21e9059aeecf4f53e23 Mon Sep 17 00:00:00 2001 From: natsukium Date: Thu, 29 Jun 2023 00:03:02 +0900 Subject: [PATCH 2/2] python310Packages.langchain: add pgvector as an optional dependency --- pkgs/development/python-modules/langchain/default.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkgs/development/python-modules/langchain/default.nix b/pkgs/development/python-modules/langchain/default.nix index 07cc537d019f..04b8f9498c27 100644 --- a/pkgs/development/python-modules/langchain/default.nix +++ b/pkgs/development/python-modules/langchain/default.nix @@ -44,6 +44,7 @@ , google-api-python-client , pypdf , networkx +, pgvector , psycopg2 , boto3 , pyowm @@ -189,7 +190,7 @@ buildPythonPackage rec { # nomic # aleph-alpha-client # deeplake - # pgvector + pgvector psycopg2 boto3 pyowm