{ lib, buildPythonPackage, clickhouse-cityhash, cython, fetchFromGitHub, freezegun, lz4, mock, pytestCheckHook, pytest-xdist, pytz, setuptools, tzlocal, zstd, }: buildPythonPackage (finalAttrs: { pname = "clickhouse-driver"; version = "0.2.11"; pyproject = true; __structuredAttrs = true; # pypi source doesn't contain tests src = fetchFromGitHub { owner = "mymarilyn"; repo = "clickhouse-driver"; tag = finalAttrs.version; hash = "sha256-wXWKTmkzK2UDbNPPzO4yQdAGDILtddE/bQGxznqPANI="; }; build-system = [ setuptools ]; nativeBuildInputs = [ cython ]; dependencies = [ clickhouse-cityhash lz4 pytz tzlocal zstd ]; nativeCheckInputs = [ freezegun mock pytest-xdist pytestCheckHook ]; postPatch = '' substituteInPlace setup.py \ --replace-fail "lz4<=3.0.1" "lz4<=4" ''; # remove source to prevent pytest testing source instead of the build artifacts # (the source doesn't contain the extension modules) preCheck = '' rm -rf clickhouse_driver ''; # some test in test_buffered_reader.py doesn't seem to return disabledTestPaths = [ "tests/test_buffered_reader.py" ]; # most tests require `clickhouse` # TODO: enable tests after `clickhouse` unbroken doCheck = false; pythonImportsCheck = [ "clickhouse_driver" ]; meta = { description = "Python driver with native interface for ClickHouse"; homepage = "https://github.com/mymarilyn/clickhouse-driver"; license = lib.licenses.mit; maintainers = with lib.maintainers; [ breakds ]; }; })