1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5
6 # build-system
7 setuptools,
8 setuptools-scm,
9
10 # dependencies
11 python-dateutil,
12
13 # tests
14 pytestCheckHook,
15 duckdb,
16}:
17
18buildPythonPackage rec {
19 pname = "sqlglot";
20 version = "27.6.0";
21 pyproject = true;
22
23 src = fetchFromGitHub {
24 repo = "sqlglot";
25 owner = "tobymao";
26 tag = "v${version}";
27 hash = "sha256-/+hrbyAQJHbKzjaBr9ssuXuKpbCSWAarLa5oX5NqfOc=";
28 };
29
30 build-system = [
31 setuptools
32 setuptools-scm
33 ];
34
35 dependencies = [
36 # Optional dependency used in the sqlglot optimizer
37 python-dateutil
38 ];
39
40 nativeCheckInputs = [
41 pytestCheckHook
42 duckdb
43 ];
44
45 pythonImportsCheck = [ "sqlglot" ];
46
47 meta = {
48 description = "No dependency Python SQL parser, transpiler, and optimizer";
49 homepage = "https://github.com/tobymao/sqlglot";
50 changelog = "https://github.com/tobymao/sqlglot/blob/v${version}/CHANGELOG.md";
51 license = lib.licenses.mit;
52 maintainers = with lib.maintainers; [ cpcloud ];
53 };
54}