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*