[build-system] requires = ["hatchling"] build-backend = "hatchling.build" [project] name = "diagrams" version = "0.25.1" description = "Diagram as Code" authors = [{ name = "mingrammer", email = "mingrammer@gmail.com" }] requires-python = "~=3.9" readme = "README.md" license = "MIT" dependencies = [ "graphviz>=0.13.2,<0.22.0", "jinja2>=2.10,<4.0", "typed-ast>=1.5.5,<2 ; python_version<'3.8'", ] [project.scripts] diagrams = "diagrams.cli:main" [project.urls] Homepage = "https://diagrams.mingrammer.com" Repository = "https://github.com/mingrammer/diagrams" [tool.poetry.group.dev.dependencies] pytest = "^8.3" pylint = "^3.3" rope = "^1.13" isort = "^6.0" black = "^24.4" pre-commit = "^4.0" # The wheel ships the package and the icon tree it loads at runtime, and nothing # else. `resources` is a top-level directory because diagrams.Node._load_icon # resolves icons relative to the *parent* of the diagrams package. [tool.hatch.build.targets.wheel] only-include = ["diagrams", "resources"] # The sdist additionally carries the test suite and the release-version check, # so distribution packagers can verify a build without cloning the repository. # Not the rest of scripts/ or autogen.sh: those need templates/, website/ and # external binaries, and shipping them without their inputs advertises a script # that cannot run. Note tests/test_packaging.py skips itself unless `import # diagrams` resolves to an installed copy - run it from outside the unpacked # tree so it exercises the build under test, not the source that ships with it. [tool.hatch.build.targets.sdist] only-include = [ "diagrams", "resources", "tests", "scripts/__init__.py", "scripts/check_release_version.py", "CHANGELOG.md", ] [tool.black] line-length=120