diff --git a/pkgs/development/python-modules/dbt-common/default.nix b/pkgs/development/python-modules/dbt-common/default.nix index b97f071343e3..9b037341b490 100644 --- a/pkgs/development/python-modules/dbt-common/default.nix +++ b/pkgs/development/python-modules/dbt-common/default.nix @@ -1,44 +1,58 @@ { lib, - agate, + fetchFromGitHub, buildPythonPackage, + pythonOlder, + + # build-system + hatchling, + + # dependencies + agate, colorama, deepdiff, - fetchPypi, - hatchling, isodate, jinja2, jsonschema, mashumaro, pathspec, protobuf, - pytest-mock, - pytest-xdist, - pytestCheckHook, python-dateutil, - pythonOlder, requests, typing-extensions, + + # tests + pytestCheckHook, + pytest-mock, + pytest-xdist, + numpy, }: buildPythonPackage rec { pname = "dbt-common"; - version = "1.8.0"; + version = "1.11.0"; pyproject = true; disabled = pythonOlder "3.8"; - src = fetchPypi { - pname = "dbt_common"; - inherit version; - hash = "sha256-ehZ+a3zznnWMY9NJx9LfRtkV1vHiIH0HEhsYWfMbmb4="; + src = fetchFromGitHub { + owner = "dbt-labs"; + repo = "dbt-common"; + # Unfortunatly, upstream doesn't tag commits on GitHub, and the pypi source + # doesn't include tests. TODO: Write an update script that will detect the + # version from `dbt_common/__about__.py`. + rev = "ed11c6ceb4f29d4a79489469309d9ce9dd1757e6"; + hash = "sha256-JA6hFQwF7h1tXyCxBVKGgyevdTxyYeN3I/Bwy9uoC0Y="; }; - build-system = [ hatchling ]; + build-system = [ + hatchling + ]; pythonRelaxDeps = [ "protobuf" "agate" + "deepdiff" ]; dependencies = [ @@ -56,15 +70,17 @@ buildPythonPackage rec { typing-extensions ] ++ mashumaro.optional-dependencies.msgpack; - # Upstream stopped to tag the source fo rnow - doCheck = false; - nativeCheckInputs = [ - pytest-mock - pytest-xdist pytestCheckHook + pytest-xdist + pytest-mock + ]; + disabledTests = [ + # Assertion errors (TODO: Notify upstream) + "test_create_print_json" + "test_events" + "test_extra_dict_on_event" ]; - pythonImportsCheck = [ "dbt_common" ]; meta = { diff --git a/pkgs/development/python-modules/deepdiff/default.nix b/pkgs/development/python-modules/deepdiff/default.nix index ff583a572018..3b46cf4aac9c 100644 --- a/pkgs/development/python-modules/deepdiff/default.nix +++ b/pkgs/development/python-modules/deepdiff/default.nix @@ -2,10 +2,20 @@ lib, buildPythonPackage, fetchFromGitHub, + pythonOlder, + + # build-system + setuptools, + + # dependencies click, - ordered-set, + orderly-set, orjson, + + # optional-dependencies clevercsv, + + # tests jsonpickle, numpy, pytestCheckHook, @@ -13,13 +23,14 @@ pyyaml, toml, tomli-w, - pythonOlder, + polars, + pandas, }: buildPythonPackage rec { pname = "deepdiff"; - version = "7.0.1"; - format = "setuptools"; + version = "8.0.1"; + pyproject = true; disabled = pythonOlder "3.7"; @@ -27,19 +38,24 @@ buildPythonPackage rec { owner = "seperman"; repo = "deepdiff"; rev = "refs/tags/${version}"; - hash = "sha256-HqmAE5sLwyjyUahIUeRIJW0c5eliq/qEzE2FydHwc70="; + hash = "sha256-e6eTPSGoJ8r/4vGi/iGVFW/BruBADtVMtnO001Qs0IQ="; }; - postPatch = '' - substituteInPlace tests/test_command.py \ - --replace '/tmp/' "$TMPDIR/" - ''; + build-system = [ + setuptools + ]; - propagatedBuildInputs = [ + dependencies = [ click - ordered-set + orderly-set orjson ]; + pythonRelaxDeps = [ + # Upstream develops this package as well, and from some reason pins this + # dependency to a patch version below this one. No significant changes + # happend in that relase, so we shouldn't worry, especially if tests pass. + "orderly-set" + ]; optional-dependencies = { cli = [ @@ -56,22 +72,30 @@ buildPythonPackage rec { pytestCheckHook python-dateutil tomli-w + polars + pandas ] ++ optional-dependencies.cli; disabledTests = [ # not compatible with pydantic 2.x "test_pydantic1" "test_pydantic2" + # Require pytest-benchmark + "test_cache_deeply_nested_a1" + "test_lfu" ]; pythonImportsCheck = [ "deepdiff" ]; - meta = with lib; { + meta = { description = "Deep Difference and Search of any Python object/data"; mainProgram = "deep"; homepage = "https://github.com/seperman/deepdiff"; changelog = "https://github.com/seperman/deepdiff/releases/tag/${version}"; - license = licenses.mit; - maintainers = with maintainers; [ mic92 ]; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ + mic92 + doronbehar + ]; }; } diff --git a/pkgs/development/python-modules/orderly-set/default.nix b/pkgs/development/python-modules/orderly-set/default.nix new file mode 100644 index 000000000000..93f164a5b603 --- /dev/null +++ b/pkgs/development/python-modules/orderly-set/default.nix @@ -0,0 +1,56 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + fetchpatch, + + # build-system + setuptools, + + # tests + pytestCheckHook, +}: + +buildPythonPackage rec { + pname = "orderly-set"; + version = "5.2.2"; + pyproject = true; + + src = fetchFromGitHub { + owner = "seperman"; + repo = "orderly-set"; + rev = "refs/tags/${version}"; + hash = "sha256-ZDo5fSHD0lCn9CRQtWK10QeZoOhuXG3LR3KA/to9gpE="; + }; + patches = [ + # https://github.com/seperman/orderly-set/pull/5 + (fetchpatch { + name = "do-not-import-mypy.patch"; + url = "https://github.com/seperman/orderly-set/commit/34362084868a081b8ebaaf1f13c93a7a798ef557.patch"; + hash = "sha256-eKbnA31ykm5fH0om6cfOaMpy+ZNNWRDkHieaUIHF8OM="; + }) + ]; + + build-system = [ + setuptools + ]; + + pythonImportsCheck = [ + "orderly_set" + ]; + nativeCheckInputs = [ + pytestCheckHook + ]; + disabledTests = [ + # Statically analyzes types, can be disabled so that mypy won't be needed. + "test_typing_mypy" + ]; + + meta = { + description = "Orderly Set previously known as Ordered Set"; + homepage = "https://github.com/seperman/orderly-set"; + changelog = "https://github.com/seperman/orderly-set/blob/${src.rev}/CHANGELOG.md"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ doronbehar ]; + }; +} diff --git a/pkgs/development/python-modules/ttp/default.nix b/pkgs/development/python-modules/ttp/default.nix index 700f97a68b5f..653ba4ad7171 100644 --- a/pkgs/development/python-modules/ttp/default.nix +++ b/pkgs/development/python-modules/ttp/default.nix @@ -64,6 +64,9 @@ buildPythonPackage rec { disabledTests = [ # data structure mismatches + "test_global_output_deepdiff_with_var_before" + "test_group_specific_output_deepdiff_with_var_before" + "test_group_specific_output_deepdiff_with_var_before_with_add_field" "test_yangson_validate" "test_yangson_validate_yang_lib_in_output_tag_data" "test_yangson_validate_multiple_inputs_mode_per_input_with_yang_lib_in_file" diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 0e4926959ab1..ccea6b39244b 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -9522,6 +9522,8 @@ self: super: with self; { ordered-set = callPackage ../development/python-modules/ordered-set { }; + orderly-set = callPackage ../development/python-modules/orderly-set { }; + orderedset = callPackage ../development/python-modules/orderedset { }; orgparse = callPackage ../development/python-modules/orgparse { };