Skip to content

ragilhadi/reverie-vis

Repository files navigation

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 types
  • ChartConfig: Centralized configuration management
  • Theme: Professional theming system
  • ChartFactory: 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:

  1. Set up pre-commit hooks (see Development section above)
  2. Ensure all tests pass
  3. Follow the existing code style

License

This project is licensed under the MIT License - see the LICENSE file for details.

Authors

Acknowledgments

About

A professional Python package for creating beautiful visualizations with clean, object-oriented design.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages