nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 fetchFromGitHub,
3 lib,
4 python3Packages,
5 writableTmpDirAsHomeHook,
6}:
7
8python3Packages.buildPythonApplication rec {
9 pname = "sqlit-tui";
10 version = "1.2.11";
11 pyproject = true;
12
13 src = fetchFromGitHub {
14 owner = "Maxteabag";
15 repo = "sqlit";
16 tag = "v${version}";
17 hash = "sha256-zPkBdGq4PoAWonMq5FWGaz19QWiZsHuVQcW/45ynqq4=";
18 };
19
20 build-system = with python3Packages; [
21 hatch-vcs
22 hatchling
23 setuptools-scm
24 ];
25
26 dependencies = with python3Packages; [
27 docker
28 duckdb
29 keyring
30 mariadb
31 mysql-connector
32 oracledb
33 paramiko
34 psycopg2
35 pyodbc
36 pyperclip
37 sqlparse
38 sshtunnel
39 textual
40 textual-fastdatatable
41 ];
42
43 pythonRelaxDeps = [
44 "paramiko"
45 ];
46
47 nativeCheckInputs = with python3Packages; [
48 pytest-asyncio
49 pytestCheckHook
50 writableTmpDirAsHomeHook
51 ];
52
53 pythonImportsCheck = [ "sqlit" ];
54
55 disabledTests = [
56 "tests/ui/" # UI tests fail in the sandbox
57 "test_installer_cancel_terminates_process" # timeout error
58 "test_detect_strategy_pip_user_fallback" # AssertionError: assert 'externally-managed' == 'pip-user'
59 ];
60
61 meta = {
62 description = "Lightweight TUI for SQL Server, PostgreSQL, MySQL, SQLite, and more";
63 homepage = "https://github.com/Maxteabag/sqlit";
64 changelog = "https://github.com/Maxteabag/sqlit/releases/tag/${src.tag}";
65 license = lib.licenses.mit;
66 maintainers = with lib.maintainers; [ gaelj ];
67 mainProgram = "sqlit";
68 };
69}