I have a codebase in Python. There are many classes and complex hierarchies. I need a tool that can automatically generate a dependency graph for me. For example, it should generate an image that shows using arrows what classes are connected via composition or inheritance. Could you please recommend a few tools for that?
Sure! Here are a few tools that you can use to automatically generate a dependency graph for your Python codebase:

1. Pyreverse - Pyreverse is a tool that generates UML-style class diagrams and package dependency graphs from Python code. It is part of the PyDev plugin for Eclipse and can also be used as a standalone tool.

2. Graphviz - Graphviz is a powerful open-source graph visualization tool that can be used to generate a variety of diagrams, including class diagrams and package dependency graphs. You can use Graphviz to visualize your Python code by first generating a dot file using a tool like Pyreverse, and then using Graphviz to generate an image from the dot file.

3. Gephi - Gephi is an open-source network visualization tool that can be used to generate class diagrams and package dependency graphs. Gephi provides a number of layout algorithms to arrange nodes and edges, making it possible to generate clear and readable diagrams from large codebases.

4. PlantUML - PlantUML is a tool that generates UML diagrams from a simple text language. It can be used to generate class diagrams and package dependency graphs, and provides a number of customization options to control the appearance of the diagrams.

These are just a few examples of the many tools available for generating dependency graphs for Python code. Each tool has its own strengths and weaknesses, so it's best to experiment with a few of them to see which one works best for your codebase.