diff --git a/pkgs/development/python-modules/psycopg2-binary/default.nix b/pkgs/development/python-modules/psycopg2-binary/default.nix new file mode 100644 index 000000000000000..5119ee28358bb6b --- /dev/null +++ b/pkgs/development/python-modules/psycopg2-binary/default.nix @@ -0,0 +1,37 @@ +{ buildPythonPackage, psycopg2, hatchling }: + +# Pscycopg2-binary is normally used in Python development to avoid having to build psycopg2 from source. +# In nixpkgs we always want ot build from source whenever possible, but it can still be useful to provide a psycopg2-binary package. +# +# This "fake" package exists to satisfy a dependency on psycopg2-binary, but still use the build from psycopg2. + +buildPythonPackage { + pname = "pscycopg2-binary"; + inherit (psycopg2) version; + + pyproject = true; + + dependencies = [ psycopg2 ]; + optional-dependencies = psycopg2.optional-dependencies or { }; + + # Make a minimal pyproject.toml that can be built + unpackPhase = '' + cat > pyproject.toml << EOF + [project] + name = "psycopg2-binary" + version = "${psycopg2.version}" + dependencies = [ "psycopg2" ] + + [build-system] + requires = ["hatchling"] + build-backend = "hatchling.build" + EOF + + mkdir psycopg2_binary + touch psycopg2_binary/__init__.py + ''; + + build-system = [ hatchling ]; + + inherit (psycopg2) meta; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 7fca1b3036eb77f..94b2f519f00b328 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -10944,6 +10944,8 @@ self: super: with self; { psycopg2cffi = callPackage ../development/python-modules/psycopg2cffi { }; + psycopg2-binary = callPackage ../development/python-modules/psycopg2-binary { }; + psygnal = callPackage ../development/python-modules/psygnal { }; ptable = callPackage ../development/python-modules/ptable { };