FunStrings
FunStrings is a comprehensive Python package that provides a wide range of functions for string manipulation, analysis, and transformation. It's designed to make working with strings easier and more efficient for developers, students, and educators.
Table of Contents
- Features
- Installation
- Quick Start
- Documentation
- For Students and Educators
- Contributing
- License
- Connect
Features
FunStrings includes 44 utility functions organized into eight categories:
Basic String Operations
- Reverse String: Return the reversed string
- Count Vowels: Count the number of vowels in the string
- Count Consonants: Count the number of consonants
- Check Palindrome: Determine whether the string is a palindrome
- To Upper/Lower: Convert the string to uppercase or lowercase
- Word Count: Count the words in the string
- Sort Characters: Return the string with its characters sorted
- Remove Whitespace: Remove all whitespace from the string
Text Analysis Functions
- Word Frequencies: Return frequency count of each word
- Longest Word: Find the longest word in the text
- Shortest Word: Find the shortest word in the text
- Average Word Length: Calculate average word length
- Is Pangram: Check if text contains all alphabet letters
String Transformation Functions
- Snake to Camel: Convert snake_case to camelCase
- Camel to Snake: Convert camelCase to snake_case
- Rotate String: Rotate string by n positions
- Shuffle String: Randomly shuffle characters
- Reverse Words: Reverse order of words but not letters
Pattern-based Functions
- Extract Numbers: Extract all numbers from text
- Extract Emails: Extract email addresses from text
- Extract URLs: Extract URLs from text
- Mask Sensitive: Mask all but last n chars with '*'
- Find Repeated Words: Find all repeated words in text
Data Cleaning Functions
- Remove HTML Tags: Strip all HTML tags from text
- Remove Emojis: Remove emojis from text
- Remove Special Characters: Keep only letters and numbers
- Expand Contractions: Convert "don't" → "do not"
- Correct Whitespace: Remove weird spaces, tabs, newlines
Text Analysis Helpers
- Unique Words: Return list of unique words
- Most Common Word: Return most frequent word
- Sentence Count: Number of sentences in text
- Average Sentence Length: Average words per sentence
- Character Ratio: Uppercase/lowercase/number ratio
ML/NLP Preprocessing
- Generate N-grams: Generate list of n-grams
- Strip Accents: Remove accents (café → cafe)
- Lemmatize Text: Reduce words to base form
- Is ASCII: Check if text only contains ASCII
Validation Functions
- Is Valid Email: Validate if a string is a proper email
- Is Valid URL: Validate if a string is a proper URL
- Is Valid IP: Check if string is a valid IP address
- Is Valid Date: Check if a string matches a date format
- Contains Special Characters: Check if special symbols are present
Installation
You can install FunStrings directly from PyPI:
pip install funstrings
Or install from source:
pip install git+https://github.com/nilkanth02/funstrings.git
Quick Start
import funstrings
# Basic operations
text = "Hello, World!"
print(funstrings.reverse_string(text)) # !dlroW ,olleH
print(funstrings.count_vowels(text)) # 3
# Text analysis
sentence = "The quick brown fox jumps over the lazy dog"
print(funstrings.is_pangram(sentence)) # True
print(funstrings.longest_word(sentence)) # quick
# Transformations
snake = "hello_world_example"
print(funstrings.snake_to_camel(snake)) # helloWorldExample
# Pattern-based
text_with_emails = "Contact us at info@example.com or support@example.org"
print(funstrings.extract_emails(text_with_emails)) # ['info@example.com', 'support@example.org']
# Data cleaning
html_text = "<p>Hello <b>World</b></p>"
print(funstrings.remove_html_tags(html_text)) # Hello World
print(funstrings.expand_contractions("I don't know")) # I do not know
# Text analysis helpers
print(funstrings.sentence_count("Hello! How are you? I'm fine.")) # 3
print(funstrings.most_common_word("hello world hello python")) # hello
# ML/NLP preprocessing
print(funstrings.generate_ngrams("hello", 2)) # ['he', 'el', 'll', 'lo']
print(funstrings.strip_accents("café")) # cafe
# Validation
print(funstrings.is_valid_email("user@example.com")) # True
print(funstrings.is_valid_url("https://example.com")) # True
Documentation
For detailed documentation and examples, visit the GitHub repository.
For Students and Educators
FunStrings is designed to be educational and beginner-friendly. It includes:
- Detailed docstrings with examples
- Comprehensive tutorials in the
tutorials/directory - Example scripts in the
examples/directory - Type hints for better IDE integration
Contributing
Contributions are welcome! Here's how you can help:
- Fork the repository
- Create a feature branch:
git checkout -b feature-name - Commit your changes:
git commit -m 'Add some feature' - Push to the branch:
git push origin feature-name - Submit a pull request
Please make sure to update tests as appropriate.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Connect
- GitHub: nilkanth02
- LinkedIn: Nilkanth Ahire
Release files for funstrings 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| funstrings-0.1.2.tar.gz | 27.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| funstrings-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 45.8 kB
Release files / funstrings-0.1.2.tar.gz
| Download URL | funstrings-0.1.2.tar.gz |
|---|---|
| Size | 27.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c332e22efcab80e9c18d24caf3d723edaca0a94dfcf29c833d6b0775494470e4
|
|
BLAKE2b-256 checksum How to use checksums |
357d60c2bbdf9a830ff5d56f99c946f6e06bcaae0cf863054a47c326f0d25650
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.9
|
Release files / funstrings-0.1.2-py3-none-any.whl
| Download URL | funstrings-0.1.2-py3-none-any.whl |
|---|---|
| Size | 17.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
528a1a19af06d2c387e50b2b001e73521c8ae5c75a406957dbb2a6d2a7d9df18
|
|
BLAKE2b-256 checksum How to use checksums |
0e340c114859a0a1b3bfd78d94eb5c19f9f39672c694ad9fba6e998fb00c4775
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.9
|