Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{
2 lib,
3 aiohttp,
4 azure-kusto-data,
5 azure-storage-blob,
6 azure-storage-queue,
7 buildPythonPackage,
8 fetchFromGitHub,
9 pandas,
10 pytest-asyncio,
11 pytest-xdist,
12 pytestCheckHook,
13 responses,
14 uv-build,
15 tenacity,
16}:
17
18buildPythonPackage rec {
19 pname = "azure-kusto-ingest";
20 version = "6.0.1";
21 pyproject = true;
22
23 src = fetchFromGitHub {
24 owner = "Azure";
25 repo = "azure-kusto-python";
26 tag = "v${version}";
27 hash = "sha256-ZwPF6YLb2w+Thds36UeQdx64SJqKHFXSQVv39YYQOHA=";
28 };
29
30 sourceRoot = "${src.name}/${pname}";
31
32 postPatch = ''
33 substituteInPlace pyproject.toml \
34 --replace-fail "uv_build>=0.8.9,<0.9.0" uv-build
35 '';
36
37 build-system = [ uv-build ];
38
39 dependencies = [
40 azure-kusto-data
41 azure-storage-blob
42 azure-storage-queue
43 tenacity
44 ];
45
46 pythonRelaxDeps = [
47 "azure-storage-blob"
48 "azure-storage-queue"
49 ];
50
51 optional-dependencies = {
52 pandas = [ pandas ];
53 };
54
55 nativeCheckInputs = [
56 aiohttp
57 pytest-asyncio
58 pytest-xdist
59 pytestCheckHook
60 responses
61 ]
62 ++ lib.concatAttrValues optional-dependencies;
63
64 pythonImportsCheck = [ "azure.kusto.ingest" ];
65
66 disabledTestPaths = [
67 # Tests require network access
68 "tests/test_e2e_ingest.py"
69 ];
70
71 meta = {
72 description = "Module for Kusto Ingest";
73 homepage = "https://github.com/Azure/azure-kusto-python/tree/master/azure-kusto-ingest";
74 changelog = "https://github.com/Azure/azure-kusto-python/releases/tag/${src.tag}";
75 license = lib.licenses.mit;
76 maintainers = with lib.maintainers; [ pyrox0 ];
77 };
78}