Commit 49d00dd6 authored by Fabian Affolter's avatar Fabian Affolter
Browse files
parent 8cc53330
Loading
Loading
Loading
Loading
+29 −20
Original line number Diff line number Diff line
{ lib
, buildPythonPackage
, fetchPypi
, fetchFromGitHub
, fontconfig
, graphviz
, poetry-core
, pytestCheckHook
, pythonOlder
, substituteAll
, six
, substituteAll
, withGraphviz ? true
, graphviz
, fontconfig
# Tests
, pytestCheckHook
, nose
}:

buildPythonPackage rec {
  pname = "anytree";
  version = "2.8.0";
  version = "2.9.0";
  format = "pyproject";

  disabled = pythonOlder "3.7";

  src = fetchPypi {
    inherit pname version;
    sha256 = "3f0f93f355a91bc3e6245319bf4c1d50e3416cc7a35cc1133c1ff38306bbccab";
  src = fetchFromGitHub {
    owner = "c0fec0de";
    repo = "anytree";
    rev = "refs/tags/${version}";
    hash = "sha256-e7mmOOvrZuMCcyUg74YLLXGzkb5nCtuYmhNzAbY65gg=";
  };

  patches = lib.optionals withGraphviz [
@@ -28,30 +32,35 @@ buildPythonPackage rec {
    })
  ];

  nativeBuildInputs = [
    poetry-core
  ];

  propagatedBuildInputs = [
    six
  ];

  # tests print “Fontconfig error: Cannot load default config file”
  nativeCheckInputs = [
    pytestCheckHook
  ];

  # Tests print “Fontconfig error: Cannot load default config file”
  preCheck = lib.optionalString withGraphviz ''
    export FONTCONFIG_FILE=${fontconfig.out}/etc/fonts/fonts.conf
  '';

  # circular dependency anytree → graphviz → pango → glib → gtk-doc → anytree
  # Circular dependency anytree → graphviz → pango → glib → gtk-doc → anytree
  doCheck = withGraphviz;

  nativeCheckInputs = [ pytestCheckHook nose ];

  pytestFlagsArray = lib.optionals (pythonOlder "3.4") [
    # Use enums, which aren't available pre-python3.4
    "--ignore=tests/test_resolver.py"
    "--ignore=tests/test_search.py"
  pythonImportsCheck = [
    "anytree"
  ];

  meta = with lib; {
    description = "Powerful and Lightweight Python Tree Data Structure";
    homepage = "https://github.com/c0fec0de/anytree";
    changelog = "https://github.com/c0fec0de/anytree/releases/tag/${version}";
    license = licenses.asl20;
    maintainers = [ ];
    maintainers = with maitnainers; [ ];
  };
}