Contributing๏ƒ

Thank you for your interest in contributing to edaflow! This project aims to provide comprehensive, educational EDA tools for data scientists and analysts.

๐Ÿ› ๏ธ Development Setup๏ƒ

  1. Fork the Repository:

    git clone https://github.com/YOUR_USERNAME/edaflow.git
    cd edaflow
    
  2. Create Virtual Environment:

    python -m venv edaflow_env
    source edaflow_env/bin/activate  # On Windows: edaflow_env\Scripts\activate
    
  3. Install in Development Mode:

    pip install -e .
    pip install -r requirements.txt
    
  4. Install Development Dependencies:

    pip install pytest pytest-cov
    

๐Ÿงช Testing๏ƒ

Run the test suite before submitting contributions:

pytest tests/

Run tests with coverage:

pytest --cov=edaflow tests/

๐ŸŽฏ Contribution Areas๏ƒ

New EDA Functions
  • Statistical analysis functions

  • Visualization enhancements

  • Data quality assessment tools

  • Advanced pattern detection

Documentation Improvements
  • Function docstrings

  • Tutorial examples

  • Best practices guides

  • Educational content

Code Quality
  • Performance optimizations

  • Error handling improvements

  • Type hints

  • Code refactoring

Testing
  • Unit test coverage

  • Edge case testing

  • Integration tests

  • Performance benchmarks

๐Ÿ“ Coding Standards๏ƒ

Function Design
  • Follow the established naming pattern: verb_object()

  • Include comprehensive docstrings with parameters and examples

  • Provide educational context in function descriptions

  • Return both processed data and visualizations where appropriate

Code Style
  • Follow PEP 8 Python style guidelines

  • Use descriptive variable names

  • Include inline comments for complex logic

  • Maintain consistency with existing code patterns

Documentation
  • Write clear, educational docstrings

  • Include practical examples in docstrings

  • Update README.md for new features

  • Add changelog entries for all changes

๐Ÿ”„ Pull Request Process๏ƒ

  1. Create Feature Branch:

    git checkout -b feature/your-feature-name
    
  2. Make Your Changes * Write clean, well-documented code * Add appropriate tests * Update documentation

  3. Test Your Changes:

    pytest tests/
    # Ensure all tests pass
    
  4. Commit Changes:

    git add .
    git commit -m "Add: Brief description of your changes"
    
  5. Push Branch:

    git push origin feature/your-feature-name
    
  6. Submit Pull Request * Provide clear description of changes * Reference any related issues * Include screenshots for visualizations

๐Ÿ“‹ Pull Request Checklist๏ƒ

  • [ ] Code follows project style guidelines

  • [ ] Tests pass locally

  • [ ] New tests added for new functionality

  • [ ] Documentation updated

  • [ ] Changelog entry added

  • [ ] Function includes educational docstring

  • [ ] No breaking changes (or clearly documented)

๐Ÿ› Bug Reports๏ƒ

When reporting bugs, please include:

Environment Information
  • Python version

  • edaflow version

  • Operating system

  • Package versions (pandas, matplotlib, etc.)

Bug Description
  • Clear description of the issue

  • Steps to reproduce

  • Expected vs actual behavior

  • Error messages/tracebacks

Example Code:

# Minimal code example that reproduces the bug
import edaflow
import pandas as pd

# Your code here...

๐Ÿ’ก Feature Requests๏ƒ

We welcome feature requests! Please include:

  • Use Case: Describe the EDA scenario this would help with

  • Proposed Solution: How you envision the feature working

  • Educational Value: How this would help users learn EDA concepts

  • Examples: Provide examples of when this would be useful

๐Ÿ“š Documentation Contributions๏ƒ

Documentation improvements are highly valued:

  • API Documentation: Enhance function docstrings

  • Tutorials: Create educational examples

  • Best Practices: Share EDA insights and techniques

  • README Updates: Improve project description and examples

๐ŸŽ“ Educational Focus๏ƒ

edaflow has an educational mission. When contributing:

  • Explain the Why: Help users understand EDA concepts

  • Provide Context: Explain when and why to use functions

  • Include Examples: Show practical applications

  • Reference Theory: Link to statistical concepts when relevant

๐Ÿค Code of Conduct๏ƒ

This project follows a simple code of conduct:

  • Be Respectful: Treat all contributors with respect

  • Be Collaborative: Work together to improve the project

  • Be Educational: Help others learn and grow

  • Be Patient: Remember that contributors have different skill levels

๐Ÿ†˜ Getting Help๏ƒ

Need help with your contribution?

  • GitHub Issues: Ask questions or discuss ideas

  • Documentation: Check existing docs and examples

  • Code Review: Maintainers will provide feedback on pull requests

๐Ÿ“ง Contact๏ƒ

  • GitHub Issues: Primary communication channel

  • Email: For private inquiries (check GitHub profile)

  • Discussions: Use GitHub Discussions for general questions

Thank you for helping make edaflow better for the data science community! ๐Ÿš€

โ€”

Last updated: January 2024