Skip to main content

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 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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

reverievis-1.0.0.tar.gz (23.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

reverievis-1.0.0-py3-none-any.whl (24.3 kB view details)

Uploaded Python 3

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

Hashes for reverievis-1.0.0.tar.gz
Algorithm Hash digest
SHA256 3dd63e23e3dc013ba15b3e83d6f1ccae792ed945f0fc7858e244cfc9888711b7
MD5 69b48fab463d15442c68ef452f657c1c
BLAKE2b-256 9d2c408560ce90293f6dc57ec95f5a3fde2596af0287e0ce17d3535daee31df2

See more details on using hashes here.

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

Hashes for reverievis-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 57dfa4428705a857ce0161bdb1c21b0a05c9438d9aa6e398af6abe8d3deea697
MD5 1666dff84ed7aa9c09f1567fa2fcf117
BLAKE2b-256 dc5acf6fa90a7d7208276adb85edec37f609640405b1fac6832f6816afd1520f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page