First off, thank you for considering contributing to FunStrings! It's people like you that make FunStrings such a great tool for students, educators, and developers.
This document provides guidelines and instructions for contributing to this project. By participating in this project, you agree to abide by its terms.
- Code of Conduct
- Project Overview
- Getting Started
- How to Contribute
- Development Workflow
- Coding Standards
- Pull Request Process
- Community
This project and everyone participating in it is governed by the FunStrings Code of Conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to Author.
FunStrings is a Python package that provides a wide range of functions for string manipulation, analysis, and transformation with a focus on AI and data science applications. The library serves as a foundational tool for text preprocessing in natural language processing (NLP), machine learning pipelines, and data analysis workflows.
Key aspects of the project:
- NLP Preprocessing: Functions for text normalization, tokenization, and feature extraction that prepare text data for machine learning models
- Data Cleaning: Tools to sanitize and standardize text data from various sources
- Feature Engineering: Utilities to extract meaningful features from text for ML models
- Educational Focus: Designed to be accessible for students and practitioners learning data science and AI
- Production Ready: Optimized for use in real-world data science pipelines
FunStrings bridges the gap between raw text data and AI-ready datasets, making it an essential tool for data scientists, ML engineers, and AI researchers while remaining approachable for beginners in the field.
-
Fork and clone the repository:
git clone https://github.com/YOUR-USERNAME/funstrings.git cd funstrings -
Create a virtual environment:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install development dependencies:
pip install -e ".[dev]"
funstrings/: Main package directory__init__.py: Package initialization and exportsoperations.py: Core string operation functions__main__.py: Command-line interface
tests/: Test directorytest_operations.py: Tests for basic operationstest_new_operations.py: Tests for advanced operationstest_new_functions.py: Tests for newer functions
docs/: Documentationexamples/: Example scriptstutorials/: Educational tutorials
There are many ways to contribute to FunStrings, even if you're not a Python expert!
If you find a bug, please create an issue on GitHub with:
- A clear, descriptive title
- A detailed description of the issue
- Steps to reproduce the bug
- Expected behavior
- Actual behavior
- Your environment (Python version, OS, etc.)
Have an idea for a new feature or improvement? Create an issue with:
- A clear, descriptive title
- A detailed description of your suggestion
- Examples of how the feature would work
- Why this enhancement would be useful
FunStrings is always looking for new string manipulation functions! To add a new function:
- Check if a similar function already exists
- Create a new function in
operations.py - Add comprehensive docstrings with examples
- Write tests for your function in the appropriate test file
- Update
__init__.pyto export your function - Add your function to the README.md
Good documentation is crucial for an educational package:
- Improve existing docstrings
- Add more examples to function documentation
- Create or improve markdown files in the
docs/directory - Fix typos or clarify explanations
Tutorials help users learn how to use FunStrings effectively:
- Create new tutorial scripts in the
tutorials/directory - Focus on specific use cases or learning objectives
- Include detailed comments explaining each step
- Make sure tutorials are beginner-friendly
Examples show how to use FunStrings in real-world scenarios:
- Add example scripts to the
examples/directory - Focus on practical applications
- Include comments explaining the code
- Ensure examples are easy to understand
- Fork the repository on GitHub
- Clone your fork locally:
git clone https://github.com/YOUR-USERNAME/funstrings.git cd funstrings - Add the original repository as an upstream remote:
git remote add upstream https://github.com/nilkanth02/funstrings.git
Create a branch for your work:
git checkout -b feature/your-feature-nameUse a descriptive branch name that reflects your changes.
- Make your changes to the codebase
- Follow the coding standards
- Add or update tests as needed
- Add or update documentation as needed
Run the tests to make sure everything works:
pytestFor test coverage:
pytest --cov=funstrings- Push your changes to your fork:
git push origin feature/your-feature-name
- Go to the original repository on GitHub
- Create a new pull request from your branch
- Provide a clear description of your changes
- Reference any related issues
- Follow PEP 8 style guidelines
- Use 4 spaces for indentation (no tabs)
- Keep line length to a maximum of 88 characters
- Use meaningful variable and function names
- Add comments for complex code sections
- All functions should have docstrings following the Google style
- Include examples in docstrings
- Use type hints for function parameters and return values
- Keep documentation up-to-date with code changes
- Write tests for all new functions
- Ensure tests cover both normal cases and edge cases
- Maintain or improve test coverage
- Make sure all tests pass before submitting a pull request
- Ensure your code follows the project's coding standards
- Update documentation as needed
- Add or update tests as needed
- Make sure all tests pass
- Submit your pull request with a clear description
- Respond to any feedback or requested changes
- Join discussions in GitHub issues
- Help answer questions from other contributors
- Share your experience using FunStrings
- Spread the word about the project
Thank you for contributing to FunStrings! Your efforts help make this project better for everyone.