1{
2 lib,
3 stdenv,
4 buildPythonPackage,
5 fetchPypi,
6 cli-helpers,
7 click,
8 configobj,
9 prompt-toolkit,
10 psycopg,
11 pygments,
12 sqlparse,
13 pgspecial,
14 setproctitle,
15 keyring,
16 pendulum,
17 pytestCheckHook,
18 setuptools,
19 sshtunnel,
20 mock,
21}:
22
23# this is a pythonPackage because of the ipython line magics in pgcli.magic
24# integrating with ipython-sql
25buildPythonPackage rec {
26 pname = "pgcli";
27 version = "4.1.0";
28 pyproject = true;
29
30 src = fetchPypi {
31 inherit pname version;
32 hash = "sha256-P9Fsi1G9AUX/YYwscyZLzYVLqGaqIG1PB2hR9kG5shU=";
33 };
34
35 propagatedBuildInputs = [
36 cli-helpers
37 click
38 configobj
39 prompt-toolkit
40 psycopg
41 pygments
42 sqlparse
43 pgspecial
44 setproctitle
45 keyring
46 pendulum
47 sshtunnel
48 ];
49
50 nativeBuildInputs = [ setuptools ];
51 nativeCheckInputs = [
52 pytestCheckHook
53 mock
54 ];
55
56 disabledTests = [
57 # requires running postgres
58 "test_application_name_in_env"
59 ] ++ lib.optionals stdenv.isDarwin [ "test_application_name_db_uri" ];
60
61 meta = with lib; {
62 description = "Command-line interface for PostgreSQL";
63 mainProgram = "pgcli";
64 longDescription = ''
65 Rich command-line interface for PostgreSQL with auto-completion and
66 syntax highlighting.
67 '';
68 homepage = "https://pgcli.com";
69 changelog = "https://github.com/dbcli/pgcli/raw/v${version}/changelog.rst";
70 license = licenses.bsd3;
71 maintainers = with maintainers; [
72 dywedir
73 SuperSandro2000
74 ];
75 };
76}