{ lib, buildPythonPackage, fetchFromGitHub, # build-system hatchling, # dependencies agate, colorama, deepdiff, isodate, jinja2, jsonschema, mashumaro, pathspec, protobuf, python-dateutil, requests, typing-extensions, # tests pytestCheckHook, pytest-mock, pytest-xdist, }: buildPythonPackage rec { pname = "dbt-common"; version = "1.23.0-unstable-2025-04-21"; pyproject = true; src = fetchFromGitHub { owner = "dbt-labs"; repo = pname; rev = "03e09c01f20573975e8e17776a4b7c9088b3f212"; # They don't tag releases hash = "sha256-KqnwlFZZRYuWRflMzjrqCPBnzY9q/pPhceM2DGqz5bw="; }; build-system = [ hatchling ]; pythonRelaxDeps = [ "agate" "deepdiff" # 0.6.x -> 0.7.2 doesn't seem too risky at a glance # https://pypi.org/project/isodate/0.7.2/ "isodate" "protobuf" ]; dependencies = [ agate colorama deepdiff isodate jinja2 jsonschema mashumaro pathspec protobuf python-dateutil requests typing-extensions ] ++ mashumaro.optional-dependencies.msgpack; nativeCheckInputs = [ pytestCheckHook pytest-xdist pytest-mock ]; disabledTests = [ # flaky test: https://github.com/dbt-labs/dbt-common/issues/280 "TestFindMatching" ]; pythonImportsCheck = [ "dbt_common" ]; meta = { description = "Shared common utilities for dbt-core and adapter implementations use"; homepage = "https://github.com/dbt-labs/dbt-common"; changelog = "https://github.com/dbt-labs/dbt-common/blob/${version}/CHANGELOG.md"; license = lib.licenses.asl20; maintainers = [ ]; }; }