A professional package for creating beautiful visualizations with clean, object-oriented design
Project description
ReverieVis
A professional Python package for creating beautiful visualizations with clean, object-oriented design.
Features
- Clean Architecture: Object-oriented design with clear separation of concerns
- Multiple Chart Types: Support for radar charts, with more chart types coming soon
- Professional Theming: Built-in themes (default, dark, minimal, professional)
- Type Safety: Comprehensive constants system preventing typos and errors
- Easy Configuration: Centralized configuration management
- Extensible: Factory pattern for easy addition of new chart types
Installation
pip install reverievis
Quick Start
Basic Radar Chart
import pandas as pd
from reverievis import RadarChart
# Create sample data
data = pd.DataFrame({
'Category': ['A', 'B', 'C'],
'Speed': [80, 90, 70],
'Accuracy': [85, 75, 95],
'Efficiency': [90, 80, 85]
})
# Create and display chart
chart = RadarChart(
data=data,
category_column='Category',
value_columns=['Speed', 'Accuracy', 'Efficiency']
)
chart.plot()
chart.show()
Customized Chart
from reverievis import RadarChart, ChartConfig, Theme
from reverievis.core.constants import LegendStyles, Markers
# Custom configuration
config = ChartConfig(
figure_size=(12, 8),
title="Performance Comparison",
colors=['#FF6D60', '#6DA9E4', '#F7D060'],
legend_style=LegendStyles.TOP,
marker=Markers.CIRCLE
)
# Custom theme
theme = Theme("professional")
# Create chart
chart = RadarChart(
data=data,
category_column='Category',
value_columns=['Speed', 'Accuracy', 'Efficiency'],
config=config,
theme=theme
)
chart.plot()
chart.show()
Using the Factory Pattern
from reverievis import create_chart
# Create chart using factory
chart = create_chart(
'radar',
data=data,
category_column='Category',
value_columns=['Speed', 'Accuracy', 'Efficiency']
)
chart.plot()
chart.show()
Architecture
The package follows a clean, modular architecture:
reverievis/
├── core/ # Base classes and configuration
├── charts/ # Chart implementations
├── utils/ # Utility functions
├── constants/ # Type-safe constants
└── factory/ # Chart creation factory
Key Components
Chart: Abstract base class for all chart typesChartConfig: Centralized configuration managementTheme: Professional theming systemChartFactory: Factory pattern for chart creation- Constants: Type-safe constants preventing errors
Documentation
📚 Complete Documentation: Visit our GitBook documentation for comprehensive guides, examples, and API reference.
Development
Setup Development Environment
git clone https://github.com/ragilhadi/reverie-vis.git
cd reverie-vis
pip install -r requirements-dev.txt
Pre-commit Setup (Recommended)
Pre-commit hooks automatically check code quality before each commit:
# Install pre-commit
pip install pre-commit
# Install the git hook scripts
pre-commit install
# Run against all files (optional)
pre-commit run --all-files
The pre-commit hooks will automatically:
- Format code with Ruff
- Check code quality with Ruff linting
- Validate imports and catch common issues
- Ensure consistent code style across the project
Manual Code Quality Checks
# Run tests
pytest src/tests/
# Format code
black src/
# Lint code
flake8 src/
# Type checking
mypy src/
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Before contributing, please:
- Set up pre-commit hooks (see Development section above)
- Ensure all tests pass
- Follow the existing code style
License
This project is licensed under the MIT License - see the LICENSE file for details.
Authors
- ragilhadi - Initial work - ragilhadi
Acknowledgments
- Built with Matplotlib
- Data handling with Pandas
- Numerical operations with NumPy
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file reverievis-1.0.0.tar.gz.
File metadata
- Download URL: reverievis-1.0.0.tar.gz
- Upload date:
- Size: 23.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.23
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3dd63e23e3dc013ba15b3e83d6f1ccae792ed945f0fc7858e244cfc9888711b7
|
|
| MD5 |
69b48fab463d15442c68ef452f657c1c
|
|
| BLAKE2b-256 |
9d2c408560ce90293f6dc57ec95f5a3fde2596af0287e0ce17d3535daee31df2
|
File details
Details for the file reverievis-1.0.0-py3-none-any.whl.
File metadata
- Download URL: reverievis-1.0.0-py3-none-any.whl
- Upload date:
- Size: 24.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.23
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
57dfa4428705a857ce0161bdb1c21b0a05c9438d9aa6e398af6abe8d3deea697
|
|
| MD5 |
1666dff84ed7aa9c09f1567fa2fcf117
|
|
| BLAKE2b-256 |
dc5acf6fa90a7d7208276adb85edec37f609640405b1fac6832f6816afd1520f
|