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
Metadata
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 | Provenance | Actions |
|---|---|---|---|---|
| funstrings-0.1.2.tar.gz | 27.9 kB | Without provenance | Details for funstrings-0.1.2.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| funstrings-0.1.2-py3-none-any.whl | Python 3 | none | any | Details for funstrings-0.1.2-py3-none-any.whl |
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
|
Security for funstrings 0.1.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.