Developer utilities and AI engineering tools by Mohit Khare — code snippets, model helpers, and dev productivity.
Project description
mohitkhare
Developer utilities and AI engineering tools by Mohit Khare -- practical helpers for text processing, LLM token estimation, and everyday dev productivity.
Install
pip install mohitkhare
Text Utilities
from mohitkhare import slugify, truncate, chunk_text, reading_time
# URL-safe slugs
slugify("My Blog Post Title!") # 'my-blog-post-title'
slugify("Cafe & Restaurant -- Paris") # 'cafe-restaurant-paris'
# Smart truncation
truncate("Long article text here...", 15) # 'Long article...'
# Chunk text for LLM processing (splits on sentence boundaries)
chunks = chunk_text(long_document, max_chars=4000, overlap=200)
# Reading time estimate
reading_time("word " * 500) # '2 min read'
LLM Token Estimation
Estimate token counts and API costs without importing heavy tokenizers.
from mohitkhare import estimate_tokens, estimate_cost
# Token estimation (character-based heuristic)
estimate_tokens("Hello, how are you?") # 5
estimate_tokens("Long prompt " * 100, model="claude") # ~336
# Cost estimation
estimate_cost("A " * 10000, model="gpt-4o") # '$0.0050'
estimate_cost("Short text", model="claude-haiku") # '$0.0000'
estimate_cost("Output text", model="gpt-4o", is_output=True)
Supports: GPT-4o, GPT-4, GPT-3.5, Claude (Opus/Sonnet/Haiku), Gemini, Llama, Mistral.
Dev Productivity
from mohitkhare import timer, retry, flatten, chunk_list, dedupe
# Time function execution
@timer
def slow_function():
... # prints "slow_function took 1.234s"
# Retry with exponential backoff
@retry(max_attempts=3, delay=1.0, backoff=2.0)
def flaky_api_call():
...
# Flatten nested lists
flatten([[1, 2], [3, [4, 5]]]) # [1, 2, 3, 4, 5]
# Chunk lists for batch processing
chunk_list(range(10), 3) # [[0,1,2], [3,4,5], [6,7,8], [9]]
# Dedupe preserving order
dedupe([3, 1, 2, 1, 3]) # [3, 1, 2]
dedupe(["a", "A", "b"], key=str.lower) # ['a', 'b']
Links
- mohitkhare.me -- Blog and portfolio
- Blog -- AI engineering articles
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mohitkhare-0.1.0.tar.gz.
File metadata
- Download URL: mohitkhare-0.1.0.tar.gz
- Upload date:
- Size: 7.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a0b2430da5989e92644e054cd8e59dd9aad95e7266e6ccb59d3723ed98433ff6
|
|
| MD5 |
4c9650ed67d83507719d7f6c9f45fc1f
|
|
| BLAKE2b-256 |
e9d6e4dccf8b0806e28937628f6757effc3da032ec8b153b867cf24fe012ed3a
|
File details
Details for the file mohitkhare-0.1.0-py3-none-any.whl.
File metadata
- Download URL: mohitkhare-0.1.0-py3-none-any.whl
- Upload date:
- Size: 7.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f5f0d1ecf7912c430a52f16028af004bb221bb84285d40f8202ed1a13508240a
|
|
| MD5 |
0e3b62c03e9efcb62007a4f632948d56
|
|
| BLAKE2b-256 |
d5c3c487bfb42646ffa955aa8bdd1e8e194fe623631cea89f2233dd3d304fccf
|