Metadata-Version: 2.4
Name: pipprograms-tanuj
Version: 1.2.0
Summary: A hosted Python library containing 16 text processing and NLP programs, accessible from anywhere.
Author-email: Tanuj <tanuj@example.com>
Project-URL: Homepage, https://github.com/tanujs/pipprograms
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.7
Description-Content-Type: text/markdown
Requires-Dist: numpy
Requires-Dist: pandas
Requires-Dist: nltk
Requires-Dist: matplotlib
Requires-Dist: scikit-learn
Requires-Dist: PyPDF2
Requires-Dist: wordcloud
Requires-Dist: google-genai

# 🚀 Pipprograms: 16 NLP & Text Processing Programs

A hosted Python library containing 16 text processing, NLP, and AI programs. You can package this library and host it (e.g., on PyPI or GitHub) to import it and run it from anywhere in the world.

---

## ✨ Features

- **CLI Interface**: Show or run any program with a single terminal command.
- **Python API**: Import and run/inspect the programs directly inside your own Python scripts.
- **Automated Fallbacks**: Programs automatically generate sample datasets if the default paths (like Colab `/content/` paths) are missing, ensuring they work out-of-the-box on any machine.
- **Backwards Compatible**: Works with modern PEP 517 build backends and older setup.py-based systems.

---

## 📂 Included Programs

| Program # | Name | Description | Key Libraries |
|---|---|---|---|
| **1** | TF-IDF Summarizer | Extracts key sentences to summarize text | `nltk`, `numpy` |
| **2** | Custom Word Cloud | Generates overlapping-free word frequency visual clouds | `nltk`, `matplotlib` |
| **3** | Sentiment Classifier (LR) | Sentiment Classifier using balanced Logistic Regression | `pandas`, `scikit-learn` |
| **4** | Sentiment Classifier (N-gram) | Classifies sentiment using custom-sized n-grams & Logistic Regression | `pandas`, `scikit-learn` |
| **5** | Sentiment Classifier (NB) | Classifies sentiment using balanced Naive Bayes | `pandas`, `scikit-learn` |
| **6** | Spam Detector | Classifies Ham vs. Spam using Random Forest | `pandas`, `scikit-learn` |
| **7** | Document Topic Modeling | Latent Dirichlet Allocation (LDA) document clustering | `PyPDF2`, `scikit-learn` |
| **8** | One Hot Encoding | Custom script to perform One Hot Encoding | `numpy`, `pandas` |
| **9** | TF-IDF + SVM | Text Classifier using TF-IDF and Support Vector Machine | `scikit-learn` |
| **10** | TF-IDF + KNN | Text Classifier using TF-IDF and K-Nearest Neighbors | `scikit-learn` |
| **11** | CountVectorizer + SVM | Text Classifier using CountVectorizer Bag-of-Words and SVM | `scikit-learn` |
| **12** | CountVectorizer + KNN | Text Classifier using CountVectorizer Bag-of-Words and KNN | `scikit-learn` |
| **13** | Visual for LDA (Bar) | Basic bar chart visualization for LDA topic distribution | `matplotlib` |
| **14** | Visual for LDA (Cloud) | Word cloud visualization for LDA topics | `wordcloud`, `matplotlib` |
| **15** | Single PDF in LDA | Runs LDA topic modeling on text extracted from a single PDF | `PyPDF2`, `scikit-learn` |
| **16** | Gemini Content Generator | Content generation using the Gemini API | `google-genai` |

---

## 🛠️ Installation

### 1. From PyPI (Standard & Recommended)
Once the package is published to PyPI (see details below), anyone in the world can install it without Git:
```bash
pip install pipprograms-tanuj
```

### 2. From a Direct URL (No Git Required)
If you host the built `.whl` file on any web server, public storage (S3, Dropbox, website, etc.), anyone can install it directly via the URL:
```bash
pip install https://your-domain.com/path/pipprograms-1.0.0-py3-none-any.whl
```

### 3. Local Installation (for development)
If you want to run or test it locally from the source folder:
```bash
pip install -e .
```

---

## 🖥️ Command Line Usage

Once installed, the `pipprograms` command will be globally available on your system.

### 1. List all programs
```bash
pipprograms list
```

### 2. View the source code of a program (e.g. Program 1)
```bash
pipprograms show 1
```

### 3. Run a program (e.g. Program 3)
```bash
pipprograms run 3
```

---

## 🐍 Python Usage

You can import `pipprograms` in any python script:

```python
import pipprograms

# 1. Print the source code of Program 1
pipprograms.show(1)

# 2. Get the source code as a string
code_str = pipprograms.get_code(1)

# 3. Run Program 1
pipprograms.run(1)
```

---

## 📤 How to Host and Publish this Package

### Option A: Hosting on PyPI (Free and Public)
To make your package available via `pip install pipprograms` (or your chosen package name):

1. **Create an account** on [PyPI](https://pypi.org/).
2. **Install Build Tools**:
   ```bash
   pip install --upgrade build twine
   ```
3. **Build the Distribution Archives**:
   ```bash
   python -m build
   ```
   This will create a `dist/` directory containing `.tar.gz` and `.whl` files.
4. **Upload to PyPI**:
   ```bash
   python -m twine upload dist/*
   ```
   *Note: You will be prompted to enter your PyPI token/credentials.*

### Option B: Hosting Wheel (.whl) files on Cloud/HTTP Servers (No Git required)
If you don't want to publish to PyPI and want to keep it private or host it yourself:
1. **Build the wheel file**:
   ```bash
   python -m build
   ```
2. **Upload the wheel file** (located in `dist/pipprograms-1.0.0-py3-none-any.whl`) to any online storage that supports direct downloads (e.g. your personal web server, AWS S3, Google Cloud Storage, or a direct link from Dropbox/OneDrive).
3. **Install it on any machine** using the direct URL:
   ```bash
   pip install https://your-server.com/pipprograms-1.0.0-py3-none-any.whl
   ```
