Metadata-Version: 2.4
Name: pipprograms-tanuj
Version: 1.0.0
Summary: A hosted Python library containing 9 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

# 🚀 Pipprograms: 9 NLP & Text Processing Programs

A hosted Python library containing 9 text processing and NLP 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** | Placeholder 8 | Custom script placeholder (editable) | - |
| **9** | Placeholder 9 | Custom script placeholder (editable) | - |

---

## 🛠️ 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
   ```
