Commit 5e5a40b1 authored by Nick Bathum's avatar Nick Bathum
Browse files

pythonPackages.diagrams: init at 0.19.1

Add python diagrams library. Generate nice architecture diagrams
with python code, allowing for rapid iteration.

The images are rendered using dot from graphviz.

This PR is based on the upstream GitHub repo for diagrams, which
differs significantly from the tarball published to pypi.

Closes #101532
parent e2d7984d
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
diff --git a/pyproject.toml b/pyproject.toml
index 2c93a39..6c800e2 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -24,3 +24,7 @@ isort = "^4.3"
 
 [tool.black]
 line-length = 120
+
+[build-system]
+requires = ["poetry_core>=1.0.0"]
+build-backend = "poetry.core.masonry.api"
+49 −0
Original line number Diff line number Diff line
{ lib
, buildPythonPackage
, pythonOlder
, fetchFromGitHub
, black
, jinja2
, poetry-core
, round
, graphviz
, inkscape
, imagemagick
, pytestCheckHook
}:

buildPythonPackage rec {
  pname = "diagrams";
  version = "0.19.1";
  format = "pyproject";
  disabled = pythonOlder "3.6";

  src = fetchFromGitHub {
    owner = "mingrammer";
    repo = pname;
    rev = "v${version}";
    sha256 = "0qvk0cp3026n5jmwp9z7m70b6pws0h6a7slxr23glg18baxr44d4";
  };

  preConfigure = ''
    patchShebangs autogen.sh
    ./autogen.sh
  '';

  patches = [ ./build_poetry.patch ];

  checkInputs = [ pytestCheckHook ];

  # Despite living in 'tool.poetry.dependencies',
  # these are only used at build time to process the image resource files
  nativeBuildInputs = [ black inkscape imagemagick jinja2 poetry-core round ];

  propagatedBuildInputs = [ graphviz ];

  meta = with lib; {
    description = "Diagram as Code";
    homepage    = "https://diagrams.mingrammer.com/";
    license     = licenses.mit;
    maintainers =  with maintainers; [ addict3d ];
  };
}
+2 −0
Original line number Diff line number Diff line
@@ -1553,6 +1553,8 @@ in {

  dftfit = callPackage ../development/python-modules/dftfit { };

  diagrams = callPackage ../development/python-modules/diagrams { };

  diceware = callPackage ../development/python-modules/diceware { };

  dicom2nifti = callPackage ../development/python-modules/dicom2nifti { };