supabase-py: 2.27.2 -> 2.28.0 (#494511)

This commit is contained in:
Sandro
2026-03-08 02:14:36 +00:00
committed by GitHub
8 changed files with 266 additions and 84 deletions
+5
View File
@@ -16024,6 +16024,11 @@
githubId = 401263;
keys = [ { fingerprint = "1147 43F1 E707 6F3E 6F4B 2C96 B9A8 B592 F126 F8E8"; } ];
};
macbucheron = {
name = "Nathan Deprat";
github = "Macbucheron1";
githubId = 95475157;
};
macronova = {
name = "Sicheng Pan";
email = "trivial@invariantspace.com";
@@ -1,61 +1,68 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
deprecation,
h2,
lib,
uv-build,
httpx,
poetry-core,
pydantic,
yarl,
strenum,
deprecation,
pytest-asyncio,
pytest-cov-stub,
pytestCheckHook,
pythonPackages,
unasync,
}:
buildPythonPackage rec {
pname = "postgrest";
version = "1.1.1";
version = "2.28.0";
pyproject = true;
src = fetchFromGitHub {
owner = "supabase";
repo = "postgrest-py";
repo = "supabase-py";
tag = "v${version}";
hash = "sha256-WTS8J8XhHPSe6N1reY3j2QYHaRY1goiVoqQCUKSgbVY=";
hash = "sha256-nK+IZRrKjNy84EC8krBvAZll5E0+jV3bLJh8qIVRElI=";
};
build-system = [ poetry-core ];
sourceRoot = "${src.name}/src/postgrest";
build-system = [ uv-build ];
dependencies = [
deprecation
httpx
deprecation
pydantic
];
strenum
yarl
]
++ httpx.optional-dependencies.http2;
postPatch = ''
substituteInPlace pyproject.toml \
--replace-fail 'uv_build>=0.8.3,<0.9.0' 'uv_build>=0.8.3'
'';
nativeCheckInputs = [
pytestCheckHook
h2
];
# Lots of tests fail without network access
disabledTestPaths = [
"tests/_async/test_client.py"
"tests/_async/test_filter_request_builder.py"
"tests/_async/test_filter_request_builder_integration.py"
"tests/_async/test_query_request_builder.py"
"tests/_async/test_request_builder.py"
"tests/_sync/test_filter_request_builder_integration.py"
];
disabledTests = [
"test_params_purged_after_execute"
pytest-asyncio
pytest-cov-stub
unasync
];
pythonImportsCheck = [ "postgrest" ];
disabledTestPaths = [
"tests/_sync/"
"tests/_async/"
];
meta = {
description = "PostgREST client for Python, provides an ORM interface to PostgREST";
homepage = "https://github.com/supabase/postgrest-py";
changelog = "https://github.com/supabase/postgrest-py/releases/tag/v${version}";
description = "Client library for Supabase Functions";
homepage = "https://github.com/supabase/supabase-py";
changelog = "https://github.com/supabase/supabase-py/blob/v${src.tag}/CHANGELOG.md";
maintainers = with lib.maintainers; [ macbucheron ];
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ jherland ];
};
}
@@ -1,58 +1,65 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
lib,
poetry-core,
pydantic,
typing-extensions,
websockets,
aiohttp,
websockets,
typing-extensions,
pydantic,
pytest-asyncio,
pytestCheckHook,
pytest-cov-stub,
python-dotenv,
pytestCheckHook,
pythonRelaxDepsHook,
}:
buildPythonPackage rec {
pname = "realtime-py";
version = "2.7.0";
pname = "realtime";
version = "2.28.0";
pyproject = true;
src = fetchFromGitHub {
owner = "supabase";
repo = "realtime-py";
repo = "supabase-py";
tag = "v${version}";
hash = "sha256-cWWgVs+ZNRvBje3kuDQS5L5utkY3z7MluGFNmjf9LFc=";
hash = "sha256-nK+IZRrKjNy84EC8krBvAZll5E0+jV3bLJh8qIVRElI=";
};
sourceRoot = "${src.name}/src/realtime";
build-system = [ poetry-core ];
dependencies = [
pydantic
typing-extensions
websockets
typing-extensions
pydantic
];
pythonRelaxDeps = [
"websockets"
];
nativeBuildInputs = [ pythonRelaxDepsHook ];
pythonRelaxDeps = [ "websockets" ];
nativeCheckInputs = [
aiohttp
pytest-asyncio
pytestCheckHook
pytest-cov-stub
python-dotenv
pytest-asyncio
];
pythonImportsCheck = [ "realtime" ];
build-system = [ poetry-core ];
# requires running Supabase
doCheck = false;
disabledTestPaths = [
"tests/test_connection.py"
"tests/test_presence.py"
];
meta = {
changelog = "https://github.com/supabase/realtime-py/blob/${src.tag}/CHANGELOG.md";
homepage = "https://github.com/supabase/realtime-py";
license = lib.licenses.mit;
description = "Python Realtime Client for Supabase";
description = "Client library for Supabase Functions";
homepage = "https://github.com/supabase/supabase-py";
changelog = "https://github.com/supabase/supabase-py/blob/v${src.tag}/CHANGELOG.md";
maintainers = with lib.maintainers; [ siegema ];
license = lib.licenses.mit;
};
}
@@ -1,43 +1,68 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
poetry-core,
python-dateutil,
lib,
uv-build,
httpx,
h2,
pydantic,
yarl,
pyiceberg,
deprecation,
pytest-asyncio,
pytest-cov-stub,
python-dotenv,
pytestCheckHook,
}:
buildPythonPackage rec {
pname = "storage3";
version = "0.12.2";
version = "2.28.0";
pyproject = true;
src = fetchFromGitHub {
owner = "supabase";
repo = "storage-py";
repo = "supabase-py";
tag = "v${version}";
hash = "sha256-ACilbwSCNEsXyr2lUTkhOgfw/SiTnwj+rA07tnuFy5A=";
hash = "sha256-nK+IZRrKjNy84EC8krBvAZll5E0+jV3bLJh8qIVRElI=";
};
dependencies = [
python-dateutil
httpx
h2
deprecation
];
sourceRoot = "${src.name}/src/storage";
build-system = [ poetry-core ];
build-system = [ uv-build ];
dependencies = [
httpx
pydantic
yarl
pyiceberg
deprecation
]
++ httpx.optional-dependencies.http2;
postPatch = ''
substituteInPlace pyproject.toml \
--replace-fail 'uv_build>=0.8.3,<0.9.0' 'uv_build>=0.8.3'
'';
nativeCheckInputs = [
pytestCheckHook
pytest-asyncio
pytest-cov-stub
python-dotenv
];
pythonImportsCheck = [ "storage3" ];
# tests fail due to mock server not starting
disabledTestPaths = [
"tests/_sync/"
"tests/_async/"
];
meta = {
homepage = "https://github.com/supabase/storage-py";
license = lib.licenses.mit;
description = "Supabase Storage client for Python.";
description = "Client library for Supabase Functions";
homepage = "https://github.com/supabase/supabase-py";
changelog = "https://github.com/supabase/supabase-py/blob/v${src.tag}/CHANGELOG.md";
maintainers = with lib.maintainers; [ siegema ];
license = lib.licenses.mit;
};
}
@@ -0,0 +1,66 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
uv-build,
httpx,
pydantic,
pyjwt,
pytestCheckHook,
faker,
respx,
pytest-mock,
pytest-asyncio,
}:
buildPythonPackage rec {
pname = "supabase-auth";
version = "2.28.0";
pyproject = true;
src = fetchFromGitHub {
owner = "supabase";
repo = "supabase-py";
tag = "v${version}";
hash = "sha256-nK+IZRrKjNy84EC8krBvAZll5E0+jV3bLJh8qIVRElI=";
};
sourceRoot = "${src.name}/src/auth";
build-system = [ uv-build ];
dependencies = [
httpx
pydantic
pyjwt
]
++ httpx.optional-dependencies.http2
++ pyjwt.optional-dependencies.crypto;
postPatch = ''
substituteInPlace pyproject.toml \
--replace-fail 'uv_build>=0.8.3,<0.9.0' 'uv_build>=0.8.3'
'';
nativeCheckInputs = [
pytestCheckHook
faker
respx
pytest-mock
pytest-asyncio
];
disabledTestPaths = [
"tests/_sync/"
"tests/_async/"
];
pythonImportsCheck = [ "supabase_auth" ];
meta = {
description = "Client library for Supabase Auth";
homepage = "https://github.com/supabase/supabase-py/";
changelog = "https://github.com/supabase/supabase-py/blob/v${src.tag}/CHANGELOG.md";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ macbucheron ];
};
}
@@ -0,0 +1,60 @@
{
buildPythonPackage,
fetchFromGitHub,
httpx,
lib,
pyjwt,
pytest-asyncio,
pytestCheckHook,
strenum,
uv-build,
yarl,
}:
buildPythonPackage rec {
pname = "supabase-functions";
version = "2.28.0";
pyproject = true;
src = fetchFromGitHub {
owner = "supabase";
repo = "supabase-py";
tag = "v${version}";
hash = "sha256-nK+IZRrKjNy84EC8krBvAZll5E0+jV3bLJh8qIVRElI=";
};
sourceRoot = "${src.name}/src/functions";
build-system = [ uv-build ];
dependencies = [
strenum
yarl
httpx
]
++ httpx.optional-dependencies.http2;
# Upstream pins `uv_build>=0.8.3,<0.9.0`, but nixpkgs ships `uv-build` 0.9.x.
# Relax the upper bound to accept the 0.9 series, consistent with uvs documentation examples:
# https://docs.astral.sh/uv/concepts/build-backend/#using-the-uv-build-backend
postPatch = ''
substituteInPlace pyproject.toml \
--replace-fail 'uv_build>=0.8.3,<0.9.0' 'uv_build>=0.8.3'
'';
nativeCheckInputs = [
pytestCheckHook
pyjwt
pytest-asyncio
];
pythonImportsCheck = [ "supabase_functions" ];
meta = {
description = "Client library for Supabase Functions";
homepage = "https://github.com/supabase/supabase-py";
changelog = "https://github.com/supabase/supabase-py/blob/v${src.tag}/CHANGELOG.md";
maintainers = with lib.maintainers; [ macbucheron ];
license = lib.licenses.mit;
};
}
@@ -2,50 +2,60 @@
lib,
buildPythonPackage,
fetchFromGitHub,
poetry-core,
gotrue,
postgrest,
uv-build,
realtime,
storage3,
supafunc,
supabase-functions,
supabase-auth,
postgrest,
httpx,
yarl,
storage3,
pytestCheckHook,
python-dotenv,
pytest-asyncio,
pytest-cov-stub,
}:
buildPythonPackage rec {
pname = "supabase";
version = "2.27.2";
version = "2.28.0";
pyproject = true;
src = fetchFromGitHub {
owner = "supabase";
repo = "supabase-py";
tag = "v${version}";
hash = "sha256-TRATa+lDRm2MDuARXfBRWnWYUak8i1fW7rr5ujWN8TY=";
hash = "sha256-nK+IZRrKjNy84EC8krBvAZll5E0+jV3bLJh8qIVRElI=";
};
build-system = [ poetry-core ];
sourceRoot = "${src.name}/src/supabase";
# FIXME remove for supabase >= 2.18.0
pythonRelaxDeps = true;
build-system = [ uv-build ];
doCheck = true;
dependencies = [
postgrest
realtime
gotrue
supabase-auth
supabase-functions
postgrest
httpx
yarl
storage3
supafunc
];
nativeBuildInputs = [
pytestCheckHook
python-dotenv
pytest-asyncio
pytest-cov-stub
];
postPatch = ''
substituteInPlace pyproject.toml \
--replace-fail 'uv_build>=0.8.3,<0.9.0' 'uv_build>=0.8.3'
'';
pythonImportsCheck = [ "supabase" ];
meta = {
+3 -1
View File
@@ -18626,7 +18626,9 @@ self: super: with self; {
supabase = callPackage ../development/python-modules/supabase { };
supabase-functions = self.supafunc;
supabase-auth = callPackage ../development/python-modules/supabase-auth { };
supabase-functions = callPackage ../development/python-modules/supabase-functions { };
supafunc = callPackage ../development/python-modules/supafunc { };