🎨 RenderSchema
✨ Features
- 🚀 Zero-Config Diagram Generation - Turn Python classes into UML diagrams with one line of code
- 🎨 Beautiful by Default - Clean, modern diagrams with Tailwind-inspired color schemes
- 🌓 Light & Dark Themes - Perfect for documentation in any style
- 📊 Multiple Diagram Types - UML class diagrams, flowcharts, and class relationships
- 🖼️ Multiple Export Formats - SVG, PNG, PDF, and interactive HTML
- 🔍 Interactive HTML - Zoomable, pannable diagrams for web documentation
- 🎯 Type-Safe - Full type hints for excellent IDE support
- 📦 Framework Integration - Works seamlessly with Sphinx, MkDocs, and more
🎯 Why RenderSchema?
Developers love diagrams but hate making them. RenderSchema solves this by automatically generating clean, professional diagrams from your Python code. No more manual diagramming tools or outdated documentation!
📦 Installation
# Basic installation
pip install renderschema
# With PNG/PDF export support
pip install renderschema[image]
# Full installation (all features)
pip install renderschema[all]
🚀 Quick Start
Generate a UML Diagram
from renderschema import diagram
class Person:
def __init__(self, name: str, age: int):
self.name = name
self.age = age
def greet(self) -> str:
return f"Hello, I'm {self.name}!"
# Generate diagram - it's that simple!
diagram(Person).export("person.svg")
Create a Flowchart
from renderschema import diagram
def calculate_discount(price: float, customer_type: str) -> float:
if customer_type == "vip":
return price * 0.8
elif customer_type == "premium":
return price * 0.9
else:
return price
diagram(calculate_discount, diagram_type="flowchart").export("discount.svg")
Visualize Class Relationships
from renderschema import diagram
class Animal:
pass
class Dog(Animal):
def bark(self): pass
class Cat(Animal):
def meow(self): pass
diagram([Animal, Dog, Cat], diagram_type="class").export("animals.svg")
🎨 Themes
RenderSchema supports both light and dark themes:
# Light theme (default)
diagram(MyClass, theme="light").export("light.svg")
# Dark theme - perfect for dark mode documentation
diagram(MyClass, theme="dark").export("dark.svg")
📤 Export Formats
Export to multiple formats based on your needs:
# SVG - vector graphics, perfect for web and scaling
diagram(MyClass).export("output.svg")
# PNG - raster image (requires cairosvg)
diagram(MyClass).export("output.png")
# PDF - for print documentation (requires cairosvg)
diagram(MyClass).export("output.pdf")
# Interactive HTML - zoomable and pannable
diagram(MyClass).export("output.html")
💡 Advanced Usage
Get Diagrams as Strings
# Get SVG markup as string
svg_content = diagram(MyClass).to_svg()
# Get interactive HTML as string
html_content = diagram(MyClass).to_html(interactive=True)
Analyze Before Generating
generator = diagram(MyClass)
data = generator.analyze() # Get structured data about the class
svg = generator.generate() # Generate the diagram
Custom Options
# Customize diagram generation
diagram(
MyClass,
theme="dark",
color_scheme="tailwind"
).export("custom.svg")
📚 Documentation
- Quick Start Guide - Get up and running in minutes
- Contributing Guide - Help make RenderSchema better
- Changelog - See what's new
- Examples - Explore more detailed examples
🛠️ Development
Setup Development Environment
# Clone the repository
git clone https://github.com/juliuspleunes4/RenderSchema.git
cd RenderSchema
# Install with development dependencies
pip install -e ".[dev]"
# Run tests
pytest
# Format code
black renderschema/ tests/
# Lint code
ruff check renderschema/ tests/
# Type check
mypy renderschema/
Running Examples
cd examples
python basic_uml.py
python flowchart_example.py
python class_relationships.py
🤝 Contributing
Contributions are welcome! Please read our Contributing Guide for details on our code of conduct and the process for submitting pull requests.
Important: All changes must be documented in docs/CHANGELOG.md. Never create separate .md files to explain changes.
📝 License
This project is licensed under the MIT License - see the LICENSE file for details.
🎯 Roadmap
- More diagram types (sequence diagrams, state machines)
- Custom styling and color schemes
- Advanced layout algorithms
- Integration with popular documentation tools
- Module and package-level diagrams
- Real-time diagram preview in editors
🙏 Acknowledgments
Built with ❤️ by Julius Pleunes
Inspired by the need for effortless, beautiful diagram generation for Python developers.
Made with ❤️ for the Python community
Metadata
Release files for renderschema 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| renderschema-0.1.2.tar.gz | 37.5 kB | Without provenance | Details for renderschema-0.1.2.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| renderschema-0.1.2-py3-none-any.whl | Python 3 | none | any | Details for renderschema-0.1.2-py3-none-any.whl |
Total release size: 55.6 kB
Release files / renderschema-0.1.2.tar.gz
| Download URL | renderschema-0.1.2.tar.gz |
|---|---|
| Size | 37.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
13d9ab2c77bbf75bcc3662d3ef78255bf430f94abfb998251409ea4a4c6b3b90
|
|
BLAKE2b-256 checksum How to use checksums |
cebc6f1199064df296444c433341820c2bbb89d4a829185e775d71cbe35891e9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.9
|
Release files / renderschema-0.1.2-py3-none-any.whl
| Download URL | renderschema-0.1.2-py3-none-any.whl |
|---|---|
| Size | 18.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
fd0e60581976ff61607477bf555c680eb0a2f24c6a4e4a636c95996a4db56c81
|
|
BLAKE2b-256 checksum How to use checksums |
63edbfb12938a271f7892b752f7d326da36e2a97c1cdf12f647e46e1bd251137
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.9
|
Security for renderschema 0.1.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.